----------------------------------------------------------------------------- MANIFEST | 164 ++-- Makefile | 23 README.MAC | 3 amiga/README | 103 -- amiga/actived.c | 153 ---- amiga/amiga.c | 724 ------------------- amiga/amiga.h | 91 -- amiga/amigatcp.c | 273 ------- amiga/amigatcp.h | 81 -- amiga/smakefile | 295 ------- amiga/tin.readme | 150 --- config.guess | 23 config.sub | 21 configure | 2 configure.in | 2 doc/CHANGES | 64 + doc/INSTALL | 9 doc/TODO | 37 doc/WHATSNEW | 8 doc/article.txt | 41 + doc/internals.txt | 8 doc/tin.1 | 116 +-- doc/tin.5 | 36 include/bugrep.h | 6 include/extern.h | 13 include/nntplib.h | 8 include/policy.h | 2 include/proto.h | 54 - include/tcurses.h | 9 include/tin.h | 132 --- include/tinrc.h | 3 include/tnntp.h | 28 include/version.h | 18 po/POTFILES.in | 1 po/de.gmo |binary po/de.po | 1975 +++++++++++++++++++++++---------------------------- po/en_GB.gmo |binary po/en_GB.po | 1945 ++++++++++++++++++++++----------------------------- po/et.gmo |binary po/et.po | 1979 +++++++++++++++++++++++----------------------------- po/fr.gmo |binary po/fr.po | 1960 ++++++++++++++++++++++----------------------------- po/messages |binary po/tin.pot | 1951 ++++++++++++++++++++++----------------------------- src/Makefile.in | 6 src/active.c | 78 +- src/art.c | 408 +++++++--- src/attrib.c | 11 src/config.c | 27 src/cook.c | 32 src/curses.c | 206 ----- src/debug.c | 8 src/feed.c | 12 src/filter.c | 47 - src/group.c | 74 + src/hashstr.c | 19 src/header.c | 51 - src/inews.c | 6 src/init.c | 58 - src/joinpath.c | 23 src/lang.c | 25 src/mail.c | 88 +- src/main.c | 82 -- src/memory.c | 8 src/misc.c | 128 +-- src/newsrc.c | 156 +++- src/nntplib.c | 736 +++++++++++++------ src/nrctbl.c | 2 src/open.c | 1214 ------------------------------- src/page.c | 607 +++++++++++---- src/post.c | 308 ++++---- src/prompt.c | 10 src/read.c | 7 src/refs.c | 4 src/regex.c | 4 src/rfc2046.c | 41 + src/rfc2047.c | 8 src/screen.c | 2 src/search.c | 2 src/select.c | 2 src/sigfile.c | 15 src/signal.c | 9 src/string.c | 44 - src/tags.c | 2 src/tcurses.c | 39 - src/thread.c | 117 +-- src/tincfg.tbl | 3 src/xref.c | 65 + tin.spec | 4 89 files changed, 6994 insertions, 10315 deletions ----------------------------------------------------------------------------- diff -Nurp tin-1.7.1/MANIFEST tin-1.7.2/MANIFEST --- tin-1.7.1/MANIFEST Thu Sep 18 18:37:49 2003 +++ tin-1.7.2/MANIFEST Tue Nov 4 18:01:28 2003 @@ -1,33 +1,34 @@ -MANIFEST for tin-1.7.1 (Thu Sep 18 18:37:48 CEST 2003) +MANIFEST for tin-1.7.2 (Tue Nov 4 18:01:28 CET 2003) ---------------------------------------------------- - 13085 ./Makefile - 7531 ./MANIFEST + 12865 ./Makefile + 7331 ./MANIFEST 1440 ./README - 217 ./README.MAC + 313 ./README.MAC 2209 ./README.VMS 1006 ./README.WIN 133038 ./aclocal.m4 882 ./conf-tin - 42069 ./config.guess - 30369 ./config.sub + 42653 ./config.guess + 30651 ./config.sub 449401 ./configure 28552 ./configure.in 5555 ./install.sh 777 ./mkdirs.sh 1505 ./tin.spec 18847 ./doc/ABOUT-NLS - 5169 ./doc/CHANGES + 7719 ./doc/CHANGES 226345 ./doc/CHANGES.old 1469 ./doc/DEBUG_REFS - 29446 ./doc/INSTALL - 29986 ./doc/TODO - 412 ./doc/WHATSNEW + 29331 ./doc/INSTALL + 29820 ./doc/TODO + 572 ./doc/WHATSNEW 2617 ./doc/art_handling.txt + 1700 ./doc/article.txt 3862 ./doc/auth.txt 5346 ./doc/config-anomalies 11237 ./doc/filtering 35037 ./doc/good-netkeeping-seal - 3812 ./doc/internals.txt + 3803 ./doc/internals.txt 23621 ./doc/iso2asc.txt 4048 ./doc/keymap.sample 660 ./doc/mailcap.sample @@ -46,8 +47,8 @@ MANIFEST for tin-1.7.1 (Thu Sep 18 18:37 4168 ./doc/mmdf.5 2128 ./doc/newsoverview.5 6963 ./doc/plp_snprintf.3 - 120476 ./doc/tin.1 - 70016 ./doc/tin.5 + 120624 ./doc/tin.1 + 70381 ./doc/tin.5 4733 ./doc/w2r.1 2196 ./doc/wildmat.3 344 ./tools/expiretover @@ -59,99 +60,90 @@ MANIFEST for tin-1.7.1 (Thu Sep 18 18:37 3172 ./tools/w2r.pl 1661 ./tools/expand_aliases.tgz 2702 ./include/bool.h - 2128 ./include/bugrep.h + 2039 ./include/bugrep.h 9502 ./include/oldconfig.h - 57722 ./include/extern.h + 57513 ./include/extern.h 11429 ./include/keymap.h 15886 ./include/menukeys.h - 6599 ./include/nntplib.h + 6507 ./include/nntplib.h 665 ./include/plp_snprintf.h - 12079 ./include/policy.h - 30209 ./include/proto.h + 12078 ./include/policy.h + 29462 ./include/proto.h 5047 ./include/rfc2046.h 3373 ./include/stpwatch.h - 5400 ./include/tcurses.h - 66282 ./include/tin.h - 12821 ./include/tinrc.h - 5736 ./include/tnntp.h + 5609 ./include/tcurses.h + 64150 ./include/tin.h + 12907 ./include/tinrc.h + 5662 ./include/tnntp.h 2256 ./include/trace.h - 2686 ./include/version.h - 25033 ./src/active.c - 49222 ./src/art.c - 30131 ./src/attrib.c + 2529 ./include/version.h + 25944 ./src/active.c + 53318 ./src/art.c + 30438 ./src/attrib.c 12365 ./src/auth.c 13846 ./src/charset.c 5981 ./src/color.c - 85678 ./src/config.c - 29311 ./src/cook.c - 34682 ./src/curses.c - 9917 ./src/debug.c + 86063 ./src/config.c + 29572 ./src/cook.c + 30644 ./src/curses.c + 9714 ./src/debug.c 3414 ./src/envarg.c - 25277 ./src/feed.c - 51671 ./src/filter.c + 25367 ./src/feed.c + 52399 ./src/filter.c 17968 ./src/getline.c 7254 ./src/global.c - 44582 ./src/group.c - 4158 ./src/hashstr.c - 9701 ./src/header.c + 44743 ./src/group.c + 3906 ./src/hashstr.c + 8775 ./src/header.c 27952 ./src/help.c - 13781 ./src/inews.c - 31958 ./src/init.c - 2845 ./src/joinpath.c + 13862 ./src/inews.c + 31250 ./src/init.c + 2208 ./src/joinpath.c 38018 ./src/keymap.c - 114194 ./src/lang.c + 113975 ./src/lang.c 4310 ./src/langinfo.c 7033 ./src/list.c 6672 ./src/lock.c - 11882 ./src/mail.c - 26795 ./src/main.c + 13378 ./src/mail.c + 25799 ./src/main.c 10227 ./src/makecfg.c - 12216 ./src/memory.c + 12294 ./src/memory.c 5257 ./src/mimetypes.c - 84046 ./src/misc.c - 37066 ./src/newsrc.c - 27755 ./src/nntplib.c - 7270 ./src/nrctbl.c - 28554 ./src/open.c - 55221 ./src/page.c + 83279 ./src/misc.c + 40463 ./src/newsrc.c + 37019 ./src/nntplib.c + 7291 ./src/nrctbl.c + 61278 ./src/page.c 24132 ./src/parsdate.y 16966 ./src/plp_snprintf.c 12670 ./src/pgp.c - 130733 ./src/post.c - 13860 ./src/prompt.c - 10822 ./src/read.c - 24976 ./src/refs.c - 4621 ./src/regex.c + 131433 ./src/post.c + 13908 ./src/prompt.c + 10680 ./src/read.c + 24980 ./src/refs.c + 4651 ./src/regex.c 14488 ./src/rfc1524.c 5553 ./src/rfc2045.c - 28567 ./src/rfc2046.c - 23766 ./src/rfc2047.c + 29426 ./src/rfc2046.c + 23826 ./src/rfc2047.c 37008 ./src/save.c - 10834 ./src/screen.c - 12776 ./src/search.c - 30616 ./src/select.c - 7740 ./src/sigfile.c - 12534 ./src/signal.c + 10835 ./src/screen.c + 12791 ./src/search.c + 30631 ./src/select.c + 7590 ./src/sigfile.c + 12332 ./src/signal.c 7215 ./src/strftime.c - 15675 ./src/string.c - 13816 ./src/tags.c - 15871 ./src/tcurses.c + 15574 ./src/string.c + 13831 ./src/tags.c + 16381 ./src/tcurses.c 3058 ./src/tmpfile.c 3376 ./src/my_tmpfile.c - 40018 ./src/thread.c + 40120 ./src/thread.c 2464 ./src/trace.c 4109 ./src/version.c 5489 ./src/wildmat.c 7129 ./src/xface.c - 7365 ./src/xref.c - 4987 ./amiga/README - 5520 ./amiga/tin.readme - 9918 ./amiga/smakefile - 4987 ./amiga/actived.c - 18590 ./amiga/amiga.c - 6373 ./amiga/amigatcp.c - 2371 ./amiga/amiga.h - 2167 ./amiga/amigatcp.h + 7971 ./src/xref.c 3013 ./vms/dir.h 424 ./vms/filetypes.h 21451 ./vms/getopt.c @@ -218,8 +210,8 @@ MANIFEST for tin-1.7.1 (Thu Sep 18 18:37 19217 ./pcre/testdata/testoutput5 19049 ./include/autoconf.hin 5800 ./pcre/pcre.mms - 20141 ./src/Makefile.in - 7211 ./src/tincfg.tbl + 20030 ./src/Makefile.in + 7237 ./src/tincfg.tbl 8747 ./src/descrip.mms 954 ./libcanlock/Build 882 ./libcanlock/CHANGES @@ -280,14 +272,14 @@ MANIFEST for tin-1.7.1 (Thu Sep 18 18:37 4481 ./intl/textdomain.c 41 ./intl/VERSION 4962 ./po/Makefile.inn - 839 ./po/POTFILES.in - 121210 ./po/tin.pot - 164399 ./po/de.gmo - 195427 ./po/de.po - 7444 ./po/en_GB.gmo - 123730 ./po/en_GB.po - 156502 ./po/et.gmo - 187490 ./po/et.po - 104476 ./po/fr.gmo - 166027 ./po/fr.po -5927860 total + 828 ./po/POTFILES.in + 117289 ./po/tin.pot + 160499 ./po/de.gmo + 190047 ./po/de.po + 6558 ./po/en_GB.gmo + 119492 ./po/en_GB.po + 152157 ./po/et.gmo + 182017 ./po/et.po + 99590 ./po/fr.gmo + 160294 ./po/fr.po +5828461 total diff -Nurp tin-1.7.1/Makefile tin-1.7.2/Makefile --- tin-1.7.1/Makefile Thu Sep 18 18:37:45 2003 +++ tin-1.7.2/Makefile Tue Nov 4 18:01:26 2003 @@ -1,15 +1,15 @@ # Top level Makefile for tin # - for configuration options read the doc/INSTALL file. # -# Updated: 2003-07-22 +# Updated: 2003-10-01 # PROJECT = tin LVER = 1 PVER = 7 -SVER = 1 +SVER = 2 VER = $(LVER).$(PVER).$(SVER) -DVER = 20030918 +DVER = 20031104 EXE = tin # directory structure @@ -18,7 +18,6 @@ DOCDIR = ./doc INCDIR = ./include OBJDIR = ./src SRCDIR = ./src -AMGDIR = ./amiga VMSDIR = ./vms PCREDIR = ./pcre CANDIR = ./libcanlock @@ -83,7 +82,6 @@ CFILES = \ $(SRCDIR)/newsrc.c\ $(SRCDIR)/nntplib.c \ $(SRCDIR)/nrctbl.c \ - $(SRCDIR)/open.c \ $(SRCDIR)/page.c \ $(SRCDIR)/parsdate.y \ $(SRCDIR)/plp_snprintf.c \ @@ -116,16 +114,6 @@ CFILES = \ $(SRCDIR)/xface.c \ $(SRCDIR)/xref.c -AMIGA = \ - $(AMGDIR)/README \ - $(AMGDIR)/tin.readme \ - $(AMGDIR)/smakefile \ - $(AMGDIR)/actived.c \ - $(AMGDIR)/amiga.c \ - $(AMGDIR)/amigatcp.c \ - $(AMGDIR)/amiga.h \ - $(AMGDIR)/amigatcp.h - VMS = \ $(VMSDIR)/dir.h \ $(VMSDIR)/filetypes.h \ @@ -159,6 +147,7 @@ DOC = \ $(DOCDIR)/TODO \ $(DOCDIR)/WHATSNEW \ $(DOCDIR)/art_handling.txt \ + $(DOCDIR)/article.txt \ $(DOCDIR)/auth.txt \ $(DOCDIR)/config-anomalies \ $(DOCDIR)/filtering \ @@ -341,9 +330,9 @@ POFILES = \ $(PODIR)/fr.po -ALL_FILES = $(TOP) $(DOC) $(TOL) $(HFILES) $(CFILES) $(AMIGA) $(VMS) $(PCRE) $(MISC) $(CAN) $(INTLFILES) $(POFILES) +ALL_FILES = $(TOP) $(DOC) $(TOL) $(HFILES) $(CFILES) $(VMS) $(PCRE) $(MISC) $(CAN) $(INTLFILES) $(POFILES) -ALL_DIRS = $(TOPDIR) $(DOCDIR) $(SRCDIR) $(INCDIR) $(AMGDIR) $(VMSDIR) $(PCREDIR) $(PCREDIR)/doc $(PCREDIR)/testdata $(CANDIR) $(CANDIR)/doc $(INTLDIR) $(PODIR) +ALL_DIRS = $(TOPDIR) $(DOCDIR) $(SRCDIR) $(INCDIR) $(VMSDIR) $(PCREDIR) $(PCREDIR)/doc $(PCREDIR)/testdata $(CANDIR) $(CANDIR)/doc $(INTLDIR) $(PODIR) # standard commands CD = cd diff -Nurp tin-1.7.1/README.MAC tin-1.7.2/README.MAC --- tin-1.7.1/README.MAC Sat Aug 23 01:58:39 2003 +++ tin-1.7.2/README.MAC Mon Oct 6 13:41:15 2003 @@ -6,3 +6,6 @@ configure needs at least the argument: --with-domain-name= Compile tin, install it and run in a ISO-8859-1 terminal. + +Instead of using the shell-script url_handler.sh you might want +to use open(1) as URL-handler. diff -Nurp tin-1.7.1/amiga/README tin-1.7.2/amiga/README --- tin-1.7.1/amiga/README Sat Aug 23 01:58:58 2003 +++ tin-1.7.2/amiga/README Thu Jan 1 01:00:00 1970 @@ -1,109 +0,0 @@ -This is the Amiga port of TIN. To use it you will need to do the following: - -Have appropriate directories assigned (UULIB: UUNEWS:). -Have these environment variables set: - -NODENAME -USERNAME -REALNAME -HOME -EDITOR - -TIN only works with a hierarchical news directory. This means you will -need Dillon's UUCP1.16 or higher. TIN has been modified to work with -Dillon's Sendmail & Postnews programs. These take different arguments -from standard UNIX mail and news programs. With release 1.1 PL 9 of TIN -two further environment variables can been defined: - -TIN_POST (default "uucp:c/postnews %s") and -TIN_MAIL (default "uucp:c/sendmail <%s -f %s"). - -If you set these variables, you can configure TIN for any other news/mail -system. The %s in TIN_POST gets replaced with a filename containing the -news article. TIN_MAIL's first %s is a filename, the second is the userid -of the person sending the mail, and the third (if present), is the userid -of the recipient of the mail. - -Printing is now available. You will have to edit the .tin/tinrc file to -enable it. The "default_printer" string should be set to "copy PIPE: PRT:" -instead of its default setting. This option has not been added to the -internal menu of configurable options. - -The editor you use with TIN should not return instantly, so if you are -using CED or TTX (or probably some others too) you will need to also add -in the appropriate options in the environment variable EDITOR (see script -file below) which will force your editor to wait until you've quit the -editor. Unless you have an editor which understands the argument +7 to -mean "start editing at line 7", you should set "Editor Offset" in the -configuration menu (type shift-M) to OFF. An example startup script is -given here (I've renamed tin to tin.exe so you can call this script TIN): - ----------------------------------- -; For WB2.0 users, the setenv's can be set's instead. This allows multiple -; users to run with their own names etc. WB1.3 users have to use setenv. - -setenv USERNAME fred -setenv REALNAME "Fred Flinstone" -setenv NODENAME bedrock ; This should be just your node name, not the - ; entire domain. -setenv HOME dh0:news ; wherever you want your news & index files - ; stored -setenv EDITOR c:ed -stack 40000 ; TIN requires a large stack! -actived ; create a new active file -delete uulib:active -rename uulib:newsactive uulib:active -tin.exe ; start tin itself ---------------------------------- - -Actived creates an "active" file. This is a standard file in Unix -environments, but missing from DUUCP. Actived also sets the environment -variable "TIN_GROUPS" to equal the number of newsgroups. This variable -isn't necessary to run TIN, but allows TIN to save some memory. If you -don't wish to run actived before TIN, you may wish to copy TIN_GROUPS -to ENVARC: (WB 2.0+ !!). - -More options, and use of tin is explained in the file tin.nrf. (The -standard manual page that comes with TIN). - -The following options have been disabled from the TIN source for the Amiga -version: - -- Archive extraction. Note that 1.1 PL 9 has now enabled uudecoding and -un-shar'ing of posted archives. This requires "uudecode" and "unshar" to -be in the path. - -- Shell escape and piping to any shell command. - -- Ability to change News and Mail directories. - -- Re-reading of the active file while reading news has been disabled. So has -updating index files in the background (-U option). - -These options were disabled partly to make TIN easier to port, but also -to make it secure enough to run as a newsreader for a Bulletin Board. - -A TIND program (for creating/updating index files) exists, and is only any -use on a BBS. To make TIN aware that you are using TIND to update the -index, you must set the environment variable TIND (it doesn't matter what -you set it to!). The index files are by default stored in the UUNEWS: -directory, in a subdirectory called .index (as in UNIX). For performance -reasons, you may wish to change the directory to a different drive. By -setting the environment variable TIN_INDEX, you can force the index files -to be stored in $TIN_INDEX/.index. - -Another two environment variables LINES and COLUMNS can be set to specify -the size of your screen. Inside an Amiga window this isn't required, as TIN -can query the window size, but once again, if you're running on anything -other than the Amiga's console, this query string won't work. If TIN finds -the LINES and COLUMNS environment variables set, it will not try to query -the window size. - -If you are planning on using TIN in a multi-user environment, such as with -a BBS, you should take a look at the companion archive to this one, which -is called DLGTIN.LHA. Even though this has been set up explicitly for DLG, -it contains executables and documentation which will be useful for any setup -of this type. - - - Mark Tomlinson (mark@garden.equinox.gen.nz) - Geoff McCaughan (geoff@satori.equinox.gen.nz) diff -Nurp tin-1.7.1/amiga/actived.c tin-1.7.2/amiga/actived.c --- tin-1.7.1/amiga/actived.c Sat Aug 23 01:58:58 2003 +++ tin-1.7.2/amiga/actived.c Thu Jan 1 01:00:00 1970 @@ -1,153 +0,0 @@ -/* - * Project : tin - a Usenet reader - * Module : actived.c - * Author : M.Tomlinson & I.Lea - * Created : 23-08-92 - * Updated : 02-12-94 - * Notes : Creates an active file by looking through all the - * .next files in the news directories, and writing - * this to UULIB:newactive. The UULIB:newsgroups file - * must exist. - * Copyright : (c) Copyright 1991-94 by Mark Tomlinson & Iain Lea - * 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 - */ - -#include -#include -#include -#include - -#define PATH_LEN 256 -#define NG_LEN 256 - -#if defined(M_AMIGA) -# define NEWSGROUPS_FILE "UULIB:newsgroups" -# define NEWSACTIVE_FILE "UULIB:newsactive" -# define ACTIVE_FILE "UULIB:active" -# define ACTIVE_TIMES "UULIB:active.times" -# define SPOOLDIR "UUNEWS:" -# define ENV_VAR_GROUPS "TIN_GROUPS" -#endif - -long maxgroups; -char **grouplist; - -static long readgroups(void); - -int main (void) -{ - FILE *active, *oldactive; - long numgroups, i; - long min = 1, max; - char oldgroup[NG_LEN] = ""; - - /* Just who does live in CST timezone anyway? */ - - _TZ = "GMT0"; - __tzset(); - - numgroups = readgroups(); - - if ((active = fopen (NEWSACTIVE_FILE, "w")) == (FILE *) 0) { - perror (NEWSACTIVE_FILE); - exit (1); - } - - oldactive = fopen(ACTIVE_FILE, "r"); - - for (i = 0; i < numgroups; i++) { - int new; - if (oldactive) while ((new = strcmp(oldgroup, grouplist[i])) < 0) { - if (fgets (oldgroup, sizeof(oldgroup), oldactive)) { - char *p; - for (p = oldgroup; *p && *p != ' ' && *p != '\t' && *p != '\n'; p++) { - ; - } - *p = '\0'; - } else { - fclose(oldactive); - oldactive = (FILE *) 0; - break; - } - } else new = 0; - - if (new) { - FILE *times; - times = fopen(ACTIVE_TIMES, "a"); - if (times) { - time_t t; - time(&t); - fprintf(times, "%s %lu actived\n", grouplist[i], t); - fclose(times); - } - } - - { FILE *fp; - { char next_path[PATH_LEN]; - char *p; - - sprintf (next_path, "%s%s", SPOOLDIR, grouplist[i]); - - for (p = next_path; *p ; p++) { - if (*p == '.') { - *p = '/'; /* convert to tree structure */ - } - } - strcpy (p, "/.next"); - fp = fopen (next_path, "r"); - } - if (fp) { - char last[20]; - fgets (last, sizeof(last), fp); - max = atol (last) - 1; - fclose (fp); - } else { - max = 0; - } - } - fprintf (active, "%s %05ld %05ld y\n", grouplist[i], max, min); - } - fclose (oldactive); - fclose (active); - - { char buf[40]; - sprintf (buf, "%s=%d", ENV_VAR_GROUPS, numgroups+1); - putenv (buf); - } - return 0; -} - -static long -readgroups(void) -{ - FILE *fp; - long numgroups = 0; - char group[NG_LEN]; - char *p; - - maxgroups = 1000; - grouplist = malloc(maxgroups*sizeof(char *)); - - if ((fp = fopen(NEWSGROUPS_FILE, "r")) == (FILE *) 0) return -1; - - while (fgets(group, sizeof(group), fp)) { - for (p = group; *p && *p != ' ' && *p != '\t' && *p != '\n'; p++) { - ; - } - *p = '\0'; - - p = strdup(group); - - if (numgroups >= maxgroups) { - maxgroups += maxgroups/2; - grouplist = realloc(grouplist,maxgroups*sizeof(char *)); - if (grouplist == (char **) 0) return -1; - } - grouplist[numgroups++] = p; - } - tqsort(grouplist, numgroups); - return numgroups; -} diff -Nurp tin-1.7.1/amiga/amiga.c tin-1.7.2/amiga/amiga.c --- tin-1.7.1/amiga/amiga.c Sat Aug 23 01:58:58 2003 +++ tin-1.7.2/amiga/amiga.c Thu Jan 1 01:00:00 1970 @@ -1,724 +0,0 @@ -/* - * Project : tin - a Usenet reader - * Module : amiga.c - * Author : M.Tomlinson, R.Luebke & I.Lea - * Created : 01-04-91 - * Updated : 17-07-95 - * Notes : Extra functions for Amiga port - * - * Copyright (c) 1991-2000: - * Reinhard Luebke - * Mark Tomlinson - * - * 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. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Reinhard Luebke, Mark Tomlinson. - * 4. 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. - */ - -#include "tin.h" -#include "version.h" - -#if defined(M_AMIGA) - -#include -#include -#include -#include -# ifdef __SASC -# include -# include -# else -# include -# include -# include -# include -# endif /* __SASC */ - -#include -#include -#include -#include - -#define BUFSIZE 1000 - -static LONG dopkt(struct MsgPort *pid, LONG action, LONG args[], LONG nargs); - -extern struct DosLibrary *DOSBase; -extern int errno; -#ifdef __SASC - extern unsigned long __fmask; -#endif /* __SASC */ - -/* - * something for the AmigaDOS Version command - * AMIVER is defined in ../include/version.h - * __AMIGADATE__ is defined by the SC 6.55 preprocessor - */ -static const char verstag[] = "$VER: tin " AMIVER " " __AMIGADATE__ "\0"; - -int optind = 1; -char *optarg; - -#if 0 - #ifdef __SASC - long __stack = 40000; /* TIN requires lots of stack */ - #endif /* __SASC */ -#endif /* 0 */ - -static APTR old_windowptr; - -/* This routine gets called before main() */ - -void __interrupt _STI_no_req(void) -{ struct Process *pr; - - pr = (struct Process *)FindTask(0L); - old_windowptr = pr->pr_WindowPtr; - pr->pr_WindowPtr = (APTR)-1; -} - -/* And this one after exit() */ - -void __interrupt _STD_restore_req(void) -{ struct Process *pr; - - pr = (struct Process *)FindTask(0L); - pr->pr_WindowPtr = old_windowptr; /* Enable requesters. */ -} - -/* - * The next is to avoid the generation of SIGINT whenever ctrl-d is pressed. - * Remember tin uses ctrl-d for page down... - * - * Our version of chkabort() is listening only for ctrl-c. - */ - -#ifdef __SASC -void __interrupt __chkabort (void) -{ - if (SetSignal(0, SIGBREAKF_CTRL_C|SIGBREAKF_CTRL_D) & SIGBREAKF_CTRL_C) - { - raise(SIGINT); - } -} -#endif /* __SASC */ - -int -chmod (const char *file, int mode) -{ - int amimode; - /* un*x's rwx bits are mapped to AmigaOS's rwe bits * - * possible misfeature: the AmigaOS d-bit is not set */ - amimode = ~mode >> 5 & 0xe; /* owner, uh, sick! */ - amimode |= (mode & 070)<<6; /* group */ - amimode |= (mode & 07)<<13; /* other */ - if (SetProtection(file,amimode) == TRUE) - return 0; - else - { - errno = EINVAL; /* best possible, if I don't include a complete */ - return -1; /* OSERR -> errno translation */ - } -} - -unsigned short umask (unsigned short mask) -{ -#ifdef __SASC - __fmask = (~mask & 0700) >> 5 | 01; /* directly mapped, no use of fcntl.h */ -#endif /* __SASC */ - return mask; -} - -/* YAUAF (Yet Another Unnecessary ANSI Function) */ - -/* time_t time(time_t *pt) deleted */ - -/* - * use the task address for pid which is unique. - */ - -int getpid (void) -{ - return ((long) FindTask(0L) >> 2); -} - -void *alloca(size_t dummy) -{ - return NULL; /* fails, fails, fails! */ -} - -/* - * dopkt() by A. Finkel, P. Lindsay, C. Scheppner - * Send a packet in a 1.3-compatible manner - * and wait for completion; returns Res1 of the - * reply packet - */ - -static LONG dopkt(struct MsgPort *pid, LONG action, LONG args[], LONG nargs) - -/* - * struct MsgPort *pid; process identifier (handler message port) - * LONG action; packet type (desired action) - * LONG args[]; a pointer to an argument list - * LONG nargs; number of arguments in list -*/ -{ struct MsgPort *replyport; - struct StandardPacket *packet; - - LONG count, *pargs, res1; - - replyport = (struct MsgPort *)CreatePort(NULL,0); - if (! replyport) return NULL; - - packet = (struct StandardPacket *) - AllocMem((long)sizeof(struct StandardPacket), - MEMF_PUBLIC|MEMF_CLEAR); - if (! packet) - { DeletePort(replyport); - return NULL; - } - - packet->sp_Msg.mn_Node.ln_Name = (char *)&(packet->sp_Pkt); - packet->sp_Pkt.dp_Link = &(packet->sp_Msg); - packet->sp_Pkt.dp_Port = replyport; - packet->sp_Pkt.dp_Type = action; - - pargs = &(packet->sp_Pkt.dp_Arg1); /* address of first arg */ - for (count=0;count < nargs; count++) - pargs[count] = args[count]; - - PutMsg(pid,(struct Message *)packet); /* send packet */ - - WaitPort(replyport); - GetMsg(replyport); - - res1 = packet->sp_Pkt.dp_Res1; - - FreeMem(packet,(long)sizeof(struct StandardPacket)); - DeletePort(replyport); - - return (res1); -} - -/* - * We don't like SAS/C's rawcon() anymore. It relies on - * pr_ConsoleTask being correct. - */ - -/* should be fixed since SAS/C 6.55, maybe a SetMode(Input()) or similar - * should be put here to satisfy the picky. (Damned, rawcon() is not in - * another compiler-lib anyway AFAIK :-( ) - */ - -/* -int rawcon(int setraw) -{ - long args[1]; - args[0] = setraw; - return (dopkt(((struct FileHandle *)BADDR(chkufb(fileno(stdout)) - ->ufbfh))->fh_Type, - ACTION_SCREEN_MODE,args,1) == DOSTRUE) ? - 0 : -1; -} -*/ - -/* - * stub for tputs - */ - -int -tputs (char *str, int count, void (*func)(int)) -{ - if (! str) { - return 0; - } - - while (*str) { - if (*str == '\n') - func('\r'); - func(*str++); - } - return 0; -} - -/* - * joinpath tacks a file (or sub dir) on to the end of a directory name. - * Not just as simple as putting a '/' between the two, as the directory - * name may be an assign! - */ - -t_bool tin_bbs_mode = FALSE; - -void -joinpath (char *str, const char *dir, const char *file) -{ - char c, *p; - - if (tin_bbs_mode) { - if ((p = strrchr(file,':'))) - file = p; - while (*file == '/') - file++; - } else { - if (strchr(file,':')) { - strcpy(str, file); - return; - } - } - - if (strlen (dir) == 0) { - strcpy (str, file); - return; - } - c = dir[strlen(dir)-1]; - if (c=='/' || c==':') { - sprintf (str, "%s%s", dir, file); - } else { - sprintf (str, "%s/%s", dir, file); - } -} - - -unsigned int sleep (unsigned int seconds) -{ - if (seconds) Delay (50*seconds); - return seconds; -} - -/* - * I'm not really sure how well popen and pclose work, but they seem OK - * at least with metamail 2.3a they work rather bad. :-( - */ - -FILE *popen (char *command, char *mode) -{ - char cmd[256]; - char pname[16]; - - sprintf(pname, "PIPE:%08X", FindTask(NULL)); - - if (mode[0] == 'w') { - sprintf (cmd, "run <>NIL: %s <%s", command, pname); - system (cmd); - return fopen (pname, mode); - } else { - FILE *rp; - rp = fopen (pname, mode); - sprintf (cmd,"run %s >%s",command, pname); - system (cmd); - return rp; - } -} - - -int pclose (FILE *pipe) -{ - return fclose (pipe); -} - -/* - * Directory stuff - */ - -/* - * if we have SAS/C 6.50+ we use the SAS lib instead, those versions work ok - */ - -#ifndef __SASC_650 -DIR *opendir (char *name) -{ - DIR *di; - - di = calloc (1, sizeof (DIR)); - if (di == 0) { - return 0; - } - di->Lock = Lock (name,ACCESS_READ); - if (di->Lock == 0) { - free (di); - return 0; - } - if (DOSBase->dl_lib.lib_Version >= 37) { - di->buffer = (struct ExAllData *)malloc(BUFSIZE); - if (di->buffer == 0) { - UnLock(di->Lock); - free(di); - return 0; - } - di->eac = AllocDosObject(DOS_EXALLCONTROL,NULL); - if ((di->eac) == 0) { - free(di->buffer); - UnLock(di->Lock); - free(di); - return 0; - } - di->eac->eac_LastKey = 0; - di->more = 1; - } else { - if (Examine(di->Lock,&di->fib)==0) { - UnLock(di->Lock); - free (di); - return 0; - } - } - return di; -} - - - -struct dirent *readdir (DIR *di) -{ - static struct dirent de; - - if (DOSBase->dl_lib.lib_Version >= 37) { - while (! di->bufp) { - if (! di->more) { - return 0; - } - di->more = ExAll(di->Lock, di->buffer, BUFSIZE, ED_NAME, di->eac); - if (di->eac->eac_Entries) { - di->bufp = di->buffer; - } - } - de.d_name = di->bufp->ed_Name; - de.d_reclen = strlen (de.d_name); - di->bufp = di->bufp->ed_Next; - } else { - if (ExNext (di->Lock, &di->fib) == 0) { - return 0; - } - de.d_name = di->fib.fib_FileName; - de.d_reclen = strlen (de.d_name); - } - - return &de; -} - - - -void closedir (DIR *di) -{ - if (DOSBase->dl_lib.lib_Version >= 37) { - if (di->more) - while (ExAll(di->Lock, di->buffer, BUFSIZE, ED_NAME, di->eac)) - /* do nothing */ ; - free(di->buffer); - FreeDosObject(DOS_EXALLCONTROL,di->eac); - } - - UnLock (di->Lock); - free (di); -} -#endif /* !__SASC_650 */ - -int getopt (int argc, char **argv, char *options) -{ - char c, *z; - static int subind = 0; - - for (;optind < argc ; optind++, subind = 0) { - if (subind == 0) { - c = argv[optind][0]; - if (c != '-') { - return EOF; - } - subind = 1; - } - - c = argv[optind][subind]; - if (c != 0) { - break; - } - } - - if (optind == argc) { - return EOF; - } - - /* get rid of funnies */ - if (c == ':' || c == '?') { - return '?'; - } - - if ((z = strchr (options,c)) == 0) { - return '?'; - } - - if (z[1] == ':') { - if (argv[optind][subind+1]) { - optarg = &argv[optind][subind+1]; - } else { - optarg = argv[++optind]; - } - optind++; - subind = 0; - return c; - } - subind++; - return c; -} - -/* nobody should use 1.3 anymore (does anybody use Win 1.0?), and system() is ANSI */ -/* int system (const char *str) - * (deleted) - */ -/* - * The stat call in Aztec C doesn't tell us if the entry is a directory - * or not. This one does. You will have to change to define - * ST_DIRECT though - */ - -#ifndef __SASC -int stat (char *name, struct stat *buf) -{ - BPTR dirlock; - register struct FileInfoBlock *inf; - - if (! (dirlock = Lock (name, ACCESS_READ))) { - return -1; - } - if (! (inf = malloc(sizeof(*inf)))) { - UnLock (dirlock); - return -1; - } - Examine (dirlock,inf); - UnLock (dirlock); - buf->st_attr = ((inf->fib_EntryType>0) ? ST_DIRECT : 0) - | (inf->fib_Protection & 0xf); - buf->st_size = inf->fib_Size; - buf->st_mtime = ((inf->fib_Date.ds_Days + 2922) * (24 * 60) + - inf->fib_Date.ds_Minute) * 60 - + inf->fib_Date.ds_Tick / TICKS_PER_SECOND; - free (inf); - return 0; -} -#endif /* !__SASC */ - -/* - * This getenv and setenv will use the WB2.0 calls if you have the new - * rom. If not, it resorts to looking in the ENV: directory. - */ - -/* what new rom? 2.04? Anyway, SAS's getenv() doesn't use local vars */ - -char *getenv (register const char *name) -{ - int blen = 256; - static char buffer[256]; - - if (GetVar(name, buffer, blen, 0L) == -1) - return 0; - else - return buffer; -} - -int -setenv (char *name, char *value, int notused) -{ - if (DOSBase->dl_lib.lib_Version >= 36) { - SetVar ((char *)name,(char *)value,strlen(value)+1,GVF_LOCAL_ONLY); - } - return 0; -} - - -char *mktemp (char *template) -{ - static const char letters[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; - static size_t count = 0; - size_t len; - char c; - - len = strlen(template); - if (len < 6 || strcmp(&template[len-6],"XXXXXX")) { - errno = EINVAL; - return template; - } - - c = letters[count++]; - count %= sizeof(letters); - - sprintf(&template[len-6], "%c%05x", c, - (unsigned int) (getpid() & 0xfffff)); - - return template; -} - - -void make_post_cmd (char *cmd, char *name) -{ - char *p; - - if ((p = getenv (ENV_VAR_POSTER)) != (char *) 0) { - sprintf (cmd, p, name); - } else { - sprintf (cmd, DEFAULT_POSTER, name); - } -} - -#ifdef NNTP_ABLE - -#define NUM_TEMP_FP 4 -static struct { - FILE *fp; - char name[PATH_LEN]; -} temp_fp[NUM_TEMP_FP]; - -void log_unlink(FILE *fp, char *fname) -{ - int i; - - for (i=0; inext = alloc_list; - p->size = size; - alloc_list = p; - return (void *)&p->mem; -} - -void __interrupt free(void *p) -{ - struct memhead *p1,**q; - - p1 = &((struct memhead *)p)[-1]; - for (q = &alloc_list; q; q = &(*q)->next) { - if (*q == p1) break; - } - if (q == (struct memhead **) 0) return; - - *q = p1->next; - FreeMem(p1,p1->size + sizeof(struct memhead)); -} - -void * __interrupt realloc(void *p, size_t size) -{ - if (size == 0) { - if (p) free(p); - return 0; - } - - if (p == 0) { - return malloc(size); - } - - { int oldsize; - void *p1; - - if ((oldsize = ((struct memhead *)p)[-1].size) == size) - return p; - - p1 = malloc(size); - memcpy(p1, p, (oldsize < size) ? oldsize : size); - free(p); - return p1; - } -} - -void __interrupt _STD_250_free_all(void) -{ - struct memhead *p, *q; - - for (p = alloc_list; p; p = q) - { q = p->next; - FreeMem(p, p->size + sizeof(struct memhead)); - } - alloc_list = 0; -} - -#endif - -#else - -/* - * The ';' is to satisfy a really picky Ansi compiler - */ - -; - -#endif /* M_AMIGA */ diff -Nurp tin-1.7.1/amiga/amiga.h tin-1.7.2/amiga/amiga.h --- tin-1.7.1/amiga/amiga.h Sat Aug 23 01:58:58 2003 +++ tin-1.7.2/amiga/amiga.h Thu Jan 1 01:00:00 1970 @@ -1,91 +0,0 @@ -/* - * Project : tin - a Usenet reader - * Module : amiga.h - * Author : M.Tomlinson & I.Lea - * Created : 17-09-92 - * Updated : 03-02-94 - * Notes : Directory support for AmigaDOS - * Copyright : (c) Copyright 1991-94 by Mark Tomlinson & Iain Lea - * 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 - */ - -#if defined(M_AMIGA) - -#ifndef AMIGA_H -#define AMIGA_H - -#include -#include -#include -#ifndef AS225 -#include -#endif - -/* SAS-C and Aztec don't take the mode for mkdir() */ -extern int mkdir(char *path); -#define mkdir(p,m) mkdir(p) - -/* For opendir(), and readdir() */ - -struct dirent { - char *d_name; - long d_reclen; -}; - -typedef struct -{ - BPTR Lock; - int more; - struct ExAllData *buffer; - struct ExAllData *bufp; - struct ExAllControl *eac; - struct FileInfoBlock fib; -} DIR; - -/* We create our own SIGWINCH handling. */ -/* There are two currently unused signals we can define */ -#define SIGWINCH _SIG_MAX - -#define localtime gmtime - -extern DIR *opendir (char *name); -extern struct dirent *readdir (DIR *di); -extern void closedir (DIR *di); - -extern FILE *popen (char *command, char *mode); -extern int pclose (FILE *pipe); -extern void *alloca (size_t size); - -extern unsigned int sleep(unsigned int secs); -extern int tputs (char *cp, int count, void (*outc)(int)); -extern int getpid(void); -extern int setenv(char *, char *, int); -extern char *mktemp(char *); -extern unsigned short umask(unsigned short); - -extern int optind; -extern char *optarg; -extern int getopt (int argc, char *argv[], char *options); - -extern void make_post_cmd (char *cmd, char *name); -extern void make_post_process_cmd(char *cmd, char *dir, char *file); - -extern void AmiGetWinSize(int *lines, int *columns); - -/* - * tmp_close will delete a file on closure if it had been opened - * with nntp_to_fp(). Otherwise it behaves just like fclose(). - */ - -#ifdef NNTP_ABLE -extern void log_unlink(FILE *fp, char *fname); -extern int tmp_close(FILE *fp); -#define fclose(fp) tmp_close(fp) -#endif - -#endif /* AMIGA_H */ - -#endif /* M_AMIGA */ diff -Nurp tin-1.7.1/amiga/amigatcp.c tin-1.7.2/amiga/amigatcp.c --- tin-1.7.1/amiga/amigatcp.c Sat Aug 23 01:58:58 2003 +++ tin-1.7.2/amiga/amigatcp.c Thu Jan 1 01:00:00 1970 @@ -1,273 +0,0 @@ -/* - * Project : tin - a Usenet reader - * Module : amigatcp.c - * Author : M.Tomlinson - * Created : 15-05-94 - * Updated : 15-05-94 - * Notes : TCP support for AmigaDOS - * Copyright : (c) Copyright 1994 by Mark Tomlinson - * 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 - */ - -#include "tin.h" - -#if defined (M_AMIGA) && defined (NNTP_ABLE) - -#include -#include -#include -#include - -#include "amigatcp.h" - -#include -#include -#include - -#include - -/* #include */ - -#ifndef EOF -#define EOF (-1) -#endif - -#undef s_close -#undef socket - -#ifdef AS225 -# define SocketBase SockBase -# define SOCKLIB "inet:libs/socket.library" -# define MAXSOCK 5 -# define CloseSocket s_close -# define IoctlSocket s_ioctl -#else -# define SOCKLIB "bsdsocket.library" -# define cleanup_sockets() -#endif - -struct Library *SocketBase= 0; -#ifndef AS225 -struct Library *UserGroupBase = NULL; -#endif - -static int sock_dups[32]; - -#ifndef AS225 -#ifndef select -select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exeptfds, - struct timeval *timeout) -{ - /* call WaitSelect with NULL signal mask pointer */ - return WaitSelect(nfds, readfds, writefds, exeptfds, timeout, NULL); -} -#endif -#ifndef inet_ntoa -char *inet_ntoa(struct in_addr addr) -{ - return Inet_NtoA(addr.s_addr); -} -#endif -#endif - -int s_init(void) -{ - if (! SocketBase) { - SocketBase = OpenLibrary(SOCKLIB,0L); - if (! SocketBase) return 0; - -#ifdef AS225 - setup_sockets(MAXSOCK,&errno); -#else - SetErrnoPtr(&errno, sizeof(errno)); - if (!(UserGroupBase = OpenLibrary(USERGROUPNAME, 0L))) - return 0; -#endif - atexit(s_end); - } - return 1; -} - -void __interrupt s_end(void) -{ - if (SocketBase) { - cleanup_sockets(); - CloseLibrary(SocketBase); -#ifndef AS225 - CloseLibrary(UserGroupBase); -#endif - SocketBase = 0; - } -} - -TCP *s_fdopen(int s, const char *mode) -{ - TCP *tp; - - tp = malloc(sizeof(TCP)); - if (! tp) return (TCP *)0; - - tp->size = 2048; - tp->base = malloc(tp->size); - if (! tp->base) { - free(tp); - return (TCP *)0; - } - - tp->_file = s; - tp->cnt = 0; - tp->buf = tp->base; - tp->flags = (mode[0] == 'w') ? TIO_WRITE : TIO_READ; - - return tp; -} - -void s_fclose(TCP *tp) -{ - if (tp->cnt) - s_flush(tp); - free(tp->base); - xs_close(tp->_file); - free(tp); -} - -void xs_close(int fd) -{ if (--sock_dups[fd] <= 0) - CloseSocket(fd); -} - -int s_socket(long domain, long type, long protocol) -{ - int s; - s = socket(domain, type, protocol); - - if (s >= 0) { - sock_dups[s] = 1; - } - return s; -} - -int s_dup(int fd) -{ - sock_dups[fd]++; - return fd; -} - -int s_flush(TCP *tp) -{ - int ret; - - if (tp->cnt && tp->flags & TIO_WRITE) { - ret = send(tp->_file, tp->base, tp->cnt, 0); - tp->cnt = 0; - tp->buf = tp->base; - return ret; - } - return 0; -} - -int s_printf(TCP *tp, const char *format, ...) -{ - va_list ap; - int ret; - - va_start(ap, format); - - if (tp->size - tp->cnt < 1024) { - ret = s_flush(tp); - if (ret < 0) return ret; - } - - ret = vsprintf(tp->buf, format, ap); - - if (ret > 0) { - tp->buf += ret; - tp->cnt += ret; - } - - va_end(ap); - return ret; -} - -int s_puts(const char *str, TCP *tp) -{ - int ret, length; - - length = strlen(str); - - if (tp->cnt && tp->size - tp->cnt < length) { - ret = s_flush(tp); - if (ret < 0) return ret; - } - - while (tp->size - tp->cnt < length) { - ret = send(tp->_file, (char *)str, length, 0); - if (ret < 0) return ret; - length -= ret; - if (length == 0) return 0; - str += ret; - } - - memcpy(tp->buf, str, length); - tp->buf += length; - tp->cnt += length; - - return 0; -} - -char *s_gets(char *str, int size, TCP *tp) -{ - int c; - char *cp; - long length; - - cp = str; - if (size == 0) return (char *)0; - - forever { - while(tp->cnt && size > 1) { - --tp->cnt; - --size; - c = *cp++ = *tp->buf++; - if (c == '\n') { - *cp = 0; - return str; - } - } - - if (size <= 1) { - *cp = 0; - return str; - } - - tp->buf = tp->base; - do { - IoctlSocket(tp->_file, FIONREAD, (char *)&length); - if (length == 0) { - fd_set rfd, efd; - struct timeval timeout; - - timeout.tv_secs = 60; - timeout.tv_micro = 0; - - FD_ZERO(&rfd); - FD_SET(tp->_file, &rfd); - efd = rfd; - select(tp->_file+1, &rfd, NULL, &efd, &timeout); - if (! FD_ISSET(tp->_file, &rfd)) { - *cp = 0; - return 0; - } - } - } while(length == 0); - - if (length > tp->size) length = tp->size; - length = recv(tp->_file, tp->buf, length, 0L); - tp->cnt = length; - } -} - -#endif /* M_AMIGA */ diff -Nurp tin-1.7.1/amiga/amigatcp.h tin-1.7.2/amiga/amigatcp.h --- tin-1.7.1/amiga/amigatcp.h Sat Aug 23 01:58:58 2003 +++ tin-1.7.2/amiga/amigatcp.h Thu Jan 1 01:00:00 1970 @@ -1,81 +0,0 @@ -/* - * Project : tin - a Usenet reader - * Module : amigatcp.h - * Author : M.Tomlinson - * Created : 15-05-94 - * Updated : 05-06-94 - * Notes : TCP support for AmigaDOS - * Copyright : (c) Copyright 1994 by Mark Tomlinson - * 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 - */ - -#if defined(M_AMIGA) - -#ifndef AMIGATCP_H -#define AMIGATCP_H - -#ifdef NNTP_ABLE -#ifdef AS225 -#include -#else -/* Stop bsdsocket including an incompatible unistd.h! */ -#define UNISTD_H -/* And also get rid of prototypes for the netlib we're not using */ -#define CLIB_NETLIB_PROTOS_H -#include -#include -/* But we still need prototypes for select() and inet_ntoa() */ -/* if we're not using optimisation... */ -#ifndef inet_ntoa -char * inet_ntoa(struct in_addr addr); -#endif -#ifndef select -int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exeptfds, - struct timeval *timeout); -#endif -#endif - -struct __tcpbuf -{ - int _file; /*vb*/ /* socket number */ - char *buf; /* current buffer pointer */ - char *base; /* beginning of buffer */ - int size; /* size of buffer */ - int cnt; /* number of bytes in buf */ - int flags; /* read/write */ -}; - -#define TIO_WRITE 1 -#define TIO_READ 2 - -extern int s_printf(TCP *, const char *, ...); -extern TCP *s_fdopen(int, const char *); -extern int s_flush(TCP *); -extern void s_fclose(TCP *); -extern char *s_gets(char *, int, TCP *); -extern int s_puts(const char *, TCP *); -extern int s_init(void); -extern void s_end(void); -extern int s_dup(int); -extern int s_socket(long, long, long); -extern void xs_close(int); - -#define s_close xs_close -#define socket s_socket - -/* AS225 screws up a bit on types for inet_ntoa... */ -#ifdef AS225 -static char * __inline xinet_ntoa(long x) -{ return inet_ntoa(x); -} -#define inet_ntoa(x) xinet_ntoa((x).s_addr) -#endif - -#endif /* NNTP_ABLE */ - -#endif /* AMIGATCP_H */ - -#endif /* M_AMIGA */ diff -Nurp tin-1.7.1/amiga/smakefile tin-1.7.2/amiga/smakefile --- tin-1.7.1/amiga/smakefile Sat Aug 23 01:58:58 2003 +++ tin-1.7.2/amiga/smakefile Thu Jan 1 01:00:00 1970 @@ -1,295 +0,0 @@ -# -# $VER: tin_makefile 2.3 (13.06.99) -# -# This is especially for use with the SAS/C developing system -# version 6.55 and above -# -# (w) 1994 by Reinhard Luebke (rel) -# expanded by Volker Barthelmann (vb) and Oliver Warzecha (obw) -# - -AMIDIR = /amiga -SRCDIR = /src -INCDIR = /include -OBJDIR = /obj -REDIR = /pcre - -# Timezone stuff for faster spool access (obw) -TZSET = $(OBJDIR)/_tzset.o -TZSOURCE = sc:source/_tzset.c - -# Include the next two lines to enable an NNTP version of TIN. -# To use AS225 rather than AmiTCP, also include "def AS225". - -# /*vb*/ -NNTPDEF = def NNTP_ABLE def DOMAIN_NAME="UULIB:news/whoami" \ - def UNISTD_H def CLIB_NETLIB_PROTOS_H - -PROJECT = $(AMIDIR)/tin.exe -ACTIVED = $(AMIDIR)/actived -GSTFILE = $(AMIDIR)/tin.gst - -# -# compile & link flags -# - -# set parameters here, e.g. CPU and additional includes for your TCP/IP stack -/*vb*/ -#SCOPTIONS = strmer data=near parms=register nover errrexx ignore=85,93,104,105 \ -# idir=netinclude: idir=$(INCDIR) gst=$(GSTFILE) cpu=$(CPU) -SCOPTIONS = strmer nover ignore=85,93,104,105 \ - idir=netinclude: idir=$(INCDIR) idir=$(REDIR) gst=$(GSTFILE) data=far - -# comment the next two lines, for the final release - -# DEBUG = debug=line stkchk def MEM_DEBUG def DEBUG -# LDEBUG = debug=sym - -# optimization should always be disabled while debugging -# uncomment the following only for the final version - -# OPTIMIZE = opt optpeep optglobal optinlocal optinline optloop opttime - -# special defines for generating the gst file - -GSTDEFS = def __USE_SYSBASE - -# read the docs (/INSTALL & /doc/HACKERS) for compiler defines - -DEFINES = def M_AMIGA def NO_SHELL_ESCAPE def NO_LOCALE \ - def LIBDIR="uulib:" def DONT_LOG_USER def SPOOLDIR="uunews:" \ - def HAVE_COLOR def HAVE_REF_THREADING \ - def DONT_REREAD_ACTIVE_FILE $(GSTDEFS) $(NNTPDEF) $(TINDDEF) - -# build the final compile and link flags - -CFLAGS = $(SCOPTIONS) $(OPTIMIZE) $(DEFINES) $(DEBUG) -LDFLAGS = link $(SCOPTIONS) $(LDEBUG) - -# -# there is no internal rule in smake for yacc files -# so, here it comes -# -YACC = bison --yacc - -# /*vb*/ eeek! ugly! - -.y.c: - $(YACC) ..$< - @rename y.tab.c $@ - -# -# rule for all C sources -# -# We need to redefine the internal rule because we are using -# smakes local input file facility. In fact, we must use it -# because the v6.51 SC command was linked with the wrong startup -# which caused the number of commandline arguments to be limited -# to 30 entries. -# -.c.o: - $(CC) $(CFLAGS) $*.c objname=$@ - -# -# list of header files -# -# /*vb*/ -HEADERS = \ - $(AMIDIR)/amiga.h \ - $(AMIDIR)/amigatcp.h \ - $(INCDIR)/config.h \ - $(INCDIR)/extern.h \ - $(INCDIR)/menukeys.h \ - $(INCDIR)/nntplib.h \ - $(REDIR)/pcre.h \ - $(INCDIR)/proto.h \ - $(INCDIR)/stpwatch.h \ - $(INCDIR)/tin.h \ - $(INCDIR)/version.h \ -#/*vb*/ $(INCDIR)/conf.h \ - -# -# list object files -# -# /*vb*/ -OBJECTS = \ - $(OBJDIR)/active.o \ - $(OBJDIR)/amiga.o \ - $(OBJDIR)/amigatcp.o \ - $(OBJDIR)/art.o \ - $(OBJDIR)/attrib.o \ - $(OBJDIR)/auth.o \ - $(OBJDIR)/charset.o \ - $(OBJDIR)/chartables.o \ - $(OBJDIR)/color.o \ - $(OBJDIR)/config.o \ - $(OBJDIR)/curses.o \ - $(OBJDIR)/debug.o\ - $(OBJDIR)/envarg.o \ - $(OBJDIR)/feed.o \ - $(OBJDIR)/filter.o \ - $(OBJDIR)/getline.o \ - $(OBJDIR)/group.o \ - $(OBJDIR)/hashstr.o \ - $(OBJDIR)/header.o \ - $(OBJDIR)/help.o\ - $(OBJDIR)/inews.o \ - $(OBJDIR)/init.o \ - $(OBJDIR)/joinpath.o \ - $(OBJDIR)/lang.o \ - $(OBJDIR)/list.o \ - $(OBJDIR)/mail.o \ - $(OBJDIR)/main.o \ - $(OBJDIR)/memory.o \ - $(OBJDIR)/misc.o \ - $(OBJDIR)/newsrc.o\ - $(OBJDIR)/nntplib.o \ - $(OBJDIR)/nrctbl.o \ - $(OBJDIR)/open.o \ - $(OBJDIR)/page.o \ - $(OBJDIR)/parsdate.o \ - $(OBJDIR)/pcre.o \ - $(OBJDIR)/pgp.o \ - $(OBJDIR)/post.o \ - $(OBJDIR)/prompt.o\ - $(OBJDIR)/read.o \ - $(OBJDIR)/refs.o \ - $(OBJDIR)/regex.o \ - $(OBJDIR)/rfc1521.o \ - $(OBJDIR)/rfc1522.o \ - $(OBJDIR)/save.o \ - $(OBJDIR)/screen.o \ - $(OBJDIR)/search.o \ - $(OBJDIR)/select.o \ - $(OBJDIR)/sigfile.o \ - $(OBJDIR)/signal.o \ - $(OBJDIR)/strftime.o \ - $(OBJDIR)/string.o \ - $(OBJDIR)/study.o \ - $(OBJDIR)/thread.o \ - $(OBJDIR)/wildmat.o \ - $(OBJDIR)/xref.o \ -# (obw) $(OBJDIR)/_tzset.o \ -# $(OBJDIR)/parsdate.c \ - - -# -# actions to be performed when something went wrong during build -# -.ONERROR: -# -@delete #?.lnk $(PROJECT) ram:temp_smk.tmp - -@gst $(GSTFILE) unload - -# -# targets -# - -all: $(PROJECT) $(ACTIVED) $(GSTFILE) - -$(PROJECT): $(OBJDIR) $(OBJECTS) $(TZSET) - $(CC) $(LDFLAGS) pname=$@ $(REDIR)/chartables.c - -dftables: $(OBJDIR)/maketables.o $(OBJDIR)/dftables.o $(GSTFILE) - $(CC) $(LDFLAGS) pname=$@ $(OBJDIR)/dftables.o - -#/*vb*/ -makecfg: $(OBJDIR)/makecfg.o $(OBJDIR)/amiga.o $(GSTFILE) - $(CC) $(LDFLAGS) pname=$@ $(OBJDIR)/makecfg.o $(OBJDIR)/amiga.o -/*vb*/ -$(INCDIR)/tincfg.h: $(SRCDIR)/tincfg.tbl makecfg - makecfg $(SRCDIR)/tincfg.tbl $(INCDIR)/tincfg.h - -clean: - -gst $(GSTFILE) unload - -delete $(OBJDIR)/\#?.o \#?.lnk - -delete $(GSTFILE)(%|.info) $(ACTIVED)(%|.info) $(PROJECT)(%|.info) - -delete $(INCDIR)/tincfg.h - -delete $(SRCDIR)/parsdate.c - -dist-clean: clean - -delete $(REDIR)/chartables.c - -# -# dependencies -# - -$(OBJDIR)/activeda.o: $(AMIDIR)/actived.c $(GSTFILE) -$(OBJDIR)/active.o: $(SRCDIR)/active.c $(GSTFILE) -$(OBJDIR)/amiga.o: $(AMIDIR)/amiga.c $(GSTFILE) -$(OBJDIR)/amigatcp.o: $(AMIDIR)/amigatcp.c $(GSTFILE) -$(OBJDIR)/art.o: $(SRCDIR)/art.c $(GSTFILE) -$(OBJDIR)/attrib.o: $(SRCDIR)/attrib.c $(GSTFILE) -$(OBJDIR)/auth.o: $(SRCDIR)/auth.c $(GSTFILE) -$(OBJDIR)/charset.o: $(SRCDIR)/charset.c $(GSTFILE) -$(OBJDIR)/chartables.o: $(REDIR)/chartables.c $(GSTFILE) -$(OBJDIR)/color.o: $(SRCDIR)/color.c $(GSTFILE) -$(OBJDIR)/config.o: $(SRCDIR)/config.c $(GSTFILE) $(INCDIR)/tincfg.h -$(OBJDIR)/curses.o: $(SRCDIR)/curses.c $(GSTFILE) -$(OBJDIR)/dftables.o: $(REDIR)/dftables.c $(GSTFILE) -$(OBJDIR)/debug.o: $(SRCDIR)/debug.c $(GSTFILE) -$(OBJDIR)/envarg.o: $(SRCDIR)/envarg.c $(GSTFILE) -$(OBJDIR)/feed.o: $(SRCDIR)/feed.c $(GSTFILE) -$(OBJDIR)/filter.o: $(SRCDIR)/filter.c $(GSTFILE) -$(OBJDIR)/getline.o: $(SRCDIR)/getline.c $(GSTFILE) -$(OBJDIR)/group.o: $(SRCDIR)/group.c $(GSTFILE) -$(OBJDIR)/hashstr.o: $(SRCDIR)/hashstr.c $(GSTFILE) -$(OBJDIR)/header.o: $(SRCDIR)/header.c $(GSTFILE) -$(OBJDIR)/help.o: $(SRCDIR)/help.c $(GSTFILE) -$(OBJDIR)/inews.o: $(SRCDIR)/inews.c $(GSTFILE) -$(OBJDIR)/init.o: $(SRCDIR)/init.c $(GSTFILE) -$(OBJDIR)/joinpath.o: $(SRCDIR)/joinpath.c $(GSTFILE) -$(OBJDIR)/lang.o: $(SRCDIR)/lang.c $(GSTFILE) -$(OBJDIR)/list.o: $(SRCDIR)/list.c $(GSTFILE) -$(OBJDIR)/mail.o: $(SRCDIR)/mail.c $(GSTFILE) -$(OBJDIR)/main.o: $(SRCDIR)/main.c $(GSTFILE) -$(OBJDIR)/makecfg.o: $(SRCDIR)/makecfg.c $(GSTFILE) -$(OBJDIR)/maketables.o: $(REDIR)/maketables.c $(GSTFILE) -$(OBJDIR)/memory.o: $(SRCDIR)/memory.c $(GSTFILE) -$(OBJDIR)/misc.o: $(SRCDIR)/misc.c $(GSTFILE) -$(OBJDIR)/newsrc.o: $(SRCDIR)/newsrc.c $(GSTFILE) -$(OBJDIR)/nntplib.o: $(SRCDIR)/nntplib.c $(GSTFILE) -$(OBJDIR)/nrctbl.o: $(SRCDIR)/nrctbl.c $(GSTFILE) -$(OBJDIR)/open.o: $(SRCDIR)/open.c $(GSTFILE) -$(OBJDIR)/page.o: $(SRCDIR)/page.c $(GSTFILE) -#$(OBJDIR)/parsdate.o: $(AMIDIR)/parsdate.c $(GSTFILE) -$(OBJDIR)/parsdate.o: $(SRCDIR)/parsdate.c $(GSTFILE) -$(SRCDIR)/parsdate.c: $(SRCDIR)/parsdate.y $(GSTFILE) -$(OBJDIR)/pcre.o: $(REDIR)/pcre.c $(GSTFILE) -$(OBJDIR)/pgp.o: $(SRCDIR)/pgp.c $(GSTFILE) -$(OBJDIR)/post.o: $(SRCDIR)/post.c $(GSTFILE) -$(OBJDIR)/prompt.o: $(SRCDIR)/prompt.c $(GSTFILE) -$(OBJDIR)/read.o: $(SRCDIR)/read.c $(GSTFILE) -$(OBJDIR)/refs.o: $(SRCDIR)/refs.c $(GSTFILE) -$(OBJDIR)/regex.o: $(SRCDIR)/regex.c $(GSTFILE) -$(OBJDIR)/rfc1521.o: $(SRCDIR)/rfc1521.c $(GSTFILE) -$(OBJDIR)/rfc1522.o: $(SRCDIR)/rfc1522.c $(GSTFILE) -$(OBJDIR)/save.o: $(SRCDIR)/save.c $(GSTFILE) -$(OBJDIR)/screen.o: $(SRCDIR)/screen.c $(GSTFILE) -$(OBJDIR)/search.o: $(SRCDIR)/search.c $(GSTFILE) -$(OBJDIR)/select.o: $(SRCDIR)/select.c $(GSTFILE) -$(OBJDIR)/sigfile.o: $(SRCDIR)/sigfile.c $(GSTFILE) -$(OBJDIR)/signal.o: $(SRCDIR)/signal.c $(GSTFILE) -$(OBJDIR)/strftime.o: $(SRCDIR)/strftime.c $(GSTFILE) -$(OBJDIR)/string.o: $(SRCDIR)/string.c $(GSTFILE) -$(OBJDIR)/study.o: $(REDIR)/study.c $(GSTFILE) -$(OBJDIR)/thread.o: $(SRCDIR)/thread.c $(GSTFILE) -$(OBJDIR)/wildmat.o: $(SRCDIR)/wildmat.c $(GSTFILE) -$(OBJDIR)/xref.o: $(SRCDIR)/xref.c $(GSTFILE) diff -Nurp tin-1.7.1/amiga/tin.readme tin-1.7.2/amiga/tin.readme --- tin-1.7.1/amiga/tin.readme Sat Aug 23 01:58:58 2003 +++ tin-1.7.2/amiga/tin.readme Thu Jan 1 01:00:00 1970 @@ -1,150 +0,0 @@ -This is the Amiga directory of tin. - -It contains: -README original readme for Amiga-tin 1.2 by - Mark Tomlinson and Geoff McCaughan -amiga.c \ -amigatcp.c \__ Amiga-specific source needed for a -amiga.h / compile with SAS/C -amigatcp.h / -actived.c Amiga-specific actived-source. - -0. Additional Info - -tin needs 2.04 Minimum now. (V37) - -_Always_ check the other docs, especially if you are using gcc, also -check the docs in the main directory. It may be, that this file is not -really up-to-date. Query the document version string for the last -change: - -$VER: tin.readme 0.4 (14.06.99) - -1. Building tin. - -tin is tested to build on the following compilers: -SAS/C 6.57 -egcs-2.90.27 980315 (egcs-1.0.2 release) (ADE/Geek Gadgets) - -If you have SAS/C <6.55 then you have to put some work in it, but then -you may consider to use the gcc instead if you can't update because your -one is too old. 6.58 is going to be tested in the next time but should -pose no problems. If you are using 6.50 or 6.51: UPDATE! There are lots -of nasty bugs fixed in the later versions, and you also get the source -for the tzset()-function. ;) And don't forget to thank the guys at SAS -for putting their valuable free time in the enhancement of this great -compiler. - -If you use an older gcc: UPDATE! The old 2.7.0 from Aminet is buggy and -also out of date. Fetch your update at ftp.ninemoons.com or one of its -mirrors. Do not be embarrassed by the size of the files to download, it's -more than just a compiler you get. /* TODO: which archives are needed to -build tin? */ - -a) SAS/C -You need an additional package, sorry, but I have to make an -archaeological excursion for the source I need to replace these -functions. The date-parser needs an installed yacc/bison to compile. If -you are using yacc, edit the smakefile accordingly (search for "YACC"). -I am using the bison from ADE and it works fine, although the parser -skeleton contains an alloca(). (Yikes!) - -If you are building a NNTP-version, the correct SDK's must be installed. -Read the readme's closely to see how they are installed. AmiTCP SDK is -available from Aminet, the AS/Inet 225 SDK is available from the -Developer CD 1.1. - -First edit the smakefile to suit your needs. Especially take care of -DEBUG, LDEBUG, SCOPTIONS, OPTIMIZE and DEFINES. You might want piping -disabled if you want to run tin on a BBS. - -Then run smake. Ignore any warnings (if you don't, send suggestions how -to clean up the code) and see tin getting built. If you get an error, -sometimes calling smake a second time will be enough to clear the smoke. -(Don't wonder, remember: This is BETAware and the source is under -constant change.) - -You should now have the following files: -tin.exe -actived - -For more see under 2. - -b) ADE-gcc -You may have guessed it if you compiled some packages before: -This is going to be a piece of cake. :) - -Start the pdksh first. Then have a look at the available options with - - Configure --help - -Don't forget --with-libdir and --with-spooldir if you are reading -locally. Select those you want additionally and start off with - - Configure - -Have a nice cup of hot Earl Grey (On my 040/40 the script takes quite -some 10 minutes) or two (--with-coffee is also recommended). Then check -the Makefile if you want to be sure everything went ok. - -Start "make". It should work with no problems. - - -2. Installing - -If you have utilities running that capture the TAB-key, (KingCON, CFN -etc.) don't forget that tin uses the key for "next unread" and you might -be getting confused if you get a whole stream of characters inserted -instead. - -a) SAS/C -Drop tin.exe anywhere in your path. If you use wCNews, you *DON'T* need -the actived, because it already has an "active" file. I didn't test what -happens to the wCNews "active" if you use the actived, but on the other -hand I am not too keen on making a samba dance with my running hard disk -in hand either. - -You might need a wrapper script like the one described in the README. - -b) ADE-egcs -Put tin where appropriate. Don't forget to set the NNTPSERVER variable -if you didn't set a default server at compile-time, this might cause -problems (see doc/TODO) - -Caveats: - -a) The Amiga port of metamail 2.3a as it lies on Aminet has a really -broken I/O handling. With some combinations of parameters and -non-existing stdio (run <>NIL:) it doesn't open a CON: window like it is -supposed to do, but just spawns new processes over and over again. In -the other combinations it just does nothing, so the piping of MIME -articles doesn't work. I tried some workarounds, but no avail. The -problem is clearly not within tin, it is the problem of metamail. -Volunteers searched for porting a new version. - -b) When compiling with egcs, the window resize does not work properly. -This is also a problem with some of the standard GG programs (ncftp, but -interestingly *not* jove). Also reading from local spool is very slow at -startup, because every directory is opendir()ed and read completely. -Perhaps one of the various startup switches can speed this up. Read the -man page for more info. - -3. Credits - -Thanks go to all those people who put their time into the Amiga port of -this great program before. Among them: - -Mark Tomlinson -Geoff McCaughan -Reinhard Luebke -Volker Barthelmann - -Also a big "Thank You" to Iain Lea for the original program. - -The scoring routines are dedicated to Tobias "Top" Walter, who -celebrated birthday on the day I constructed the diff. - -I hope no name is missing here. - -Oliver B. Warzecha - diff -Nurp tin-1.7.1/config.guess tin-1.7.2/config.guess --- tin-1.7.1/config.guess Sat Aug 23 01:58:39 2003 +++ tin-1.7.2/config.guess Sat Oct 18 04:46:26 2003 @@ -3,7 +3,7 @@ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -timestamp='2003-08-18' +timestamp='2003-10-16' # 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 @@ -307,6 +307,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$ *:OS/390:*:*) echo i370-ibm-openedition exit 0 ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit 0 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit 0;; @@ -742,6 +745,11 @@ EOF FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit 0 ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit 0 ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit 0 ;; @@ -751,7 +759,7 @@ EOF *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit 0 ;; - *:FreeBSD:*:*|*:GNU/FreeBSD:*:*) + *:FreeBSD:*:*) # Determine whether the default compiler uses glibc. eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -763,7 +771,7 @@ EOF #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - # GNU/FreeBSD systems have a "k" prefix to indicate we are using + # GNU/KFreeBSD systems have a "k" prefix to indicate we are using # FreeBSD's kernel, but not the complete OS. case ${LIBC} in gnu) kernel_only='k' ;; esac echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} @@ -799,8 +807,13 @@ EOF echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; *:GNU:*:*) + # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit 0 ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit 0 ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit 0 ;; @@ -1052,7 +1065,7 @@ EOF exit 0 ;; M68*:*:R3V[567]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` @@ -1167,7 +1180,7 @@ EOF *:QNX:*:4*) echo i386-pc-qnx exit 0 ;; - NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) + NSR-[DGKLNPTVWY]:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit 0 ;; *:NonStop-UX:*:*) diff -Nurp tin-1.7.1/config.sub tin-1.7.2/config.sub --- tin-1.7.1/config.sub Sat Aug 23 01:58:39 2003 +++ tin-1.7.2/config.sub Sat Oct 18 04:48:52 2003 @@ -3,7 +3,7 @@ # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003 Free Software Foundation, Inc. -timestamp='2003-08-18' +timestamp='2003-10-16' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -118,7 +118,8 @@ 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 | kfreebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ + kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; @@ -248,6 +249,7 @@ case $basic_machine in | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ @@ -320,6 +322,7 @@ case $basic_machine in | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ @@ -741,6 +744,10 @@ case $basic_machine in basic_machine=or32-unknown os=-coff ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose @@ -1129,13 +1136,13 @@ case $os in | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \ + | -hiux* | -386bsd* | -knetbsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \ | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ + | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ @@ -1180,6 +1187,9 @@ case $os in -opened*) os=-openedition ;; + -os400*) + os=-os400 + ;; -wince*) os=-wince ;; @@ -1469,6 +1479,9 @@ case $basic_machine in vendor=ns ;; -mvs* | -opened*) + vendor=ibm + ;; + -os400*) vendor=ibm ;; -ptx*) diff -Nurp tin-1.7.1/configure tin-1.7.2/configure --- tin-1.7.1/configure Thu Sep 18 18:37:48 2003 +++ tin-1.7.2/configure Tue Nov 4 18:01:28 2003 @@ -617,7 +617,7 @@ fi PACKAGE=tin -VERSION=1.7.1 +VERSION=1.7.2 cat >> confdefs.h < + ADD. Fcc feature for mail + FIX. tin.5, proto.h, tin.h, attrib.c, inews.c, post.c + +U009) Lech Szychowski + BUG. used which_response() instead of which_thread() to get the + current threadnumber + FIX. page.c + + 018) Urs Janssen + BUG. changes to word_highlight weren't propagated back at runtime + BUG. didn't catch KEY_RESIZE in USE_CURSES mode thus a + windows-resize was taken a keypress + FIX. config.c, tcurses.c + + 017) Toomas Soome + ADD. updated estonian translation + FIX. et.po + + 016) Matt Anton + ADD. added a few missing french translations + FIX. fr.po + +U008) Michael Bienia + REM. hungarian notation + BUG. strunc() in !MULTIBYTE-ABLE-case did always add "..." + ADD. tinrc.date_format + ADD. rewrite draw_page_header() + FIX. tin.1, tin.5, extern.h, proto.h, tcurses.h, tin.h, tinrc.h + config.c, group.c, init.c, lang.c, misc.c, page.c, post.c, signal.c + string.c, tcurses.c, thread.c, xref.c, tincfg.tbl + + 015) Michael Bienia + BUG. memory leak in ulBuildArgv() + BUG. wrong logic to avoid negative arguments to which_thread() + BUG. used quick-kill logic for kill-entries done via the menu + FIX. config.c, filter.c, group.c + + 014) Dirk Nimmich + BUG. unterminated buffer in put_rest() + FIX. cook.c + +U007) Jason Faultless + ADD. cleanup of group indexing code + REM. open.c, code integrated elsewhere + FIX. Makefile[.in], extern.h, proto.h, active.c, art.c, filter.c, mail.c + misc.c, newsrc.c, nntplib.c, open.c, rfc2046.c, xref.c + +U006) Urs Janssen + REM. amiga support + REM. NO_LOCALE on MAC_OS_X + ADD. replaced some sprintf() by snprintf() calls + ADD. a few missing german translations + ADD. config.guess, config.sub update + BUG. fixed a small memleak when using Fcc: + BUG. fixed possible use of unitialized attributes data + FIX. Makefile, bugrep.h, extern.h, nntplib.h, proto.h, tin.h, tnntp.h + version.h, active.c, config.c, curses.c, hashstr.c, header.c, init.c + joinpath.c, lang.c, mail.c, main.c, memory.c, misc.c, newsrc.c + nntplib.c, open.c, post.c, read.c, sigfile.c, signal.c, string.c + xref.c, de.po, config.guess, config.sub + -- 1.7.1 release 20030918 "Berneray" -- U005) Michael Bienia diff -Nurp tin-1.7.1/doc/INSTALL tin-1.7.2/doc/INSTALL --- tin-1.7.1/doc/INSTALL Sat Sep 13 21:18:47 2003 +++ tin-1.7.2/doc/INSTALL Tue Oct 28 14:53:33 2003 @@ -98,9 +98,8 @@ work properly, configure using --with-do General Notes on Building Tin ----------------------------- -Tin has been compiled on a wide range of Un*x machines with cc and gcc. It -has even been ported to other systems like the AmigaOS. A list of these -machines can be found at the end of this file. +Tin has been compiled on a wide range of Un*x machines with cc and gcc. +A list of these machines can be found at the end of this file. This file is long (so was the yellow brick road) but please read it all as it could save you problems later and we don't want an unhappy ending @@ -275,7 +274,7 @@ being configured into the executable. --enable-flock enable flock() locking NNTP_INEWS (default: set if using VMS, --enable-nntp, or enable-nntp-only; - unset if building an INDEX_DAEMON or not using NNTP) + 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 client machine. Also check that --with-domain-name is correctly set to @@ -284,7 +283,7 @@ produce a correct From: headers for your The tinrc file is created automatically for each user the first time they use tin. -NNTP_SERVER_FILE (default: /etc/nntpserver, on Amiga: uulib:nntpserver) +NNTP_SERVER_FILE (default: /etc/nntpserver) Only define if your NNTP-server file is other than /etc/nntpserver. diff -Nurp tin-1.7.1/doc/TODO tin-1.7.2/doc/TODO --- tin-1.7.1/doc/TODO Wed Sep 17 16:07:11 2003 +++ tin-1.7.2/doc/TODO Tue Oct 21 19:13:48 2003 @@ -4,6 +4,10 @@ not read only ,-). Bugs ---- +!o ReadCh()/ReadWch() need to be KEY_RESIZE safe otherwise one might lose +! his article +! see + 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. @@ -39,9 +43,9 @@ o reusing p'o'stponed articles in maili o batch mode has several bugs - -Z and giving a cmd-line group ends up in a loop - (filters each group several times, ~25 slower as without a cmd-line - group) and the cmd-line group is not displayed in the statistics - nor taken inot account for the 'any unread news' status. + (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. - -cZ does not perform catchup, feature or bug? - shall we allow stand alone -c? [Urs Janssen ] @@ -112,6 +116,8 @@ o mailers other than sendmail (f.e. elm New features ------------ +o make 'GNKSA'-parser RFC2822/USEFOR compliant + o add In-Reply-To threading for mailgroups [20030518 Urs Janssen ] @@ -275,13 +281,8 @@ o if using "-n" commandline switch you o item_by_item_etiquette_warnings [compile-time?] (e.g. enable x-posts without f'up warning, disable long-sig warning) -o Rather than Cc/Bcc, I'd like to see tin simply append the - message to a mail folder, whose name is given by a setting - in the (M)enu command, possibly overridden by the current - setting of "record" environment variable. The folder would - have to be locked using a convention that will hold off - the various Unix mailer programs (see mbox(5), mmdf(5)). - [append_mail() should do the trick] +o unify Fcc and posted_articles_file + [20031012 Dirk Nimmich ] 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 @@ -362,7 +363,7 @@ o when From: only contains "First-name o Bounce duplicate Message-ID's when the headers are read. This will make the threading code happier too. - Make read_nov_file() more forgiving of errors. If the article # is okay, + Make read_overview() more forgiving of errors. If the article # is okay, then there is no reason to completely hide the article [Jason Faultless ] @@ -541,6 +542,9 @@ o close potential security holes: unlink()/chdir()/fopen()/fstat()/open()/ opendir()/t_open()/tmpfile() - 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. + () [Urs Janssen - its4 and rats can locate potential security holes] @@ -553,7 +557,7 @@ o add to autoconf: o clean up architecture independent files, rename several defines, remove useless doubled defines -o split tin.h/proto.h for better dependencies in make +o split tin.h/proto.h for better dependencies in Makefile o check where int/long/... should be replaced by size_t, uid_t, mode_t, off_t, ... @@ -565,10 +569,6 @@ o add check for sizeof char, short, int o cleanup post.c -o check where my_strncpy() or STRCPY() should be used - or include OpenBSDs strlcpy(3) (and strlcat(3)) and use it. - () - o check code with Splint (LCLint) , ccmalloc (), MSS () and @@ -654,9 +654,6 @@ o what about -a cmd-line flag? is this dropped, '&' can be used for runtime color toggling. [20021106 Urs Janssen ] -o why are -A and -g disabled on M_AMIGA? - [20020928 Urs Janssen ] - 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 ] @@ -681,7 +678,7 @@ o check_article_to_be_posted() still ne overhead) [20010629 Urs Janssen ] -o update gettext stuff to > gettext-0.11.5 +o update gettext stuff to > gettext-0.12.1 o tin in batchmode dumps core if getting a SIGINT, useful? diff -Nurp tin-1.7.1/doc/WHATSNEW tin-1.7.2/doc/WHATSNEW --- tin-1.7.1/doc/WHATSNEW Sat Aug 23 01:58:40 2003 +++ tin-1.7.2/doc/WHATSNEW Sun Oct 12 17:33:55 2003 @@ -2,9 +2,15 @@ New features and changes in tin-1.7 Changes ------- -. interactive mailer can now be feed with headers. The old use_mailreader_i +. interactive mailer can now be fed with headers. The old use_mailreader_i config variable is obsolete and superseded by the new interactive_mailer variable that can have three values: 0 no interactive mailreader (old use_mailreader_i=OFF) 1 interactive mailreader with headers 2 interactive mailreader without headers (old use_mailreader_i=ON) + +New features +------------ +. You can now specify a mailbox folder to save your sent mails so you + possibly don't need auto_cc or auto_bcc anymore. See tin(5). + diff -Nurp tin-1.7.1/doc/article.txt tin-1.7.2/doc/article.txt --- tin-1.7.1/doc/article.txt Thu Jan 1 01:00:00 1970 +++ tin-1.7.2/doc/article.txt Thu Oct 16 23:24:44 2003 @@ -0,0 +1,41 @@ +This attempts to document the article lifecycle. + +arts[] is trashed and rebuilt everytime a group is entered. +This is handled entirely by index_group() + +setup_hard_base() creates an array of 'valid' article numbers in base[] + +read_overview() populates arts[] from overview data (cached or XOVER) +Articles are initialised with set_article() +Key initial default values are: + art->thread = ART_EXPIRED + art->status = ART_UNREAD + +read_art_headers() then plugs in any gaps due to new articles not yet in the +overview (or reads all the headers if there are no overviews). +All articles that are verified as already present (ie loaded by read_overview()) +or are newly added will have art->thread set to ART_UNTHREADED +valid_artnum() is used to check if base[n] maps to any known arts[].artnum +[ After this base[] is reused as the thread base pointer array, which involves + a change of type from long to int. This is why the code is full of ugly + (int) base[] casts ] + +parse_unread_arts() uses the newsrc bitmask to explicitly set +art->status to either ART_UNREAD or ART_READ +Therefore anything not in the bitmap will default to ART_UNREAD + +Any articles that still have art->thread set to ART_EXPIRED will +have art->status set to ART_READ + +write_overview() rewrites the cached overview data for any +articles above the group low watermark where arts->thread != ART_EXPIRED + +build_references() doesn't affect any of this + +make_threads() in essence does: + if (arts[i].thread >= 0) + arts[i].thread = ART_UNTHREADED; +to 'unthread' all the currently threaded & valid arts and calls find_base() + +find_base() will not thread articles with ->thread == ART_EXPIRED +It makes no actual changes to ->status or ->thread diff -Nurp tin-1.7.1/doc/internals.txt tin-1.7.2/doc/internals.txt --- tin-1.7.1/doc/internals.txt Sat Aug 23 01:58:40 2003 +++ tin-1.7.2/doc/internals.txt Mon Sep 29 16:44:15 2003 @@ -90,20 +90,17 @@ The functions that manipulate the above active.c: read_news_active_file() populates active[] using group_add() - art.c: Many of the overview headers are stored with hash_str() - base[] is populated by find_base() + base[] is populated by find_base() hashstr.c: hash_str() Hashes text strings - In the article header, the following text is hashed: From: (including full name if supplied) Archive-name: Subject: - list.c: init_group_hash() clears group_hash[] find_group_index() returns index of group in active[] @@ -118,19 +115,16 @@ list.c: main.c: Just the initializers for hashing - memory.c: Dynamic array management. hash_reclaim() - free up table[] which holds the text cache - refs.c: Handling for msgids[] When threading, each msgid in the hash has a pointer back to its article header in arts[] or ART_UNAVAILABLE if the article is not available - select.c: my_group_add() adds a group to my_group[] diff -Nurp tin-1.7.1/doc/tin.1 tin-1.7.2/doc/tin.1 --- tin-1.7.1/doc/tin.1 Thu Sep 18 18:37:14 2003 +++ tin-1.7.2/doc/tin.1 Tue Oct 7 08:10:26 2003 @@ -3,13 +3,13 @@ .\" Module : tin.1 .\" Author : I. Lea, U. Janssen .\" Created : 1991-08-23 -.\" Updated : 2003-09-18 +.\" Updated : 2003-10-02 .\" Notes : use american english; still needs some work, i.e.: .\" - document authorization (.newsauth) .\" - document random organization feature .\" .\" -.TH tin 1 "September 18th, 2003" "1.7.1" "A Usenet newsreader" +.TH tin 1 "October 2nd, 2003" "1.7.2" "A Usenet newsreader" .\" .\" .SH NAME @@ -1454,12 +1454,14 @@ Ask for confirmation before marking all \fBGroupMarkUnselArtRead\fP ('\fBX\fP') command) articles as read. .RE .TP -.B 'Mark article read' ignores tags (mark_ignore_tags) -When this is ON, the \fBiKeyGroupMarkThdRead\fP, -\fBiKeyThreadMarkArtRead\fB 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 Format string for display of dates (date_format) +Format string \fBtin\fP uses for date representation. A description of the +different format options can be found at +.BR strftime (3). +\fBtin\fP uses +.BR strftime (3) +when available and supports most format options in his fallback code. +Default is "%a, %d %b %Y %H:%M:%S". .\" .\" most of these default_* settings are not available from the menu .\" as they are intended for internal use only. @@ -1685,7 +1687,7 @@ 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 +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. @@ -1731,6 +1733,13 @@ 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 \fBiKeyGroupMarkThdRead\fP, +\fBiKeyThreadMarkArtRead\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. +.TP .B Mark saved articles/threads as read (mark_saved_read) If ON mark articles that are saved as read. Default is ON. .TP @@ -2828,24 +2837,14 @@ For a detailed description see .\" TODO: sort in a useful order, add undocumented env-vars like: .\" .\" .TP -.\" .B TIN_POST (VMS, AmigaOS) -.\" -.\" .TP -.\" .B USERNAME (AmigaOS) -.\" The name of the logged-in user. -.\" -.\" .TP -.\" .B NODENAME (AmigaOS, obsolete?) -.\" -.\" .TP -.\" .B TIN_GROUPS (AmigaOS actived, obsolete) +.\" .B TIN_POST (VMS) .\" .\" .TP .\" .B TIN_RNG_MIN, TIN_RNG_MAX, TIN_MIN, TIN_MAX, TIN_COUNT, TIN_SEQ .\" (all used in vNewsrcTestHarness() (-DDEBUG_NEWSRC)) .\" .\" .TP -.\" .B SHELL (Unix, AmigaOS) +.\" .B SHELL (Unix) .\" .TP .B TINRC @@ -2948,15 +2947,12 @@ for more infos. .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 AmigaOS use -$\fBTIN_MAIL\fP, if reading news on VMS use $\fBTIN_MAILER\fP instead. +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). .TP -.B TIN_MAIL (AmigaOS) -AmigaOS specific, same as $\fBMAILER\fP on other OSs (see above). -.TP .B MAIL Full path to the users mailbox. .TP @@ -3062,6 +3058,14 @@ and .BR environ (5) for more information. .TP +.B LC_TIME +Date and time formats. It's value should be of the form +\fIlanguage\fR[\fI_territory\fR][\fI.codeset\fR][\fI@modifier\fR]. See +.BR locale (5) +and +.BR environ (5) +for more information. +.TP .B LC_ALL 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 @@ -3192,8 +3196,6 @@ for and .BR vsnprintf (3) fallbacks. -.IP "Mark Tomlinson" -for originally porting \fBtin\fP to the AmigaOS operating system. .IP "Andrew Greer" for originally porting \fBtin\fP to the VAX/VMS operating system. .PP @@ -3239,34 +3241,35 @@ Leong, Chris Lewis, Andreas Ley, David-M 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, Owen Medd, Philipp Mergenthaler, Andreas Metzler, -Arkadiusz Miskiewicz, Soren Moller, Bruce Momjian, Sergio Morales, -Michael Morrell, Klaus Mueller, Mike Muise, Udo Munk, John R. Myers, -Daniel Naber, Torsten Neumann, Dirk Nimmich, James Nugen, 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, 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, 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, Doug -Sewell, Philip Shearer, Jungshik Shin, Sergey Shkonda, Andreas -Siegert, 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, -Mark Tomlin, Michael Traub, Mark Trumbull, Alex Vasylenko, Michael -Velten, Adri Verhoef, Paul Vickers, Corinna Vinschen, Oliver B. -Warzecha, Jason Wessel, Cary Whitney, Henrik Wist, Greg Woods, -Andreas Wrede, Lloyd Wright, Jens Wuepper, Billy Y., Hideaki -Yoshfuji, Nickolai Zeldovich, Zbigniew Zych +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, +John R. Myers, Daniel Naber, Torsten Neumann, Dirk Nimmich, James +Nugen, 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, 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, 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, Doug Sewell, Philip Shearer, Jungshik Shin, +Sergey Shkonda, Andreas Siegert, 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, Mark Tomlin, Mark Tomlinson, +Michael Traub, Mark Trumbull, Alex Vasylenko, Michael Velten, Adri +Verhoef, Paul Vickers, Corinna Vinschen, Oliver B. Warzecha, Jason +Wessel, Cary Whitney, Henrik Wist, Greg Woods, Andreas Wrede, Lloyd +Wright, Jens Wuepper, Billy Y., Hideaki Yoshfuji, Nickolai Zeldovich, +Zbigniew Zych .\" .\" .SH AUTHOR @@ -3308,6 +3311,7 @@ Urs Janssen .BR pcre (3), .BR pcrepattern (3), .BR snprintf (3), +.BR strftime (3), .BR vsnprintf (3), .BR wildmat (3), .BR environ (5), diff -Nurp tin-1.7.1/doc/tin.5 tin-1.7.2/doc/tin.5 --- tin-1.7.1/doc/tin.5 Thu Sep 18 18:37:37 2003 +++ tin-1.7.2/doc/tin.5 Sun Oct 12 17:44:05 2003 @@ -2,10 +2,10 @@ .\" Module : tin.5 .\" Author : U. Janssen .\" Created : 2000-07-10 -.\" Updated : 2003-09-18 +.\" Updated : 2003-10-12 .\" Notes : needs a some work .\" -.TH tin 5 "September 18th, 2003" "1.7.1" "A Usenet newsreader" +.TH tin 5 "October 12th, 2003" "1.7.2" "A Usenet newsreader" .SH NAME tin, rtin \- related files @@ -429,6 +429,10 @@ be asked whether to delete the post-proc processing of marked articles using \fBGroupAutoSave\fP ('\fBS\fP') will suppress prompting. .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). .TP @@ -1209,12 +1213,16 @@ Ask for confirmation before marking all .in -.5i Default is commands & quit. .TP -.B mark_ignore_tags -When this is ON, the \fBiKeyGroupMarkThdRead\fP, -\fBiKeyThreadMarkArtRead\fB 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 date_format +Format string +used for date representation. A description of the different format options +can be found at +.BR strftime (3). +.BR tin (1). +uses +.BR strftime (3) +when available and supports most format options in his fallback code. +Default is "%a, %d %b %Y %H:%M:%S". .TP .B default_art_search .TP @@ -1471,7 +1479,7 @@ Format of quote line when replying (via %D=Date, %F=Fullname+Address, %G=Groupname, %M=Message-ID, %N=Fullname, %C=Firstname, %I=Initials). Default is "In article %M you wrote:" .TP -.B Format of the mailbox (mailbox_format) +.B mailbox_format Select one of the following mailbox-formats: MBOXO (default, except on SCO), MBOXRD or MMDF (default on SCO). See .BR mbox (5) @@ -1482,7 +1490,14 @@ for more details about MMDF. .B mark_saved_read If ON mark articles that are saved as read. Default is ON. .TP -.B Viewer program for MIME articles (metamail_prog) +.B mark_ignore_tags +When this is ON, the \fBiKeyGroupMarkThdRead\fP, +\fBiKeyThreadMarkArtRead\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. +.TP +.B metamail_prog Path, name and options of external .BR metamail (1) program used to view non-textual parts of articles. @@ -2290,6 +2305,7 @@ uses the LIST SUBSCRIPTIONS (\fBRFC2980\ .BR iconv_open (3), .BR nl_langinfo (3), .BR pcre (3), +.BR strftime (3), .BR system (3), .BR mailcap (4), .BR active (5), diff -Nurp tin-1.7.1/include/bugrep.h tin-1.7.2/include/bugrep.h --- tin-1.7.1/include/bugrep.h Sat Aug 23 01:58:40 2003 +++ tin-1.7.2/include/bugrep.h Fri Sep 19 13:42:58 2003 @@ -3,7 +3,7 @@ * Module : bugrep.h * Author : Urs Janssen * Created : 1997-07-30 - * Updated : 1998-02-01 + * Updated : 2003-09-19 * Notes : * * Copyright (c) 1997-2003 Urs Janssen @@ -41,10 +41,6 @@ # ifdef M_UNIX # define BUG_REPORT_ADDRESS "tin-bugs@tin.org" # endif /* M_UNIX */ - -# ifdef M_AMIGA -# define BUG_REPORT_ADDRESS "obw@amarok.ping.de" -# endif /* M_AMIGA */ # ifdef VMS # define BUG_REPORT_ADDRESS "stenns@vw.tci.uni-hannover.de" diff -Nurp tin-1.7.1/include/extern.h tin-1.7.2/include/extern.h --- tin-1.7.1/include/extern.h Sat Sep 6 12:05:34 2003 +++ tin-1.7.2/include/extern.h Mon Sep 29 03:54:22 2003 @@ -3,7 +3,7 @@ * Module : extern.h * Author : I. Lea * Created : 1991-04-01 - * Updated : 2003-08-12 + * Updated : 2003-09-29 * Notes : * * Copyright (c) 1997-2003 Iain Lea @@ -344,7 +344,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 last_put[]; extern char libdir[PATH_LEN]; extern char local_attributes_file[PATH_LEN]; extern char local_config_file[PATH_LEN]; @@ -901,7 +900,6 @@ extern constext txt_no_newsgroups[]; extern constext txt_no_next_unread_art[]; extern constext txt_no_prev_group[]; extern constext txt_no_prev_unread_art[]; -extern constext txt_no_resp[]; extern constext txt_no_responses[]; extern constext txt_no_resps_in_thread[]; extern constext txt_no_search_string[]; @@ -1199,7 +1197,6 @@ extern constext txt_uu_success[]; extern int *my_group; extern int MORE_POS; extern int NOTESLINES; -extern int RIGHT_POS; extern int _hp_glitch; extern int cCOLS; extern int cLINES; @@ -1232,7 +1229,6 @@ extern int xmouse; extern int xrow; extern long *base; -extern long head_next; extern signed long int read_newsrc_lines; @@ -1430,12 +1426,6 @@ extern constext txt_processing_saved_art extern constext txt_reading_mailgroups_file[]; #endif /* HAVE_MH_MAIL_HANDLING */ -#ifdef M_AMIGA - extern constext txt_env_var_not_found[]; - extern constext txt_usage_bbs_mode[]; - extern t_bool tin_bbs_mode; -#endif /* M_AMIGA */ - #ifndef NO_ETIQUETTE extern constext txt_warn_posting_etiquette[]; #endif /* NO_ETIQUETTE */ @@ -1474,6 +1464,7 @@ extern struct opttxt txt_cache_overview_ extern struct opttxt txt_catchup_read_groups; extern struct opttxt txt_color_options; extern struct opttxt txt_confirm_choice; +extern struct opttxt txt_date_format; extern struct opttxt txt_display_options; extern struct opttxt txt_draw_arrow; extern struct opttxt txt_editor_format; diff -Nurp tin-1.7.1/include/nntplib.h tin-1.7.2/include/nntplib.h --- tin-1.7.1/include/nntplib.h Sat Aug 23 01:58:40 2003 +++ tin-1.7.2/include/nntplib.h Fri Sep 19 13:43:57 2003 @@ -3,7 +3,7 @@ * Module : nntplib.h * Author : I.Lea * Created : 1991-04-01 - * Updated : 2003-02-21 + * Updated : 2003-09-19 * Notes : nntp.h 1.5.11/1.6 with extensions for tin * * Copyright (c) 1991-2003 Iain Lea @@ -39,11 +39,7 @@ #define NNTPLIB_H 1 #ifndef NNTP_SERVER_FILE -# ifdef M_AMIGA -# define NNTP_SERVER_FILE "uulib:nntpserver" -# else -# define NNTP_SERVER_FILE "/etc/nntpserver" -# endif /* M_AMIGA */ +# define NNTP_SERVER_FILE "/etc/nntpserver" #endif /* !NNTP_SERVER_FILE */ #define NNTP_TCP_NAME "nntp" diff -Nurp tin-1.7.1/include/policy.h tin-1.7.2/include/policy.h --- tin-1.7.1/include/policy.h Thu Sep 18 00:51:56 2003 +++ tin-1.7.2/include/policy.h Sat Sep 20 17:00:16 2003 @@ -208,7 +208,7 @@ * .fx France, Metropolitan * .yd Democratic Yemen, now .ye * .zr former Zaire, now .cd - * + * * user-assigned code elements: * .aa, .qm, .qz, .xa, .xz, .zz * diff -Nurp tin-1.7.1/include/proto.h tin-1.7.2/include/proto.h --- tin-1.7.1/include/proto.h Sat Sep 13 20:44:40 2003 +++ tin-1.7.2/include/proto.h Thu Oct 16 23:24:44 2003 @@ -3,7 +3,7 @@ * Module : proto.h * Author : Urs Janssen * Created : - * Updated : 2003-09-12 + * Updated : 2003-10-12 * Notes : * * Copyright (c) 1997-2003 Urs Janssen @@ -47,7 +47,6 @@ /* active.c */ extern char group_flag(char ch); extern int find_newnews_index(const char *cur_newnews_host); -extern int get_active_num(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); @@ -66,7 +65,7 @@ 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_nov_file(struct t_group *group); +extern void write_overview(struct t_group *group); /* attrib.c */ extern void read_attributes_files(void); @@ -380,6 +379,7 @@ extern void toggle_inverse_video(void); #endif /* !NO_SHELL_ESCAPE */ /* newsrc.c */ +extern int group_get_art_info(char *tin_spooldir, char *groupname, int grouptype, long *art_count, long *art_max, long *art_min); extern signed long int read_newsrc(char *newsrc_file, t_bool allgroups); extern signed long int write_newsrc(void); extern t_bool pos_group_in_newsrc(struct t_group *group, int pos); @@ -403,45 +403,24 @@ extern void art_mark_undeleted(struct t_ #endif /* DEBUG_NEWSRC */ /* nntplib.c */ +#ifdef NNTP_ABLE + extern FILE *nntp_command(const char *, int, char *, size_t); +#endif /* NNTP_ABLE */ extern FILE *get_nntp_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 server_init(char *machine, const char *service, int port, char *text, size_t mlen); -extern void close_server(void); +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 DEBUG - extern const char *nntp_respcode(int respcode); -#endif /* DEBUG */ /* nrctbl.c */ extern int get_newsrcname(char *newsrc_name, const char *nntpserver_name); extern void get_nntpserver(char *nntpserver_name, char *nick_name); -/* open.c */ -extern FILE *open_art_fp(struct t_group *group, long art); -extern FILE *open_newgroups_fp(int the_index); -extern FILE *open_news_active_fp(void); -extern FILE *open_newsgroups_fp(void); -extern FILE *open_overview_fmt_fp(void); -extern FILE *open_subscription_fp(void); -extern FILE *open_art_header(long art); -extern int get_respcode(char *, size_t); -extern int get_only_respcode(char *, size_t); -extern int nntp_open(void); -extern int group_get_art_info(char *tin_spooldir, char *groupname, int grouptype, long *art_count, long *art_max, long *art_min); -extern long setup_hard_base(struct t_group *group); -extern void nntp_close(void); -extern void vGet1GrpArtInfo(struct t_group *grp); -#ifdef HAVE_MH_MAIL_HANDLING - extern FILE *open_mail_active_fp(const char *mode); - extern FILE *open_mailgroups_fp(void); -#endif /* HAVE_MH_MAIL_HANDLING */ -#ifdef NNTP_ABLE - extern FILE *nntp_command(const char *, int, char *, size_t); -#endif /* NNTP_ABLE */ - /* page.c */ extern int show_page(struct t_group *group, int respnum, int *threadnum); extern void display_info_page(int part); @@ -470,18 +449,18 @@ extern time_t parsedate(char *p, TIMEINF #endif /* !HAVE_VSNPRINTF */ /* post.c */ +extern char *checknadd_headers(const char *infile); 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); -extern int post_response(const char *group, int respnum, t_bool copy_text, t_bool with_headers, t_bool raw_data); -extern int repost_article(const char *group, int respnum, t_bool supersede, t_openartinfo *artinfo); +extern int post_response(const char *groupname, int respnum, t_bool copy_text, t_bool with_headers, t_bool raw_data); +extern int repost_article(const char *groupname, int respnum, t_bool supersede, t_openartinfo *artinfo); extern t_bool cancel_article(struct t_group *group, struct t_article *art, int respnum); extern t_bool mail_bug_report(void); extern t_bool pickup_postponed_articles(t_bool ask, t_bool all); -extern t_bool post_article(const char *group); +extern t_bool post_article(const char *groupname); extern t_bool reread_active_after_posting(void); extern t_bool user_posted_messages(void); -extern void checknadd_headers(const char *infile); extern void init_postinfo(void); extern void quick_post_article(t_bool postponed_only); #ifdef USE_CANLOCK @@ -534,6 +513,7 @@ extern void free_mailcap(t_mailcap *tmai 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 int art_open(t_bool wrap_lines, struct t_article *art, struct t_group *group, t_openartinfo *artinfo, t_bool show_progress_meter); @@ -653,10 +633,10 @@ extern void str_lwr(char *str); #endif /* !HAVE_STRRSTR */ #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) extern void wcspart(wchar_t *to, const wchar_t *from, int columns, int size_to, t_bool pad); - extern wchar_t *wtrunc(const wchar_t *wmessage, wchar_t *wbuf, size_t wbuf_len, int len); + extern wchar_t *wstrunc(const wchar_t *wmessage, wchar_t *wbuf, size_t wbuf_len, int len); extern wchar_t *my_wcsdup(const wchar_t *wstr); #endif /* MULTIBYTE_ABLE && !NO_LOCALE */ -extern char *trunc(const char *message, char *buf, size_t buf_len, int len); +extern char *strunc(const char *message, char *buf, size_t buf_len, int len); /* tags.c */ extern int line_is_tagged(int n); diff -Nurp tin-1.7.1/include/tcurses.h tin-1.7.2/include/tcurses.h --- tin-1.7.1/include/tcurses.h Sat Aug 23 01:58:40 2003 +++ tin-1.7.2/include/tcurses.h Mon Sep 29 03:54:14 2003 @@ -3,7 +3,7 @@ * Module : tcurses.h * Author : Thomas Dickey * Created : 1997-03-02 - * Updated : 2003-06-27 + * Updated : 2003-09-29 * Notes : curses #include files, #defines & struct's * * Copyright (c) 1997-2003 Thomas Dickey @@ -103,6 +103,7 @@ extern void my_fputc(int ch, FILE *strea extern void my_fputs(const char *str, FILE *stream); # if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) extern void my_fputwc(wint_t wc, FILE *fp); + extern void my_fputws(const wchar_t *wstr, FILE *fp); extern wint_t cmdReadWch(void); extern wint_t ReadWch(void); # endif /* MULTIBYTE_ABLE && !NO_LOCALE */ @@ -145,6 +146,12 @@ extern void write_line(int row, char *bu fprintf(stream, "%lc", wc); \ else \ fputwc(wc, stream); \ + } +# define my_fputws(wstr, stream) { \ + if (fwide(stream, 0) <= 0) \ + fprintf(stream, "%ls", wstr); \ + else \ + fputws(wstr, stream); \ } # endif /* MULTIBYTE_ABLE && !NO_LOCALE */ diff -Nurp tin-1.7.1/include/tin.h tin-1.7.2/include/tin.h --- tin-1.7.1/include/tin.h Sat Sep 6 12:05:34 2003 +++ tin-1.7.2/include/tin.h Mon Oct 27 12:46:12 2003 @@ -3,7 +3,7 @@ * Module : tin.h * Author : I. Lea & R. Skrenta * Created : 1991-04-01 - * Updated : 2003-09-05 + * Updated : 2003-10-12 * Notes : #include files, #defines & struct's * * Copyright (c) 1997-2003 Iain Lea , Rich Skrenta @@ -63,12 +63,6 @@ # define INET6 #endif /* HAVE_GETADDRINFO && HAVE_GAI_STRERROR && ENABLE_IPV6 */ -/* Locale support in Mac OS X doesn't work yet, so turn it off */ -#ifdef MAC_OS_X -# ifndef NO_LOCALE -# define NO_LOCALE 1 -# endif /* !NO_LOCALE */ -#endif /* MAC_OS_X */ /* * Native Language Support. @@ -99,18 +93,8 @@ # define LOCALEDIR "/usr/share/locale" #endif /* !LOCALEDIR */ -/* - * Non-autoconf'able definitions for Amiga Developer Environment (gcc 2.7.2, - * etc). - */ #if defined(__amiga__) || defined(__amiga) # define SMALL_MEMORY_MACHINE -# if !defined(__GNUC__) -# undef M_UNIX -# define M_AMIGA -# define SIG_ARGS /* nothing, since compiler doesn't handle it */ -# undef DECL_SIG_CONST -# endif /* !__GNUC__ */ #endif /* __amiga__ || __amiga */ #include @@ -200,13 +184,9 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_ # include #endif /* HAVE_SYS_TYPES_H */ -#ifdef M_AMIGA -# include "include:stat.h" /* FIXME: Problem with AmiTCP-includes, AmiTCP's fstat() needs */ -#else /* a running TCP-Stack. OTOH fstat() ist used with local spool */ -# ifdef HAVE_SYS_STAT_H -# include -# endif /* HAVE_SYS_STAT_H */ -#endif /* M_AMIGA */ +#ifdef HAVE_SYS_STAT_H +# include +#endif /* HAVE_SYS_STAT_H */ #ifdef TIME_WITH_SYS_TIME # include @@ -379,10 +359,6 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_ # define DIR_BUF struct direct # endif /* HAVE_DIRENT_H */ #else -# ifdef M_AMIGA -# include "amiga.h" -# define DIR_BUF struct dirent -# endif /* M_AMIGA */ # ifdef M_XENIX # include # define DIR_BUF struct direct @@ -494,11 +470,7 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_ # ifdef VMS # define NEWSLIBDIR "NEWSLIB:[000000]" # else -# ifdef M_AMIGA -# define NEWSLIBDIR "uulib:news" -# else -# define NEWSLIBDIR "/usr/lib/news" -# endif /* M_AMIGA */ +# define NEWSLIBDIR "/usr/lib/news" # endif /* VMS */ # endif /* !NEWSLIBDIR */ # ifndef NOVROOTDIR @@ -517,7 +489,7 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_ /* * Determine machine configuration for external programs & directories */ -#if defined(BSD) && !defined(M_AMIGA) +#if defined(BSD) /* * To catch 4.3 Net2 code base or newer * (e.g. FreeBSD 1.x, 4.3/Reno, NetBSD 0.9, 386BSD, BSD/386 1.1 and below). @@ -561,18 +533,6 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_ # ifdef linux # define DEFAULT_PRINTER "/usr/bin/lpr" # endif /* linux */ -# ifdef M_AMIGA -# ifndef DEFAULT_EDITOR -# define DEFAULT_EDITOR "c:ed" -# endif /* !DEFAULT_EDITOR */ -# define DEFAULT_MAILBOX "uumail:" -# define DEFAULT_MAILER "uucp:c/sendmail" -# define DEFAULT_POSTER "uucp:c/postnews %s" -# define DEFAULT_PRINTER "copy to PRT:" -# define DEFAULT_BBS_PRINTER "copy to NIL:" -# define DEFAULT_SHELL "newshell" /* Not Yet Implemented */ -# define DEFAULT_UNSHAR "unshar %s" -# endif /* M_AMIGA */ # ifdef VMS # define DEFAULT_EDITOR "EDIT/TPU" # define DEFAULT_MAILBOX "SYS$LOGIN:" @@ -896,11 +856,11 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_ * HEADER_LEN = max. size of a news/mail header-line * NEWSRC_LINE = */ -#if defined(VMS) || defined(M_AMIGA) +#if defined(VMS) # define PATH_LEN 256 # define NAME_LEN 14 # define LEN 512 -#endif /* VMS || M_AMIGA */ +#endif /* VMS */ #ifdef M_UNIX # ifdef PATH_MAX @@ -1053,7 +1013,7 @@ enum { #define IGNORE_ART(i) ((tinrc.kill_level != KILL_THREAD && arts[i].killed) || (arts[i].thread == ART_EXPIRED)) /* only used for threading */ -#define IGNORE_ART_THREAD(i) (arts[i].thread != ART_NORMAL || (tinrc.kill_level == KILL_NOTHREAD && arts[i].killed)) +#define IGNORE_ART_THREAD(i) (arts[i].thread != ART_UNTHREADED || (tinrc.kill_level == KILL_NOTHREAD && arts[i].killed)) /* * Is this part text/plain ? @@ -1062,7 +1022,7 @@ enum { (x->type == TYPE_TEXT && strcasecmp("plain", x->subtype) == 0) /* TRUE if basenote has responses */ -#define HAS_FOLLOWUPS(i) (arts[base[i]].thread != -1) +#define HAS_FOLLOWUPS(i) (arts[base[i]].thread >= 0) /* * Only close off our stream when reading on local spool @@ -1336,12 +1296,17 @@ enum { /* - * art.thread (Can't ART_NORMAL be better named ?) + * art.thread */ -#define ART_NORMAL -1 +#define ART_UNTHREADED -1 #define ART_EXPIRED -2 /* + * Where does this belong ?? It is overloaded + */ +#define ART_NORMAL -1 + +/* * art.status */ #define ART_READ 0 @@ -1396,6 +1361,10 @@ enum { #define FILTER_LINES_GT 3 /* + * default date format for display in the page header */ +#define DEFAULT_DATE_FORMAT "%a, %d %b %Y %H:%M:%S" + +/* * used in checking article header before posting */ #define NGLIMIT 20 /* Max. num. of crossposted groups before warning */ @@ -1526,14 +1495,15 @@ struct t_msgid { * struct t_article - article header * * article.thread: - * -1 (ART_NORMAL) initial default - * -2 (ART_EXPIRED) article has expired (wasn't found in search of spool - * directory for the group) + * the next article in thread + * -1 (ART_UNTHREADED) article exists but is not (yet) threaded + * -2 (ART_EXPIRED) article has expired (wasn't found in search of spool + * directory for the group) * >=0 points to another arts[] (struct t_article) * * article.prev: * the previous article in thread - * -1 (ART_NORMAL) initial default, no previous article + * -1 (ART_NORMAL) initial default, first (no previous) article in thread * >=0 points to the previous arts[] (struct t_article) */ struct t_article { @@ -1607,6 +1577,7 @@ struct t_attribute { 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 */ + char *fcc; /* Fcc folder for mail */ #ifdef CHARSET_CONVERSION int mm_network_charset; /* network charset */ char *undeclared_charset; /* charset of articles without MIME charset declaration */ @@ -1795,11 +1766,7 @@ struct t_newnews { time_t time; }; -#ifdef M_AMIGA - typedef const char /*__far*/ constext; -#else - typedef const char constext; -#endif /* M_AMIGA */ +typedef const char constext; /* * Defines text strings used by a tinrc variable @@ -1931,19 +1898,6 @@ typedef int (*t_compfunc)(t_comptype, t_ #define TIN_EDITOR_FMT_OFF "%E %F" -#ifdef M_AMIGA -# define REDIRECT_OUTPUT "> NIL:" -# define REDIRECT_PGP_OUTPUT "> NIL:" -# define ENV_VAR_GROUPS "TIN_GROUPS" -# define ENV_VAR_MAILER "TIN_MAIL" -# define ENV_VAR_POSTER "TIN_POST" -# define ENV_VAR_SHELL "SHELL" -# define TIN_EDITOR_FMT_ON "%E %F" -# define MAILER_FORMAT "%M <%F -f %U" -# define TMPDIR "T:" -# define KEY_PREFIX 0x9b -#endif /* M_AMIGA */ - #ifdef VMS # define REDIRECT_OUTPUT "" # define REDIRECT_PGP_OUTPUT "" @@ -1996,9 +1950,9 @@ extern void joindir (char *result, const #endif /* !TMPDIR */ #if !defined(S_ISDIR) -# if defined(M_UNIX) || defined(VMS) || defined(M_AMIGA) +# if defined(M_UNIX) || defined(VMS) # define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) -# endif /* M_UNIX || VMS || M_AMIGA */ +# endif /* M_UNIX || VMS */ #endif /* !S_ISDIR */ #if !defined(S_ISREG) @@ -2134,13 +2088,7 @@ extern void joindir (char *result, const #endif /* __STDC__ || __cplusplus */ typedef OUTC_RETTYPE (*OutcPtr) (OUTC_ARGS); - -#ifdef M_AMIGA - typedef struct __tcpbuf TCP; -# include "amigatcp.h" -#else - typedef FILE TCP; -#endif /* M_AMIGA */ +typedef FILE TCP; #ifndef EXTERN_H # include "extern.h" @@ -2216,16 +2164,7 @@ typedef void (*BodyPtr) (char *, FILE *, /* define some standard places to look for a tin.defaults file */ -/* - * on Amiga only those two locations make sense and maybe PROGDIR:tin.defaults, - * also possible are AmiTCP:db/tin.defaults or UULIB:tin.defaults, but these are - * no system assigns. - */ -#ifdef M_AMIGA -# define TIN_DEFAULTS_BUILTIN "S:tin.defaults","ENV:tin.defaults",NULL -#else -# define TIN_DEFAULTS_BUILTIN "/etc/opt/tin","/etc/tin","/etc","/usr/local/lib/tin","/usr/local/lib","/usr/local/etc/tin","/usr/local/etc","/usr/lib/tin","/usr/lib",NULL -#endif /* M_AMIGA */ +#define TIN_DEFAULTS_BUILTIN "/etc/opt/tin","/etc/tin","/etc","/usr/local/lib/tin","/usr/local/lib","/usr/local/etc/tin","/usr/local/etc","/usr/lib/tin","/usr/lib",NULL #ifdef TIN_DEFAULTS_DIR # define TIN_DEFAULTS TIN_DEFAULTS_DIR,TIN_DEFAULTS_BUILTIN #else @@ -2280,13 +2219,6 @@ extern struct tm *localtime(time_t *); #ifdef USE_CANLOCK # include "../libcanlock/canlock.h" #endif /* USE_CANLOCK */ - -/* FXIME: use autoconf here to detect if stat(2)-structure has st_mtime */ -#ifndef M_AMIGA -# define FILE_CHANGED(file) file_mtime(file) -#else -# define FILE_CHANGED(file) file_size(file) -#endif /* M_AMIGA */ /* snprintf(), vsnprintf() */ #ifndef HAVE_SNPRINTF diff -Nurp tin-1.7.1/include/tinrc.h tin-1.7.2/include/tinrc.h --- tin-1.7.1/include/tinrc.h Sat Aug 23 01:58:40 2003 +++ tin-1.7.2/include/tinrc.h Mon Sep 29 03:53:56 2003 @@ -3,7 +3,7 @@ * Module : tinrc.h * Author : Jason Faultless * Created : 1999-04-13 - * Updated : 2003-08-12 + * Updated : 2003-09-29 * Notes : * * Copyright (c) 1999-2003 Jason Faultless @@ -247,6 +247,7 @@ struct t_config { t_bool use_slrnface; /* Use the slrnface programme to display 'X-Face:'s */ # endif /* XFACE_ABLE */ t_bool default_filter_select_global; + char date_format[LEN]; /* format string for the date display in the page header */ }; #endif /* !TINRC_H */ diff -Nurp tin-1.7.1/include/tnntp.h tin-1.7.2/include/tnntp.h --- tin-1.7.1/include/tnntp.h Sat Aug 23 01:58:40 2003 +++ tin-1.7.2/include/tnntp.h Fri Sep 19 13:42:06 2003 @@ -3,7 +3,7 @@ * Module : tnntp.h * Author : Thomas Dickey * Created : 1997-03-05 - * Updated : 2003-03-14 + * Updated : 2003-09-19 * Notes : #include files, #defines & struct's * * Copyright (c) 1997-2003 Thomas Dickey @@ -57,15 +57,12 @@ # define s_init() (1) # define s_end() #else -# ifdef M_AMIGA -# include "amigatcp.h" -# 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 */ +# 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 @@ -76,14 +73,13 @@ # else # define s_puts(s,fd) fputs(s,fd) # endif /* __BEOS__ */ -#else +# else # define s_close close # define s_puts fputs -#endif /* 0 */ -# define s_dup dup -# define s_init() (1) -# define s_end() -# endif /* M_AMIGA */ +# endif /* 0 */ +# define s_dup dup +# define s_init() (1) +# define s_end() #endif /* VMS && SOCKETSHR_TCP */ #if defined(NNTP_ABLE) || defined(HAVE_GETHOSTBYNAME) diff -Nurp tin-1.7.1/include/version.h tin-1.7.2/include/version.h --- tin-1.7.1/include/version.h Thu Sep 18 18:37:45 2003 +++ tin-1.7.2/include/version.h Tue Nov 4 18:01:26 2003 @@ -3,7 +3,7 @@ * Module : version.h * Author : I. Lea * Created : 1991-04-01 - * Updated : 2003-08-12 + * Updated : 2003-09-19 * Notes : * * Copyright (c) 1991-2003 Iain Lea @@ -40,29 +40,21 @@ # define PRODUCT "tin" # ifndef TIN_AUTOCONF_H -# define VERSION "1.7.1" +# define VERSION "1.7.2" # endif /* !TIN_AUTOCONF_H */ -# define RELEASEDATE "20030918" -# define RELEASENAME "Berneray" +# define RELEASEDATE "20031104" +# define RELEASENAME "Eriskay" /* config-file versions - must by dotted triples */ # define TINRC_VERSION "1.3.7" -# define ATTRIBUTES_VERSION "1.0.0" +# define ATTRIBUTES_VERSION "1.0.1" # define FILTER_VERSION "1.0.0" # define SERVERCONFIG_VERSION "1.0.0" -# ifdef M_AMIGA -# define OSNAME "AMIGA" -# define AMIVER VERSION -# endif /* M_AMIGA */ - # ifdef VMS # define OSNAME "VMS" # endif /* VMS */ # ifdef M_UNIX -# ifdef __amiga -# define OSNAME "AMIGA" -# endif /* !__amiga */ # ifdef __BEOS__ # define OSNAME "BeOS" # endif /* __BEOS__ */ diff -Nurp tin-1.7.1/po/POTFILES.in tin-1.7.2/po/POTFILES.in --- tin-1.7.1/po/POTFILES.in Sat Aug 23 01:59:00 2003 +++ tin-1.7.2/po/POTFILES.in Wed Sep 24 18:32:36 2003 @@ -34,7 +34,6 @@ src/my_tmpfile.c src/newsrc.c src/nntplib.c src/nrctbl.c -src/open.c src/page.c src/pgp.c src/plp_snprintf.c Binary files tin-1.7.1/po/de.gmo and tin-1.7.2/po/de.gmo differ diff -Nurp tin-1.7.1/po/de.po tin-1.7.2/po/de.po --- tin-1.7.1/po/de.po Thu Sep 18 18:32:16 2003 +++ tin-1.7.2/po/de.po Sun Oct 19 00:57:48 2003 @@ -6,7 +6,7 @@ # msgid "" msgstr "Project-Id-Version: tin 1.7.0\n" - "POT-Creation-Date: 2003-09-18 18:31+0200\n" + "POT-Creation-Date: 2003-10-19 00:55+0200\n" "PO-Revision-Date: 2003-03-13 04:15+0200\n" "Last-Translator: Sven Hartge , Kai Bojens " "\n" @@ -15,272 +15,277 @@ msgstr "Project-Id-Version: tin 1.7.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" -#: src/art.c:1228 +#: src/art.c:1423 #, c-format msgid "%d Bad overview record (%d fields) '%s'" -msgstr "" +msgstr "%d Fehlerhafter Overview-Datensatz (%d Felder) '%s'" -#: src/attrib.c:574 +#: src/attrib.c:580 msgid "# Do not edit this comment block\n" "#\n" msgstr "# Diesen Kommentarabschnitt nicht verändern\n" "#\n" -#: src/attrib.c:575 +#: src/attrib.c:581 msgid "# scope=STRING (ie. alt.*,!alt.bin*) [mandatory]\n" msgstr "# scope=STRING [notwendig]\n" "# Gültigkeitsbereich, zB. alt.*,!alt.bin*\n" -#: src/attrib.c:576 +#: src/attrib.c:582 msgid "# maildir=STRING (ie. ~/Mail)\n" msgstr "# maildir=STRING\n" "# Verzeichnis der Mailfolder, z.B. ~/Mail\n" -#: src/attrib.c:577 +#: src/attrib.c:583 msgid "# savedir=STRING (ie. ~user/News)\n" msgstr "# savedir=STRING\n" "# Verzeichnis zum Speichern, z.B. ~user/News\n" -#: src/attrib.c:578 +#: src/attrib.c:584 msgid "# savefile=STRING (ie. =linux)\n" msgstr "# savefile=STRING\n" "# Datei zum Speichern, z.B. =linux\n" -#: src/attrib.c:579 +#: src/attrib.c:585 msgid "# sigfile=STRING (ie. $var/sig)\n" msgstr "# sigfile=STRING\n" "# Signatur, z.B. $var/sig\n" -#: src/attrib.c:580 +#: src/attrib.c:586 msgid "# organization=STRING (if beginning with '/' read from file)\n" msgstr "# organization=STRING\n" "# Organization-Header; ist das erste Zeichen ein '/', wird der\n" "# Wert aus dieser Datei gelesen.\n" -#: src/attrib.c:581 +#: src/attrib.c:587 msgid "# followup_to=STRING\n" msgstr "# followup_to=STRING\n" "# Voreinstellung für den Followup-To-Header\n" -#: src/attrib.c:582 +#: src/attrib.c:588 msgid "# mailing_list=STRING (ie. majordomo@example.org)\n" msgstr "# mailing_list=STRING\n" "# Gruppe ist eine gegatete Mailingliste, z.B. majordomo@example.org\n" -#: src/attrib.c:583 +#: src/attrib.c:589 msgid "# x_headers=STRING (ie. ~/.tin/extra-headers)\n" msgstr "# x_headers=STRING\n" "# Zusätzliche Header, z.B. ~/.tin/extra-headers\n" -#: src/attrib.c:584 +#: src/attrib.c:590 msgid "# x_body=STRING (ie. ~/.tin/extra-body-text)\n" msgstr "# x_body=STRING\n" "# Text wird automatisch zu Beginn des Artikels eingefügt,\n" "# z.B. ~/.tin/extra-body-text\n" -#: src/attrib.c:585 +#: src/attrib.c:591 msgid "# from=STRING (just append wanted From:-line, don't use quotes)\n" msgstr "# from=STRING\n" "# Absender, einfach den gewünschten Wert eintragen,\n" "# keine Anführungszeichen verwenden\n" -#: src/attrib.c:586 +#: src/attrib.c:592 msgid "# news_quote_format=STRING\n" msgstr "# news_quote_format=STRING\n" "# Einleitungszeile, z.B. news_quote_format=In %%M, %%F wrote:\n" -#: src/attrib.c:587 +#: src/attrib.c:593 msgid "# quote_chars=STRING (%%s, %%S for initials)\n" msgstr "# quote_chars=STRING\n" "# Zeichen für Zitate in Antworten, %%s oder %%S ergibt Autoreninitialien\n" -#: src/attrib.c:588 +#: src/attrib.c:594 msgid "# mime_types_to_save=STRING (eg. image/*,!image/bmp)\n" msgstr "# mime_types_to_save=STRING\n" "# z.B. image/*,!image/bmp\n" -#: src/attrib.c:590 +#: src/attrib.c:596 msgid "# ispell=STRING\n" msgstr "# ispell=STRING\n" "# Aufruf der Rechtschreibprüfung,\n" "# z.B. ispell -C -ddeutsch -w äöüÄÖÜß@ -Tlatin1\n" -#: src/attrib.c:592 +#: src/attrib.c:598 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:593 +#: src/attrib.c:599 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:594 +#: src/attrib.c:600 msgid "# batch_save=ON/OFF\n" msgstr "# batch_save=ON/OFF\n" "# Im Batch-Modus werden die Article beachtet\n" -#: src/attrib.c:595 +#: src/attrib.c:601 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:596 +#: src/attrib.c:602 msgid "# show_only_unread=ON/OFF\n" msgstr "# show_only_unread=ON/OFF\n" "# nur ungelesene Artikel anzeigen\n" -#: src/attrib.c:597 +#: src/attrib.c:603 msgid "# thread_arts=NUM" msgstr "# thread_arts=ZAHL\n" "# Threading nach:" -#: src/attrib.c:604 +#: src/attrib.c:610 msgid "# show_author=NUM\n" msgstr "# show_author=ZAHL\n" "# Anzeige des From-Felds\n" -#: src/attrib.c:610 +#: src/attrib.c:616 msgid "# sort_art_type=NUM\n" msgstr "# sort_art_type=ZAHL\n" "# Artikel sortieren nach:\n" -#: src/attrib.c:628 +#: src/attrib.c:634 msgid "# sort_threads_type=NUM\n" msgstr "# sort_threads_type=ZAHL\n" "# Threads sortieren nach:\n" -#: src/attrib.c:633 +#: src/attrib.c:639 msgid "# post_proc_type=NUM\n" msgstr "# post_proc_type=ZAHL\n" "# Nachbearbeitung\n" -#: src/attrib.c:638 +#: src/attrib.c:644 msgid "# quick_kill_scope=STRING (ie. talk.*)\n" msgstr "# quick_kill_scope=STRING\n" "# Voreinstellung für Gültigkeitsbereich neuer Kill-Einträge,\n" "# z.B. talk.*\n" -#: src/attrib.c:639 +#: src/attrib.c:645 msgid "# quick_kill_expire=ON/OFF\n" msgstr "# quick_kill_expire=ON/OFF\n" "# Kill verfällt automatisch\n" -#: src/attrib.c:640 +#: src/attrib.c:646 msgid "# quick_kill_case=ON/OFF\n" msgstr "# quick_kill_case=ON/OFF\n" "# Kill beachtet Gross/Kleinschreibung\n" -#: src/attrib.c:641 +#: src/attrib.c:647 msgid "# quick_kill_header=NUM\n" msgstr "# quick_kill_header=ZAHL\n" "# Killen nach:\n" -#: src/attrib.c:642 src/attrib.c:649 +#: src/attrib.c:648 src/attrib.c:655 msgid "# 0=subj (case sensitive) 1=subj (ignore case)\n" msgstr "# 0=Subject (Gross/Kleinschreibung beachten), 1=Subject (G/K ignorieren)\n" -#: src/attrib.c:643 src/attrib.c:650 +#: src/attrib.c:649 src/attrib.c:656 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:644 src/attrib.c:651 +#: src/attrib.c:650 src/attrib.c:657 msgid "# 4=msgid 5=lines\n" msgstr "# 4=Message-ID, 5=Zeilen\n" -#: src/attrib.c:645 +#: src/attrib.c:651 msgid "# quick_select_scope=STRING\n" msgstr "# quick_select_scope=STRING\n" "# Voreinstellung für Gültigkeitsbereich neuer Auswahlregeln (Hochscoren)\n" -#: src/attrib.c:646 +#: src/attrib.c:652 msgid "# quick_select_expire=ON/OFF\n" msgstr "# quick_select_expire=ON/OFF\n" "# Regel verfällt automatisch\n" -#: src/attrib.c:647 +#: src/attrib.c:653 msgid "# quick_select_case=ON/OFF\n" msgstr "# quick_select_case=ON/OFF\n" "# Regel beachtet Gross/Kleinschreibung\n" -#: src/attrib.c:648 +#: src/attrib.c:654 msgid "# quick_select_header=NUM\n" msgstr "# quick_select_header=NUM\n" "# Auswählen (Hochscoren) nach:\n" -#: src/attrib.c:652 +#: src/attrib.c:658 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:653 +#: src/attrib.c:659 +msgid "# fcc=STRING (eg. =mailbox)\n" +msgstr "# fcc=STRING\n" + "# Datei in der eine Kopie der Mail abgelegt werden soll,# z.B: " + "=mailbox\n" + +#: src/attrib.c:660 msgid "# tex2iso_conv=ON/OFF\n" msgstr "# tex2iso_conv=ON/OFF\n" "# Automatische Umwandlung von TeX-Umlauten\n" -#: src/attrib.c:655 +#: src/attrib.c:662 msgid "# mm_network_charset=supported_charset" msgstr "# mm_network_charset=Zeichensatz\n" "# Erlaubt sind folgende:" -#: src/attrib.c:662 +#: src/attrib.c:669 msgid "# undeclared_charset=STRING (default is US-ASCII)\n" msgstr "# undeclared_charset=STRING\n" "# Voreinstellung ist US-ASCII\n" -#: src/attrib.c:664 +#: src/attrib.c:671 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:665 +#: src/attrib.c:672 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:666 +#: src/attrib.c:673 msgid "############################################################################\n" "\n" msgstr "############################################################################\n" "\n" -#: src/attrib.c:672 +#: src/attrib.c:679 msgid "# include extra headers\n" msgstr "# Zusätzliche Header einfügen\n" -#: src/attrib.c:680 +#: src/attrib.c:687 msgid "# in *sources* set post process type to shar only\n" msgstr "# in *sources* nur Nachbearbeitung mit shar\n" -#: src/attrib.c:684 +#: src/attrib.c:691 msgid "# in *binaries* do full post processing, remove tmp files\n" msgstr "# in *binaries* Nachbearbeitung, temporäre Dateien löschen\n" -#: src/attrib.c:685 +#: src/attrib.c:692 msgid "# and set Followup-To: poster\n" msgstr "# und Antwort per EMail (Followup-To: poster) anfordern\n" -#: src/cook.c:799 +#: src/cook.c:809 msgid "(unknown)" msgstr "(unbekannt)" #. #. * TODO: add to the right rule, give better explanation, -> lang.c #. -#: src/filter.c:604 src/filter.c:612 +#: src/filter.c:607 src/filter.c:615 msgid "Removed from the previous rule: " msgstr "Aus der vorigen Regel gelöscht: " #: src/lang.c:42 -#, c-format -msgid "1 Response%s" -msgstr "1 Antwort%s" +msgid "1 Response" +msgstr "1 Antwort" #: src/lang.c:46 #, c-format @@ -626,7 +631,7 @@ msgstr "Erzeuge die Datei 'active' für g msgid "Creating newsrc file...\n" msgstr "Erzeuge newsrc Datei...\n" -#: src/lang.c:127 src/lang.c:1129 +#: src/lang.c:127 src/lang.c:1122 msgid "Default" msgstr "Voreinstellung" @@ -931,7 +936,7 @@ msgstr "\n" msgid "Insecure permissions of %s (%o)" msgstr "Unsichere Zugriffsbeschränkungen auf %s (%o)" -#: src/lang.c:199 src/open.c:1100 +#: src/lang.c:199 src/newsrc.c:409 #, c-format msgid "Invalid response to GROUP command, %s" msgstr "Ungültige Antwort auf GROUP-Befehl, %s" @@ -1659,7 +1664,7 @@ msgstr "bewegt die gewählte Gruppe inner msgid "choose next group with unread news" msgstr "wählt die nächste Gruppe mit ungelesenen Artikeln" -#: src/lang.c:387 src/lang.c:1176 +#: src/lang.c:387 src/lang.c:1169 msgid "quit" msgstr "Beenden" @@ -2174,7 +2179,7 @@ msgstr "newsrc-Datei erfolgreich geschri #: src/lang.c:516 msgid "-- Next response --" -msgstr "- Nächste Antwort -" +msgstr "-- Nächste Antwort --" #: src/lang.c:517 #, c-format @@ -2250,74 +2255,69 @@ msgid "No previous unread article" msgstr "Kein vorheriger ungelesener Artikel" #: src/lang.c:535 -#, c-format -msgid "No responses%s" -msgstr "Keine Antworten%s" - -#: src/lang.c:536 msgid "No responses" msgstr "Keine Antworten" -#: src/lang.c:537 +#: src/lang.c:536 msgid "No responses to list in current thread" msgstr "Keine Antworten vorhanden im aktuellen Thread" -#: src/lang.c:538 +#: src/lang.c:537 msgid "No search string" msgstr "Kein Suchmuster" -#: src/lang.c:539 +#: src/lang.c:538 msgid "No subject" msgstr "Kein Subject" -#: src/lang.c:540 +#: src/lang.c:539 #, 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:541 +#: src/lang.c:540 #, 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:542 +#: src/lang.c:541 #, c-format msgid "%s: Terminal must have clearscreen (cl) capability\n" msgstr "%s: Terminal muss Schirmlöschen (cl) unterstützen\n" -#: src/lang.c:543 +#: src/lang.c:542 #, c-format msgid "%s: Terminal must have cursor motion (cm)\n" msgstr "%s: Terminal muss Cursor-Bewegungen unterstützen (cm)\n" -#: src/lang.c:544 +#: src/lang.c:543 #, 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:545 +#: src/lang.c:544 #, c-format msgid "No viewer found for %s/%s\n" msgstr "Kein Programm für %s/%s gefunden\n" -#: src/lang.c:546 +#: src/lang.c:545 msgid "Newsgroup does not exist on this server" msgstr "Newsgruppe existiert nicht auf diesem Server" -#: src/lang.c:547 +#: src/lang.c:546 #, c-format msgid "Group %s not found in active file" msgstr "Gruppe %s nicht in der Active-Datei gefunden" -#: src/lang.c:548 +#: src/lang.c:547 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:549 +#: src/lang.c:548 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:550 +#: src/lang.c:549 #, c-format msgid "# NNTP-server -> newsrc translation table and NNTP-server\n" "# shortname list for %s %s\n" @@ -2344,40 +2344,40 @@ msgstr "# NNTP-Server -> newsrc Übersetz "# news.ka.nu /tmp/nrc-nu kanu nu\n" "#\n" -#: src/lang.c:557 +#: src/lang.c:556 msgid "Only" msgstr "Nur" -#: src/lang.c:558 +#: src/lang.c:557 #, c-format msgid "Option not enabled. Recompile with %s." msgstr "Option nicht vorhanden. Neukompilieren mit %s." -#: src/lang.c:559 +#: src/lang.c:558 msgid "Options Menu" msgstr "Optionsmenü" -#: src/lang.c:562 +#: src/lang.c:561 #, 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:563 +#: src/lang.c:562 #, c-format msgid "Error in regex: pcre internal error %d" msgstr "Fehler im regulären Ausdruck: Interner Fehler %d des pcre" -#: src/lang.c:564 +#: src/lang.c:563 #, c-format msgid "Error in regex: study - pcre internal error %s" msgstr "Fehler im regulären Ausdruck: pcre interner Fehler %s" -#: src/lang.c:565 +#: src/lang.c:564 msgid "Post a followup..." msgstr "Schreibe eine Antwort..." #. TODO: replace hardcoded key-name in txt_post_error_ask_postpone -#: src/lang.c:567 +#: src/lang.c:566 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" @@ -2385,269 +2385,269 @@ msgstr "Ein Fehler trat beim Posten des "ein temporäres Problem ist, das später nicht mehr vorhanden ist, können Sie\n" "den Artikel zurückstellen und später mit ^O wieder hervorholen.\n" -#: src/lang.c:570 +#: src/lang.c:569 msgid "Posted articles history" msgstr "Übersicht der geposteten Artikel" -#: src/lang.c:571 +#: src/lang.c:570 #, c-format msgid "Post to newsgroup(s) [%s]> " msgstr "In Newsgruppe(n) [%s] posten> " -#: src/lang.c:572 +#: src/lang.c:571 msgid "-- post processing started --" msgstr "-- Nachbearbeitung gestartet --" -#: src/lang.c:573 +#: src/lang.c:572 msgid "-- post processing completed --" msgstr "-- Nachbearbeitung beendet --" -#: src/lang.c:574 +#: src/lang.c:573 #, c-format msgid "Post subject [%s]> " msgstr "Wähle Subject [%s]> " -#: src/lang.c:575 +#: src/lang.c:574 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:576 +#: src/lang.c:575 msgid "Posting article..." msgstr "Poste Artikel..." -#: src/lang.c:577 +#: src/lang.c:576 msgid "Post postponed articles [%%.*s]? (%s/%s/%s/%s/%s): " msgstr "Zurückgelegten Artikel [%%.*s]posten? (%s/%s/%s/%s/%s): " -#: src/lang.c:578 +#: src/lang.c:577 #, c-format msgid "Hot %s" msgstr "Wichtig/Hot %s" -#: src/lang.c:579 +#: src/lang.c:578 #, c-format msgid "Tagged %s" msgstr "%s markiert" -#: src/lang.c:580 +#: src/lang.c:579 #, c-format msgid "Untagged %s" msgstr "%s Markierung entfernt" -#: src/lang.c:581 +#: src/lang.c:580 msgid "Processing mail messages marked for deletion." msgstr "Bearbeite zum Löschen markierte EMails" -#: src/lang.c:582 +#: src/lang.c:581 msgid "Processing saved articles marked for deletion." msgstr "Bearbeite zum Löschen markierte gespeicherte Artikel." -#: src/lang.c:583 +#: src/lang.c:582 #, 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:584 +#: src/lang.c:583 msgid "Article unchanged, abort mailing?" msgstr "Mail unverändert, Absenden abbrechen?" -#: src/lang.c:585 +#: src/lang.c:584 #, c-format msgid "Do you want to see postponed articles (%d)?" msgstr "Wollen Sie die zurückgestellten Artikel sehen (%d)?" -#: src/lang.c:587 +#: src/lang.c:586 msgid "Add quick kill filter?" msgstr "Artikel schnell (laut Voreinstellungen) killen?" -#: src/lang.c:588 +#: src/lang.c:587 msgid "Add quick selection filter?" msgstr "Filterregel (hochscoren) (laut Voreinstellungen) hinzufügen?" -#: src/lang.c:589 +#: src/lang.c:588 msgid "Do you really want to quit?" msgstr "Möchten Sie das Programm wirklich beenden?" -#: src/lang.c:590 +#: src/lang.c:589 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:591 +#: src/lang.c:590 msgid "You have tagged articles in this group - quit anyway?" msgstr "Es befinden sich markierte Artikel in der Gruppe, trotzdem beenden?" -#: src/lang.c:592 +#: src/lang.c:591 #, c-format msgid "%s=quit, %s=edit, %s=postpone: " msgstr "%s=Ende, %s=bearbeiten, %s=zurücklegen: " -#: src/lang.c:593 +#: src/lang.c:592 #, c-format msgid "%s=quit %s=edit %s=save kill description: " msgstr "%s=Abbrechen %s=Editieren %s=Kill-Filter speichern: " -#: src/lang.c:594 +#: src/lang.c:593 #, c-format msgid "%s=quit %s=edit %s=save select description: " msgstr " %s=Abbrechen %s=Editieren %s=Filter (hot) speichern: " -#: src/lang.c:595 +#: src/lang.c:594 msgid "Do you really want to quit without saving your configuration?" msgstr "Wirklich ohne Speichern der Konfiguration beenden?" -#: src/lang.c:598 +#: src/lang.c:597 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:599 +#: src/lang.c:598 msgid "Do you want to abort this operation?" msgstr "Wollen Sie diese Operation abbrechen?" -#: src/lang.c:600 +#: src/lang.c:599 msgid "Do you want to exit tin immediately?" msgstr "Wollen Sie tin augenblicklich verlassen?" -#: src/lang.c:601 +#: src/lang.c:600 msgid "Read response> " msgstr "Lese Antwort> " -#: src/lang.c:602 +#: src/lang.c:601 msgid "Reading ('q' to quit)..." msgstr "Lesen ('q' zum Beenden)..." -#: src/lang.c:603 +#: src/lang.c:602 #, c-format msgid "Reading %sarticles..." msgstr "Lese %sArtikel..." -#: src/lang.c:604 +#: src/lang.c:603 #, c-format msgid "Reading %sattributes file...\n" msgstr "Lese %sAttribute-Datei...\n" -#: src/lang.c:605 +#: src/lang.c:604 #, c-format msgid "Reading %sconfig file...\n" msgstr "Lese %sKonfigurations-Datei...\n" -#: src/lang.c:606 +#: src/lang.c:605 msgid "Reading filter file...\n" msgstr "Lese Filter-Datei...\n" -#: src/lang.c:607 +#: src/lang.c:606 #, c-format msgid "Reading %s groups..." msgstr "Lese %s Gruppen..." -#: src/lang.c:608 +#: src/lang.c:607 msgid "Reading input history file...\n" msgstr "Lese Eingabe-History...\n" -#: src/lang.c:609 +#: src/lang.c:608 msgid "Reading keymap file...\n" msgstr "Lese Tastaturbelegungen...\n" -#: src/lang.c:610 +#: src/lang.c:609 msgid "Reading groups from active file... " msgstr "Lese Gruppen aus dem Active... " -#: src/lang.c:611 +#: src/lang.c:610 msgid "Reading groups from newsrc file... " msgstr "Lese Gruppen aus der newsrc-Datei... " -#: src/lang.c:612 +#: src/lang.c:611 msgid "Reading newsgroups file... " msgstr "Lese Newsgroups-Datei... " -#: src/lang.c:613 +#: src/lang.c:612 msgid "Reading newsrc file..." msgstr "Lese newsrc-Datei..." -#: src/lang.c:614 +#: src/lang.c:613 #, c-format msgid "Bogus group %s removed." msgstr "Nicht vorhandene Gruppe %s entfernt." -#: src/lang.c:615 +#: src/lang.c:614 #, c-format msgid "Error: rename %s to %s" msgstr "Fehler: Benenne %s in %s" -#: src/lang.c:616 +#: src/lang.c:615 msgid "Reply to author..." msgstr "Mailantwort an Autor..." -#: src/lang.c:617 +#: src/lang.c:616 msgid "Repost" msgstr "Reposte" -#: src/lang.c:618 +#: src/lang.c:617 msgid "Reposting article..." msgstr "Wiederholtes posten des Artikels..." -#: src/lang.c:619 +#: src/lang.c:618 #, c-format msgid "Repost article(s) to group(s) [%s]> " msgstr "Wiederholtes posten de(s|r) Artikel(s) in [%s]> " -#: src/lang.c:620 +#: src/lang.c:619 msgid "Reset newsrc?" msgstr "newsrc zurücksetzen?" -#: src/lang.c:621 +#: src/lang.c:620 msgid "Responses have been directed to the following newsgroups" msgstr "Antworten werden in folgende Gruppen gepostet" -#: src/lang.c:622 +#: src/lang.c:621 #, c-format msgid "Responses have been directed to poster. %s=mail, %s=post, %s=quit: " msgstr "Antwort per Mail wurde angefordert. %s=Mail, %s=post, %s=beenden: " -#: src/lang.c:623 +#: src/lang.c:622 #, c-format -msgid "RespNo %4d of %4d%s" -msgstr "Antw. %4d von %4d%s" +msgid "RespNo %4d of %4d" +msgstr "Antw. %4d von %4d" -#: src/lang.c:624 +#: src/lang.c:623 msgid "Press to continue..." msgstr "Drücken sie um fortzufahren..." -#: src/lang.c:626 +#: src/lang.c:625 #, c-format msgid "Select From [%-*.*s] (y/n): " msgstr "Wähle From [%-*.*s] (j/n): " -#: src/lang.c:627 +#: src/lang.c:626 msgid "Select Lines: (num): " msgstr "Wähle Zeilen: (num): " -#: src/lang.c:628 +#: src/lang.c:627 msgid "Auto-select Article Menu" msgstr "Filter Menü (Bewertung/Score erhöhen)" -#: src/lang.c:629 +#: src/lang.c:628 #, c-format msgid "Select Msg-Id [%-*.*s] (f/l/o/n): " msgstr "Wähle Msg-Id [%-*.*s] (v/l/n/n): " -#: src/lang.c:630 +#: src/lang.c:629 msgid "Select pattern scope: " msgstr "Wähle Muster : " -#: src/lang.c:631 +#: src/lang.c:630 #, c-format msgid "Select Subject [%-*.*s] (y/n): " msgstr "Wähle Subject [%-*.*s] (j/n): " -#: src/lang.c:632 +#: src/lang.c:631 msgid "Select text pattern : " msgstr "Wähle Textmuster : " -#: src/lang.c:633 +#: src/lang.c:632 msgid "Select time in days : " msgstr "Wähle Zeit in Tagen : " -#: src/lang.c:634 +#: src/lang.c:633 #, c-format msgid "# %s server configuration file\n" "# This file was automatically saved by %s %s %s (\"%s\")\n" @@ -2667,218 +2667,218 @@ msgstr "# %s Server Konfigurationsdatei\ "############################################################################\n" "\n" -#: src/lang.c:640 +#: src/lang.c:639 msgid "Showing unread groups only" msgstr "Zeige nur Gruppen mit ungelesenen Artikeln" -#: src/lang.c:641 +#: src/lang.c:640 msgid "Subject: line (ignore case) " msgstr "Subject: Z. (Groß-Kl. ign.) " -#: src/lang.c:642 +#: src/lang.c:641 msgid "Subject: line (case sensitive)" msgstr "Subject: Z. (Groß-Kl. beachten) " -#: src/lang.c:643 +#: src/lang.c:642 msgid "Save" msgstr "Speichern" -#: src/lang.c:644 +#: src/lang.c:643 #, c-format msgid "Save '%s' (%s/%s)?" msgstr "'%s' (%s/%s) speichern?" -#: src/lang.c:645 +#: src/lang.c:644 msgid "Save configuration before continuing?" msgstr "Zuerst Konfiguration speichern und danach fortfahren?" -#: src/lang.c:646 +#: src/lang.c:645 msgid "Save filename> " msgstr "Name der zu speichernden Datei> " -#: src/lang.c:647 +#: src/lang.c:646 msgid "Saved" msgstr "Gespeichert" -#: src/lang.c:648 +#: src/lang.c:647 #, c-format msgid "%4d unread (%4d hot) %s in %s\n" msgstr "%4d ungelesene (%4d 'hot') %s in %s\n" -#: src/lang.c:649 +#: src/lang.c:648 #, c-format msgid "Saved %s...\n" msgstr "%s gespeichert...\n" -#: src/lang.c:650 +#: src/lang.c:649 msgid "Nothing was saved" msgstr "Nichts gespeichert" -#: src/lang.c:651 +#: src/lang.c:650 #, c-format msgid "\n" "%s %d %s from %d %s\n" msgstr "\n" "%s %d %s aus %d %s\n" -#: src/lang.c:652 +#: src/lang.c:651 #, c-format msgid "-- %s saved to %s%s --" msgstr "-- %s nach %s%s gespeichert --" -#: src/lang.c:653 +#: src/lang.c:652 #, c-format msgid "-- %s saved to %s - %s --" msgstr "-- %s gespeichert als %s - %s --" -#: src/lang.c:654 +#: src/lang.c:653 msgid "Saving..." msgstr "Speichere..." -#: src/lang.c:655 +#: src/lang.c:654 #, c-format msgid "%s: Screen initialization failed" msgstr "%s: Initialisierung des Bildschirms fehlgeschlagen" -#: src/lang.c:656 +#: src/lang.c:655 #, c-format msgid "%s: screen is too small\n" msgstr "%s: Anzeige ist zu klein\n" -#: src/lang.c:657 +#: src/lang.c:656 #, c-format msgid "screen is too small, %s is exiting\n" msgstr "Anzeige zu klein, %s beendet sich\n" -#: src/lang.c:658 +#: src/lang.c:657 #, c-format msgid "Search backwards [%s]> " msgstr "Suche rückwärts [%s]> " -#: src/lang.c:659 +#: src/lang.c:658 #, c-format msgid "Search body [%s]> " msgstr "Durchsuche Artikelinhalt [%s]> " -#: src/lang.c:660 +#: src/lang.c:659 #, c-format msgid "Search forwards [%s]> " msgstr "Suche vorwärts [%s]> " -#: src/lang.c:661 +#: src/lang.c:660 msgid "Searching..." msgstr "Suche..." -#: src/lang.c:662 +#: src/lang.c:661 #, c-format msgid "Searching article %d of %d ('q' to abort)..." msgstr "Suche Artikel %d von %d ('q' zum abbrechen)..." -#: src/lang.c:663 +#: src/lang.c:662 msgid "Select article> " msgstr "Wähle Artikel> " -#: src/lang.c:664 +#: src/lang.c:663 msgid "Select option number before text or use arrow keys and . 'q' to quit." msgstr "Wähle Optionsnummer, oder benutze die Cursor Tasten und . 'q' zum beenden." -#: src/lang.c:665 +#: src/lang.c:664 msgid "Select group> " msgstr "Wähle Gruppe> " -#: src/lang.c:666 +#: src/lang.c:665 #, c-format msgid "Enter selection pattern [%s]> " msgstr "Nenne das Auswahlmuster [%s]> " -#: src/lang.c:667 +#: src/lang.c:666 msgid "Select thread > " msgstr "Wähle thread > " -#: src/lang.c:668 +#: src/lang.c:667 #, 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 DETAILIERTEN Fehlerbericht an %s\n" -#: src/lang.c:669 +#: src/lang.c:668 msgid "servers active-file" msgstr "Die 'active' Datei des Servers" -#: src/lang.c:670 +#: src/lang.c:669 msgid "Cannot move into new newsgroups. Subscribe first..." msgstr "Kann die Newsgruppe nicht öffnen. Sie muss erst abonniert werden..." -#: src/lang.c:671 +#: src/lang.c:670 msgid "" msgstr "" -#: src/lang.c:672 +#: src/lang.c:671 #, c-format msgid "Starting: (%s)" msgstr "Starte: (%s)" -#: src/lang.c:673 +#: src/lang.c:672 #, c-format msgid "List Thread (%d of %d)" msgstr "Zeige Thread (%d von %d)" -#: src/lang.c:674 +#: src/lang.c:673 #, c-format msgid "Thread (%.*s)" msgstr "Thread (%.*s)" -#: src/lang.c:675 +#: src/lang.c:674 msgid "Enter wildcard subscribe pattern> " msgstr "Wildcardmuster für zu abonnierende Gruppen> " -#: src/lang.c:676 +#: src/lang.c:675 #, c-format msgid "subscribed to %d groups" msgstr "%d Gruppen sind abonniert" -#: src/lang.c:677 +#: src/lang.c:676 #, c-format msgid "Subscribed to %s" msgstr "%s wurde abonniert" -#: src/lang.c:678 +#: src/lang.c:677 msgid "Subscribing... " msgstr "Abonniere... " -#: src/lang.c:679 +#: src/lang.c:678 msgid "Repost or supersede article(s) [%%.*s]? (%s/%s/%s): " msgstr "Artikel erneut posten oder überschreiben [%%.*s]? (%s/%s/%s): " -#: src/lang.c:680 +#: src/lang.c:679 #, c-format msgid "Supersede article(s) to group(s) [%s]> " msgstr "Supersede (überschreibe) Artikel in den Gruppen [%s]> " -#: src/lang.c:681 +#: src/lang.c:680 msgid "Superseding article ..." msgstr "Überschreibe Artikel ..." -#: src/lang.c:682 +#: src/lang.c:681 #, 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:684 +#: src/lang.c:683 #, c-format msgid "%d days" msgstr "%d Tage" -#: src/lang.c:685 +#: src/lang.c:684 msgid "" msgstr "" -#: src/lang.c:686 +#: src/lang.c:685 msgid "# Default action/prompt strings\n" msgstr "# Voreingestellte Aktion/zeige Zeichenkette\n" -#: src/lang.c:687 +#: src/lang.c:686 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" @@ -2894,262 +2894,261 @@ msgstr "# Voreinstellung für schnellen ( "# case=ON/OFF ON=Filter case sensitive OFF=ignoriere case\n" "# expire=ON/OFF ON=Verfallen nach default_filter_days OFF=verfällt nie\n" -#: src/lang.c:700 +#: src/lang.c:699 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:701 +#: src/lang.c:700 msgid "# Host & time info used for detecting new groups (don't touch)\n" msgstr "# Host & Zeit Info benutzen um neue Gruppen zu finden (nicht ändern)\n" -#: src/lang.c:702 +#: src/lang.c:701 msgid "There is no news\n" msgstr "Es gibt keine neuen Artikel\n" -#: src/lang.c:703 +#: src/lang.c:702 msgid "Thread" msgstr "Thread" -#: src/lang.c:704 +#: src/lang.c:703 msgid "Thread Level Commands" msgstr "Thread Level Kommandos" -#: src/lang.c:705 +#: src/lang.c:704 msgid "Thread deselected" msgstr "Thread nicht mehr ausgewählt" -#: src/lang.c:706 +#: src/lang.c:705 msgid "Thread selected" msgstr "Thread ausgewählt" -#: src/lang.c:707 +#: src/lang.c:706 msgid "threads" msgstr "Threads" -#: src/lang.c:708 +#: src/lang.c:707 msgid "Thread range" msgstr "Thread-Bereich" -#: src/lang.c:709 +#: src/lang.c:708 msgid "thread" msgstr "Thread" -#: src/lang.c:710 +#: src/lang.c:709 #, c-format -msgid "%sThread %4s of %4s" -msgstr "%sThread %4s v. %4s" +msgid "Thread %4s of %4s" +msgstr "Thread %4s v. %4s" -#: src/lang.c:711 +#: src/lang.c:710 msgid "Threading articles..." msgstr "Sortiere Artikel..." -#: src/lang.c:712 +#: src/lang.c:711 #, c-format msgid "Toggled word highlighting %s" msgstr "Wort-Hervorhebung: %s" -#: src/lang.c:713 +#: src/lang.c:712 msgid "Toggled rot13 encoding" msgstr "ROT13-Kodierung (de)aktiviert" -#: src/lang.c:714 +#: src/lang.c:713 #, c-format msgid "Toggled german TeX encoding %s" msgstr "Deutsche TeX-Dekodierung: %s" -#: src/lang.c:715 +#: src/lang.c:714 #, c-format msgid "Toggled tab-width to %d" msgstr "Tabulatorweite zu %d gewechselt" -#: src/lang.c:716 +#: src/lang.c:715 #, c-format msgid "%d Trying to dotlock %s" msgstr "%d Versuche %s zu dotlocken" -#: src/lang.c:717 +#: src/lang.c:716 #, c-format msgid "%d Trying to lock %s" msgstr "%d Versuche %s zu locken" -#: src/lang.c:718 +#: src/lang.c:717 msgid " h=help\n" msgstr " h=Hilfe\n" -#: src/lang.c:720 +#: src/lang.c:719 msgid "Unlimited" msgstr "Unbegrenzt" -#: src/lang.c:721 +#: src/lang.c:720 msgid "Enter wildcard unsubscribe pattern> " msgstr "Wildcardmuster für abzubestellende Gruppen> " -#: src/lang.c:722 +#: src/lang.c:721 #, c-format msgid "Error decoding %s : %s" msgstr "Fehler beim Dekodieren von %s : %s" -#: src/lang.c:723 +#: src/lang.c:722 msgid "No end." msgstr "Kein Ende." -#: src/lang.c:724 +#: src/lang.c:723 #, c-format msgid "%s successfully decoded." msgstr "%s erfolgreich dekodiert" -#: src/lang.c:725 +#: src/lang.c:724 #, 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:726 +#: src/lang.c:725 msgid "unread " msgstr "ungelesen " -#: src/lang.c:727 +#: src/lang.c:726 #, c-format msgid "unsubscribed from %d groups" msgstr "%d Gruppen abbestellt" -#: src/lang.c:728 +#: src/lang.c:727 #, c-format msgid "Unsubscribed from %s" msgstr "%s wurde abbestellt" -#: src/lang.c:729 +#: src/lang.c:728 msgid "Unsubscribing... " msgstr "Abbestellen... " -#: src/lang.c:730 +#: src/lang.c:729 msgid "Unthreading articles..." msgstr "Aktuelle Sortierung der Artikel aufheben..." -#: src/lang.c:731 +#: src/lang.c:730 msgid "Updated" msgstr "Aktualisiert" -#: src/lang.c:732 +#: src/lang.c:731 msgid "Updating" msgstr "Aktualisiere" -#: src/lang.c:733 +#: src/lang.c:732 #, c-format msgid "Opening %s\n" msgstr "Öffne %s\n" -#: src/lang.c:734 +#: src/lang.c:733 msgid "No more URL's in this article" msgstr "Keine weiteren URLs im Artikel" -#: src/lang.c:735 +#: src/lang.c:734 msgid "Use MIME display program for this message?" msgstr "MIME-Anzeigeprogramm für diese Nachricht benutzen?" -#: src/lang.c:736 +#: src/lang.c:735 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:737 +#: src/lang.c:736 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:738 +#: src/lang.c:737 msgid " -q don't check for new newsgroups" msgstr " -q Überprüfe nicht auf neue Newsgruppen" -#: src/lang.c:739 +#: src/lang.c:738 msgid " -X don't save any files on quit" msgstr " -X Speicher keine Dateien beim Beenden" -#: src/lang.c:740 +#: src/lang.c:739 msgid " -d don't show newsgroup descriptions" msgstr " -d Zeige keine Newsgruppenbeschreibungen" -#: src/lang.c:741 +#: src/lang.c:740 msgid " -G limit get only limit articles/group" msgstr " -G limit Hole nur 'limit' Artikel pro Newsgruppe" -#: src/lang.c:742 +#: src/lang.c:741 #, c-format msgid " -H help information about %s" msgstr " -H Hilfe und Informationen über %s" -#: src/lang.c:743 +#: src/lang.c:742 msgid " -h this help message" msgstr " -h Diese Hilfeseite" -#: src/lang.c:744 +#: src/lang.c:743 #, 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:745 +#: src/lang.c:744 msgid " -u update index files (batch mode)" msgstr " -u Erneuere Index-Dateien (Batch-Modus)" -#: src/lang.c:746 +#: src/lang.c:745 #, c-format msgid " -m dir mailbox directory [default=%s]" msgstr " -m Verz. Mailbox-Verzeichnis [Standard=%s]" -#: src/lang.c:747 +#: src/lang.c:746 #, c-format msgid "\n" "Mail bug reports/comments to %s" msgstr "\n" "Schicken Sie Fehlerberichte/Kommentare an %s" -#: src/lang.c:748 +#: src/lang.c:747 msgid " -N mail new news to your posts (batch mode)" msgstr " -N Maile neue Artikel an sich selbst (Batch-Modus)" -#: src/lang.c:749 +#: src/lang.c:748 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:750 +#: src/lang.c:749 #, c-format msgid " -f file subscribed to newsgroups file [default=%s]" msgstr " -f Datei 'Datei' als .newsrc-Datei nutzen [Standard=%s]" -# TRANSLATION MISSING -#: src/lang.c:751 +#: src/lang.c:750 msgid " -x no posting mode" -msgstr "" +msgstr " -x Posten nicht erlaubt Modus" -#: src/lang.c:752 +#: src/lang.c:751 msgid " -w post an article and exit" msgstr " -w Postet einen Artikel und beendet tin" -#: src/lang.c:753 +#: src/lang.c:752 msgid " -o post all postponed articles and exit" msgstr " -o Postet alle zurückgelegten Artikel und beendet tin" -#: src/lang.c:754 +#: src/lang.c:753 msgid " -r read news remotely from default NNTP server" msgstr " -r Lese Artikel vom Standard-NNTP-Server" -#: src/lang.c:755 +#: src/lang.c:754 msgid " -R read news saved by -S option" msgstr " -R Lese Artikel, die durch -S gespeichert wurden" -#: src/lang.c:756 +#: src/lang.c:755 #, c-format msgid " -s dir save news directory [default=%s]" msgstr " -s Verz. Verzeichnis zum News-Speichern [Standard=%s]" -#: src/lang.c:757 +#: src/lang.c:756 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:758 +#: src/lang.c:757 msgid " -z start if any unread news" msgstr " -z Starte, wenn ungelesene Artikel vorliegen" -#: src/lang.c:759 +#: src/lang.c:758 #, c-format msgid "A Usenet reader.\n" "\n" @@ -3158,37 +3157,37 @@ msgstr "Ein Usenet-Client.\n" "\n" "Syntax: %s [Optionen] [Newsgruppe[,...]]" -#: src/lang.c:760 +#: src/lang.c:759 msgid " -v verbose output for batch mode options" msgstr " -v Ausführliche Ausgabe für Batch-Modus-Optionen" -#: src/lang.c:761 +#: src/lang.c:760 msgid " -V print version & date information" msgstr " -V Gebe Versions- und Datumsinformationen aus" -#: src/lang.c:762 +#: src/lang.c:761 #, c-format msgid "%s only useful without batch mode operations\n" msgstr "%s ist nur sinnvoll ohne Batchmodeoperationen\n" -#: src/lang.c:763 +#: src/lang.c:762 #, c-format msgid "%s only useful for batch mode operations\n" msgstr "%s ist nur sinnvoll für Batchmodeoperationen\n" -#: src/lang.c:765 +#: src/lang.c:764 #, c-format msgid "\n" "%s%d out of range (0 - %d). Reset to 0" msgstr "\n" "%s%d ist außerhalb der Grenzen (0 - %d). Zurücksetzen auf 0" -#: src/lang.c:766 +#: src/lang.c:765 #, c-format msgid "View '%s' (%s/%s)?" msgstr "'%s' (%s/%s) anzeigen?" -#: src/lang.c:768 +#: src/lang.c:767 #, c-format msgid "\n" "Warning: posting exceeds %d columns. Line %d is the first long one:\n" @@ -3197,26 +3196,26 @@ msgstr "\n" "Warnung: Artikel überschreitet %d Spalten. Zeile %d ist die erste lange:\n" "%-100s\n" -#: src/lang.c:769 +#: src/lang.c:768 msgid "\n" "Warning: article unchanged after editing\n" msgstr "\n" "Warnung: Artikel wurde im Editor nicht verändert\n" -#: src/lang.c:770 +#: src/lang.c:769 msgid "\n" "Warning: \"Subject:\" contains only whitespaces.\n" msgstr "\n" "Warnung: \"Subject:\" enthält nur Leerzeichen.\n" -#: src/lang.c:771 +#: src/lang.c:770 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:773 +#: src/lang.c:772 msgid "\n" "Warning: Article has \"References:\" but \"Subject:\" does not begin\n" " with \"Re: \" and does not contain \"(was:\".\n" @@ -3224,7 +3223,7 @@ msgstr "\n" "Warnung: Artikel hat \"References:\" aber \"Subject:\" beginnt nicht\n" " mit \"Re: \" and enthält auch kein \"(was:\".\n" -#: src/lang.c:776 +#: src/lang.c:775 msgid "Read carefully!\n" "\n" " You are about to cancel an article seemingly written by you. This will " @@ -3244,7 +3243,7 @@ msgstr "Sorgfältig lesen!\n" "Das ist der Artikel, den sie canceln (löschen) wollen:\n" "\n" -#: src/lang.c:780 +#: src/lang.c:779 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" @@ -3256,7 +3255,7 @@ msgstr "\n" " Artikel zu übertragen. Falls durch diesen inews eine Signatur\n" " angehängt wird, so kann diese nicht korrekt kodiert werden.\n" -#: src/lang.c:785 +#: src/lang.c:784 #, c-format msgid "\n" "\n" @@ -3269,7 +3268,7 @@ msgstr "\n" "Einige Einstellungen in Ihrem %s-File haben sich geändert!\n" "Lesen sie \"WHATSNEW\", usw....\n" -#: src/lang.c:787 +#: src/lang.c:786 #, c-format msgid "\n" "\n" @@ -3281,7 +3280,7 @@ msgstr "\n" "Evtl. werden Einstellungen in Ihrem %s-File nicht erkannt\n" "oder ändern sich!\n" -#: src/lang.c:790 +#: src/lang.c:789 #, c-format msgid "Warning: tin wrote fewer groups to your\n" "\t%s\n" @@ -3294,19 +3293,19 @@ msgstr "Warnung: tin hat weniger Gruppen "währenddessen abbestellt haben, ist ein Fehler aufgetreten und Sie sollten\n" "ihre %s wiederherstellen, bevor Sie tin nochmal starten!\n" -#: src/lang.c:794 +#: src/lang.c:793 #, 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:795 +#: src/lang.c:794 #, c-format msgid "Warning: Only %d out of %d articles were saved" msgstr "Warnung: Nur %d von %d Artikeln gespeichert" -#: src/lang.c:796 +#: src/lang.c:795 #, c-format msgid "\n" "Warning: Your signature is longer than %d lines. Since signatures usually " @@ -3320,48 +3319,48 @@ msgstr "\n" " nützlichen Informationen enthalten, sollten sie so kurz wie möglich\n" " gehalten werden.\n" -#: src/lang.c:800 +#: src/lang.c:799 #, 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:801 +#: src/lang.c:800 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:802 +#: src/lang.c:801 msgid "Writing attributes file..." msgstr "Schreibe Datei mit den Eigenschaften der Newsgruppen..." -#: src/lang.c:804 +#: src/lang.c:803 #, c-format -msgid "%d Responses%s" -msgstr "%d Antworten%s" +msgid "%d Responses" +msgstr "%d Antworten" -#: src/lang.c:806 +#: src/lang.c:805 #, c-format msgid "Added %d %s" msgstr "%d %s hinzugefügt" -#: src/lang.c:807 +#: src/lang.c:806 msgid "No unsubscribed groups to show" msgstr "Keine nicht abonnierte Gruppen gefunden" -#: src/lang.c:808 +#: src/lang.c:807 msgid "Showing subscribed to groups only" msgstr "Zeige nur abonnierte Gruppen" -#: src/lang.c:809 +#: src/lang.c:808 msgid "Yes " msgstr "Ja " -#: src/lang.c:810 +#: src/lang.c:809 msgid " You have mail\n" msgstr " Sie haben Mail\n" -#: src/lang.c:815 +#: src/lang.c:814 #, c-format msgid "\n" "Warning: Posting is in %s and contains characters which are not\n" @@ -3380,16 +3379,16 @@ msgstr "\n" " entfernen oder MM_NETWORK_CHARSET im M)neu auf einen\n" " passenderen Wert setzen.\n" -#: src/lang.c:826 +#: src/lang.c:825 #, c-format msgid "Redefined key %s '%s' -> '%s'\n" msgstr "Neubelegung %s '%s' -> '%s'\n" -#: src/lang.c:827 +#: src/lang.c:826 msgid " -D debug mode 1=NNTP 2=ALL" msgstr " -D Debug-Modus 1=NNTP 2=ALLES" -#: src/lang.c:831 +#: src/lang.c:830 msgid "Read carefully!\n" "\n" " You are about to cancel an article seemingly not written by you. This " @@ -3415,11 +3414,11 @@ msgstr "Sorgfältig lesen!\n" "Dies ist der Artikel, den Sie canceln (löschen) wollen:\n" "\n" -#: src/lang.c:840 +#: src/lang.c:839 msgid "toggle color" msgstr "Farben ein/aus" -#: src/lang.c:841 +#: src/lang.c:840 msgid "# For color-adjust use the following numbers\n" "# 0-black 1-red 2-green 3-brown\n" "# 4-blue 5-pink 6-cyan 7-white\n" @@ -3438,361 +3437,352 @@ msgstr "# Für die Farbanpassung benutzen "# Eine '-1' wird als Voreinstellung interpretiert (der Vordergrund ist\n" "# normalerweise weiß und der Hintergrund schwarz)\n" -#: src/lang.c:849 +#: src/lang.c:848 msgid " -a toggle color flag" msgstr " -a Farbe ein- oder ausschalten" -#: src/lang.c:853 +#: src/lang.c:852 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:854 +#: src/lang.c:853 #, 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:855 +#: src/lang.c:854 #, 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:857 +#: src/lang.c:856 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:858 +#: src/lang.c:857 #, 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:859 +#: src/lang.c:858 #, 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:860 +#: src/lang.c:859 #, 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:864 +#: src/lang.c:863 #, c-format msgid "%d files successfully written from %d articles. %d %s occurred." msgstr "%d Dateien aus %d Artikeln erfolgreich geschrieben. %d %s traten auf" -#: src/lang.c:865 +#: src/lang.c:864 msgid "Missing parts." msgstr "Teile fehlen." -#: src/lang.c:866 +#: src/lang.c:865 msgid "No beginning." msgstr "Kein Anfang." -#: src/lang.c:867 +#: src/lang.c:866 msgid "No data." msgstr "Keine Daten." -#: src/lang.c:868 +#: src/lang.c:867 msgid "Unknown error." msgstr "Unbekannter Fehler." -#: src/lang.c:870 +#: src/lang.c:869 #, c-format msgid "\tChecksum of %s (%ld %s)" msgstr "\tPrüfsumme für %s (%ld %s)" -#: src/lang.c:874 +#: src/lang.c:873 msgid "Reading mail active file... " msgstr "Lese EMail-Active-Datei... " -#: src/lang.c:875 +#: src/lang.c:874 msgid "Reading mailgroups file... " msgstr "Lese Mailgruppen-Datei... " -#: src/lang.c:879 +#: src/lang.c:878 msgid "perform PGP operations on article" msgstr "wendet PGP auf den Artikel an" -#: src/lang.c:880 +#: src/lang.c:879 msgid "Add key(s) to public keyring?" msgstr "Schlüssel dem Öffentlichen Schlüsselring hinzufügen?" -#: src/lang.c:881 +#: src/lang.c:880 #, c-format msgid "%s=encrypt, %s=sign, %s=both, %s=quit: " msgstr "%s=verschlüsseln, %s=signieren, %s=beides, %s=Ende: " -#: src/lang.c:882 +#: src/lang.c:881 #, c-format msgid "%s=sign, %s=sign & include public key, %s=quit: " msgstr "%s=signiere, %s=signiere & füge öffentl. Schlüssel hinzu, %s=Ende: " -#: src/lang.c:883 +#: src/lang.c:882 #, c-format msgid "PGP has not been set up (can't open %s)" msgstr "PGP Wurde nicht konfiguriert (kann %s nicht öffnen)" -#: src/lang.c:884 +#: src/lang.c:883 msgid "Article not signed and no public keys found" msgstr "Artikel ist nicht signiert; keine öffentlichen Schlüssel gefunden" -#: src/lang.c:886 +#: src/lang.c:885 #, 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=Menu, %s=posten, " "%s=zurücklegen: " -#: src/lang.c:887 +#: src/lang.c:886 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:888 +#: src/lang.c:887 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=Menu, %s=posten, %s=zurücklegen " "[%%.*s]: " -#: src/lang.c:890 +#: src/lang.c:889 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "%s=Ende, %s=bearbeiten, %s=pgp, %s=Menu, %s=posten, %s=zurücklegen: " -#: src/lang.c:891 +#: src/lang.c:890 msgid "%s=quit, %s=edit, %s=pgp, %s=send [%%.*s]: " msgstr "%s=Ende, %s=bearbeiten, %s=pgp, %s=verschicken [%%.*s]: " -#: src/lang.c:892 +#: src/lang.c:891 msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone [%%.*s]: " msgstr "%s=Ende, %s=bearbeiten, %s=pgp, %s=Menu, %s=posten, %s=zurücklegen [%%.*s]: " -#: src/lang.c:896 +#: src/lang.c:895 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone: " msgstr "%s=Ende, %s=bearbeiten, %s=ispell, %s=Menü, %s=posten, %s=zurücklegen: " -#: src/lang.c:897 +#: src/lang.c:896 msgid "%s=quit, %s=edit, %s=ispell, %s=send [%%.*s]: " msgstr "%s=Ende, %s=bearbeiten, %s=ispell, %s=verschicken [%%.*s]: " -#: src/lang.c:898 +#: src/lang.c:897 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:900 +#: src/lang.c:899 #, c-format msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: " msgstr "%s=Ende, %s=bearbeiten, %s=Menu, %s=posten, %s=zurücklegen: " -#: src/lang.c:901 +#: src/lang.c:900 msgid "%s=quit, %s=edit, %s=send [%%.*s]: " msgstr "%s=Ende, %s=bearbeiten, %s=verschicken [%%.*s]: " -#: src/lang.c:902 +#: src/lang.c:901 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:908 -#, c-format -msgid "Environment variable %s not found. Set and retry..." -msgstr "Umgebungsvariable %s nicht gefunden. Setzen und nochmal versuchen..." - -#: src/lang.c:909 -msgid " -B BBS mode. File operations limited to home directories." -msgstr " -B BBS-Modus. Datei-Operationen limitiert auf das Home-Verzeichnis." - -#: src/lang.c:917 +#: src/lang.c:910 msgid "Try cache_overview_files to speed up things.\n" msgstr "Setze cache_overview_files um das lesen zu beschleubigen.\n" -#: src/lang.c:918 +#: src/lang.c:911 msgid "Tin will use local index files instead.\n" msgstr "Tin wird lokale index files benutzen.\n" -#: src/lang.c:919 +#: src/lang.c:912 msgid "Cannot find NNTP server name" msgstr "Kann den Namen des NNTP Servers nicht finden" -#: src/lang.c:920 +#: src/lang.c:913 #, c-format msgid "Connecting to %s:%d..." msgstr "Verbinde mit %s:%d..." -#: src/lang.c:921 +#: src/lang.c:914 msgid "Disconnecting from server...\n" msgstr "Trenne Verbindung zum Server...\n" -#: src/lang.c:922 +#: src/lang.c:915 #, c-format msgid "Wrong newsgroup name in response of GROUP command, %s for %s" msgstr "Falsche Newsgruppe in Antwort auf GROUP-Befehl, %s statt %s" -#: src/lang.c:923 +#: src/lang.c:916 #, c-format msgid "Failed to connect to NNTP server %s. Exiting..." msgstr "Konnte nicht zum NNTP Server %s verbinden. Beende..." -#: src/lang.c:924 src/nntplib.c:975 +#: src/lang.c:917 msgid "205 Closing connection" msgstr "205 Schließe Verbindung" -#: src/lang.c:925 +#: src/lang.c:918 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:926 +#: src/lang.c:919 msgid "Connection to news server has timed out. Reconnect?" msgstr "Die Verbindung zum Newsserver wurde unterbrochen. Wieder verbinden?" -#: src/lang.c:927 +#: src/lang.c:920 #, 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:928 +#: src/lang.c:921 msgid " -A force authentication on connect" msgstr " -A Erzwinge Anmeldung bei Verbindung" -#: src/lang.c:929 +#: src/lang.c:922 #, 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:930 +#: src/lang.c:923 #, 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:931 +#: src/lang.c:924 msgid " -Q quick start. Same as -nqd" msgstr " -Q Schnellstart. Das Selbe wie -nqd" -#: src/lang.c:932 +#: src/lang.c:925 msgid " -l use only LIST instead of GROUP (-n) command" msgstr " -l Benutze nur das LIST anstelle vom GROUP-Kommando (-n)" -#: src/lang.c:933 +#: src/lang.c:926 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:935 +#: src/lang.c:928 #, c-format msgid "%s/tcp: Unknown service.\n" msgstr "%s/tcp: Unbekannter Service.\n" -#: src/lang.c:938 +#: src/lang.c:931 msgid "\n" "socket or connect problem\n" msgstr "\n" "Socket oder Verbindungsproblem\n" -#: src/lang.c:940 +#: src/lang.c:933 #, c-format msgid "\n" "Connection to %s: " msgstr "\n" "Verbindung mit %s: " -#: src/lang.c:941 +#: src/lang.c:934 msgid "Giving up...\n" msgstr "Gebe auf...\n" -#: src/lang.c:944 +#: src/lang.c:937 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:947 +#: src/lang.c:940 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:950 +#: src/lang.c:943 #, 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:953 +#: src/lang.c:946 msgid " -Q quick start. Same as -qd" msgstr " -Q Schnellstart. Das Selbe wie -qd" -#: src/lang.c:954 +#: src/lang.c:947 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:955 +#: src/lang.c:948 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:956 +#: src/lang.c:949 msgid "Your server does not have Xref: in its NOV-files.\n" msgstr "Ihr Server hat kein Xref: in seinern NOV-Dateien.\n" -#: src/lang.c:960 +#: src/lang.c:953 msgid "Posting using external inews failed. Use built in inews instead?" msgstr "Fehler beim Posten mit externem inews, verwende eingebautes?" -#: src/lang.c:961 +#: src/lang.c:954 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:969 +#: src/lang.c:962 #, c-format msgid "%d %s printed" msgstr "%d %s gedruckt" -#: src/lang.c:970 +#: src/lang.c:963 msgid "output article/thread/hot/pattern/tagged articles to printer" msgstr "druckt Artikel/Thread/hervorgehobene/Muster/markierten" -#: src/lang.c:971 +#: src/lang.c:964 msgid "Print" msgstr "drucken" -#: src/lang.c:972 +#: src/lang.c:965 msgid "Printing..." msgstr "Drucke..." -#: src/lang.c:976 +#: src/lang.c:969 msgid "pipe article/thread/hot/pattern/tagged articles into command" msgstr "pipet Artikel/thread hervorgehoben/muster/markierten Artikel" -#: src/lang.c:977 +#: src/lang.c:970 msgid "No command" msgstr "Kein Kommando" -#: src/lang.c:978 +#: src/lang.c:971 msgid "Pipe" msgstr "Pipe" -#: src/lang.c:979 +#: src/lang.c:972 #, c-format msgid "Pipe to command [%.*s]> " msgstr "Pipen in Kommando [%.*s]> " -#: src/lang.c:980 +#: src/lang.c:973 msgid "Piping..." msgstr "Pipen..." -#: src/lang.c:982 +#: src/lang.c:975 msgid "Piping not enabled." msgstr "Pipen nicht aktiviert." -#: src/lang.c:986 +#: src/lang.c:979 #, c-format msgid "\n" "Error: The \"%s:\" line has spaces in it that MUST be removed.\n" @@ -3805,7 +3795,7 @@ msgstr "\n" " vom Inhalt trennt. Benutzen sie ein ',' um mehrere Newsgruppen\n" " anzugeben\n" -#: src/lang.c:991 +#: src/lang.c:984 #, c-format msgid "\n" "Error: The \"%s:\" line is continued in the next line. Since\n" @@ -3816,7 +3806,7 @@ msgstr "\n" " Da diese Zeile keinen leeren Raum enthalten darf, ist dies nicht\n" " erlaubt. Bitte schreiben Sie alle Newsgruppen in eine Zeile\n" -#: src/lang.c:996 +#: src/lang.c:989 #, c-format msgid "\n" "Warning: The \"%s:\" line is continued in the next line.\n" @@ -3827,7 +3817,7 @@ msgstr "\n" " Da diese Zeile keinen leeren Raum enthalten darf, ist dies nicht\n" " erlaubt. Bitte schreiben Sie alle Newsgruppen in eine Zeile.\n" -#: src/lang.c:1000 +#: src/lang.c:993 #, c-format msgid "\n" "Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n" @@ -3835,7 +3825,7 @@ msgstr "\n" "Warnung: Die \"%s:\" Zeile enthält Leerzeichen die entfernt\n" " werden sollten.\n" -#: src/lang.c:1005 +#: src/lang.c:998 msgid "\n" " If your article contains quoted text please take some time to pare it " "down\n" @@ -3866,534 +3856,534 @@ msgstr "\n" " Artikel nicht sorgfältig formatieren, ist es sehr wahrscheinlich, dass er\n" " von vielen gar nicht gelesen wird.\n" -#: src/lang.c:1018 +#: src/lang.c:1011 msgid "shell escape" msgstr "Ausgang zur Shell" -#: src/lang.c:1019 +#: src/lang.c:1012 #, c-format msgid "Shell Command (%s)" msgstr "Shellkommando (%s)" -#: src/lang.c:1020 +#: src/lang.c:1013 #, c-format msgid "Enter shell command [%s]> " msgstr "Geben Sie ein Shellkommando ein [%s]> " -#: src/lang.c:1024 +#: src/lang.c:1017 #, 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:1028 +#: src/lang.c:1021 #, c-format msgid "Group %.*s ('q' to quit)..." msgstr "Gruppe %.*s ('q' zum beenden...)" -#: src/lang.c:1030 +#: src/lang.c:1023 #, c-format msgid "Group %.*s..." msgstr "Gruppe %.*s..." -#: src/lang.c:1034 +#: src/lang.c:1027 msgid "Server unavailable\n" msgstr "Server nicht erreichbar\n" -#: src/lang.c:1040 +#: src/lang.c:1033 #, c-format msgid "%s=pipe; %s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; " "%s=post" msgstr "%s=Pipe; %s=Mail; %s=Drucken; %s=Ende; %s=Alle/Nur ungel.; %s=Speich.; " "%s=tag; %s=Posten" -#: src/lang.c:1041 +#: src/lang.c:1034 #, 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:1043 +#: src/lang.c:1036 #, 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:1044 +#: src/lang.c:1037 #, 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:1048 +#: src/lang.c:1041 #, 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:1049 +#: src/lang.c:1042 #, 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:1051 +#: src/lang.c:1044 #, 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:1052 +#: src/lang.c:1045 #, 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:1058 +#: src/lang.c:1051 msgid "Terminal does not support color" msgstr "Terminal unterstützt keine Farben" -#: src/lang.c:1063 +#: src/lang.c:1056 #, c-format msgid "Trying %s" msgstr "Versuche %s" -#: src/lang.c:1077 src/lang.c:1102 src/lang.c:1118 src/refs.c:266 +#: src/lang.c:1070 src/lang.c:1095 src/lang.c:1111 src/refs.c:266 msgid "None" msgstr "Nichts" -#: src/lang.c:1078 +#: src/lang.c:1071 msgid "Subject" msgstr "Subject" -#: src/lang.c:1079 +#: src/lang.c:1072 msgid "References" msgstr "References" -#: src/lang.c:1080 +#: src/lang.c:1073 msgid "Both Subject and References" msgstr "Beides: Subject und References" -#: src/lang.c:1081 +#: src/lang.c:1074 msgid "Multipart Subject" msgstr "Mehrteilige Artikel (Subject)" -#: src/lang.c:1093 src/lang.c:1204 +#: src/lang.c:1086 src/lang.c:1197 msgid "No" msgstr "Nein" -#: src/lang.c:1094 src/lang.c:1206 +#: src/lang.c:1087 src/lang.c:1199 msgid "Yes" msgstr "Ja" -#: src/lang.c:1095 +#: src/lang.c:1088 msgid "Hide All" msgstr "Alle ausblenden" -#: src/lang.c:1103 +#: src/lang.c:1096 msgid "Address" msgstr "Adresse" -#: src/lang.c:1104 +#: src/lang.c:1097 msgid "Full Name" msgstr "Voller Name" -#: src/lang.c:1105 +#: src/lang.c:1098 msgid "Address and Name" msgstr "Adresse und Name" -#: src/lang.c:1112 +#: src/lang.c:1105 msgid "Max" msgstr "Höchster" -#: src/lang.c:1113 +#: src/lang.c:1106 msgid "Sum" msgstr "Summe" -#: src/lang.c:1114 +#: src/lang.c:1107 msgid "Average" msgstr "Durchschnitt" -#: src/lang.c:1119 +#: src/lang.c:1112 msgid "Lines" msgstr "Zeilen" -#: src/lang.c:1120 +#: src/lang.c:1113 msgid "Score" msgstr "Bewertung" -#: src/lang.c:1121 +#: src/lang.c:1114 msgid "Lines & Score" msgstr "Zeilen und Bewertung" -#: src/lang.c:1130 +#: src/lang.c:1123 msgid "Black" msgstr "Schwarz" -#: src/lang.c:1131 +#: src/lang.c:1124 msgid "Red" msgstr "Rot" -#: src/lang.c:1132 +#: src/lang.c:1125 msgid "Green" msgstr "Grün" -#: src/lang.c:1133 +#: src/lang.c:1126 msgid "Brown" msgstr "Braun" -#: src/lang.c:1134 +#: src/lang.c:1127 msgid "Blue" msgstr "Blau" -#: src/lang.c:1135 +#: src/lang.c:1128 msgid "Pink" msgstr "Rosa" -#: src/lang.c:1136 +#: src/lang.c:1129 msgid "Cyan" msgstr "Cyan" -#: src/lang.c:1137 +#: src/lang.c:1130 msgid "White" msgstr "Weiß" -#: src/lang.c:1138 +#: src/lang.c:1131 msgid "Gray" msgstr "Grau" -#: src/lang.c:1139 +#: src/lang.c:1132 msgid "Light Red" msgstr "Helles Rot" -#: src/lang.c:1140 +#: src/lang.c:1133 msgid "Light Green" msgstr "Helles Grün" -#: src/lang.c:1141 +#: src/lang.c:1134 msgid "Yellow" msgstr "Gelb" -#: src/lang.c:1142 +#: src/lang.c:1135 msgid "Light Blue" msgstr "Helles Blau" -#: src/lang.c:1143 +#: src/lang.c:1136 msgid "Light Pink" msgstr "Helles Rosa" -#: src/lang.c:1144 +#: src/lang.c:1137 msgid "Light Cyan" msgstr "Helles Cyan" -#: src/lang.c:1145 +#: src/lang.c:1138 msgid "Light White" msgstr "Helles Weiß" -#: src/lang.c:1153 src/lang.c:1210 src/lang.c:1224 +#: src/lang.c:1146 src/lang.c:1203 src/lang.c:1217 msgid "Nothing" msgstr "Nichts" -#: src/lang.c:1154 +#: src/lang.c:1147 msgid "Mark" msgstr "Markierung" -#: src/lang.c:1155 +#: src/lang.c:1148 msgid "Space" msgstr "Leerzeichen" -#: src/lang.c:1162 +#: src/lang.c:1155 msgid "Normal" msgstr "Normal" -#: src/lang.c:1163 +#: src/lang.c:1156 msgid "Best highlighting" msgstr "Beste Hervorhebung" -#: src/lang.c:1164 +#: src/lang.c:1157 msgid "Underline" msgstr "Unterstreichen" -#: src/lang.c:1165 +#: src/lang.c:1158 msgid "Reverse video" msgstr "Invers" -#: src/lang.c:1166 +#: src/lang.c:1159 msgid "Blinking" msgstr "Blinkend" -#: src/lang.c:1167 +#: src/lang.c:1160 msgid "Half bright" msgstr "Halbe Helligkeit" -#: src/lang.c:1168 +#: src/lang.c:1161 msgid "Bold" msgstr "Fett" -#: src/lang.c:1173 +#: src/lang.c:1166 msgid "none" msgstr "Nichts" -#: src/lang.c:1174 +#: src/lang.c:1167 msgid "commands" msgstr "Kommandos" -#: src/lang.c:1175 +#: src/lang.c:1168 msgid "select" msgstr "X-Befehl" -#: src/lang.c:1177 +#: src/lang.c:1170 msgid "commands & quit" msgstr "Kommandos & Ende" -#: src/lang.c:1178 +#: src/lang.c:1171 msgid "commands & select" msgstr "Kommandos & X-Befehl" -#: src/lang.c:1179 +#: src/lang.c:1172 msgid "quit & select" msgstr "Ende & X-Befehl" -#: src/lang.c:1180 +#: src/lang.c:1173 msgid "commands & quit & select" msgstr "Kmndos & Ende & X-Befehl" -#: src/lang.c:1205 +#: src/lang.c:1198 msgid "Shell archive" msgstr "Shellarchiv" -#: src/lang.c:1211 +#: src/lang.c:1204 msgid "Subject: (descending)" msgstr "Subject: (Absteigend)" -#: src/lang.c:1212 +#: src/lang.c:1205 msgid "Subject: (ascending)" msgstr "Subject: (Aufsteigend)" -#: src/lang.c:1213 +#: src/lang.c:1206 msgid "From: (descending)" msgstr "From: (Absteigend)" -#: src/lang.c:1214 +#: src/lang.c:1207 msgid "From: (ascending)" msgstr "From: (Aufsteigend)" -#: src/lang.c:1215 +#: src/lang.c:1208 msgid "Date: (descending)" msgstr "Date: (Absteigend)" -#: src/lang.c:1216 +#: src/lang.c:1209 msgid "Date: (ascending)" msgstr "Date: (Aufsteigend)" -#: src/lang.c:1217 src/lang.c:1225 +#: src/lang.c:1210 src/lang.c:1218 msgid "Score (descending)" msgstr "Bewertung (Absteigend)" -#: src/lang.c:1218 src/lang.c:1226 +#: src/lang.c:1211 src/lang.c:1219 msgid "Score (ascending)" msgstr "Bewertung (Aufsteigend)" -#: src/lang.c:1219 +#: src/lang.c:1212 msgid "Lines: (descending)" msgstr "Lines: (Absteigend)" -#: src/lang.c:1220 +#: src/lang.c:1213 msgid "Lines: (ascending)" msgstr "Lines: (Aufsteigend)" -#: src/lang.c:1231 +#: src/lang.c:1224 msgid "Always Keep" msgstr "Immer behalten" -#: src/lang.c:1232 +#: src/lang.c:1225 msgid "Always Remove" msgstr "Immer entfernen" -#: src/lang.c:1233 +#: src/lang.c:1226 msgid "Mark with D on selection screen" msgstr "Mit D in der Anzeige markiert" -#: src/lang.c:1238 +#: src/lang.c:1231 msgid "Kill only unread arts" msgstr "Killt nur ungelesene Artikel" -#: src/lang.c:1239 +#: src/lang.c:1232 msgid "Kill all arts & show with K" msgstr "Killt alle Artikel, markiert mit K" #. TODO: s/K/art_marked_killed/ -#: src/lang.c:1240 +#: src/lang.c:1233 msgid "Kill all arts and never show" msgstr "Killt alle Artikel, zeigt sie nie" -#: src/lang.c:1245 +#: src/lang.c:1238 msgid "Nothing special" msgstr "Nichts besonderes" -#: src/lang.c:1246 +#: src/lang.c:1239 msgid "Compress quotes" msgstr "Zitatzeichen zusammenfassen" -#: src/lang.c:1247 +#: src/lang.c:1240 msgid "Quote signatures" msgstr "Signaturen zitieren" -#: src/lang.c:1248 +#: src/lang.c:1241 msgid "Compress quotes, quote sigs" msgstr "Zitatz. kürzen, Signat. zitieren" -#: src/lang.c:1249 +#: src/lang.c:1242 msgid "Quote empty lines" msgstr "Leerzeilen zitieren" -#: src/lang.c:1250 +#: src/lang.c:1243 msgid "Compress quotes, quote empty lines" msgstr "Zitatz. kürzen, Leerzeilen zit." -#: src/lang.c:1251 +#: src/lang.c:1244 msgid "Quote sigs & empty lines" msgstr "Signat. und Leerzeilen zitieren" -#: src/lang.c:1252 +#: src/lang.c:1245 msgid "Comp. q., quote sigs & empty lines" msgstr "Zitatz. kürzen, Sign & Leerz. zit." -#: src/lang.c:1290 +#: src/lang.c:1283 msgid "no" msgstr "nein" -#: src/lang.c:1291 +#: src/lang.c:1284 msgid "with headers" msgstr "mit Header" -#: src/lang.c:1292 +#: src/lang.c:1285 msgid "without headers" msgstr "ohne Header" -#: src/lang.c:1297 +#: src/lang.c:1290 msgid "Display Options" msgstr "Darstellungseinstellungen" -#: src/lang.c:1303 +#: src/lang.c:1296 msgid "Color Options" msgstr "Farbeinstellungen" -#: src/lang.c:1309 +#: src/lang.c:1302 msgid "Article-Limiting Options" msgstr "Artikel-Begrenzungseinstellungen" -#: src/lang.c:1315 +#: src/lang.c:1308 msgid "Posting/Mailing Options" msgstr "Versandeinstellungen für Mail und News" -#: src/lang.c:1321 +#: src/lang.c:1314 msgid "Saving/Printing Options" msgstr "Speicher- und Druckereinstellungen" -#: src/lang.c:1327 +#: src/lang.c:1320 msgid "Expert Options" msgstr "Experteneinstellungen" -#: src/lang.c:1333 +#: src/lang.c:1326 msgid "Filtering Options" msgstr "Filtereinstellungen" -#: src/lang.c:1338 src/lang.c:1364 src/lang.c:1370 src/lang.c:1377 src/lang.c:1409 -#: src/lang.c:1415 src/lang.c:1423 src/lang.c:1443 src/lang.c:1518 src/lang.c:1680 -#: src/lang.c:1686 src/lang.c:1692 src/lang.c:1698 src/lang.c:1710 src/lang.c:1717 -#: src/lang.c:1768 src/lang.c:1777 src/lang.c:1783 src/lang.c:1789 src/lang.c:1795 -#: src/lang.c:1801 src/lang.c:1807 src/lang.c:1813 src/lang.c:1819 src/lang.c:1825 -#: src/lang.c:1831 src/lang.c:1837 src/lang.c:1843 src/lang.c:1849 src/lang.c:1855 -#: src/lang.c:1861 src/lang.c:1867 src/lang.c:1873 src/lang.c:1879 src/lang.c:1885 -#: src/lang.c:1891 src/lang.c:1898 src/lang.c:1904 src/lang.c:1910 src/lang.c:1917 -#: src/lang.c:1928 src/lang.c:1934 src/lang.c:1940 src/lang.c:1946 src/lang.c:1952 -#: src/lang.c:1958 src/lang.c:1972 src/lang.c:1984 src/lang.c:2018 src/lang.c:2070 -#: src/lang.c:2077 src/lang.c:2083 src/lang.c:2108 src/lang.c:2125 src/lang.c:2178 -#: src/lang.c:2211 src/lang.c:2231 src/lang.c:2266 src/lang.c:2275 src/lang.c:2300 -#: src/lang.c:2312 +#: src/lang.c:1331 src/lang.c:1357 src/lang.c:1363 src/lang.c:1370 src/lang.c:1402 +#: src/lang.c:1408 src/lang.c:1416 src/lang.c:1436 src/lang.c:1511 src/lang.c:1673 +#: src/lang.c:1679 src/lang.c:1685 src/lang.c:1691 src/lang.c:1703 src/lang.c:1710 +#: src/lang.c:1761 src/lang.c:1770 src/lang.c:1776 src/lang.c:1782 src/lang.c:1788 +#: src/lang.c:1794 src/lang.c:1800 src/lang.c:1806 src/lang.c:1812 src/lang.c:1818 +#: src/lang.c:1824 src/lang.c:1830 src/lang.c:1836 src/lang.c:1842 src/lang.c:1848 +#: src/lang.c:1854 src/lang.c:1860 src/lang.c:1866 src/lang.c:1872 src/lang.c:1878 +#: src/lang.c:1884 src/lang.c:1891 src/lang.c:1897 src/lang.c:1903 src/lang.c:1910 +#: src/lang.c:1921 src/lang.c:1927 src/lang.c:1933 src/lang.c:1939 src/lang.c:1945 +#: src/lang.c:1951 src/lang.c:1965 src/lang.c:1977 src/lang.c:2011 src/lang.c:2063 +#: src/lang.c:2070 src/lang.c:2076 src/lang.c:2101 src/lang.c:2118 src/lang.c:2171 +#: src/lang.c:2204 src/lang.c:2224 src/lang.c:2259 src/lang.c:2268 src/lang.c:2293 +#: src/lang.c:2305 msgid " toggles, sets, cancels." msgstr " schaltet um, setzt, bricht ab." -#: src/lang.c:1339 +#: src/lang.c:1332 msgid "Show mini menu & posting etiquette :" msgstr "Zeigt Minimenü & Posting etiquette :" -#: src/lang.c:1340 +#: src/lang.c:1333 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:1345 +#: src/lang.c:1338 msgid "Show short description for each newsgroup. toggles & sets." msgstr "Zeige Kurzbeschreibung für Gruppe. wechselt & setzt." -#: src/lang.c:1346 +#: src/lang.c:1339 msgid "Show description of each newsgroup :" msgstr "Zeige Beschreibung der Newsgruppen :" -#: src/lang.c:1347 +#: src/lang.c:1340 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:1352 +#: src/lang.c:1345 msgid "Show Subject & From (author) fields in group menu. toggles & " "sets." msgstr "Zeigt Subject & From (Autor) Felder im Gruppenmenü. wechselt & " "setzt." -#: src/lang.c:1353 +#: src/lang.c:1346 msgid "In group menu, show author by :" msgstr "Im Gruppenmenü, zeige Autor an nach:" -#: src/lang.c:1354 +#: src/lang.c:1347 msgid "# Part of from field to display 0) none 1) address 2) full name 3) both\n" msgstr "# Anzeige des 'From:' Felds 0) nichts 1) Adresse 2) Voller Name 3) beides\n" -#: src/lang.c:1358 +#: src/lang.c:1351 msgid "Draw -> or highlighted bar for selection. toggles & sets." msgstr "Zeige -> oder Hervorhebung für Auswahl. wechselt & setzt." -#: src/lang.c:1359 +#: src/lang.c:1352 msgid "Draw -> instead of highlighted bar :" msgstr "Zeige -> anstatt einer Markierung :" -#: src/lang.c:1360 +#: src/lang.c:1353 msgid "# If ON use -> otherwise highlighted bar for selection\n" msgstr "# Falls ON benutze -> andernfalls benutze eine Markierung zur Auswahl\n" -#: src/lang.c:1365 +#: src/lang.c:1358 msgid "Use inverse video for page headers :" msgstr "Inverse Darstellung für die Header :" -#: src/lang.c:1366 +#: src/lang.c:1359 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:1371 +#: src/lang.c:1364 msgid "Thread articles by :" msgstr "Threade Artikel anhand :" -#: src/lang.c:1372 +#: src/lang.c:1365 msgid "# Thread articles on 0=(nothing) 1=(Subject) 2=(References) 3=(Both)\n" "# 4=(Multipart Subject).\n" msgstr "# Zeige Artikel nach 0=(nichts) 1=(Subject) 2=(References) 3=(beides)\n" "# 4=(Mehrteilige Artikel).\n" -#: src/lang.c:1378 +#: src/lang.c:1371 msgid "Score of a thread :" msgstr "Bewertung eines Threads :" -#: src/lang.c:1379 +#: src/lang.c:1372 msgid "# Thread score 0=(Max) 1=(Sum) 2=(Average)\n" msgstr "# Bewertung des Threads 0=(Höchster) 1=(Summe) 2=(Durchschnitt)\n" -#: src/lang.c:1383 +#: src/lang.c:1376 msgid "Sort articles by Subject, From, Date or Score. toggles & sets." msgstr "Sortiere Artikel nach Subject, From, Datum oder Bewertung." -#: src/lang.c:1384 +#: src/lang.c:1377 msgid "Sort articles by :" msgstr "Sortiere Artikel nach :" -#: src/lang.c:1385 +#: src/lang.c:1378 msgid "# Sort articles by 0=(nothing) 1=(Subject descend) 2=(Subject ascend)\n" "# 3=(From descend) 4=(From ascend) 5=(Date descend) 6=(Date ascend)\n" "# 7=(Score descend) 8=(Score ascend) 9=(Lines descend) 10=(Lines ascend).\n" @@ -4402,56 +4392,56 @@ msgstr "# Sort. Art. nach 0=(nichts) 1=( "# 7=(Bewertung abst.) 8=(Bewertung aufst.) 9=(Lines abst.) 10=(Lines " "aufst.).\n" -#: src/lang.c:1391 +#: src/lang.c:1384 msgid "Sort threads by Nothing or Score. toggles & sets." msgstr "Threads nach Bewertung (Score) oder nichts ordnen. wechselt & " "setzt" -#: src/lang.c:1392 +#: src/lang.c:1385 msgid "Sort threads by :" msgstr "Sortiere Threads nach :" -#: src/lang.c:1393 +#: src/lang.c:1386 msgid "# Sort thread by 0=(nothing) 1=(Score descend) 2=(Score ascend)\n" msgstr "# Ordne Threads nach 0=(nichts) 1=(Bewertung abst.) 2=(Bewertung aufst.)\n" -#: src/lang.c:1397 +#: src/lang.c:1390 msgid "Put cursor at first/last unread art in groups. toggles & sets." msgstr "Setze Cursor an ersten/letzten ungel. Artikel. wechselt & setzt." -#: src/lang.c:1398 +#: src/lang.c:1391 msgid "Goto first unread article in group :" msgstr "Setze Cursor auf ersten ungel. Art.:" -#: src/lang.c:1399 +#: src/lang.c:1392 msgid "# If ON put cursor at first unread art in group otherwise last art\n" msgstr "# Falls ON setze Cursor auf ersten ungelesenen Art., sonst auf letzten\n" -#: src/lang.c:1403 +#: src/lang.c:1396 msgid "Show all articles or only unread articles. toggles & sets." msgstr "Zeige alle oder nur ungelesene Artikel. wechselt & setzt." -#: src/lang.c:1404 +#: src/lang.c:1397 msgid "Show only unread articles :" msgstr "Zeige nur ungelesene Artikel :" -#: src/lang.c:1405 +#: src/lang.c:1398 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:1410 +#: src/lang.c:1403 msgid "Show only groups with unread arts :" msgstr "Zeige nur Gruppen mit ungel. Art. :" -#: src/lang.c:1411 +#: src/lang.c:1404 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:1416 +#: src/lang.c:1409 msgid "Filter which articles :" msgstr "Filter (kill) anwenden auf :" -#: src/lang.c:1417 +#: src/lang.c:1410 msgid "# 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" @@ -4459,215 +4449,215 @@ msgstr "# 0=(Filtert nur ungelesene Arti "# 1=(Filtert alle Artikel und markiert sie mit K)\n" "# 2=(Filtert alle Artikel und zeigt sie niemals an).\n" -#: src/lang.c:1424 +#: src/lang.c:1417 msgid "Tab goes to next unread article :" msgstr "Tab zeigt nächsten ungelesenen Art.:" -#: src/lang.c:1425 +#: src/lang.c:1418 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:1429 +#: src/lang.c:1422 msgid "Scrolling with past the end of an art. jumps to the next unread one." msgstr "Weiterscrollen mit Leertaste am Artikelende wechselt zum nächsten ungel. " "Artikel" -#: src/lang.c:1430 +#: src/lang.c:1423 msgid "Space goes to next unread article :" msgstr "Leertaste zeigt nächsten unge. Art.:" -#: src/lang.c:1431 +#: src/lang.c:1424 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:1436 +#: src/lang.c:1429 msgid "Scrolling with / past the end of an art. jumps to the unread one." msgstr "Weiterscrollen mit BildAb am Artikelende wechselt zum nächsten ungel. Artikel" -#: src/lang.c:1437 +#: src/lang.c:1430 msgid "PgDn goes to next unread article :" msgstr "PgDn zeigt nächst. ungelesenen Art.:" -#: src/lang.c:1438 +#: src/lang.c:1431 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:1444 +#: src/lang.c:1437 msgid "List thread using right arrow key :" msgstr "Zeige Thread mit rechter Pfeilt. an:" -#: src/lang.c:1445 +#: src/lang.c:1438 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:1449 +#: src/lang.c:1442 msgid "Enter character to indicate deleted articles. sets, cancels." msgstr "Definiere Zeichen für gelöschte Artikel. setzt, bricht ab." -#: src/lang.c:1450 +#: src/lang.c:1443 msgid "Character to show deleted articles :" msgstr "Zeichen für gelöschte Artikel :" -#: src/lang.c:1451 +#: src/lang.c:1444 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:1456 +#: src/lang.c:1449 msgid "Enter character to indicate articles in a range. sets, cancels." msgstr "Definiere Zeichen, das Artikel im Bereich anzeigt. setzt, bricht ab." -#: src/lang.c:1457 +#: src/lang.c:1450 msgid "Character to show inrange articles :" msgstr "Zeichen für Artikel im Bereich :" -#: src/lang.c:1458 +#: src/lang.c:1451 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:1463 +#: src/lang.c:1456 msgid "Enter character to indicate that article will return. sets, " "cancels." msgstr "Definiere Zeichen für wiederkehrende Art. setzt. bricht ab." -#: src/lang.c:1464 +#: src/lang.c:1457 msgid "Character to show returning arts :" msgstr "Zeichen für wiederkehrende Artikel :" -#: src/lang.c:1465 +#: src/lang.c:1458 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:1470 +#: src/lang.c:1463 msgid "Enter character to indicate selected articles. sets, cancels." msgstr "Zeichen für Artikel mit Markierung wichtig/'hot' setzt, bricht ab." -#: src/lang.c:1471 +#: src/lang.c:1464 msgid "Character to show selected articles:" msgstr "Zeichen für wichtige Artikel :" -#: src/lang.c:1472 +#: src/lang.c:1465 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:1477 +#: src/lang.c:1470 msgid "Enter character to indicate recent articles. sets, cancels." msgstr "Definiere Zeichen für aktuelle Artikel. setzt, bricht ab." -#: src/lang.c:1478 +#: src/lang.c:1471 msgid "Character to show recent articles :" msgstr "Zeichen für aktuelle Artikel :" -#: src/lang.c:1479 +#: src/lang.c:1472 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:1484 +#: src/lang.c:1477 msgid "Enter character to indicate unread articles. sets, cancels." msgstr "Zeichen für ungelesene Artikel. setzt, bricht ab." -#: src/lang.c:1485 +#: src/lang.c:1478 msgid "Character to show unread articles :" msgstr "Zeichen für ungelesene Artikel :" -#: src/lang.c:1486 +#: src/lang.c:1479 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:1491 +#: src/lang.c:1484 msgid "Enter character to indicate read articles. sets, cancels." msgstr "Zeichen für gelesene Artikel. setzt, bricht ab." -#: src/lang.c:1492 +#: src/lang.c:1485 msgid "Character to show read articles :" msgstr "Zeichen für gelesene Artikel :" -#: src/lang.c:1493 +#: src/lang.c:1486 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:1498 +#: src/lang.c:1491 msgid "Enter character to indicate killed articles. sets, cancels." msgstr "Zeichen für gekillte Artikel. setzt, bricht ab." -#: src/lang.c:1499 +#: src/lang.c:1492 msgid "Character to show killed articles :" msgstr "Zeichen für gekillte Artikel :" -#: src/lang.c:1500 +#: src/lang.c:1493 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:1505 +#: src/lang.c:1498 msgid "Enter character to indicate read selected articles. sets, cancels." msgstr "Zeichen für gelesene wichtige/'hot' Artikel. setzt, bricht ab." -#: src/lang.c:1506 +#: src/lang.c:1499 msgid "Character to show readselected arts:" msgstr "Zeichen für gelesene wichtige Art. :" -#: src/lang.c:1507 +#: src/lang.c:1500 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:1512 +#: src/lang.c:1505 msgid "Enter maximum length of newsgroup names displayed. sets." msgstr "Maximale Länge des angezeigten Newsgruppennamens. setzt." -#: src/lang.c:1513 +#: src/lang.c:1506 msgid "Max. length of group names shown :" msgstr "Max. Länge angezeigter Gruppennamen:" -#: src/lang.c:1514 +#: src/lang.c:1507 msgid "# Maximum length of the names of newsgroups displayed\n" msgstr "# Maximale Länge der angezeigten Newsgruppennamen\n" -#: src/lang.c:1519 +#: src/lang.c:1512 msgid "Show lines/score in listings :" msgstr "Zeige Zeilenz./Bewert. in Übersicht:" -#: src/lang.c:1520 +#: src/lang.c:1513 msgid "# What informations should be displayed in article/thread listing\n" "# 0 = nothing, 1 = lines, 2 = score, 3 = lines & score\n" msgstr "# Welche weiteren Informationen sollen in der Artikel/Thread\n" "# Übersicht angezeigt werden:\n" "# 0 = keine, 1 = Zeilenzahl, 2 = Bewertung, 3 = Zeilenzahl & Bewertung\n" -#: src/lang.c:1525 +#: src/lang.c:1518 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:1526 +#: src/lang.c:1519 msgid "Number of lines to scroll in pager :" msgstr "Blättere Artikel um ... Zeilen :" -#: src/lang.c:1527 +#: src/lang.c:1520 msgid "# Number of lines that cursor-up/down will scroll in article pager\n" "# eg, 1+ = line-by-line, 0 = page-by-page (traditional behavior),\n" "# -1 = the top/bottom line is carried over onto the next page,\n" @@ -4677,27 +4667,27 @@ msgstr "# Anzahl der Zeilen, die Cursor- "# -1 = seitenweise, zeigt zusätzlich letzte Zeile der vorigen Seite\n" "# -2 = um eine halbe Seite\n" -#: src/lang.c:1534 +#: src/lang.c:1527 msgid "Display signatures. toggles & sets." msgstr "Zeige Signaturen an. wechselt & setzt." -#: src/lang.c:1535 +#: src/lang.c:1528 msgid "Display signatures :" msgstr "Zeige Signaturen an :" -#: src/lang.c:1536 +#: src/lang.c:1529 msgid "# If OFF don't show signatures when displaying articles\n" msgstr "# Falls OFF zeige keine Signaturen an\n" -#: src/lang.c:1540 +#: src/lang.c:1533 msgid "Display uuencoded data as tagged attachments. toggles & sets." msgstr "Uu-kodierte Teile als Attachment anzeigen. wechselt & setzt." -#: src/lang.c:1541 +#: src/lang.c:1534 msgid "Display uue data as an attachment :" msgstr "Zeige uue-Teile als Attachment :" -#: src/lang.c:1542 +#: src/lang.c:1535 msgid "# Handling of uuencoded data in the pager\n" "# 0 = display raw uuencoded data\n" "# 1 = uuencoded data will be condensed to a single tag line showing\n" @@ -4710,29 +4700,29 @@ msgstr "# Behandlung von uuencodeten Dat "# ähnlich der von MIME Anhängen\n" "# 2 = Einzeilige Zusammenfassung auch für unvollständige Daten\n" -#: src/lang.c:1551 +#: src/lang.c:1544 msgid "Decode German style TeX umlaut codes to ISO. toggles & sets." msgstr "TeX german.sty Umlautkodierung auswerten. wechselt & setzt." -#: src/lang.c:1552 +#: src/lang.c:1545 msgid "Display \"a as Umlaut-a :" msgstr "Wandle TeX-Umlaute automatisch um :" -#: src/lang.c:1553 +#: src/lang.c:1546 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:1558 src/lang.c:1568 +#: src/lang.c:1551 src/lang.c:1561 msgid "Space separated list of header fields" msgstr "Durch Leerzeichen getrennte Liste der Header-Felder" -#: src/lang.c:1559 +#: src/lang.c:1552 msgid "Display these header fields (or *) :" msgstr "Zeige diese Header-Felder (oder *) :" -#: src/lang.c:1560 +#: src/lang.c:1553 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" @@ -4746,11 +4736,11 @@ msgstr "# Welche Header wollen Sie sehen "# Leerzeichen getrennte Werte angeben. Wenn Sie hier nichts definieren\n" "# wird diese Option deaktiviert.\n" -#: src/lang.c:1569 +#: src/lang.c:1562 msgid "Do not display these header fields :" msgstr "Zeige folgende Header nicht an :" -#: src/lang.c:1570 +#: src/lang.c:1563 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 " @@ -4767,27 +4757,27 @@ msgstr "# Genau das gleiche wie 'news_he "# news_headers_to_not_display=X-Alan X-Pape\n" "# Wenn Sie hier nichts angeben, wird diese Option deaktiviert.\n" -#: src/lang.c:1580 +#: src/lang.c:1573 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:1581 +#: src/lang.c:1574 msgid "Skip multipart/alternative parts :" msgstr "Übersp. multipart/alternative-Teile:" -#: src/lang.c:1582 +#: src/lang.c:1575 msgid "# If ON strip multipart/alternative messages automatically\n" msgstr "# Falls ON entsorge multipart/alternative Teile des Artikels automatisch\n" -#: src/lang.c:1587 +#: src/lang.c:1580 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:1588 +#: src/lang.c:1581 msgid "Regex used to show quoted lines :" msgstr "Regulärer Ausd. für zit. Zeilen :" -#: src/lang.c:1589 +#: src/lang.c:1582 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" @@ -4796,15 +4786,15 @@ msgstr "# Ein regulärer Ausdruck, den ti "# Farbe angezeigt, die in col_quote definiert sind.\n" "# Wenn Sie hier nichts angeben, werden die Voreinstellungen benutzt.\n" -#: src/lang.c:1595 +#: src/lang.c:1588 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:1596 +#: src/lang.c:1589 msgid "Regex used to show twice quoted l. :" msgstr "Reg. Ausd. für zweifach zitierte Z.:" -#: src/lang.c:1597 +#: src/lang.c:1590 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" @@ -4813,15 +4803,15 @@ msgstr "# Ein regulärer Ausdruck, den ti "# Farbe dargestellt, die in col_quote2 definiert ist.\n" "# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n" -#: src/lang.c:1603 +#: src/lang.c:1596 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:1604 +#: src/lang.c:1597 msgid "Regex used to show >= 3 times q.l. :" msgstr "Reg. Ausd. für >=3-fach zitierte Z.:" -#: src/lang.c:1605 +#: src/lang.c:1598 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" @@ -4830,15 +4820,15 @@ msgstr "# Ein regulärer Ausdruck, der en "# dargestellt, die in col_quote3 definiert sind.\n" "# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n" -#: src/lang.c:1612 +#: src/lang.c:1605 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:1613 +#: src/lang.c:1606 msgid "Regex used to highlight /slashes/ :" msgstr "Reg. für /Schrägst./ Hervorhebungen:" -#: src/lang.c:1614 +#: src/lang.c:1607 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" @@ -4846,15 +4836,15 @@ msgstr "# Ein regulärer Ausdruck, der en "# zwischen '/' in col_markslashes angezeigt werden.\n" "# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n" -#: src/lang.c:1620 +#: src/lang.c:1613 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:1621 +#: src/lang.c:1614 msgid "Regex used to highlight *stars* :" msgstr "Regu. A. für *Stern* Hervorhebungen:" -#: src/lang.c:1622 +#: src/lang.c:1615 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" @@ -4862,15 +4852,15 @@ msgstr "# Ein regulärer Ausdruck, der en "# zwischen '*' in col_markstars angezeigt werden.\n" "# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n" -#: src/lang.c:1628 +#: src/lang.c:1621 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:1629 +#: src/lang.c:1622 msgid "Regex used to highlight -strokes- :" msgstr "Reg. für -Durchstr.- Hervorhebungen:" -#: src/lang.c:1630 +#: src/lang.c:1623 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" @@ -4878,15 +4868,15 @@ msgstr "# Ein regulärer Ausdruck, der en "# zwischen '-' in col_markstroke angezeigt werden.\n" "# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n" -#: src/lang.c:1636 +#: src/lang.c:1629 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:1637 +#: src/lang.c:1630 msgid "Regex used to highlight _underline_:" msgstr "Reg. für _Unterstr._ Hervorhebungen:" -#: src/lang.c:1638 +#: src/lang.c:1631 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" @@ -4894,44 +4884,44 @@ msgstr "# Ein regulärer Ausdruck, der en "# zwischen '_' in col_markdash angezeigt werden.\n" "# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n" -#: src/lang.c:1644 +#: src/lang.c:1637 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:1645 +#: src/lang.c:1638 msgid "Regex with Subject prefixes :" msgstr "Reg. Ausd. für den Subjectanfang :" -#: src/lang.c:1646 +#: src/lang.c:1639 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:1651 +#: src/lang.c:1644 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:1652 +#: src/lang.c:1645 msgid "Regex with Subject suffixes :" msgstr "Reg. Ausd. für das Subjectende :" -#: src/lang.c:1653 +#: src/lang.c:1646 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:1658 +#: src/lang.c:1651 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:1659 +#: src/lang.c:1652 msgid "MIME binary content viewer :" msgstr "MIME-Viewer :" -#: src/lang.c:1660 +#: src/lang.c:1653 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" @@ -4940,51 +4930,51 @@ msgstr "# Falls --internal wird der eing "# nicht Text teilen benutzt. Andernfalls das angegebene Programm\n" "# (z.B. metamail). Keine Angabe schaltet die automatische Anzeige aus.\n" -#: src/lang.c:1667 +#: src/lang.c:1660 msgid "Confirm before starting non-text viewing program" msgstr "Start des MIME-Viewers bestätigen" -#: src/lang.c:1668 +#: src/lang.c:1661 msgid "Ask before using MIME viewer :" msgstr "Start des MIME-Viewers bestätigen :" -#: src/lang.c:1669 +#: src/lang.c:1662 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:1674 +#: src/lang.c:1667 msgid "Ask to mark groups read when quitting. toggles & sets." msgstr "Beim Beenden anbieten, alle betretenen Gruppen als gelesen zu markieren?" -#: src/lang.c:1675 +#: src/lang.c:1668 msgid "Catchup read groups when quitting :" msgstr "Aufholen der Gruppen beim Beenden :" -#: src/lang.c:1676 +#: src/lang.c:1669 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:1681 +#: src/lang.c:1674 msgid "Catchup group using left key :" msgstr "Catchup der Gruppe mit l. Cursor :" -#: src/lang.c:1682 +#: src/lang.c:1675 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:1687 +#: src/lang.c:1680 msgid "Catchup thread by using left key :" msgstr "Catchup mit der linken Cursort. :" -#: src/lang.c:1693 +#: src/lang.c:1686 msgid "Which actions require confirmation :" msgstr "Bestätigung erforderlich für :" -#: src/lang.c:1694 +#: src/lang.c:1687 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" @@ -4992,322 +4982,322 @@ msgstr "# Welche Operationen müssen expl "# gelesen (siehe 'X' Befehl im Manual).\n" # TRANSLATION MISSING -#: src/lang.c:1699 +#: src/lang.c:1692 msgid "'Mark article read' ignores tags :" msgstr "" -# TRANSLATION MISSING -#: src/lang.c:1700 +#: src/lang.c:1693 msgid "# If ON the 'Mark article read' function marks only the current article.\n" -msgstr "" +msgstr "# Falls ON wird mit der Fuktion 'Artikel als gelesen markieren' nur\n" + "# der jeweilige Artikel markiert.\n" -#: src/lang.c:1704 +#: src/lang.c:1697 msgid "Program to run to open URL's, sets, cancels." msgstr "Öffne URLs mit ... setzt, bricht ab." -#: src/lang.c:1705 +#: src/lang.c:1698 msgid "Program that opens URL's :" msgstr "Öffne URLs mit ... :" -#: src/lang.c:1706 +#: src/lang.c:1699 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:1711 +#: src/lang.c:1704 msgid "Use mouse in xterm :" msgstr "Maus in xterm nutzen :" -#: src/lang.c:1712 +#: src/lang.c:1705 msgid "# If ON enable mouse key support on xterm terminals\n" msgstr "# Falls ON wird die Maustastenunterstützung für xterm aktiviert\n" -#: src/lang.c:1718 +#: src/lang.c:1711 msgid "Use scroll keys on keypad :" msgstr "Scrollt. vom Nummernblock nutzen :" -#: src/lang.c:1719 +#: src/lang.c:1712 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:1724 +#: src/lang.c:1717 msgid "Enter maximum number of article to get. sets." msgstr "Maximale Anzahl der zu holenden Artikel eingeben. setzt." -#: src/lang.c:1725 +#: src/lang.c:1718 msgid "Number of articles to get :" msgstr "Anzahl der zu holenden Artikel :" -#: src/lang.c:1726 +#: src/lang.c:1719 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:1731 +#: src/lang.c:1724 msgid "Enter number of days article is considered recent. sets." msgstr "Anzahl der Tage, die ein Artikel als neu eingestuft wird. setzt." -#: src/lang.c:1732 +#: src/lang.c:1725 msgid "Article recentness time limit :" msgstr "Artikel Neuheitszeit-Limit :" -#: src/lang.c:1733 +#: src/lang.c:1726 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:1737 +#: src/lang.c:1730 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:1738 +#: src/lang.c:1731 msgid "Wildcard matching :" msgstr "Wildcardprüfung :" -#: src/lang.c:1739 +#: src/lang.c:1732 msgid "# Wildcard matching 0=(wildmat) 1=(regex)\n" msgstr "# Wildcardprüfung 0=(wildmat) 1=(Regulärer Ausdruck)\n" -#: src/lang.c:1743 +#: src/lang.c:1736 msgid "Enter minimal score before an article is marked killed. sets." msgstr "Artikel mit weniger Bewertung (Score) werden als `gekillt' markiert. " "setzt." -#: src/lang.c:1744 +#: src/lang.c:1737 msgid "Score limit (kill) :" msgstr "Bewertungsgrenze (kill) :" -#: src/lang.c:1745 +#: src/lang.c:1738 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:1749 +#: src/lang.c:1742 msgid "Enter default score to kill articles. sets." msgstr "Bewertung für gekillte Artikel. setzt." -#: src/lang.c:1750 +#: src/lang.c:1743 msgid "Default score to kill articles :" msgstr "Bewertung für gekillte Artikel :" -#: src/lang.c:1751 +#: src/lang.c:1744 msgid "# Default score to kill articles\n" msgstr "# Bewertung für gekillte Artikel\n" -#: src/lang.c:1755 +#: src/lang.c:1748 msgid "Enter minimal score before an article is marked hot. sets." msgstr "Artikel mit einer höheren Bewertung (Score) werd. als wichtig/hot markiert." -#: src/lang.c:1756 +#: src/lang.c:1749 msgid "Score limit (select) :" msgstr "Bewertungsgrenze (select) :" -#: src/lang.c:1757 +#: src/lang.c:1750 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:1761 +#: src/lang.c:1754 msgid "Enter default score to select articles. sets." msgstr "Bewertung für wichtige Artikel (hot). setzt." -#: src/lang.c:1762 +#: src/lang.c:1755 msgid "Default score to select articles :" msgstr "Bewertung für wichtige Artikel :" -#: src/lang.c:1763 +#: src/lang.c:1756 msgid "# Default score to select articles\n" msgstr "# Bewertung für wichtige Artikel (hot)\n" -#: src/lang.c:1769 +#: src/lang.c:1762 msgid "Use slrnface to show ''X-Face:''s :" msgstr "''X-Face:''s mit slrnface Anzeigen :" -#: src/lang.c:1770 +#: src/lang.c:1763 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:1778 +#: src/lang.c:1771 msgid "Use ANSI color :" msgstr "Benutze ANSI-Farben :" -#: src/lang.c:1779 +#: src/lang.c:1772 msgid "# If ON using ANSI-color\n" msgstr "# Falls ON benutze ANSI-Farben\n" -#: src/lang.c:1784 +#: src/lang.c:1777 msgid "Standard foreground color :" msgstr "Standard Vordergrundfarbe :" -#: src/lang.c:1785 +#: src/lang.c:1778 msgid "# Standard foreground color\n" msgstr "# Standard Vordergrundfarbe\n" -#: src/lang.c:1790 +#: src/lang.c:1783 msgid "Standard background color :" msgstr "Standard Hintergrundfarbe :" -#: src/lang.c:1791 +#: src/lang.c:1784 msgid "# Standard-Background-Color\n" msgstr "# Standard Hintergrundfarbe\n" -#: src/lang.c:1796 +#: src/lang.c:1789 msgid "Color for inverse text (background):" msgstr "Farbe des inversen Text (Hinterg.) :" -#: src/lang.c:1797 +#: src/lang.c:1790 msgid "# Color of background for inverse text\n" msgstr "# Farbe des Hintergrunds für inversen Text\n" -#: src/lang.c:1802 +#: src/lang.c:1795 msgid "Color for inverse text (foreground):" msgstr "Farbe des inversen Text (Vordergr.):" -#: src/lang.c:1803 +#: src/lang.c:1796 msgid "# Color of foreground for inverse text\n" msgstr "# Farbe des Vordergrunds für inversen Text\n" -#: src/lang.c:1808 +#: src/lang.c:1801 msgid "Color of text lines :" msgstr "Farbe der Textzeilen :" -#: src/lang.c:1809 +#: src/lang.c:1802 msgid "# Color of text-lines\n" msgstr "# Farbe der Textzeilen\n" -#: src/lang.c:1814 +#: src/lang.c:1807 msgid "Color of mini help menu :" msgstr "Farbe des Minihilfemenü :" -#: src/lang.c:1815 +#: src/lang.c:1808 msgid "# Color of mini help menu\n" msgstr "# Farbe des Minihilfemenü\n" -#: src/lang.c:1820 +#: src/lang.c:1813 msgid "Color of help text :" msgstr "Farbe des Hilfstext :" -#: src/lang.c:1821 +#: src/lang.c:1814 msgid "# Color of help pages\n" msgstr "# Farbe der Hilfsseiten\n" -#: src/lang.c:1826 +#: src/lang.c:1819 msgid "Color of status messages :" msgstr "Farbe der Statusmeldungen :" -#: src/lang.c:1827 +#: src/lang.c:1820 msgid "# Color of messages in last line\n" msgstr "# Farbe der letzten Zeile im Artikel\n" -#: src/lang.c:1832 +#: src/lang.c:1825 msgid "Color of quoted lines :" msgstr "Farbe der zitierten Zeilen :" -#: src/lang.c:1833 +#: src/lang.c:1826 msgid "# Color of quote-lines\n" msgstr "# Farbe der zitierten Zeilen\n" -#: src/lang.c:1838 +#: src/lang.c:1831 msgid "Color of twice quoted line :" msgstr "Farbe von zweifach zitierten Zeilen:" -#: src/lang.c:1839 +#: src/lang.c:1832 msgid "# Color of twice quoted lines\n" msgstr "# Farbe von zweifach zitierten Zeilen\n" -#: src/lang.c:1844 +#: src/lang.c:1837 msgid "Color of =>3 times quoted line :" msgstr "Farbe von =>3-fach zitierten Zeilen:" -#: src/lang.c:1845 +#: src/lang.c:1838 msgid "# Color of >=3 times quoted lines\n" msgstr "# Farbe von =>3-fach zitierten Zeilen\n" -#: src/lang.c:1850 +#: src/lang.c:1843 msgid "Color of article header lines :" msgstr "Farbe der Artikelheaderzeilen :" -#: src/lang.c:1851 +#: src/lang.c:1844 msgid "# Color of header-lines\n" msgstr "# Farbe der Artikelheaderzeilen\n" -#: src/lang.c:1856 +#: src/lang.c:1849 msgid "Color of actual news header fields :" msgstr "Farbe des angezeigten Headers :" -#: src/lang.c:1857 +#: src/lang.c:1850 msgid "# Color of actual news header fields\n" msgstr "# Farbe des angezeigten Headers\n" -#: src/lang.c:1862 +#: src/lang.c:1855 msgid "Color of article subject lines :" msgstr "Farbe der Subjectzeile :" -#: src/lang.c:1863 +#: src/lang.c:1856 msgid "# Color of article subject\n" msgstr "# Farbe der Subjectzeile\n" -#: src/lang.c:1868 +#: src/lang.c:1861 msgid "Color of response counter :" msgstr "Farbe des Antwortzählers :" -#: src/lang.c:1869 +#: src/lang.c:1862 msgid "# Color of response counter\n" msgstr "# Farbe des Antwortzählers\n" -#: src/lang.c:1874 +#: src/lang.c:1867 msgid "Color of sender (From:) :" msgstr "Farbe des Autors (From:) :" -#: src/lang.c:1875 +#: src/lang.c:1868 msgid "# Color of sender (From:)\n" msgstr "# Farbe des Autors (From:)\n" -#: src/lang.c:1880 +#: src/lang.c:1873 msgid "Color of help/mail sign :" msgstr "Farbe des Hilfe/Mail-Zeichen :" -#: src/lang.c:1881 +#: src/lang.c:1874 msgid "# Color of Help/Mail-Sign\n" msgstr "# Farbe des Hilfe/Mail-Zeichen\n" -#: src/lang.c:1886 +#: src/lang.c:1879 msgid "Color of signatures :" msgstr "Farbe von Signaturen :" -#: src/lang.c:1887 +#: src/lang.c:1880 msgid "# Color of signature\n" msgstr "# Farbe von Signaturen\n" -#: src/lang.c:1892 +#: src/lang.c:1885 msgid "Color of highlighting with *stars* :" msgstr "Farbe der Hervorhebung *Sterne* :" -#: src/lang.c:1893 +#: src/lang.c:1886 msgid "# Color of word highlighting. There are four possibilities\n" "# in articles: *stars*, /slashes/, _underdashes_ and -strokes-.\n" msgstr "# Farbe der Hervorhebungen. Es gibt vier Möglichkeiten in Artikeln:\n" "# *Sterne*, _Unterstriche_, /Schrägstriche/ und -Durchstreichen-.\n" -#: src/lang.c:1899 +#: src/lang.c:1892 msgid "Color of highlighting with _dash_ :" msgstr "Farbe der Hervorhebung _Striche_ :" -#: src/lang.c:1905 +#: src/lang.c:1898 msgid "Color of highlighting with /slash/ :" msgstr "Farbe der Hervorhebung /Schrägstr./:" -#: src/lang.c:1911 +#: src/lang.c:1904 msgid "Color of highlighting with -stroke-:" msgstr "Farbe der Hervorhebung -Durchstr.- :" -#: src/lang.c:1918 +#: src/lang.c:1911 msgid "Attr. of highlighting with *stars* :" msgstr "Hervorhebungsattribute *Sterne* :" -#: src/lang.c:1919 +#: src/lang.c:1912 msgid "# Attribute of word highlighting on mono terminals.\n" "# There are four possibilities in articles:\n" "# *stars*, /slashes/, _underdashes_ and -strokes-.\n" @@ -5321,39 +5311,39 @@ msgstr "# Attribute der Hervorhebung von "# 0 - normal, 1 - unterstrichen, 2 - beste Hervorhebung,\n" "# 3 - invers, 4 - blinkend, 5 - halbe Helligkeit, 6 - fett\n" -#: src/lang.c:1929 +#: src/lang.c:1922 msgid "Attr. of highlighting with _dash_ :" msgstr "Hervorhebungsattr. _Unterstriche_ :" -#: src/lang.c:1935 +#: src/lang.c:1928 msgid "Attr. of highlighting with /slash/ :" msgstr "Hervorhebungsattr. /Schrägstriche/ :" -#: src/lang.c:1941 +#: src/lang.c:1934 msgid "Attr. of highlighting with -stroke-:" msgstr "Hervorhebungsattr. -Durchstreich.- :" -#: src/lang.c:1947 +#: src/lang.c:1940 msgid "URL highlighting in message body :" msgstr "URL-Hervorhebung im Artikel :" -#: src/lang.c:1948 +#: src/lang.c:1941 msgid "# Enable URL highlighting?\n" msgstr "# URL-Hervorhebung aktivieren?\n" -#: src/lang.c:1953 +#: src/lang.c:1946 msgid "Word highlighting in message body :" msgstr "Wort-Hervorhebung im Artikel :" -#: src/lang.c:1954 +#: src/lang.c:1947 msgid "# Enable word highlighting?\n" msgstr "# Wort-Hervorhebung aktivieren?\n" -#: src/lang.c:1959 +#: src/lang.c:1952 msgid "What to display instead of mark :" msgstr "Anstelle der Markierung anzeigen :" -#: src/lang.c:1960 +#: src/lang.c:1953 msgid "# Should the leading and ending stars and dashes also be displayed,\n" "# even when they are highlighting marks?\n" "# 0 - no 1 - yes, display mark 2 - print a space instead\n" @@ -5361,59 +5351,59 @@ msgstr "# Sollen die führenden und absch "# werden, auch wenn sie Hervorhebungsmarkierungen sind?\n" "# 0 - nein 1 - ja, anzeigen 2 - Leerzeichen anstelle darstellen\n" -#: src/lang.c:1966 +#: src/lang.c:1959 msgid "Enter column number to wrap article lines to in the pager. sets." msgstr "Nach wie vielen Zeichen soll im Pager umbrochen werden? setzt." -#: src/lang.c:1967 +#: src/lang.c:1960 msgid "Page line wrap column :" msgstr "Zeilen umbrechen nach :" -#: src/lang.c:1968 +#: src/lang.c:1961 msgid "# Wrap article lines at column\n" msgstr "# In der Artikelanzeige Zeilen umbrechen bei Spalte\n" -#: src/lang.c:1973 +#: src/lang.c:1966 msgid "Wrap around threads on next unread :" msgstr "Nä.ungel.-kein Abbr. am Listenende?:" -#: src/lang.c:1974 +#: src/lang.c:1967 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:1978 +#: src/lang.c:1971 msgid "Enter default mail address (and fullname). sets." msgstr "Standard Mail-Adresse (und Name) eingeben. setzt." -#: src/lang.c:1979 +#: src/lang.c:1972 msgid "Mail address (and fullname) :" msgstr "Mailadresse (und Name) :" -#: src/lang.c:1980 +#: src/lang.c:1973 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:1985 +#: src/lang.c:1978 msgid "Show empty Followup-To in editor :" msgstr "Leeres Fup'2 im Editor anzeigen :" -#: src/lang.c:1986 +#: src/lang.c:1979 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:1990 +#: src/lang.c:1983 msgid "Enter path/! command/--none to create your default signature. sets." msgstr "Setze Pfad/! Kommando/--none um ihre Signatur festzulegen. setzt." -#: src/lang.c:1991 +#: src/lang.c:1984 msgid "Create signature from path/command :" msgstr "Erzeuge Signatur aus Pfad/Kommando :" -#: src/lang.c:1992 +#: src/lang.c:1985 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 " @@ -5424,49 +5414,49 @@ msgstr "# Pfad der Sig (Zufällige Sigs)/ "# default_sigfile=!Kommando führt Kommando aus um Sig zu erzeugen\n" "# default_sigfile=--none hängt keine Signatur an\n" -#: src/lang.c:1999 +#: src/lang.c:1992 msgid "Prepend signature with \"-- \" on own line. toggles & sets." msgstr "Trenne Sig mit \"-- \" in eigener Zeile ab. wechselt & setzt." -#: src/lang.c:2000 +#: src/lang.c:1993 msgid "Prepend signature with \"-- \" :" msgstr "Trenne Sig mit \"-- \" ab :" -#: src/lang.c:2001 +#: src/lang.c:1994 msgid "# If ON prepend the signature with dashes '\\n-- \\n'\n" msgstr "# Falls ON trenne Signatur mit '\\n-- \\n' ab\n" -#: src/lang.c:2005 +#: src/lang.c:1998 msgid "Add signature when reposting articles. toggles & sets." msgstr "Sig. beim Reposten eines Artikels hinzufügen? wechselt & setzt." -#: src/lang.c:2006 +#: src/lang.c:1999 msgid "Add signature when reposting :" msgstr "Signatur beim Reposten anhängen :" -#: src/lang.c:2007 +#: src/lang.c:2000 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:2011 +#: src/lang.c:2004 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:2012 +#: src/lang.c:2005 msgid "Characters used as quote-marks :" msgstr "Zitatzeichen :" -#: src/lang.c:2013 +#: src/lang.c:2006 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:2019 +#: src/lang.c:2012 msgid "Quoting behavior :" msgstr "Zitierverhalten :" -#: src/lang.c:2020 +#: src/lang.c:2013 msgid "# How quoting should be handled when following up or replying.\n" "# 0 = Nothing special\n" "# 1 = Compress quotes\n" @@ -5487,15 +5477,15 @@ msgstr "# Spezielle Optionen beim Zitier "# 7 = Zitatzeichen zusammenziehen & Signaturen zitieren & Leerzeilen " "zitieren\n" -#: src/lang.c:2032 src/lang.c:2040 src/lang.c:2046 +#: src/lang.c:2025 src/lang.c:2033 src/lang.c:2039 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:2033 +#: src/lang.c:2026 msgid "Quote line when following up :" msgstr "Einleitungszeile beim Antworten :" -#: src/lang.c:2034 +#: src/lang.c:2027 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" @@ -5503,35 +5493,35 @@ msgstr "# Format der Einleitungszeile be "# %%A Adresse %%D Datum %%F Adr+Name %%G Gruppenname %%M Message-ID\n" "# %%N Voller Name %%C Vorname %%I Initialen\n" -#: src/lang.c:2041 +#: src/lang.c:2034 msgid "Quote line when cross-posting :" msgstr "Einleitungszeile beim Crossposten :" -#: src/lang.c:2047 +#: src/lang.c:2040 msgid "Quote line when mailing :" msgstr "Einleitungszeile bei Mailantwort :" -#: src/lang.c:2052 +#: src/lang.c:2045 msgid "If ON, include User-Agent: header. toggles & sets." msgstr "Falls ON, füge User-Agent:-Header ein. wechselt & setzt." -#: src/lang.c:2053 +#: src/lang.c:2046 msgid "Insert 'User-Agent:'-header :" msgstr "Füge 'User-Agent:'-header ein :" -#: src/lang.c:2054 +#: src/lang.c:2047 msgid "# If ON include advertising User-Agent: header\n" msgstr "# Falls ON füge 'User-Agent: header' ein\n" -#: src/lang.c:2058 +#: src/lang.c:2051 msgid "Enter charset name for MIME (e.g. US-ASCII, ISO-8859-1, EUC-KR), to set." msgstr "Zeichensatz für MIME (z.B. US-ASCII, ISO-8859-1, EUC-KR), setzt." -#: src/lang.c:2059 +#: src/lang.c:2052 msgid "MM_CHARSET :" msgstr "MM_CHARSET :" -#: src/lang.c:2060 +#: src/lang.c:2053 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" @@ -5548,27 +5538,27 @@ msgstr "# Der lokale Zeichensatz, der au "# definiert, werden andere Zeichensätze als mm_charset nicht dargestellt\n" "# und die jeweiligen Zeichen durch ein '?' ersetzt.\n" -#: src/lang.c:2071 +#: src/lang.c:2064 msgid "MM_NETWORK_CHARSET :" msgstr "MM_NETWORK_CHARSET :" -#: src/lang.c:2072 +#: src/lang.c:2065 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:2078 +#: src/lang.c:2071 msgid "Mailbox format :" msgstr "Mailbox-Format :" -#: src/lang.c:2079 +#: src/lang.c:2072 msgid "# Format of the mailbox.\n" msgstr "# Format der Mailbox.\n" -#: src/lang.c:2084 +#: src/lang.c:2077 msgid "MIME encoding in news messages :" msgstr "MIME-Kodierung in Newsartikeln :" -#: src/lang.c:2085 +#: src/lang.c:2078 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" @@ -5582,15 +5572,15 @@ msgstr "# MIME-Kodierung (8bit, base64, "# die meisten 8Bit Zeichensätze aus Ostasien, Griechenland und Russland\n" "# ist, da dort gehäuft 8Bit Zeichen vorkommen.\n" -#: src/lang.c:2093 src/lang.c:2114 +#: src/lang.c:2086 src/lang.c:2107 msgid "Don't change unless you know what you are doing. cancels." msgstr "Nur ändern, wenn Sie genau wissen, was Sie machen. bricht ab" -#: src/lang.c:2094 +#: src/lang.c:2087 msgid "Use 8bit characters in news headers:" msgstr "Benutze 8bit-Zeichen im Newsheader :" -#: src/lang.c:2095 +#: src/lang.c:2088 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" @@ -5602,27 +5592,27 @@ msgstr "# Wenn ON werden 8-Bit-Zeichen ( "# kodiert, wenn post_mime_encoding nicht auch auf 8bit eingestellt\n" "# ist.\n" -#: src/lang.c:2102 +#: src/lang.c:2095 msgid "Auto-view post-processed files toggles, sets, cancels." msgstr "Nachbearbeitete Artikel autom. anz. wechselt, setzt, Ende" -#: src/lang.c:2103 +#: src/lang.c:2096 msgid "View post-processed files :" msgstr "Nachbearbeitete Artikel anzeigen :" -#: src/lang.c:2104 +#: src/lang.c:2097 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:2109 +#: src/lang.c:2102 msgid "MIME encoding in mail messages :" msgstr "MIME-Kodierung für E-Mails :" -#: src/lang.c:2115 +#: src/lang.c:2108 msgid "Use 8bit characters in mail headers:" msgstr "Benutze 8bit Zeichen im Mail Header:" -#: src/lang.c:2116 +#: src/lang.c:2109 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 " @@ -5639,24 +5629,24 @@ msgstr "# Wenn ON werden 8-Bit-Zeichen ( "# E-Mailheadern verbieten, daher sollte diese Einstellung NICHT auf ON\n" "# geändert werden, wenn es keine zwingende Gründe dafür gibt.\n" -#: src/lang.c:2126 +#: src/lang.c:2119 msgid "Strip blanks from ends of lines :" msgstr "Leerzeichen am Zeilenende entfernen:" -#: src/lang.c:2127 +#: src/lang.c:2120 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:2132 +#: src/lang.c:2125 msgid "If ON, use transliteration. toggles & sets." msgstr "Wenn ON verwende Umschreibungen. wechselt & setzt." -#: src/lang.c:2133 +#: src/lang.c:2126 msgid "Transliteration :" msgstr "Verwende Umschreibungen :" -#: src/lang.c:2134 +#: src/lang.c:2127 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" @@ -5666,640 +5656,435 @@ msgstr "# Wenn ON verwende //TRANSLIT Er "# Terminal als EUR umschrieben, ohne //TRANSLIT würde tin ein\n" "# Fragezeichen verwenden.\n" -#: src/lang.c:2141 +#: src/lang.c:2134 msgid "Send you a carbon copy automatically. toggles & sets." msgstr "Sendet ihnen automatisch eine Kopie. wechselt & setzt." -#: src/lang.c:2142 +#: src/lang.c:2135 msgid "Send you a cc automatically :" msgstr "Sendet Ihnen ein Cc automatisch :" -#: src/lang.c:2143 +#: src/lang.c:2136 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:2147 +#: src/lang.c:2140 msgid "Send you a blind carbon copy automatically. toggles & sets." msgstr "Sendet ihnen automatisch eine blinde Kopie. wechselt & setzt." -#: src/lang.c:2148 +#: src/lang.c:2141 msgid "Send you a blind cc automatically :" msgstr "Sendet Ihnen eine blinde cc autom. :" -#: src/lang.c:2149 +#: src/lang.c:2142 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:2153 +#: src/lang.c:2146 msgid "Enter address elements about which you want to be warned. sets." msgstr "Geben Sie den Adressenteil an, vor dem Sie gewarnt werden. setzt." -#: src/lang.c:2154 +#: src/lang.c:2147 msgid "Spamtrap warning address parts :" msgstr "Spamfallenwarnung in Adresse :" -#: src/lang.c:2155 +#: src/lang.c:2148 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:2160 +#: src/lang.c:2153 msgid "Enter default number of days a filter entry will be valid. sets." msgstr "Gültigkeit eines Filtereintrags in Tagen. setzt." -#: src/lang.c:2161 +#: src/lang.c:2154 msgid "No. of days a filter entry is valid:" msgstr "Tage, die ein Filter gültig ist :" -#: src/lang.c:2162 +#: src/lang.c:2155 msgid "# Number of days a short term filter will be active\n" msgstr "# Anzahl der Tage die ein temporaerer Filter aktiv ist\n" -#: src/lang.c:2166 +#: src/lang.c:2159 msgid "Add posted articles to filter. toggles & sets." msgstr "Gepostete Artikel zum Filter hinzufügen. wechselt & setzt." -#: src/lang.c:2167 +#: src/lang.c:2160 msgid "Add posted articles to filter :" msgstr "Füge gepostete Artikel zum Filter :" -#: src/lang.c:2168 +#: src/lang.c:2161 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 Article die einen neunen Thread einleiten\n" "# zum Filter hinzu um evtl. Antworten hervorzuheben\n" -#: src/lang.c:2172 +#: src/lang.c:2165 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:2173 +#: src/lang.c:2166 msgid "Mail directory :" msgstr "Mail Verzeichnis :" -#: src/lang.c:2174 +#: src/lang.c:2167 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:2179 +#: src/lang.c:2172 msgid "Save articles in batch mode (-S) :" msgstr "Speicher Artikel im Batchmode (-S) :" -#: src/lang.c:2180 +#: src/lang.c:2173 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 save -S,\n" "# oder gemailt, wenn -M bzw. -N in der Kommandozeile angegeben wurde\n" -#: src/lang.c:2185 +#: src/lang.c:2178 msgid "The directory where you want articles/threads saved." msgstr "Das Verzeichnis, in dem Artikel/Threads gespeichert werden sollen." -#: src/lang.c:2186 +#: src/lang.c:2179 msgid "Directory to save arts/threads in :" msgstr "Verz. um Art/Threads zu speichern :" -#: src/lang.c:2187 +#: src/lang.c:2180 msgid "# Directory where articles/threads are saved\n" msgstr "# Verzeichnis in dem Artikel/Threads gespeichert werden\n" -#: src/lang.c:2191 +#: src/lang.c:2184 msgid "Auto save article/thread by Archive-name: header. toggles & sets." msgstr "Autom. sp. von Art/Thread anhand Archive-name:-Header. wechselt & " " setzt." -#: src/lang.c:2192 +#: src/lang.c:2185 msgid "Use Archive-name: header for save :" msgstr "Nutze Archive-name: zum Speichern :" -#: src/lang.c:2193 +#: src/lang.c:2186 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:2198 +#: src/lang.c:2191 msgid "Mark saved articles/threads as read. toggles, sets, " "cancels." msgstr "Gesp. Art. gelesen markieren. wechselt, setzt, bricht ab." -#: src/lang.c:2199 +#: src/lang.c:2192 msgid "Mark saved articles/threads as read:" msgstr "Mark. gesp. Artikel/Threads gelesen:" -#: src/lang.c:2200 +#: src/lang.c:2193 msgid "# If ON mark articles that are saved as read\n" msgstr "# Falls ON werden gespeicherte Artikel als gelesen markiert\n" -#: src/lang.c:2204 +#: src/lang.c:2197 msgid "Do post processing (eg. extract attachments) for saved articles." msgstr "Bearbeite (z.B. unshar) gesp. Art/Threads. wechselt & setzt." -#: src/lang.c:2205 +#: src/lang.c:2198 msgid "Post process saved articles :" msgstr "Nachbearbeiten gespeichert. Artikel:" -#: src/lang.c:2206 +#: src/lang.c:2199 msgid "# Perform post processing (saving binary attachments) from saved articles.\n" "# 0=(no) 1=(yes) 2=(extract shell archives (shar) only)\n" msgstr "# Nachbearbeiten gespeicherter Artikel\n" "# 0=(nein) 1=(ja) 2=(nur Shell Archive (shar) auspacken)\n" -#: src/lang.c:2212 +#: src/lang.c:2205 msgid "Process only unread articles :" msgstr "Bearbeite nur ungelesene Artikel :" -#: src/lang.c:2213 +#: src/lang.c:2206 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:2218 +#: src/lang.c:2211 msgid "Print all or just part of header. toggles & sets." msgstr "Drucke alles oder nur Teile des Headers wechselt & setzt." -#: src/lang.c:2219 +#: src/lang.c:2212 msgid "Print all headers when printing :" msgstr "Alle Header beim Drucken ausgeben :" -#: src/lang.c:2220 +#: src/lang.c:2213 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:2224 +#: src/lang.c:2217 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:2225 +#: src/lang.c:2218 msgid "Printer program with options :" msgstr "Druckprogramm mit Optionen :" -#: src/lang.c:2226 +#: src/lang.c:2219 msgid "# Print program with parameters used to print articles/threads\n" msgstr "# Druckprogramm mit Optionen zum drucken der Artikel/Threads\n" -#: src/lang.c:2232 +#: src/lang.c:2225 msgid "Force redraw after certain commands:" msgstr "Anzeigeauffrischung nach Kommandos :" -#: src/lang.c:2233 +#: src/lang.c:2226 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:2237 +#: src/lang.c:2230 msgid "Start editor with line offset. toggles, sets, cancels." msgstr "Starte Editor mit Einrückung. wechselt, setzt, bricht ab." -#: src/lang.c:2238 +#: src/lang.c:2231 msgid "Start editor with line offset :" msgstr "Starte Editor mit Einrückung :" -#: src/lang.c:2239 +#: src/lang.c:2232 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:2244 +#: src/lang.c:2237 msgid "Enter %E for editor, %F for filename, %N for line-number, to set." msgstr "%E für Editor, %F für Dateiname, %N für Zeilennummer, setzt." -#: src/lang.c:2245 +#: src/lang.c:2238 msgid "Invocation of your editor :" msgstr "Aufruf ihres Editors :" -#: src/lang.c:2246 +#: src/lang.c:2239 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:2251 +#: src/lang.c:2244 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:2252 +#: src/lang.c:2245 msgid "External inews :" msgstr "Externes inews-Programm :" -#: src/lang.c:2253 +#: src/lang.c:2246 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 angebenen\n" "# Optionen verwendet. z.B. 'inews -h'\n" -#: src/lang.c:2257 +#: src/lang.c:2250 msgid "Enter %M for mailer, %S for subject, %T for to, %F for filename, to set." msgstr "%M für den Mailer, %S für Subject, %T für to, %F für Dateinamen, setzt." -#: src/lang.c:2258 +#: src/lang.c:2251 msgid "Invocation of your mail command :" msgstr "Aufruf ihres Mailkommandos :" -#: src/lang.c:2259 +#: src/lang.c:2252 msgid "# Format of mailer line including parameters\n" - "# %%M Mailer %%S Subject %%T To %%F Filename %%U User (AmigaDOS)\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 %%U User (AmigaDOS)\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:2267 +#: src/lang.c:2260 msgid "Use interactive mail reader :" msgstr "Benutze interaktives Mailprogramm :" -# TRANSLATION MISSING -#: src/lang.c:2268 +#: src/lang.c:2261 msgid "# Interactive mailreader:\n" "# 0 = no interactive mailreader\n" "# 1 = use interactive mailreader with headers in file\n" "# 2 = use interactive mailreader without headers in file\n" -msgstr "" +msgstr "# Interaktives Mailprogramm:\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:2276 +#: src/lang.c:2269 msgid "Remove ~/.article after posting :" msgstr "Entferne ~/.article nach dem posten:" -#: src/lang.c:2277 +#: src/lang.c:2270 msgid "# If ON remove ~/.article after posting.\n" msgstr "# Falls ON entferne ~/.article nach dem posten.\n" -#: src/lang.c:2281 +#: src/lang.c:2274 msgid "Filename for all posted articles, sets, no filename=do not save." msgstr "Dateiname für Kopie geposteter Artikel. setzt, kein Name=keine Kopie." -#: src/lang.c:2282 +#: src/lang.c:2275 msgid "Filename for posted articles :" msgstr "Gepostete Artikel speichern in :" -#: src/lang.c:2283 +#: src/lang.c:2276 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:2288 +#: src/lang.c:2281 msgid "Keep all failed articles in ~/dead.articles. toggles & sets." msgstr "Behalte alle Fehlschläge in ~/dead.articles. wechselt & setzt." -#: src/lang.c:2289 +#: src/lang.c:2282 msgid "Keep failed arts in ~/dead.articles:" msgstr "Halte Fehlschl. in ~/dead.articles :" -#: src/lang.c:2290 +#: src/lang.c:2283 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:2294 +#: src/lang.c:2287 msgid "Do you want to strip unsubscribed groups from .newsrc" msgstr "Wollen Sie nicht-abonnierte Gruppen aus der .newsrc entfernen?" -#: src/lang.c:2295 +#: src/lang.c:2288 msgid "No unsubscribed groups in newsrc :" msgstr "Nur abonnierte Gruppen in newsrc :" -#: src/lang.c:2296 +#: src/lang.c:2289 msgid "# If ON strip unsubscribed groups from newsrc\n" msgstr "# Falls ON entferne nicht-abonnierte Gruppen aus der newsrc\n" -#: src/lang.c:2301 +#: src/lang.c:2294 msgid "Remove bogus groups from newsrc :" msgstr "Lösche nicht vorhande G. aus newsrc:" -#: src/lang.c:2302 +#: src/lang.c:2295 msgid "# What to do with bogus groups in newsrc file\n" "# 0=(Keep) 1=(Remove) 2=(Highlight with D on selection screen).\n" msgstr "# Was soll mit nicht mehr vorhanden Gruppen in der newsrc-Datei passieren?\n" "# 0=(Behalten) 1=(entfernen) 2=(Mit D in der Auswahl markieren).\n" -#: src/lang.c:2306 +#: src/lang.c:2299 msgid "Enter number of seconds until active file will be reread. sets." msgstr "Sekunden, nach denen die active-Datei wieder gelesen wird. setzt." -#: src/lang.c:2307 +#: src/lang.c:2300 msgid "Interval in secs to reread active :" msgstr "Active alle ... Sekunden neu lesen :" -#: src/lang.c:2308 +#: src/lang.c:2301 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:2313 +#: src/lang.c:2306 msgid "Reconnect to server automatically :" msgstr "Autom. Wiederverbindung zum Server :" -#: src/lang.c:2314 +#: src/lang.c:2307 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:2318 +#: src/lang.c:2311 msgid "Create local copies of NNTP overview files. toggles & sets." msgstr "Erzeuge lokale Kopien der NNTP Overview Dateien. wechselt & " "setzt." -#: src/lang.c:2319 +#: src/lang.c:2312 msgid "Cache NNTP overview files locally :" msgstr "Speichere NNTP Overview Daten lokal:" -#: src/lang.c:2320 +#: src/lang.c:2313 msgid "# If ON, create local copies of NNTP overview files.\n" msgstr "# Falls ON, erzeuge lokale Kopien der NNTP Overview Dateien.\n" -#: src/main.c:619 +#: src/lang.c:2317 +msgid "Enter format string. sets, cancels." +msgstr "Format-Zeichenkette eingeben. setzt, bricht ab." + +#: src/lang.c:2318 +msgid "Format string for display of dates :" +msgstr "Datums Format-Zeichenkette :" + +#: src/lang.c:2319 +msgid "# Format string for date representation\n" +msgstr "# Zeichenkette die die Datumsanzeige beschreibt.\n" + +#: src/main.c:590 #, c-format msgid "Version: %s release %s (\"%s\") %s %s" msgstr "Version: %s Ausgabe %s (\"%s\") %s %s" -#: src/main.c:622 +#: src/main.c:593 #, c-format msgid "Version: %s release %s (\"%s\")" msgstr "Version: %s Ausgabe %s (\"%s\")" -#: src/nntplib.c:804 +#: src/newsrc.c:432 +msgid "Unreachable?\n" +msgstr "Unerreichbar?\n" + +#: src/nntplib.c:821 #, c-format msgid "\n" "Server timed out, trying reconnect # %d\n" msgstr "\n" "Server reagierte nicht, Wiederholung Nummer # %d\n" -#: src/nntplib.c:822 +#: src/nntplib.c:839 msgid "Rejoin current group\n" msgstr "Betrete aktuelle Gruppe neu\n" -#: src/nntplib.c:829 +#: src/nntplib.c:846 #, c-format msgid "Read (%s)\n" msgstr "Lese (%s)\n" -#: src/nntplib.c:831 +#: src/nntplib.c:848 #, c-format msgid "Resend last command (%s)\n" msgstr "Sende letztes Kommando (%s) neu\n" -#: src/nntplib.c:951 -msgid "100 Help text on way" -msgstr "100 Hilfetext ist auf dem Weg" - -#: src/nntplib.c:955 -msgid "180 Authorization capabilities" -msgstr "180 Anmeldeeigenschaft" - -#: src/nntplib.c:959 -msgid "199 Debug output" -msgstr "199 Debug-Ausgabe" - -#: src/nntplib.c:963 -msgid "200 Hello; you can post" -msgstr "200 Hallo; Sie dürfen Posten" - -#: src/nntplib.c:967 -msgid "201 Hello; you can't post" -msgstr "201 Hallo; Sie dürfen nicht Posten" - -#: src/nntplib.c:971 -msgid "202 Slave status noted" -msgstr "202 Empfängerstatus notiert" - -#: src/nntplib.c:979 -msgid "211 Group selected" -msgstr "211 Gruppe ausgewählt" - -#: src/nntplib.c:984 -msgid "215 Newsgroups follow" -msgstr "215 Newsgruppen folgen" - -#: src/nntplib.c:989 -msgid "218 Group index file follows" -msgstr "218 Gruppenindexdatei folgt" - -#: src/nntplib.c:994 -msgid "220 Article (head & body) follows" -msgstr "220 Artikel (Header und Body) folgt" - -#: src/nntplib.c:998 -msgid "221 Head follows" -msgstr "221 Header folgt" - -#: src/nntplib.c:1002 -msgid "222 Body follows" -msgstr "222 Body folgt" - -#: src/nntplib.c:1006 -msgid "223 No text sent -- stat, next, last" -msgstr "223 Kein Text gesendet -- status, nächster, letzter" - -#: src/nntplib.c:1010 -msgid "230 New articles by message-id follow" -msgstr "230 Neue Artikel mit Message-ID folgen" - -#: src/nntplib.c:1014 -msgid "231 New newsgroups follow" -msgstr "231 Neue Newsgruppen folgen" - -#: src/nntplib.c:1018 -msgid "235 Article transferred successfully" -msgstr "235 Artikel erfolgreich übertragen" - -#: src/nntplib.c:1022 -msgid "240 Article posted successfully" -msgstr "240 Artikel erfolgreich gepostet" - -#: src/nntplib.c:1026 -msgid "280 Authorization system ok" -msgstr "280 Anmeldeart OK" - -#: src/nntplib.c:1030 -msgid "281 Authorization (user/pass) ok" -msgstr "281 Anmeldung (Benutzer/Passwort) OK" - -#: src/nntplib.c:1034 -msgid "282 binary data follows" -msgstr "282 Binär-Daten folgen" - -#: src/nntplib.c:1038 -msgid "283 spooldir list follows" -msgstr "283 Spool-Verzeichnisliste folgt" - -#: src/nntplib.c:1042 -msgid "284 Switching to a different spooldir" -msgstr "284 Schalte auf ein anderes Spool-Verzeichnis um" - -#: src/nntplib.c:1046 -msgid "285 Still using same spooldir" -msgstr "285 Benutze immer noch das selbe Spool-Verzeichnis" - -#: src/nntplib.c:1050 -msgid "286 Current spooldir" -msgstr "286 Aktuelles Spool-Verzeichnis" - -#: src/nntplib.c:1054 -msgid "287 Available spooldir" -msgstr "287 Verfügbare Spool-Verzeichnisse" - -#: src/nntplib.c:1058 -msgid "288 Unavailable spooldir or invalid entry" -msgstr "288 Nicht verfügbares Spool-Verzeichnis oder ungültiger Eintrag" - -#: src/nntplib.c:1062 -msgid "335 Continue to send article" -msgstr "335 Fahren Sie mit dem Senden des Artikels fort" - -#: src/nntplib.c:1066 -msgid "340 Continue to post article" -msgstr "340 Fahren sie mit dem Posten des Artikels fort" - -#: src/nntplib.c:1070 -msgid "380 authorization is required" -msgstr "380 Anmeldung ist notwendig" - -#: src/nntplib.c:1074 -msgid "381 authorization data required" -msgstr "381 Anmeldedaten notwendig" - -#: src/nntplib.c:1078 -msgid "400 Have to hang up for some reason" -msgstr "400 Muss aus irgendeinem Grund die Verbindung trennen" - -#: src/nntplib.c:1082 -msgid "411 No such newsgroup" -msgstr "411 Ungültige Newsgruppe" - -#: src/nntplib.c:1086 -msgid "412 Not currently in newsgroup" -msgstr "412 Im Augenblick in keiner Newsgruppe" - -#: src/nntplib.c:1090 -msgid "418 No index file for this group" -msgstr "418 Keine Index-Datei für diese Newsgruppe" - -#: src/nntplib.c:1094 -msgid "420 No current article selected" -msgstr "420 Kein aktueller Artikel ausgewählt" - -#: src/nntplib.c:1098 -msgid "421 No next article in this group" -msgstr "421 Kein nächster Artikel in dieser Gruppe" - -#: src/nntplib.c:1102 -msgid "422 No previous article in this group" -msgstr "422 Kein vorheriger Artikel in dieser Gruppe" - -#: src/nntplib.c:1106 -msgid "423 No such article in this group" -msgstr "423 Ungültiger Artikel in dieser Gruppe" - -#: src/nntplib.c:1110 -msgid "430 No such article at all" -msgstr "430 Allgemein ungültiger Artikel" - -#: src/nntplib.c:1114 -msgid "435 Already got that article, don't send" -msgstr "435 Habe den Artikel schon, nicht senden" - -#: src/nntplib.c:1118 -msgid "436 Transfer failed" -msgstr "436 Transfer fehlgeschlagen" - -#: src/nntplib.c:1122 -msgid "437 Article rejected, don't resend" -msgstr "437 Artikel abgelehnt, nicht neu senden" - -#: src/nntplib.c:1126 -msgid "440 Posting not allowed" -msgstr "440 Posten nicht erlaubt" - -#: src/nntplib.c:1130 -msgid "441 Posting failed" -msgstr "441 Posten fehlgeschlagen" - -#: src/nntplib.c:1134 -msgid "480 authorization required for command" -msgstr "480 Anmeldung für dieses Kommando notwendig" - -#: src/nntplib.c:1138 -msgid "481 Authorization system invalid" -msgstr "481 Anmeldeart ungültig" - -#: src/nntplib.c:1142 -msgid "482 Authorization data rejected" -msgstr "482 Anmeldedaten abgelehnt" - -#: src/nntplib.c:1146 -msgid "483 Invalid alias on spooldir cmd" -msgstr "483 Ungültiger Alias im Kommando für das Spoolverzeichnis" - -#: src/nntplib.c:1150 -msgid "484 No spooldir file found" -msgstr "484 Kein Spool-Verzeichnis gefunden" - -#: src/nntplib.c:1154 -msgid "500 Command not recognized" -msgstr "500 Kommando nicht erkannt" - -#: src/nntplib.c:1158 -msgid "501 Command syntax error" -msgstr "501 Kommandosyntaxfehler" - -#: src/nntplib.c:1162 -msgid "502 Access to server denied" -msgstr "502 Zugriff auf Server verboten" - -#: src/nntplib.c:1167 -msgid "503 Program fault, command not performed" -msgstr "503 Programmfehler, Kommando nicht ausgeführt" - -#: src/nntplib.c:1171 -msgid "580 Authorization Failed" -msgstr "580 Anmeldung fehlgeschlagen" - -#: src/nntplib.c:1175 -msgid "Unknown NNTP response code" -msgstr "Unbekannter NNTP-Antwort-Code" - #: src/nrctbl.c:172 #, c-format msgid "couldn't expand %s\n" msgstr "Kann %s nicht expandieren\n" -#: src/open.c:1123 -msgid "Unreachable?\n" -msgstr "Unerreichbar?\n" - -#: src/post.c:1749 +#: src/post.c:1747 #, c-format msgid "%s is bogus" msgstr "%s ist ungültig" -#: src/post.c:1936 +#: src/post.c:1934 #, c-format msgid "Posting: %.*s ..." msgstr "Poste: %.*s ..." #. TODO: -> lang.c -#: src/post.c:4034 +#: src/post.c:4037 #, c-format msgid "Rereading %s..." msgstr "Lese %s..." #. fp #. Check if okay to read -#: src/read.c:219 +#: src/read.c:214 msgid "Aborting read, please wait..." msgstr "Breche Lesen ab, bitte warten..." -#: src/read.c:366 +#: src/read.c:361 msgid "Aborted read\n" msgstr "Lesen abgebrochen\n" -#: src/read.c:422 +#: src/read.c:417 msgid "Draining\n" msgstr "Ablassen\n" Binary files tin-1.7.1/po/en_GB.gmo and tin-1.7.2/po/en_GB.gmo differ diff -Nurp tin-1.7.1/po/en_GB.po tin-1.7.2/po/en_GB.po --- tin-1.7.1/po/en_GB.po Thu Sep 18 18:32:18 2003 +++ tin-1.7.2/po/en_GB.po Sun Oct 19 00:57:50 2003 @@ -3,7 +3,7 @@ # msgid "" msgstr "Project-Id-Version: tin 1.7.0\n" - "POT-Creation-Date: 2003-09-18 18:31+0200\n" + "POT-Creation-Date: 2003-10-19 00:55+0200\n" "PO-Revision-Date: 2002-11-15 20:10+0000\n" "Last-Translator: Robert Brady \n" "Language-Team: \n" @@ -11,221 +11,224 @@ msgstr "Project-Id-Version: tin 1.7.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" -#: src/art.c:1228 +#: src/art.c:1423 #, c-format msgid "%d Bad overview record (%d fields) '%s'" msgstr "" -#: src/attrib.c:574 +#: src/attrib.c:580 msgid "# Do not edit this comment block\n" "#\n" msgstr "" -#: src/attrib.c:575 +#: src/attrib.c:581 msgid "# scope=STRING (ie. alt.*,!alt.bin*) [mandatory]\n" msgstr "" -#: src/attrib.c:576 +#: src/attrib.c:582 msgid "# maildir=STRING (ie. ~/Mail)\n" msgstr "" -#: src/attrib.c:577 +#: src/attrib.c:583 msgid "# savedir=STRING (ie. ~user/News)\n" msgstr "" -#: src/attrib.c:578 +#: src/attrib.c:584 msgid "# savefile=STRING (ie. =linux)\n" msgstr "" -#: src/attrib.c:579 +#: src/attrib.c:585 msgid "# sigfile=STRING (ie. $var/sig)\n" msgstr "" -#: src/attrib.c:580 +#: src/attrib.c:586 msgid "# organization=STRING (if beginning with '/' read from file)\n" msgstr "" -#: src/attrib.c:581 +#: src/attrib.c:587 msgid "# followup_to=STRING\n" msgstr "" -#: src/attrib.c:582 +#: src/attrib.c:588 msgid "# mailing_list=STRING (ie. majordomo@example.org)\n" msgstr "" -#: src/attrib.c:583 +#: src/attrib.c:589 msgid "# x_headers=STRING (ie. ~/.tin/extra-headers)\n" msgstr "" -#: src/attrib.c:584 +#: src/attrib.c:590 msgid "# x_body=STRING (ie. ~/.tin/extra-body-text)\n" msgstr "" -#: src/attrib.c:585 +#: src/attrib.c:591 msgid "# from=STRING (just append wanted From:-line, don't use quotes)\n" msgstr "" -#: src/attrib.c:586 +#: src/attrib.c:592 msgid "# news_quote_format=STRING\n" msgstr "" -#: src/attrib.c:587 +#: src/attrib.c:593 msgid "# quote_chars=STRING (%%s, %%S for initials)\n" msgstr "" -#: src/attrib.c:588 +#: src/attrib.c:594 msgid "# mime_types_to_save=STRING (eg. image/*,!image/bmp)\n" msgstr "" -#: src/attrib.c:590 +#: src/attrib.c:596 msgid "# ispell=STRING\n" msgstr "" -#: src/attrib.c:592 +#: src/attrib.c:598 msgid "# auto_select=ON/OFF\n" msgstr "" -#: src/attrib.c:593 +#: src/attrib.c:599 msgid "# auto_save=ON/OFF\n" msgstr "" -#: src/attrib.c:594 +#: src/attrib.c:600 msgid "# batch_save=ON/OFF\n" msgstr "" -#: src/attrib.c:595 +#: src/attrib.c:601 msgid "# delete_tmp_files=ON/OFF\n" msgstr "" -#: src/attrib.c:596 +#: src/attrib.c:602 msgid "# show_only_unread=ON/OFF\n" msgstr "" -#: src/attrib.c:597 +#: src/attrib.c:603 msgid "# thread_arts=NUM" msgstr "" -#: src/attrib.c:604 +#: src/attrib.c:610 msgid "# show_author=NUM\n" msgstr "" -#: src/attrib.c:610 +#: src/attrib.c:616 msgid "# sort_art_type=NUM\n" msgstr "" -#: src/attrib.c:628 +#: src/attrib.c:634 msgid "# sort_threads_type=NUM\n" msgstr "" -#: src/attrib.c:633 +#: src/attrib.c:639 msgid "# post_proc_type=NUM\n" msgstr "" -#: src/attrib.c:638 +#: src/attrib.c:644 msgid "# quick_kill_scope=STRING (ie. talk.*)\n" msgstr "" -#: src/attrib.c:639 +#: src/attrib.c:645 msgid "# quick_kill_expire=ON/OFF\n" msgstr "" -#: src/attrib.c:640 +#: src/attrib.c:646 msgid "# quick_kill_case=ON/OFF\n" msgstr "" -#: src/attrib.c:641 +#: src/attrib.c:647 msgid "# quick_kill_header=NUM\n" msgstr "" -#: src/attrib.c:642 src/attrib.c:649 +#: src/attrib.c:648 src/attrib.c:655 msgid "# 0=subj (case sensitive) 1=subj (ignore case)\n" msgstr "" -#: src/attrib.c:643 src/attrib.c:650 +#: src/attrib.c:649 src/attrib.c:656 msgid "# 2=from (case sensitive) 3=from (ignore case)\n" msgstr "" -#: src/attrib.c:644 src/attrib.c:651 +#: src/attrib.c:650 src/attrib.c:657 msgid "# 4=msgid 5=lines\n" msgstr "" -#: src/attrib.c:645 +#: src/attrib.c:651 msgid "# quick_select_scope=STRING\n" msgstr "" -#: src/attrib.c:646 +#: src/attrib.c:652 msgid "# quick_select_expire=ON/OFF\n" msgstr "" -#: src/attrib.c:647 +#: src/attrib.c:653 msgid "# quick_select_case=ON/OFF\n" msgstr "" -#: src/attrib.c:648 +#: src/attrib.c:654 msgid "# quick_select_header=NUM\n" msgstr "" -#: src/attrib.c:652 +#: src/attrib.c:658 msgid "# x_comment_to=ON/OFF\n" msgstr "" -#: src/attrib.c:653 +#: src/attrib.c:659 +msgid "# fcc=STRING (eg. =mailbox)\n" +msgstr "" + +#: src/attrib.c:660 msgid "# tex2iso_conv=ON/OFF\n" msgstr "" -#: src/attrib.c:655 +#: src/attrib.c:662 msgid "# mm_network_charset=supported_charset" msgstr "" -#: src/attrib.c:662 +#: src/attrib.c:669 msgid "# undeclared_charset=STRING (default is US-ASCII)\n" msgstr "" -#: src/attrib.c:664 +#: src/attrib.c:671 msgid "#\n" "# Note that it is best to put general (global scoping)\n" msgstr "" -#: src/attrib.c:665 +#: src/attrib.c:672 msgid "# entries first followed by group specific entries.\n" "#\n" msgstr "" -#: src/attrib.c:666 +#: src/attrib.c:673 msgid "############################################################################\n" "\n" msgstr "" -#: src/attrib.c:672 +#: src/attrib.c:679 msgid "# include extra headers\n" msgstr "" -#: src/attrib.c:680 +#: src/attrib.c:687 msgid "# in *sources* set post process type to shar only\n" msgstr "" -#: src/attrib.c:684 +#: src/attrib.c:691 msgid "# in *binaries* do full post processing, remove tmp files\n" msgstr "" -#: src/attrib.c:685 +#: src/attrib.c:692 msgid "# and set Followup-To: poster\n" msgstr "" -#: src/cook.c:799 +#: src/cook.c:809 msgid "(unknown)" msgstr "" #. #. * TODO: add to the right rule, give better explanation, -> lang.c #. -#: src/filter.c:604 src/filter.c:612 +#: src/filter.c:607 src/filter.c:615 msgid "Removed from the previous rule: " msgstr "" #: src/lang.c:42 -#, c-format -msgid "1 Response%s" +msgid "1 Response" msgstr "" #: src/lang.c:46 @@ -567,7 +570,7 @@ msgstr "" msgid "Creating newsrc file...\n" msgstr "" -#: src/lang.c:127 src/lang.c:1129 +#: src/lang.c:127 src/lang.c:1122 msgid "Default" msgstr "" @@ -842,7 +845,7 @@ msgstr "" msgid "Insecure permissions of %s (%o)" msgstr "" -#: src/lang.c:199 src/open.c:1100 +#: src/lang.c:199 src/newsrc.c:409 #, c-format msgid "Invalid response to GROUP command, %s" msgstr "" @@ -1524,7 +1527,7 @@ msgstr "" msgid "choose next group with unread news" msgstr "" -#: src/lang.c:387 src/lang.c:1176 +#: src/lang.c:387 src/lang.c:1169 msgid "quit" msgstr "" @@ -2083,74 +2086,69 @@ msgid "No previous unread article" msgstr "" #: src/lang.c:535 -#, c-format -msgid "No responses%s" -msgstr "" - -#: src/lang.c:536 msgid "No responses" msgstr "" -#: src/lang.c:537 +#: src/lang.c:536 msgid "No responses to list in current thread" msgstr "" -#: src/lang.c:538 +#: src/lang.c:537 msgid "No search string" msgstr "" -#: src/lang.c:539 +#: src/lang.c:538 msgid "No subject" msgstr "" -#: src/lang.c:540 +#: src/lang.c:539 #, c-format msgid "%s: Terminal must have clear to end-of-line (ce)\n" msgstr "" -#: src/lang.c:541 +#: src/lang.c:540 #, c-format msgid "%s: Terminal must have clear to end-of-screen (cd)\n" msgstr "" -#: src/lang.c:542 +#: src/lang.c:541 #, c-format msgid "%s: Terminal must have clearscreen (cl) capability\n" msgstr "" -#: src/lang.c:543 +#: src/lang.c:542 #, c-format msgid "%s: Terminal must have cursor motion (cm)\n" msgstr "" -#: src/lang.c:544 +#: src/lang.c:543 #, c-format msgid "%s: TERM variable must be set to use screen capabilities\n" msgstr "" -#: src/lang.c:545 +#: src/lang.c:544 #, c-format msgid "No viewer found for %s/%s\n" msgstr "" -#: src/lang.c:546 +#: src/lang.c:545 msgid "Newsgroup does not exist on this server" msgstr "" -#: src/lang.c:547 +#: src/lang.c:546 #, c-format msgid "Group %s not found in active file" msgstr "" -#: src/lang.c:548 +#: src/lang.c:547 msgid "c)reate it, use a)lternative name, use d)efault .newsrc, q)uit tin: " msgstr "" -#: src/lang.c:549 +#: src/lang.c:548 msgid "use a)lternative name, use d)efault .newsrc, q)uit tin: " msgstr "" -#: src/lang.c:550 +#: src/lang.c:549 #, c-format msgid "# NNTP-server -> newsrc translation table and NNTP-server\n" "# shortname list for %s %s\n" @@ -2166,308 +2164,308 @@ msgid "# NNTP-server -> newsrc translati "#\n" msgstr "" -#: src/lang.c:557 +#: src/lang.c:556 msgid "Only" msgstr "" -#: src/lang.c:558 +#: src/lang.c:557 #, c-format msgid "Option not enabled. Recompile with %s." msgstr "" -#: src/lang.c:559 +#: src/lang.c:558 msgid "Options Menu" msgstr "" -#: src/lang.c:562 +#: src/lang.c:561 #, c-format msgid "Error in regex: %s at pos. %d '%s'" msgstr "" -#: src/lang.c:563 +#: src/lang.c:562 #, c-format msgid "Error in regex: pcre internal error %d" msgstr "" -#: src/lang.c:564 +#: src/lang.c:563 #, c-format msgid "Error in regex: study - pcre internal error %s" msgstr "" -#: src/lang.c:565 +#: src/lang.c:564 msgid "Post a followup..." msgstr "" #. TODO: replace hardcoded key-name in txt_post_error_ask_postpone -#: src/lang.c:567 +#: src/lang.c:566 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:570 +#: src/lang.c:569 msgid "Posted articles history" msgstr "" -#: src/lang.c:571 +#: src/lang.c:570 #, c-format msgid "Post to newsgroup(s) [%s]> " msgstr "" -#: src/lang.c:572 +#: src/lang.c:571 msgid "-- post processing started --" msgstr "" -#: src/lang.c:573 +#: src/lang.c:572 msgid "-- post processing completed --" msgstr "" -#: src/lang.c:574 +#: src/lang.c:573 #, c-format msgid "Post subject [%s]> " msgstr "" -#: src/lang.c:575 +#: src/lang.c:574 msgid "# Summary of mailed/posted messages viewable by 'W' command from within tin.\n" msgstr "" -#: src/lang.c:576 +#: src/lang.c:575 msgid "Posting article..." msgstr "" -#: src/lang.c:577 +#: src/lang.c:576 msgid "Post postponed articles [%%.*s]? (%s/%s/%s/%s/%s): " msgstr "" -#: src/lang.c:578 +#: src/lang.c:577 #, c-format msgid "Hot %s" msgstr "" -#: src/lang.c:579 +#: src/lang.c:578 #, c-format msgid "Tagged %s" msgstr "" -#: src/lang.c:580 +#: src/lang.c:579 #, c-format msgid "Untagged %s" msgstr "" -#: src/lang.c:581 +#: src/lang.c:580 msgid "Processing mail messages marked for deletion." msgstr "" -#: src/lang.c:582 +#: src/lang.c:581 msgid "Processing saved articles marked for deletion." msgstr "" -#: src/lang.c:583 +#: src/lang.c:582 #, c-format msgid "Accept Followup-To? %s=post, %s=ignore, %s=quit: " msgstr "" -#: src/lang.c:584 +#: src/lang.c:583 msgid "Article unchanged, abort mailing?" msgstr "" -#: src/lang.c:585 +#: src/lang.c:584 #, c-format msgid "Do you want to see postponed articles (%d)?" msgstr "" -#: src/lang.c:587 +#: src/lang.c:586 msgid "Add quick kill filter?" msgstr "" -#: src/lang.c:588 +#: src/lang.c:587 msgid "Add quick selection filter?" msgstr "" -#: src/lang.c:589 +#: src/lang.c:588 msgid "Do you really want to quit?" msgstr "" -#: src/lang.c:590 +#: src/lang.c:589 msgid "%s=edit cancel message, %s=quit, %s=delete (cancel) [%%.*s]: " msgstr "" -#: src/lang.c:591 +#: src/lang.c:590 msgid "You have tagged articles in this group - quit anyway?" msgstr "" -#: src/lang.c:592 +#: src/lang.c:591 #, c-format msgid "%s=quit, %s=edit, %s=postpone: " msgstr "" -#: src/lang.c:593 +#: src/lang.c:592 #, c-format msgid "%s=quit %s=edit %s=save kill description: " msgstr "" -#: src/lang.c:594 +#: src/lang.c:593 #, c-format msgid "%s=quit %s=edit %s=save select description: " msgstr "" -#: src/lang.c:595 +#: src/lang.c:594 msgid "Do you really want to quit without saving your configuration?" msgstr "" -#: src/lang.c:598 +#: src/lang.c:597 msgid "Invalid range - valid are '0-9.$' eg. 1-$" msgstr "" -#: src/lang.c:599 +#: src/lang.c:598 msgid "Do you want to abort this operation?" msgstr "" -#: src/lang.c:600 +#: src/lang.c:599 msgid "Do you want to exit tin immediately?" msgstr "" -#: src/lang.c:601 +#: src/lang.c:600 msgid "Read response> " msgstr "" -#: src/lang.c:602 +#: src/lang.c:601 msgid "Reading ('q' to quit)..." msgstr "" -#: src/lang.c:603 +#: src/lang.c:602 #, c-format msgid "Reading %sarticles..." msgstr "" -#: src/lang.c:604 +#: src/lang.c:603 #, c-format msgid "Reading %sattributes file...\n" msgstr "" -#: src/lang.c:605 +#: src/lang.c:604 #, c-format msgid "Reading %sconfig file...\n" msgstr "" -#: src/lang.c:606 +#: src/lang.c:605 msgid "Reading filter file...\n" msgstr "" -#: src/lang.c:607 +#: src/lang.c:606 #, c-format msgid "Reading %s groups..." msgstr "" -#: src/lang.c:608 +#: src/lang.c:607 msgid "Reading input history file...\n" msgstr "" -#: src/lang.c:609 +#: src/lang.c:608 msgid "Reading keymap file...\n" msgstr "" -#: src/lang.c:610 +#: src/lang.c:609 msgid "Reading groups from active file... " msgstr "" -#: src/lang.c:611 +#: src/lang.c:610 msgid "Reading groups from newsrc file... " msgstr "" -#: src/lang.c:612 +#: src/lang.c:611 msgid "Reading newsgroups file... " msgstr "" -#: src/lang.c:613 +#: src/lang.c:612 msgid "Reading newsrc file..." msgstr "" -#: src/lang.c:614 +#: src/lang.c:613 #, c-format msgid "Bogus group %s removed." msgstr "" -#: src/lang.c:615 +#: src/lang.c:614 #, c-format msgid "Error: rename %s to %s" msgstr "" -#: src/lang.c:616 +#: src/lang.c:615 msgid "Reply to author..." msgstr "" -#: src/lang.c:617 +#: src/lang.c:616 msgid "Repost" msgstr "" -#: src/lang.c:618 +#: src/lang.c:617 msgid "Reposting article..." msgstr "" -#: src/lang.c:619 +#: src/lang.c:618 #, c-format msgid "Repost article(s) to group(s) [%s]> " msgstr "" -#: src/lang.c:620 +#: src/lang.c:619 msgid "Reset newsrc?" msgstr "" -#: src/lang.c:621 +#: src/lang.c:620 msgid "Responses have been directed to the following newsgroups" msgstr "" -#: src/lang.c:622 +#: src/lang.c:621 #, c-format msgid "Responses have been directed to poster. %s=mail, %s=post, %s=quit: " msgstr "" -#: src/lang.c:623 +#: src/lang.c:622 #, c-format -msgid "RespNo %4d of %4d%s" +msgid "RespNo %4d of %4d" msgstr "" -#: src/lang.c:624 +#: src/lang.c:623 msgid "Press to continue..." msgstr "" -#: src/lang.c:626 +#: src/lang.c:625 #, c-format msgid "Select From [%-*.*s] (y/n): " msgstr "" -#: src/lang.c:627 +#: src/lang.c:626 msgid "Select Lines: (num): " msgstr "" -#: src/lang.c:628 +#: src/lang.c:627 msgid "Auto-select Article Menu" msgstr "" -#: src/lang.c:629 +#: src/lang.c:628 #, c-format msgid "Select Msg-Id [%-*.*s] (f/l/o/n): " msgstr "" -#: src/lang.c:630 +#: src/lang.c:629 msgid "Select pattern scope: " msgstr "" -#: src/lang.c:631 +#: src/lang.c:630 #, c-format msgid "Select Subject [%-*.*s] (y/n): " msgstr "" -#: src/lang.c:632 +#: src/lang.c:631 msgid "Select text pattern : " msgstr "" -#: src/lang.c:633 +#: src/lang.c:632 msgid "Select time in days : " msgstr "" -#: src/lang.c:634 +#: src/lang.c:633 #, c-format msgid "# %s server configuration file\n" "# This file was automatically saved by %s %s %s (\"%s\")\n" @@ -2479,216 +2477,216 @@ msgid "# %s server configuration file\n" "\n" msgstr "" -#: src/lang.c:640 +#: src/lang.c:639 msgid "Showing unread groups only" msgstr "" -#: src/lang.c:641 +#: src/lang.c:640 msgid "Subject: line (ignore case) " msgstr "" -#: src/lang.c:642 +#: src/lang.c:641 msgid "Subject: line (case sensitive)" msgstr "" -#: src/lang.c:643 +#: src/lang.c:642 msgid "Save" msgstr "" -#: src/lang.c:644 +#: src/lang.c:643 #, c-format msgid "Save '%s' (%s/%s)?" msgstr "" -#: src/lang.c:645 +#: src/lang.c:644 msgid "Save configuration before continuing?" msgstr "" -#: src/lang.c:646 +#: src/lang.c:645 msgid "Save filename> " msgstr "" -#: src/lang.c:647 +#: src/lang.c:646 msgid "Saved" msgstr "" -#: src/lang.c:648 +#: src/lang.c:647 #, c-format msgid "%4d unread (%4d hot) %s in %s\n" msgstr "" -#: src/lang.c:649 +#: src/lang.c:648 #, c-format msgid "Saved %s...\n" msgstr "" -#: src/lang.c:650 +#: src/lang.c:649 msgid "Nothing was saved" msgstr "" -#: src/lang.c:651 +#: src/lang.c:650 #, c-format msgid "\n" "%s %d %s from %d %s\n" msgstr "" -#: src/lang.c:652 +#: src/lang.c:651 #, c-format msgid "-- %s saved to %s%s --" msgstr "" -#: src/lang.c:653 +#: src/lang.c:652 #, c-format msgid "-- %s saved to %s - %s --" msgstr "" -#: src/lang.c:654 +#: src/lang.c:653 msgid "Saving..." msgstr "" -#: src/lang.c:655 +#: src/lang.c:654 #, c-format msgid "%s: Screen initialization failed" msgstr "%s: Screen initialisation failed" -#: src/lang.c:656 +#: src/lang.c:655 #, c-format msgid "%s: screen is too small\n" msgstr "" -#: src/lang.c:657 +#: src/lang.c:656 #, c-format msgid "screen is too small, %s is exiting\n" msgstr "" -#: src/lang.c:658 +#: src/lang.c:657 #, c-format msgid "Search backwards [%s]> " msgstr "" -#: src/lang.c:659 +#: src/lang.c:658 #, c-format msgid "Search body [%s]> " msgstr "" -#: src/lang.c:660 +#: src/lang.c:659 #, c-format msgid "Search forwards [%s]> " msgstr "" -#: src/lang.c:661 +#: src/lang.c:660 msgid "Searching..." msgstr "" -#: src/lang.c:662 +#: src/lang.c:661 #, c-format msgid "Searching article %d of %d ('q' to abort)..." msgstr "" -#: src/lang.c:663 +#: src/lang.c:662 msgid "Select article> " msgstr "" -#: src/lang.c:664 +#: src/lang.c:663 msgid "Select option number before text or use arrow keys and . 'q' to quit." msgstr "" -#: src/lang.c:665 +#: src/lang.c:664 msgid "Select group> " msgstr "" -#: src/lang.c:666 +#: src/lang.c:665 #, c-format msgid "Enter selection pattern [%s]> " msgstr "" -#: src/lang.c:667 +#: src/lang.c:666 msgid "Select thread > " msgstr "" -#: src/lang.c:668 +#: src/lang.c:667 #, c-format msgid "%s %s %s (\"%s\") [%s]: send a DETAILED bug report to %s\n" msgstr "" -#: src/lang.c:669 +#: src/lang.c:668 msgid "servers active-file" msgstr "" -#: src/lang.c:670 +#: src/lang.c:669 msgid "Cannot move into new newsgroups. Subscribe first..." msgstr "" -#: src/lang.c:671 +#: src/lang.c:670 msgid "" msgstr "" -#: src/lang.c:672 +#: src/lang.c:671 #, c-format msgid "Starting: (%s)" msgstr "" -#: src/lang.c:673 +#: src/lang.c:672 #, c-format msgid "List Thread (%d of %d)" msgstr "" -#: src/lang.c:674 +#: src/lang.c:673 #, c-format msgid "Thread (%.*s)" msgstr "" -#: src/lang.c:675 +#: src/lang.c:674 msgid "Enter wildcard subscribe pattern> " msgstr "" -#: src/lang.c:676 +#: src/lang.c:675 #, c-format msgid "subscribed to %d groups" msgstr "" -#: src/lang.c:677 +#: src/lang.c:676 #, c-format msgid "Subscribed to %s" msgstr "" -#: src/lang.c:678 +#: src/lang.c:677 msgid "Subscribing... " msgstr "" -#: src/lang.c:679 +#: src/lang.c:678 msgid "Repost or supersede article(s) [%%.*s]? (%s/%s/%s): " msgstr "" -#: src/lang.c:680 +#: src/lang.c:679 #, c-format msgid "Supersede article(s) to group(s) [%s]> " msgstr "" -#: src/lang.c:681 +#: src/lang.c:680 msgid "Superseding article ..." msgstr "" -#: src/lang.c:682 +#: src/lang.c:681 #, c-format msgid "\n" "Stopped. Type 'fg' to restart %s\n" msgstr "" -#: src/lang.c:684 +#: src/lang.c:683 #, c-format msgid "%d days" msgstr "" -#: src/lang.c:685 +#: src/lang.c:684 msgid "" msgstr "" -#: src/lang.c:686 +#: src/lang.c:685 msgid "# Default action/prompt strings\n" msgstr "" -#: src/lang.c:687 +#: src/lang.c:686 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" @@ -2698,323 +2696,323 @@ msgid "# Defaults for quick (1 key) kill "# expire=ON/OFF ON=limit to default_filter_days OFF=don't ever expire\n" msgstr "" -#: src/lang.c:700 +#: src/lang.c:699 msgid "# If ON use print current subject or newsgroup description in the last line\n" msgstr "" -#: src/lang.c:701 +#: src/lang.c:700 msgid "# Host & time info used for detecting new groups (don't touch)\n" msgstr "" -#: src/lang.c:702 +#: src/lang.c:701 msgid "There is no news\n" msgstr "" -#: src/lang.c:703 +#: src/lang.c:702 msgid "Thread" msgstr "" -#: src/lang.c:704 +#: src/lang.c:703 msgid "Thread Level Commands" msgstr "" -#: src/lang.c:705 +#: src/lang.c:704 msgid "Thread deselected" msgstr "" -#: src/lang.c:706 +#: src/lang.c:705 msgid "Thread selected" msgstr "" -#: src/lang.c:707 +#: src/lang.c:706 msgid "threads" msgstr "" -#: src/lang.c:708 +#: src/lang.c:707 msgid "Thread range" msgstr "" -#: src/lang.c:709 +#: src/lang.c:708 msgid "thread" msgstr "" -#: src/lang.c:710 +#: src/lang.c:709 #, c-format -msgid "%sThread %4s of %4s" +msgid "Thread %4s of %4s" msgstr "" -#: src/lang.c:711 +#: src/lang.c:710 msgid "Threading articles..." msgstr "" -#: src/lang.c:712 +#: src/lang.c:711 #, c-format msgid "Toggled word highlighting %s" msgstr "" -#: src/lang.c:713 +#: src/lang.c:712 msgid "Toggled rot13 encoding" msgstr "" -#: src/lang.c:714 +#: src/lang.c:713 #, c-format msgid "Toggled german TeX encoding %s" msgstr "" -#: src/lang.c:715 +#: src/lang.c:714 #, c-format msgid "Toggled tab-width to %d" msgstr "" -#: src/lang.c:716 +#: src/lang.c:715 #, c-format msgid "%d Trying to dotlock %s" msgstr "" -#: src/lang.c:717 +#: src/lang.c:716 #, c-format msgid "%d Trying to lock %s" msgstr "" -#: src/lang.c:718 +#: src/lang.c:717 msgid " h=help\n" msgstr "" -#: src/lang.c:720 +#: src/lang.c:719 msgid "Unlimited" msgstr "" -#: src/lang.c:721 +#: src/lang.c:720 msgid "Enter wildcard unsubscribe pattern> " msgstr "" -#: src/lang.c:722 +#: src/lang.c:721 #, c-format msgid "Error decoding %s : %s" msgstr "" -#: src/lang.c:723 +#: src/lang.c:722 msgid "No end." msgstr "" -#: src/lang.c:724 +#: src/lang.c:723 #, c-format msgid "%s successfully decoded." msgstr "" -#: src/lang.c:725 +#: src/lang.c:724 #, c-format msgid "%*s[-- %s/%s, %suuencoded file, %d lines, name: %s --]\n" "\n" msgstr "" -#: src/lang.c:726 +#: src/lang.c:725 msgid "unread " msgstr "" -#: src/lang.c:727 +#: src/lang.c:726 #, c-format msgid "unsubscribed from %d groups" msgstr "" -#: src/lang.c:728 +#: src/lang.c:727 #, c-format msgid "Unsubscribed from %s" msgstr "" -#: src/lang.c:729 +#: src/lang.c:728 msgid "Unsubscribing... " msgstr "" -#: src/lang.c:730 +#: src/lang.c:729 msgid "Unthreading articles..." msgstr "" -#: src/lang.c:731 +#: src/lang.c:730 msgid "Updated" msgstr "" -#: src/lang.c:732 +#: src/lang.c:731 msgid "Updating" msgstr "" -#: src/lang.c:733 +#: src/lang.c:732 #, c-format msgid "Opening %s\n" msgstr "" -#: src/lang.c:734 +#: src/lang.c:733 msgid "No more URL's in this article" msgstr "" -#: src/lang.c:735 +#: src/lang.c:734 msgid "Use MIME display program for this message?" msgstr "" -#: src/lang.c:736 +#: src/lang.c:735 msgid " -c mark all news as read in subscribed newsgroups (batch mode)" msgstr "" -#: src/lang.c:737 +#: src/lang.c:736 msgid " -Z return status indicating if any unread news (batch mode)" msgstr "" -#: src/lang.c:738 +#: src/lang.c:737 msgid " -q don't check for new newsgroups" msgstr "" -#: src/lang.c:739 +#: src/lang.c:738 msgid " -X don't save any files on quit" msgstr "" -#: src/lang.c:740 +#: src/lang.c:739 msgid " -d don't show newsgroup descriptions" msgstr "" -#: src/lang.c:741 +#: src/lang.c:740 msgid " -G limit get only limit articles/group" msgstr "" -#: src/lang.c:742 +#: src/lang.c:741 #, c-format msgid " -H help information about %s" msgstr "" -#: src/lang.c:743 +#: src/lang.c:742 msgid " -h this help message" msgstr "" -#: src/lang.c:744 +#: src/lang.c:743 #, c-format msgid " -I dir news index file directory [default=%s]" msgstr "" -#: src/lang.c:745 +#: src/lang.c:744 msgid " -u update index files (batch mode)" msgstr "" -#: src/lang.c:746 +#: src/lang.c:745 #, c-format msgid " -m dir mailbox directory [default=%s]" msgstr "" -#: src/lang.c:747 +#: src/lang.c:746 #, c-format msgid "\n" "Mail bug reports/comments to %s" msgstr "" -#: src/lang.c:748 +#: src/lang.c:747 msgid " -N mail new news to your posts (batch mode)" msgstr "" -#: src/lang.c:749 +#: src/lang.c:748 msgid " -M user mail new news to specified user (batch mode)" msgstr "" -#: src/lang.c:750 +#: src/lang.c:749 #, c-format msgid " -f file subscribed to newsgroups file [default=%s]" msgstr "" -#: src/lang.c:751 +#: src/lang.c:750 msgid " -x no posting mode" msgstr "" -#: src/lang.c:752 +#: src/lang.c:751 msgid " -w post an article and exit" msgstr "" -#: src/lang.c:753 +#: src/lang.c:752 msgid " -o post all postponed articles and exit" msgstr "" -#: src/lang.c:754 +#: src/lang.c:753 msgid " -r read news remotely from default NNTP server" msgstr "" -#: src/lang.c:755 +#: src/lang.c:754 msgid " -R read news saved by -S option" msgstr "" -#: src/lang.c:756 +#: src/lang.c:755 #, c-format msgid " -s dir save news directory [default=%s]" msgstr "" -#: src/lang.c:757 +#: src/lang.c:756 msgid " -S save new news for later reading (batch mode)" msgstr "" -#: src/lang.c:758 +#: src/lang.c:757 msgid " -z start if any unread news" msgstr "" -#: src/lang.c:759 +#: src/lang.c:758 #, c-format msgid "A Usenet reader.\n" "\n" "Usage: %s [options] [newsgroup[,...]]" msgstr "" -#: src/lang.c:760 +#: src/lang.c:759 msgid " -v verbose output for batch mode options" msgstr "" -#: src/lang.c:761 +#: src/lang.c:760 msgid " -V print version & date information" msgstr "" -#: src/lang.c:762 +#: src/lang.c:761 #, c-format msgid "%s only useful without batch mode operations\n" msgstr "" -#: src/lang.c:763 +#: src/lang.c:762 #, c-format msgid "%s only useful for batch mode operations\n" msgstr "" -#: src/lang.c:765 +#: src/lang.c:764 #, c-format msgid "\n" "%s%d out of range (0 - %d). Reset to 0" msgstr "" -#: src/lang.c:766 +#: src/lang.c:765 #, c-format msgid "View '%s' (%s/%s)?" msgstr "" -#: src/lang.c:768 +#: src/lang.c:767 #, c-format msgid "\n" "Warning: posting exceeds %d columns. Line %d is the first long one:\n" "%-100s\n" msgstr "" -#: src/lang.c:769 +#: src/lang.c:768 msgid "\n" "Warning: article unchanged after editing\n" msgstr "" -#: src/lang.c:770 +#: src/lang.c:769 msgid "\n" "Warning: \"Subject:\" contains only whitespaces.\n" msgstr "" -#: src/lang.c:771 +#: src/lang.c:770 msgid "\n" "Warning: \"Subject:\" begins with \"Re: \" but there are no \"References:\".\n" msgstr "" -#: src/lang.c:773 +#: src/lang.c:772 msgid "\n" "Warning: Article has \"References:\" but \"Subject:\" does not begin\n" " with \"Re: \" and does not contain \"(was:\".\n" msgstr "" -#: src/lang.c:776 +#: src/lang.c:775 msgid "Read carefully!\n" "\n" " You are about to cancel an article seemingly written by you. This will " @@ -3027,7 +3025,7 @@ msgid "Read carefully!\n" "\n" msgstr "" -#: src/lang.c:780 +#: src/lang.c:779 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" @@ -3035,7 +3033,7 @@ msgid "\n" " not be encoded properly.\n" msgstr "" -#: src/lang.c:785 +#: src/lang.c:784 #, c-format msgid "\n" "\n" @@ -3044,7 +3042,7 @@ msgid "\n" "Read WHATSNEW, etc...\n" msgstr "" -#: src/lang.c:787 +#: src/lang.c:786 #, c-format msgid "\n" "\n" @@ -3052,7 +3050,7 @@ msgid "\n" "Some values in your %s file may be ignored, others might have changed!\n" msgstr "" -#: src/lang.c:790 +#: src/lang.c:789 #, c-format msgid "Warning: tin wrote fewer groups to your\n" "\t%s\n" @@ -3061,18 +3059,18 @@ msgid "Warning: tin wrote fewer groups t "before you start tin once again!\n" msgstr "" -#: src/lang.c:794 +#: src/lang.c:793 #, c-format msgid "\n" "Warning: Found %d '-- \\n' lines, this may confuse some people.\n" msgstr "" -#: src/lang.c:795 +#: src/lang.c:794 #, c-format msgid "Warning: Only %d out of %d articles were saved" msgstr "" -#: src/lang.c:796 +#: src/lang.c:795 #, c-format msgid "\n" "Warning: Your signature is longer than %d lines. Since signatures usually " @@ -3082,47 +3080,47 @@ msgid "\n" " possible.\n" msgstr "" -#: src/lang.c:800 +#: src/lang.c:799 #, c-format msgid "Warning: this mail address may contain a spamtrap. %s=continue, %s=abort? " msgstr "" -#: src/lang.c:801 +#: src/lang.c:800 msgid "\n" "Warning: Signatures should start with '-- \\n' not with '--\\n'.\n" msgstr "" -#: src/lang.c:802 +#: src/lang.c:801 msgid "Writing attributes file..." msgstr "" -#: src/lang.c:804 +#: src/lang.c:803 #, c-format -msgid "%d Responses%s" +msgid "%d Responses" msgstr "" -#: src/lang.c:806 +#: src/lang.c:805 #, c-format msgid "Added %d %s" msgstr "" -#: src/lang.c:807 +#: src/lang.c:806 msgid "No unsubscribed groups to show" msgstr "" -#: src/lang.c:808 +#: src/lang.c:807 msgid "Showing subscribed to groups only" msgstr "" -#: src/lang.c:809 +#: src/lang.c:808 msgid "Yes " msgstr "" -#: src/lang.c:810 +#: src/lang.c:809 msgid " You have mail\n" msgstr "" -#: src/lang.c:815 +#: src/lang.c:814 #, c-format msgid "\n" "Warning: Posting is in %s and contains characters which are not\n" @@ -3134,16 +3132,16 @@ msgid "\n" " M)enu option.\n" msgstr "" -#: src/lang.c:826 +#: src/lang.c:825 #, c-format msgid "Redefined key %s '%s' -> '%s'\n" msgstr "" -#: src/lang.c:827 +#: src/lang.c:826 msgid " -D debug mode 1=NNTP 2=ALL" msgstr "" -#: src/lang.c:831 +#: src/lang.c:830 msgid "Read carefully!\n" "\n" " You are about to cancel an article seemingly not written by you. This " @@ -3159,11 +3157,11 @@ msgid "Read carefully!\n" "\n" msgstr "" -#: src/lang.c:840 +#: src/lang.c:839 msgid "toggle color" msgstr "toggle colour" -#: src/lang.c:841 +#: src/lang.c:840 msgid "# For color-adjust use the following numbers\n" "# 0-black 1-red 2-green 3-brown\n" "# 4-blue 5-pink 6-cyan 7-white\n" @@ -3183,348 +3181,339 @@ msgstr "# For colour-adjust use the foll "# background black)\n" "\n" -#: src/lang.c:849 +#: src/lang.c:848 msgid " -a toggle color flag" msgstr " -a toggle colour flag" -#: src/lang.c:853 +#: src/lang.c:852 msgid "\n" "Error: Followup-To set to more than one newsgroup!\n" msgstr "" -#: src/lang.c:854 +#: src/lang.c:853 #, c-format msgid "\n" "Error: cross-posting to %d newsgroups and no Followup-To line!\n" msgstr "" -#: src/lang.c:855 +#: src/lang.c:854 #, c-format msgid "\n" "Error: \"%s\" is not a valid newsgroup!\n" msgstr "" -#: src/lang.c:857 +#: src/lang.c:856 msgid "\n" "Warning: Followup-To set to more than one newsgroup!\n" msgstr "" -#: src/lang.c:858 +#: src/lang.c:857 #, c-format msgid "\n" "Warning: cross-posting to %d newsgroups and no Followup-To line!\n" msgstr "" -#: src/lang.c:859 +#: src/lang.c:858 #, c-format msgid "\n" "Warning: \"%s\" is not in your newsrc, it may be invalid at this site!\n" msgstr "" -#: src/lang.c:860 +#: src/lang.c:859 #, c-format msgid "\n" "Warning: \"%s\" is not a valid newsgroup at this site!\n" msgstr "" -#: src/lang.c:864 +#: src/lang.c:863 #, c-format msgid "%d files successfully written from %d articles. %d %s occurred." msgstr "" -#: src/lang.c:865 +#: src/lang.c:864 msgid "Missing parts." msgstr "" -#: src/lang.c:866 +#: src/lang.c:865 msgid "No beginning." msgstr "" -#: src/lang.c:867 +#: src/lang.c:866 msgid "No data." msgstr "" -#: src/lang.c:868 +#: src/lang.c:867 msgid "Unknown error." msgstr "" -#: src/lang.c:870 +#: src/lang.c:869 #, c-format msgid "\tChecksum of %s (%ld %s)" msgstr "" -#: src/lang.c:874 +#: src/lang.c:873 msgid "Reading mail active file... " msgstr "" -#: src/lang.c:875 +#: src/lang.c:874 msgid "Reading mailgroups file... " msgstr "" -#: src/lang.c:879 +#: src/lang.c:878 msgid "perform PGP operations on article" msgstr "" -#: src/lang.c:880 +#: src/lang.c:879 msgid "Add key(s) to public keyring?" msgstr "" -#: src/lang.c:881 +#: src/lang.c:880 #, c-format msgid "%s=encrypt, %s=sign, %s=both, %s=quit: " msgstr "" -#: src/lang.c:882 +#: src/lang.c:881 #, c-format msgid "%s=sign, %s=sign & include public key, %s=quit: " msgstr "" -#: src/lang.c:883 +#: src/lang.c:882 #, c-format msgid "PGP has not been set up (can't open %s)" msgstr "" -#: src/lang.c:884 +#: src/lang.c:883 msgid "Article not signed and no public keys found" msgstr "" -#: src/lang.c:886 +#: src/lang.c:885 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "" -#: src/lang.c:887 +#: src/lang.c:886 msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=send [%%.*s]: " msgstr "" -#: src/lang.c:888 +#: src/lang.c:887 msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone [%%.*s]: " msgstr "" -#: src/lang.c:890 +#: src/lang.c:889 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "" -#: src/lang.c:891 +#: src/lang.c:890 msgid "%s=quit, %s=edit, %s=pgp, %s=send [%%.*s]: " msgstr "" -#: src/lang.c:892 +#: src/lang.c:891 msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone [%%.*s]: " msgstr "" -#: src/lang.c:896 +#: src/lang.c:895 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone: " msgstr "" -#: src/lang.c:897 +#: src/lang.c:896 msgid "%s=quit, %s=edit, %s=ispell, %s=send [%%.*s]: " msgstr "" -#: src/lang.c:898 +#: src/lang.c:897 msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone [%%.*s]: " msgstr "" -#: src/lang.c:900 +#: src/lang.c:899 #, c-format msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: " msgstr "" -#: src/lang.c:901 +#: src/lang.c:900 msgid "%s=quit, %s=edit, %s=send [%%.*s]: " msgstr "" -#: src/lang.c:902 +#: src/lang.c:901 msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone [%%.*s]: " msgstr "" -#: src/lang.c:908 -#, c-format -msgid "Environment variable %s not found. Set and retry..." -msgstr "" - -#: src/lang.c:909 -msgid " -B BBS mode. File operations limited to home directories." -msgstr "" - -#: src/lang.c:917 +#: src/lang.c:910 msgid "Try cache_overview_files to speed up things.\n" msgstr "" -#: src/lang.c:918 +#: src/lang.c:911 msgid "Tin will use local index files instead.\n" msgstr "" -#: src/lang.c:919 +#: src/lang.c:912 msgid "Cannot find NNTP server name" msgstr "" -#: src/lang.c:920 +#: src/lang.c:913 #, c-format msgid "Connecting to %s:%d..." msgstr "" -#: src/lang.c:921 +#: src/lang.c:914 msgid "Disconnecting from server...\n" msgstr "" -#: src/lang.c:922 +#: src/lang.c:915 #, c-format msgid "Wrong newsgroup name in response of GROUP command, %s for %s" msgstr "" -#: src/lang.c:923 +#: src/lang.c:916 #, c-format msgid "Failed to connect to NNTP server %s. Exiting..." msgstr "" -#: src/lang.c:924 src/nntplib.c:975 +#: src/lang.c:917 msgid "205 Closing connection" msgstr "" -#: src/lang.c:925 +#: src/lang.c:918 msgid "Your server does not support the NNTP XOVER or OVER command.\n" msgstr "" -#: src/lang.c:926 +#: src/lang.c:919 msgid "Connection to news server has timed out. Reconnect?" msgstr "" -#: src/lang.c:927 +#: src/lang.c:920 #, c-format msgid "Put the server name in the file %s,\n" "or set the environment variable NNTPSERVER" msgstr "" -#: src/lang.c:928 +#: src/lang.c:921 msgid " -A force authentication on connect" msgstr "" -#: src/lang.c:929 +#: src/lang.c:922 #, c-format msgid " -g serv read news from NNTP server serv [default=%s]" msgstr "" -#: src/lang.c:930 +#: src/lang.c:923 #, c-format msgid " -p port use port as NNTP port [default=%d]" msgstr "" -#: src/lang.c:931 +#: src/lang.c:924 msgid " -Q quick start. Same as -nqd" msgstr "" -#: src/lang.c:932 +#: src/lang.c:925 msgid " -l use only LIST instead of GROUP (-n) command" msgstr "" -#: src/lang.c:933 +#: src/lang.c:926 msgid " -n only read subscribed .newsrc groups from NNTP server" msgstr "" -#: src/lang.c:935 +#: src/lang.c:928 #, c-format msgid "%s/tcp: Unknown service.\n" msgstr "" -#: src/lang.c:938 +#: src/lang.c:931 msgid "\n" "socket or connect problem\n" msgstr "" -#: src/lang.c:940 +#: src/lang.c:933 #, c-format msgid "\n" "Connection to %s: " msgstr "" -#: src/lang.c:941 +#: src/lang.c:934 msgid "Giving up...\n" msgstr "" -#: src/lang.c:944 +#: src/lang.c:937 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:947 +#: src/lang.c:940 msgid "Your server does not have Xref: in its XOVER information.\n" msgstr "" -#: src/lang.c:950 +#: src/lang.c:943 #, c-format msgid "Can't open %s. Try %s -r to read news via NNTP.\n" msgstr "" -#: src/lang.c:953 +#: src/lang.c:946 msgid " -Q quick start. Same as -qd" msgstr "" -#: src/lang.c:954 +#: src/lang.c:947 msgid " -l read only active file instead of scanning spool (-n) command" msgstr "" -#: src/lang.c:955 +#: src/lang.c:948 msgid " -n only read subscribed .newsrc groups from spool" msgstr "" -#: src/lang.c:956 +#: src/lang.c:949 msgid "Your server does not have Xref: in its NOV-files.\n" msgstr "" -#: src/lang.c:960 +#: src/lang.c:953 msgid "Posting using external inews failed. Use built in inews instead?" msgstr "" -#: src/lang.c:961 +#: src/lang.c:954 msgid "It worked! Should I always use my built in inews from now on?" msgstr "" -#: src/lang.c:969 +#: src/lang.c:962 #, c-format msgid "%d %s printed" msgstr "" -#: src/lang.c:970 +#: src/lang.c:963 msgid "output article/thread/hot/pattern/tagged articles to printer" msgstr "" -#: src/lang.c:971 +#: src/lang.c:964 msgid "Print" msgstr "" -#: src/lang.c:972 +#: src/lang.c:965 msgid "Printing..." msgstr "" -#: src/lang.c:976 +#: src/lang.c:969 msgid "pipe article/thread/hot/pattern/tagged articles into command" msgstr "" -#: src/lang.c:977 +#: src/lang.c:970 msgid "No command" msgstr "" -#: src/lang.c:978 +#: src/lang.c:971 msgid "Pipe" msgstr "" -#: src/lang.c:979 +#: src/lang.c:972 #, c-format msgid "Pipe to command [%.*s]> " msgstr "" -#: src/lang.c:980 +#: src/lang.c:973 msgid "Piping..." msgstr "" -#: src/lang.c:982 +#: src/lang.c:975 msgid "Piping not enabled." msgstr "" -#: src/lang.c:986 +#: src/lang.c:979 #, c-format msgid "\n" "Error: The \"%s:\" line has spaces in it that MUST be removed.\n" @@ -3533,7 +3522,7 @@ msgid "\n" " newsgroup names.\n" msgstr "" -#: src/lang.c:991 +#: src/lang.c:984 #, c-format msgid "\n" "Error: The \"%s:\" line is continued in the next line. Since\n" @@ -3541,7 +3530,7 @@ msgid "\n" " Please write all newsgroups into a single line.\n" msgstr "" -#: src/lang.c:996 +#: src/lang.c:989 #, c-format msgid "\n" "Warning: The \"%s:\" line is continued in the next line.\n" @@ -3549,13 +3538,13 @@ msgid "\n" " To avoid trouble please write all newsgroups into a single line.\n" msgstr "" -#: src/lang.c:1000 +#: src/lang.c:993 #, c-format msgid "\n" "Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n" msgstr "" -#: src/lang.c:1005 +#: src/lang.c:998 msgid "\n" " If your article contains quoted text please take some time to pare it " "down\n" @@ -3576,778 +3565,778 @@ msgid "\n" " likely to ignore it completely. It's a crowded net out there.\n" msgstr "" -#: src/lang.c:1018 +#: src/lang.c:1011 msgid "shell escape" msgstr "" -#: src/lang.c:1019 +#: src/lang.c:1012 #, c-format msgid "Shell Command (%s)" msgstr "" -#: src/lang.c:1020 +#: src/lang.c:1013 #, c-format msgid "Enter shell command [%s]> " msgstr "" -#: src/lang.c:1024 +#: src/lang.c:1017 #, c-format msgid "%s: Can't get entry for TERM\n" msgstr "" -#: src/lang.c:1028 +#: src/lang.c:1021 #, c-format msgid "Group %.*s ('q' to quit)..." msgstr "" -#: src/lang.c:1030 +#: src/lang.c:1023 #, c-format msgid "Group %.*s..." msgstr "" -#: src/lang.c:1034 +#: src/lang.c:1027 msgid "Server unavailable\n" msgstr "" -#: src/lang.c:1040 +#: src/lang.c:1033 #, 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:1041 +#: src/lang.c:1034 #, c-format msgid "%s=pipe; %s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1043 +#: src/lang.c:1036 #, c-format msgid "%s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1044 +#: src/lang.c:1037 #, c-format msgid "%s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1048 +#: src/lang.c:1041 #, c-format msgid "%s=pipe; %s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1049 +#: src/lang.c:1042 #, c-format msgid "%s=pipe; %s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1051 +#: src/lang.c:1044 #, c-format msgid "%s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1052 +#: src/lang.c:1045 #, c-format msgid "%s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1058 +#: src/lang.c:1051 msgid "Terminal does not support color" msgstr "Terminal does not support colour" -#: src/lang.c:1063 +#: src/lang.c:1056 #, c-format msgid "Trying %s" msgstr "" -#: src/lang.c:1077 src/lang.c:1102 src/lang.c:1118 src/refs.c:266 +#: src/lang.c:1070 src/lang.c:1095 src/lang.c:1111 src/refs.c:266 msgid "None" msgstr "" -#: src/lang.c:1078 +#: src/lang.c:1071 msgid "Subject" msgstr "" -#: src/lang.c:1079 +#: src/lang.c:1072 msgid "References" msgstr "" -#: src/lang.c:1080 +#: src/lang.c:1073 msgid "Both Subject and References" msgstr "" -#: src/lang.c:1081 +#: src/lang.c:1074 msgid "Multipart Subject" msgstr "" -#: src/lang.c:1093 src/lang.c:1204 +#: src/lang.c:1086 src/lang.c:1197 msgid "No" msgstr "" -#: src/lang.c:1094 src/lang.c:1206 +#: src/lang.c:1087 src/lang.c:1199 msgid "Yes" msgstr "" -#: src/lang.c:1095 +#: src/lang.c:1088 msgid "Hide All" msgstr "" -#: src/lang.c:1103 +#: src/lang.c:1096 msgid "Address" msgstr "" -#: src/lang.c:1104 +#: src/lang.c:1097 msgid "Full Name" msgstr "" -#: src/lang.c:1105 +#: src/lang.c:1098 msgid "Address and Name" msgstr "" -#: src/lang.c:1112 +#: src/lang.c:1105 msgid "Max" msgstr "" -#: src/lang.c:1113 +#: src/lang.c:1106 msgid "Sum" msgstr "" -#: src/lang.c:1114 +#: src/lang.c:1107 msgid "Average" msgstr "" -#: src/lang.c:1119 +#: src/lang.c:1112 msgid "Lines" msgstr "" -#: src/lang.c:1120 +#: src/lang.c:1113 msgid "Score" msgstr "" -#: src/lang.c:1121 +#: src/lang.c:1114 msgid "Lines & Score" msgstr "" -#: src/lang.c:1130 +#: src/lang.c:1123 msgid "Black" msgstr "" -#: src/lang.c:1131 +#: src/lang.c:1124 msgid "Red" msgstr "" -#: src/lang.c:1132 +#: src/lang.c:1125 msgid "Green" msgstr "" -#: src/lang.c:1133 +#: src/lang.c:1126 msgid "Brown" msgstr "" -#: src/lang.c:1134 +#: src/lang.c:1127 msgid "Blue" msgstr "" -#: src/lang.c:1135 +#: src/lang.c:1128 msgid "Pink" msgstr "" -#: src/lang.c:1136 +#: src/lang.c:1129 msgid "Cyan" msgstr "" -#: src/lang.c:1137 +#: src/lang.c:1130 msgid "White" msgstr "" -#: src/lang.c:1138 +#: src/lang.c:1131 msgid "Gray" msgstr "Grey" -#: src/lang.c:1139 +#: src/lang.c:1132 msgid "Light Red" msgstr "" -#: src/lang.c:1140 +#: src/lang.c:1133 msgid "Light Green" msgstr "" -#: src/lang.c:1141 +#: src/lang.c:1134 msgid "Yellow" msgstr "" -#: src/lang.c:1142 +#: src/lang.c:1135 msgid "Light Blue" msgstr "" -#: src/lang.c:1143 +#: src/lang.c:1136 msgid "Light Pink" msgstr "" -#: src/lang.c:1144 +#: src/lang.c:1137 msgid "Light Cyan" msgstr "" -#: src/lang.c:1145 +#: src/lang.c:1138 msgid "Light White" msgstr "" -#: src/lang.c:1153 src/lang.c:1210 src/lang.c:1224 +#: src/lang.c:1146 src/lang.c:1203 src/lang.c:1217 msgid "Nothing" msgstr "" -#: src/lang.c:1154 +#: src/lang.c:1147 msgid "Mark" msgstr "" -#: src/lang.c:1155 +#: src/lang.c:1148 msgid "Space" msgstr "" -#: src/lang.c:1162 +#: src/lang.c:1155 msgid "Normal" msgstr "" -#: src/lang.c:1163 +#: src/lang.c:1156 msgid "Best highlighting" msgstr "" -#: src/lang.c:1164 +#: src/lang.c:1157 msgid "Underline" msgstr "" -#: src/lang.c:1165 +#: src/lang.c:1158 msgid "Reverse video" msgstr "" -#: src/lang.c:1166 +#: src/lang.c:1159 msgid "Blinking" msgstr "" -#: src/lang.c:1167 +#: src/lang.c:1160 msgid "Half bright" msgstr "" -#: src/lang.c:1168 +#: src/lang.c:1161 msgid "Bold" msgstr "" -#: src/lang.c:1173 +#: src/lang.c:1166 msgid "none" msgstr "" -#: src/lang.c:1174 +#: src/lang.c:1167 msgid "commands" msgstr "" -#: src/lang.c:1175 +#: src/lang.c:1168 msgid "select" msgstr "" -#: src/lang.c:1177 +#: src/lang.c:1170 msgid "commands & quit" msgstr "" -#: src/lang.c:1178 +#: src/lang.c:1171 msgid "commands & select" msgstr "" -#: src/lang.c:1179 +#: src/lang.c:1172 msgid "quit & select" msgstr "" -#: src/lang.c:1180 +#: src/lang.c:1173 msgid "commands & quit & select" msgstr "" -#: src/lang.c:1205 +#: src/lang.c:1198 msgid "Shell archive" msgstr "" -#: src/lang.c:1211 +#: src/lang.c:1204 msgid "Subject: (descending)" msgstr "" -#: src/lang.c:1212 +#: src/lang.c:1205 msgid "Subject: (ascending)" msgstr "" -#: src/lang.c:1213 +#: src/lang.c:1206 msgid "From: (descending)" msgstr "" -#: src/lang.c:1214 +#: src/lang.c:1207 msgid "From: (ascending)" msgstr "" -#: src/lang.c:1215 +#: src/lang.c:1208 msgid "Date: (descending)" msgstr "" -#: src/lang.c:1216 +#: src/lang.c:1209 msgid "Date: (ascending)" msgstr "" -#: src/lang.c:1217 src/lang.c:1225 +#: src/lang.c:1210 src/lang.c:1218 msgid "Score (descending)" msgstr "" -#: src/lang.c:1218 src/lang.c:1226 +#: src/lang.c:1211 src/lang.c:1219 msgid "Score (ascending)" msgstr "" -#: src/lang.c:1219 +#: src/lang.c:1212 msgid "Lines: (descending)" msgstr "" -#: src/lang.c:1220 +#: src/lang.c:1213 msgid "Lines: (ascending)" msgstr "" -#: src/lang.c:1231 +#: src/lang.c:1224 msgid "Always Keep" msgstr "" -#: src/lang.c:1232 +#: src/lang.c:1225 msgid "Always Remove" msgstr "" -#: src/lang.c:1233 +#: src/lang.c:1226 msgid "Mark with D on selection screen" msgstr "" -#: src/lang.c:1238 +#: src/lang.c:1231 msgid "Kill only unread arts" msgstr "" -#: src/lang.c:1239 +#: src/lang.c:1232 msgid "Kill all arts & show with K" msgstr "" #. TODO: s/K/art_marked_killed/ -#: src/lang.c:1240 +#: src/lang.c:1233 msgid "Kill all arts and never show" msgstr "" -#: src/lang.c:1245 +#: src/lang.c:1238 msgid "Nothing special" msgstr "" -#: src/lang.c:1246 +#: src/lang.c:1239 msgid "Compress quotes" msgstr "" -#: src/lang.c:1247 +#: src/lang.c:1240 msgid "Quote signatures" msgstr "" -#: src/lang.c:1248 +#: src/lang.c:1241 msgid "Compress quotes, quote sigs" msgstr "" -#: src/lang.c:1249 +#: src/lang.c:1242 msgid "Quote empty lines" msgstr "" -#: src/lang.c:1250 +#: src/lang.c:1243 msgid "Compress quotes, quote empty lines" msgstr "" -#: src/lang.c:1251 +#: src/lang.c:1244 msgid "Quote sigs & empty lines" msgstr "" -#: src/lang.c:1252 +#: src/lang.c:1245 msgid "Comp. q., quote sigs & empty lines" msgstr "" -#: src/lang.c:1290 +#: src/lang.c:1283 msgid "no" msgstr "" -#: src/lang.c:1291 +#: src/lang.c:1284 msgid "with headers" msgstr "" -#: src/lang.c:1292 +#: src/lang.c:1285 msgid "without headers" msgstr "" -#: src/lang.c:1297 +#: src/lang.c:1290 msgid "Display Options" msgstr "" -#: src/lang.c:1303 +#: src/lang.c:1296 msgid "Color Options" msgstr "Colour Options" -#: src/lang.c:1309 +#: src/lang.c:1302 msgid "Article-Limiting Options" msgstr "" -#: src/lang.c:1315 +#: src/lang.c:1308 msgid "Posting/Mailing Options" msgstr "" -#: src/lang.c:1321 +#: src/lang.c:1314 msgid "Saving/Printing Options" msgstr "" -#: src/lang.c:1327 +#: src/lang.c:1320 msgid "Expert Options" msgstr "" -#: src/lang.c:1333 +#: src/lang.c:1326 msgid "Filtering Options" msgstr "" -#: src/lang.c:1338 src/lang.c:1364 src/lang.c:1370 src/lang.c:1377 src/lang.c:1409 -#: src/lang.c:1415 src/lang.c:1423 src/lang.c:1443 src/lang.c:1518 src/lang.c:1680 -#: src/lang.c:1686 src/lang.c:1692 src/lang.c:1698 src/lang.c:1710 src/lang.c:1717 -#: src/lang.c:1768 src/lang.c:1777 src/lang.c:1783 src/lang.c:1789 src/lang.c:1795 -#: src/lang.c:1801 src/lang.c:1807 src/lang.c:1813 src/lang.c:1819 src/lang.c:1825 -#: src/lang.c:1831 src/lang.c:1837 src/lang.c:1843 src/lang.c:1849 src/lang.c:1855 -#: src/lang.c:1861 src/lang.c:1867 src/lang.c:1873 src/lang.c:1879 src/lang.c:1885 -#: src/lang.c:1891 src/lang.c:1898 src/lang.c:1904 src/lang.c:1910 src/lang.c:1917 -#: src/lang.c:1928 src/lang.c:1934 src/lang.c:1940 src/lang.c:1946 src/lang.c:1952 -#: src/lang.c:1958 src/lang.c:1972 src/lang.c:1984 src/lang.c:2018 src/lang.c:2070 -#: src/lang.c:2077 src/lang.c:2083 src/lang.c:2108 src/lang.c:2125 src/lang.c:2178 -#: src/lang.c:2211 src/lang.c:2231 src/lang.c:2266 src/lang.c:2275 src/lang.c:2300 -#: src/lang.c:2312 +#: src/lang.c:1331 src/lang.c:1357 src/lang.c:1363 src/lang.c:1370 src/lang.c:1402 +#: src/lang.c:1408 src/lang.c:1416 src/lang.c:1436 src/lang.c:1511 src/lang.c:1673 +#: src/lang.c:1679 src/lang.c:1685 src/lang.c:1691 src/lang.c:1703 src/lang.c:1710 +#: src/lang.c:1761 src/lang.c:1770 src/lang.c:1776 src/lang.c:1782 src/lang.c:1788 +#: src/lang.c:1794 src/lang.c:1800 src/lang.c:1806 src/lang.c:1812 src/lang.c:1818 +#: src/lang.c:1824 src/lang.c:1830 src/lang.c:1836 src/lang.c:1842 src/lang.c:1848 +#: src/lang.c:1854 src/lang.c:1860 src/lang.c:1866 src/lang.c:1872 src/lang.c:1878 +#: src/lang.c:1884 src/lang.c:1891 src/lang.c:1897 src/lang.c:1903 src/lang.c:1910 +#: src/lang.c:1921 src/lang.c:1927 src/lang.c:1933 src/lang.c:1939 src/lang.c:1945 +#: src/lang.c:1951 src/lang.c:1965 src/lang.c:1977 src/lang.c:2011 src/lang.c:2063 +#: src/lang.c:2070 src/lang.c:2076 src/lang.c:2101 src/lang.c:2118 src/lang.c:2171 +#: src/lang.c:2204 src/lang.c:2224 src/lang.c:2259 src/lang.c:2268 src/lang.c:2293 +#: src/lang.c:2305 msgid " toggles, sets, cancels." msgstr "" -#: src/lang.c:1339 +#: src/lang.c:1332 msgid "Show mini menu & posting etiquette :" msgstr "" -#: src/lang.c:1340 +#: src/lang.c:1333 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:1345 +#: src/lang.c:1338 msgid "Show short description for each newsgroup. toggles & sets." msgstr "" -#: src/lang.c:1346 +#: src/lang.c:1339 msgid "Show description of each newsgroup :" msgstr "" -#: src/lang.c:1347 +#: src/lang.c:1340 msgid "# If ON show group description text after newsgroup name at\n" "# group selection level\n" msgstr "" -#: src/lang.c:1352 +#: src/lang.c:1345 msgid "Show Subject & From (author) fields in group menu. toggles & " "sets." msgstr "" -#: src/lang.c:1353 +#: src/lang.c:1346 msgid "In group menu, show author by :" msgstr "" -#: src/lang.c:1354 +#: src/lang.c:1347 msgid "# Part of from field to display 0) none 1) address 2) full name 3) both\n" msgstr "" -#: src/lang.c:1358 +#: src/lang.c:1351 msgid "Draw -> or highlighted bar for selection. toggles & sets." msgstr "" -#: src/lang.c:1359 +#: src/lang.c:1352 msgid "Draw -> instead of highlighted bar :" msgstr "" -#: src/lang.c:1360 +#: src/lang.c:1353 msgid "# If ON use -> otherwise highlighted bar for selection\n" msgstr "" -#: src/lang.c:1365 +#: src/lang.c:1358 msgid "Use inverse video for page headers :" msgstr "" -#: src/lang.c:1366 +#: src/lang.c:1359 msgid "# If ON use inverse video for page headers at different levels\n" msgstr "" -#: src/lang.c:1371 +#: src/lang.c:1364 msgid "Thread articles by :" msgstr "" -#: src/lang.c:1372 +#: src/lang.c:1365 msgid "# Thread articles on 0=(nothing) 1=(Subject) 2=(References) 3=(Both)\n" "# 4=(Multipart Subject).\n" msgstr "" -#: src/lang.c:1378 +#: src/lang.c:1371 msgid "Score of a thread :" msgstr "" -#: src/lang.c:1379 +#: src/lang.c:1372 msgid "# Thread score 0=(Max) 1=(Sum) 2=(Average)\n" msgstr "" -#: src/lang.c:1383 +#: src/lang.c:1376 msgid "Sort articles by Subject, From, Date or Score. toggles & sets." msgstr "" -#: src/lang.c:1384 +#: src/lang.c:1377 msgid "Sort articles by :" msgstr "" -#: src/lang.c:1385 +#: src/lang.c:1378 msgid "# Sort articles by 0=(nothing) 1=(Subject descend) 2=(Subject ascend)\n" "# 3=(From descend) 4=(From ascend) 5=(Date descend) 6=(Date ascend)\n" "# 7=(Score descend) 8=(Score ascend) 9=(Lines descend) 10=(Lines ascend).\n" msgstr "" -#: src/lang.c:1391 +#: src/lang.c:1384 msgid "Sort threads by Nothing or Score. toggles & sets." msgstr "" -#: src/lang.c:1392 +#: src/lang.c:1385 msgid "Sort threads by :" msgstr "" -#: src/lang.c:1393 +#: src/lang.c:1386 msgid "# Sort thread by 0=(nothing) 1=(Score descend) 2=(Score ascend)\n" msgstr "" -#: src/lang.c:1397 +#: src/lang.c:1390 msgid "Put cursor at first/last unread art in groups. toggles & sets." msgstr "" -#: src/lang.c:1398 +#: src/lang.c:1391 msgid "Goto first unread article in group :" msgstr "" -#: src/lang.c:1399 +#: src/lang.c:1392 msgid "# If ON put cursor at first unread art in group otherwise last art\n" msgstr "" -#: src/lang.c:1403 +#: src/lang.c:1396 msgid "Show all articles or only unread articles. toggles & sets." msgstr "" -#: src/lang.c:1404 +#: src/lang.c:1397 msgid "Show only unread articles :" msgstr "" -#: src/lang.c:1405 +#: src/lang.c:1398 msgid "# If ON show only new/unread articles otherwise show all.\n" msgstr "" -#: src/lang.c:1410 +#: src/lang.c:1403 msgid "Show only groups with unread arts :" msgstr "" -#: src/lang.c:1411 +#: src/lang.c:1404 msgid "# If ON show only subscribed to groups that contain unread articles.\n" msgstr "" -#: src/lang.c:1416 +#: src/lang.c:1409 msgid "Filter which articles :" msgstr "" -#: src/lang.c:1417 +#: src/lang.c:1410 msgid "# 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:1424 +#: src/lang.c:1417 msgid "Tab goes to next unread article :" msgstr "" -#: src/lang.c:1425 +#: src/lang.c:1418 msgid "# If ON the TAB command will go to next unread article at article viewer " "level\n" msgstr "" -#: src/lang.c:1429 +#: src/lang.c:1422 msgid "Scrolling with past the end of an art. jumps to the next unread one." msgstr "" -#: src/lang.c:1430 +#: src/lang.c:1423 msgid "Space goes to next unread article :" msgstr "" -#: src/lang.c:1431 +#: src/lang.c:1424 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:1436 +#: src/lang.c:1429 msgid "Scrolling with / past the end of an art. jumps to the unread one." msgstr "" -#: src/lang.c:1437 +#: src/lang.c:1430 msgid "PgDn goes to next unread article :" msgstr "" -#: src/lang.c:1438 +#: src/lang.c:1431 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:1444 +#: src/lang.c:1437 msgid "List thread using right arrow key :" msgstr "" -#: src/lang.c:1445 +#: src/lang.c:1438 msgid "# If ON automatically list thread when entering it using right arrow key.\n" msgstr "" -#: src/lang.c:1449 +#: src/lang.c:1442 msgid "Enter character to indicate deleted articles. sets, cancels." msgstr "" -#: src/lang.c:1450 +#: src/lang.c:1443 msgid "Character to show deleted articles :" msgstr "" -#: src/lang.c:1451 +#: src/lang.c:1444 msgid "# Character used to show that an art was deleted (default 'D')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1456 +#: src/lang.c:1449 msgid "Enter character to indicate articles in a range. sets, cancels." msgstr "" -#: src/lang.c:1457 +#: src/lang.c:1450 msgid "Character to show inrange articles :" msgstr "" -#: src/lang.c:1458 +#: src/lang.c:1451 msgid "# Character used to show that an art is in a range (default '#')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1463 +#: src/lang.c:1456 msgid "Enter character to indicate that article will return. sets, " "cancels." msgstr "" -#: src/lang.c:1464 +#: src/lang.c:1457 msgid "Character to show returning arts :" msgstr "" -#: src/lang.c:1465 +#: src/lang.c:1458 msgid "# Character used to show that an art will return (default '-')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1470 +#: src/lang.c:1463 msgid "Enter character to indicate selected articles. sets, cancels." msgstr "" -#: src/lang.c:1471 +#: src/lang.c:1464 msgid "Character to show selected articles:" msgstr "" -#: src/lang.c:1472 +#: src/lang.c:1465 msgid "# Character used to show that an art was auto-selected (default '*')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1477 +#: src/lang.c:1470 msgid "Enter character to indicate recent articles. sets, cancels." msgstr "" -#: src/lang.c:1478 +#: src/lang.c:1471 msgid "Character to show recent articles :" msgstr "" -#: src/lang.c:1479 +#: src/lang.c:1472 msgid "# Character used to show that an art is recent (default 'o')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1484 +#: src/lang.c:1477 msgid "Enter character to indicate unread articles. sets, cancels." msgstr "" -#: src/lang.c:1485 +#: src/lang.c:1478 msgid "Character to show unread articles :" msgstr "" -#: src/lang.c:1486 +#: src/lang.c:1479 msgid "# Character used to show that an art is unread (default '+')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1491 +#: src/lang.c:1484 msgid "Enter character to indicate read articles. sets, cancels." msgstr "" -#: src/lang.c:1492 +#: src/lang.c:1485 msgid "Character to show read articles :" msgstr "" -#: src/lang.c:1493 +#: src/lang.c:1486 msgid "# Character used to show that an art was read (default ' ')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1498 +#: src/lang.c:1491 msgid "Enter character to indicate killed articles. sets, cancels." msgstr "" -#: src/lang.c:1499 +#: src/lang.c:1492 msgid "Character to show killed articles :" msgstr "" -#: src/lang.c:1500 +#: src/lang.c:1493 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:1505 +#: src/lang.c:1498 msgid "Enter character to indicate read selected articles. sets, cancels." msgstr "" -#: src/lang.c:1506 +#: src/lang.c:1499 msgid "Character to show readselected arts:" msgstr "" -#: src/lang.c:1507 +#: src/lang.c:1500 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:1512 +#: src/lang.c:1505 msgid "Enter maximum length of newsgroup names displayed. sets." msgstr "" -#: src/lang.c:1513 +#: src/lang.c:1506 msgid "Max. length of group names shown :" msgstr "" -#: src/lang.c:1514 +#: src/lang.c:1507 msgid "# Maximum length of the names of newsgroups displayed\n" msgstr "" -#: src/lang.c:1519 +#: src/lang.c:1512 msgid "Show lines/score in listings :" msgstr "" -#: src/lang.c:1520 +#: src/lang.c:1513 msgid "# What informations should be displayed in article/thread listing\n" "# 0 = nothing, 1 = lines, 2 = score, 3 = lines & score\n" msgstr "" -#: src/lang.c:1525 +#: src/lang.c:1518 msgid "0 = full page scrolling, -1 = show previous last line as first on next page, " "-2 = half page" msgstr "" -#: src/lang.c:1526 +#: src/lang.c:1519 msgid "Number of lines to scroll in pager :" msgstr "" -#: src/lang.c:1527 +#: src/lang.c:1520 msgid "# Number of lines that cursor-up/down will scroll in article pager\n" "# eg, 1+ = line-by-line, 0 = page-by-page (traditional behavior),\n" "# -1 = the top/bottom line is carried over onto the next page,\n" @@ -4357,27 +4346,27 @@ msgstr "# Number of lines that cursor-up "# -1 = the top/bottom line is carried over onto the next page,\n" "# -2 = half-page scrolling\n" -#: src/lang.c:1534 +#: src/lang.c:1527 msgid "Display signatures. toggles & sets." msgstr "" -#: src/lang.c:1535 +#: src/lang.c:1528 msgid "Display signatures :" msgstr "" -#: src/lang.c:1536 +#: src/lang.c:1529 msgid "# If OFF don't show signatures when displaying articles\n" msgstr "" -#: src/lang.c:1540 +#: src/lang.c:1533 msgid "Display uuencoded data as tagged attachments. toggles & sets." msgstr "" -#: src/lang.c:1541 +#: src/lang.c:1534 msgid "Display uue data as an attachment :" msgstr "" -#: src/lang.c:1542 +#: src/lang.c:1535 msgid "# Handling of uuencoded data in the pager\n" "# 0 = display raw uuencoded data\n" "# 1 = uuencoded data will be condensed to a single tag line showing\n" @@ -4386,28 +4375,28 @@ msgid "# Handling of uuencoded data in t "# into a tag line.\n" msgstr "" -#: src/lang.c:1551 +#: src/lang.c:1544 msgid "Decode German style TeX umlaut codes to ISO. toggles & sets." msgstr "" -#: src/lang.c:1552 +#: src/lang.c:1545 msgid "Display \"a as Umlaut-a :" msgstr "" -#: src/lang.c:1553 +#: src/lang.c:1546 msgid "# If ON decode German style TeX umlaut codes to ISO and\n" "# show \"a as Umlaut-a, etc.\n" msgstr "" -#: src/lang.c:1558 src/lang.c:1568 +#: src/lang.c:1551 src/lang.c:1561 msgid "Space separated list of header fields" msgstr "" -#: src/lang.c:1559 +#: src/lang.c:1552 msgid "Display these header fields (or *) :" msgstr "" -#: src/lang.c:1560 +#: src/lang.c:1553 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" @@ -4416,11 +4405,11 @@ msgid "# Which news headers you wish to "# spaces. Not defining anything turns off this option.\n" msgstr "" -#: src/lang.c:1569 +#: src/lang.c:1562 msgid "Do not display these header fields :" msgstr "" -#: src/lang.c:1570 +#: src/lang.c:1563 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 " @@ -4431,512 +4420,512 @@ msgid "# Same as 'news_headers_to_displa "# Not defining anything turns off this option.\n" msgstr "" -#: src/lang.c:1580 +#: src/lang.c:1573 msgid "Do you want to enable automatic handling of multipart/alternative articles?" msgstr "" -#: src/lang.c:1581 +#: src/lang.c:1574 msgid "Skip multipart/alternative parts :" msgstr "" -#: src/lang.c:1582 +#: src/lang.c:1575 msgid "# If ON strip multipart/alternative messages automatically\n" msgstr "" -#: src/lang.c:1587 +#: src/lang.c:1580 msgid "A regex used to decide which lines to show in col_quote." msgstr "" -#: src/lang.c:1588 +#: src/lang.c:1581 msgid "Regex used to show quoted lines :" msgstr "" -#: src/lang.c:1589 +#: src/lang.c:1582 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:1595 +#: src/lang.c:1588 msgid "A regex used to decide which lines to show in col_quote2." msgstr "" -#: src/lang.c:1596 +#: src/lang.c:1589 msgid "Regex used to show twice quoted l. :" msgstr "" -#: src/lang.c:1597 +#: src/lang.c:1590 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:1603 +#: src/lang.c:1596 msgid "A regex used to decide which lines to show in col_quote3." msgstr "" -#: src/lang.c:1604 +#: src/lang.c:1597 msgid "Regex used to show >= 3 times q.l. :" msgstr "" -#: src/lang.c:1605 +#: src/lang.c:1598 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:1612 +#: src/lang.c:1605 msgid "A regex used to decide which words to show in col_markslashes." msgstr "" -#: src/lang.c:1613 +#: src/lang.c:1606 msgid "Regex used to highlight /slashes/ :" msgstr "" -#: src/lang.c:1614 +#: src/lang.c:1607 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:1620 +#: src/lang.c:1613 msgid "A regex used to decide which words to show in col_markstars." msgstr "" -#: src/lang.c:1621 +#: src/lang.c:1614 msgid "Regex used to highlight *stars* :" msgstr "" -#: src/lang.c:1622 +#: src/lang.c:1615 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:1628 +#: src/lang.c:1621 msgid "A regex used to decide which words to show in col_markstroke." msgstr "" -#: src/lang.c:1629 +#: src/lang.c:1622 msgid "Regex used to highlight -strokes- :" msgstr "" -#: src/lang.c:1630 +#: src/lang.c:1623 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:1636 +#: src/lang.c:1629 msgid "A regex used to decide which words to show in col_markdash." msgstr "" -#: src/lang.c:1637 +#: src/lang.c:1630 msgid "Regex used to highlight _underline_:" msgstr "" -#: src/lang.c:1638 +#: src/lang.c:1631 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:1644 +#: src/lang.c:1637 msgid "A regex used to find Subject prefixes to remove. Use '|' as separator." msgstr "" -#: src/lang.c:1645 +#: src/lang.c:1638 msgid "Regex with Subject prefixes :" msgstr "" -#: src/lang.c:1646 +#: src/lang.c:1639 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:1651 +#: src/lang.c:1644 msgid "A regex used to find Subject suffixes to remove. Use '|' as separator." msgstr "" -#: src/lang.c:1652 +#: src/lang.c:1645 msgid "Regex with Subject suffixes :" msgstr "" -#: src/lang.c:1653 +#: src/lang.c:1646 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:1658 +#: src/lang.c:1651 msgid "Enter name and options for external MIME viewer, --internal for built-in " "viewer" msgstr "" -#: src/lang.c:1659 +#: src/lang.c:1652 msgid "MIME binary content viewer :" msgstr "" -#: src/lang.c:1660 +#: src/lang.c:1653 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:1667 +#: src/lang.c:1660 msgid "Confirm before starting non-text viewing program" msgstr "" -#: src/lang.c:1668 +#: src/lang.c:1661 msgid "Ask before using MIME viewer :" msgstr "" -#: src/lang.c:1669 +#: src/lang.c:1662 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:1674 +#: src/lang.c:1667 msgid "Ask to mark groups read when quitting. toggles & sets." msgstr "" -#: src/lang.c:1675 +#: src/lang.c:1668 msgid "Catchup read groups when quitting :" msgstr "" -#: src/lang.c:1676 +#: src/lang.c:1669 msgid "# If ON ask user if read groups should all be marked read\n" msgstr "" -#: src/lang.c:1681 +#: src/lang.c:1674 msgid "Catchup group using left key :" msgstr "" -#: src/lang.c:1682 +#: src/lang.c:1675 msgid "# If ON catchup group/thread when leaving with the left arrow key.\n" msgstr "" -#: src/lang.c:1687 +#: src/lang.c:1680 msgid "Catchup thread by using left key :" msgstr "" -#: src/lang.c:1693 +#: src/lang.c:1686 msgid "Which actions require confirmation :" msgstr "" -#: src/lang.c:1694 +#: src/lang.c:1687 msgid "# What should we ask confirmation for.\n" msgstr "" -#: src/lang.c:1699 +#: src/lang.c:1692 msgid "'Mark article read' ignores tags :" msgstr "" -#: src/lang.c:1700 +#: src/lang.c:1693 msgid "# If ON the 'Mark article read' function marks only the current article.\n" msgstr "" -#: src/lang.c:1704 +#: src/lang.c:1697 msgid "Program to run to open URL's, sets, cancels." msgstr "" -#: src/lang.c:1705 +#: src/lang.c:1698 msgid "Program that opens URL's :" msgstr "" -#: src/lang.c:1706 +#: src/lang.c:1699 msgid "# The program used to open URL's. The actual URL will be appended\n" msgstr "" -#: src/lang.c:1711 +#: src/lang.c:1704 msgid "Use mouse in xterm :" msgstr "" -#: src/lang.c:1712 +#: src/lang.c:1705 msgid "# If ON enable mouse key support on xterm terminals\n" msgstr "" -#: src/lang.c:1718 +#: src/lang.c:1711 msgid "Use scroll keys on keypad :" msgstr "" -#: src/lang.c:1719 +#: src/lang.c:1712 msgid "# If ON enable scroll keys on terminals that support it\n" msgstr "" -#: src/lang.c:1724 +#: src/lang.c:1717 msgid "Enter maximum number of article to get. sets." msgstr "" -#: src/lang.c:1725 +#: src/lang.c:1718 msgid "Number of articles to get :" msgstr "" -#: src/lang.c:1726 +#: src/lang.c:1719 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:1731 +#: src/lang.c:1724 msgid "Enter number of days article is considered recent. sets." msgstr "" -#: src/lang.c:1732 +#: src/lang.c:1725 msgid "Article recentness time limit :" msgstr "" -#: src/lang.c:1733 +#: src/lang.c:1726 msgid "# Number of days in which article is considered recent, (0=OFF)\n" msgstr "" -#: src/lang.c:1737 +#: src/lang.c:1730 msgid "WILDMAT for normal wildcards, REGEX for full regular expression matching." msgstr "" -#: src/lang.c:1738 +#: src/lang.c:1731 msgid "Wildcard matching :" msgstr "" -#: src/lang.c:1739 +#: src/lang.c:1732 msgid "# Wildcard matching 0=(wildmat) 1=(regex)\n" msgstr "" -#: src/lang.c:1743 +#: src/lang.c:1736 msgid "Enter minimal score before an article is marked killed. sets." msgstr "" -#: src/lang.c:1744 +#: src/lang.c:1737 msgid "Score limit (kill) :" msgstr "" -#: src/lang.c:1745 +#: src/lang.c:1738 msgid "# Score limit before an article is marked killed\n" msgstr "" -#: src/lang.c:1749 +#: src/lang.c:1742 msgid "Enter default score to kill articles. sets." msgstr "" -#: src/lang.c:1750 +#: src/lang.c:1743 msgid "Default score to kill articles :" msgstr "" -#: src/lang.c:1751 +#: src/lang.c:1744 msgid "# Default score to kill articles\n" msgstr "" -#: src/lang.c:1755 +#: src/lang.c:1748 msgid "Enter minimal score before an article is marked hot. sets." msgstr "" -#: src/lang.c:1756 +#: src/lang.c:1749 msgid "Score limit (select) :" msgstr "" -#: src/lang.c:1757 +#: src/lang.c:1750 msgid "# Score limit before an article is marked hot\n" msgstr "" -#: src/lang.c:1761 +#: src/lang.c:1754 msgid "Enter default score to select articles. sets." msgstr "" -#: src/lang.c:1762 +#: src/lang.c:1755 msgid "Default score to select articles :" msgstr "" -#: src/lang.c:1763 +#: src/lang.c:1756 msgid "# Default score to select articles\n" msgstr "" -#: src/lang.c:1769 +#: src/lang.c:1762 msgid "Use slrnface to show ''X-Face:''s :" msgstr "" -#: src/lang.c:1770 +#: src/lang.c:1763 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:1778 +#: src/lang.c:1771 msgid "Use ANSI color :" msgstr "Use ANSI colour :" -#: src/lang.c:1779 +#: src/lang.c:1772 msgid "# If ON using ANSI-color\n" msgstr "# If ON using ANSI-colour\n" -#: src/lang.c:1784 +#: src/lang.c:1777 msgid "Standard foreground color :" msgstr "Standard foreground colour :" -#: src/lang.c:1785 +#: src/lang.c:1778 msgid "# Standard foreground color\n" msgstr "# Standard foreground colour\n" -#: src/lang.c:1790 +#: src/lang.c:1783 msgid "Standard background color :" msgstr "Standard background colour :" -#: src/lang.c:1791 +#: src/lang.c:1784 msgid "# Standard-Background-Color\n" msgstr "# Standard-Background-Colour\n" -#: src/lang.c:1796 +#: src/lang.c:1789 msgid "Color for inverse text (background):" msgstr "Colour for inverse text (bg) :" -#: src/lang.c:1797 +#: src/lang.c:1790 msgid "# Color of background for inverse text\n" msgstr "# Colour of background for inverse text\n" -#: src/lang.c:1802 +#: src/lang.c:1795 msgid "Color for inverse text (foreground):" msgstr "Colour for inverse text (fg) :" -#: src/lang.c:1803 +#: src/lang.c:1796 msgid "# Color of foreground for inverse text\n" msgstr "# Colour of foreground for inverse text\n" -#: src/lang.c:1808 +#: src/lang.c:1801 msgid "Color of text lines :" msgstr "Colour of text lines :" -#: src/lang.c:1809 +#: src/lang.c:1802 msgid "# Color of text-lines\n" msgstr "# Colour of text-lines\n" -#: src/lang.c:1814 +#: src/lang.c:1807 msgid "Color of mini help menu :" msgstr "Colour of mini help menu :" -#: src/lang.c:1815 +#: src/lang.c:1808 msgid "# Color of mini help menu\n" msgstr "# Colour of mini help menu\n" -#: src/lang.c:1820 +#: src/lang.c:1813 msgid "Color of help text :" msgstr "Colour of help text :" -#: src/lang.c:1821 +#: src/lang.c:1814 msgid "# Color of help pages\n" msgstr "# Colour of help pages\n" -#: src/lang.c:1826 +#: src/lang.c:1819 msgid "Color of status messages :" msgstr "Colour of status messages :" -#: src/lang.c:1827 +#: src/lang.c:1820 msgid "# Color of messages in last line\n" msgstr "# Colour of messages in last line\n" -#: src/lang.c:1832 +#: src/lang.c:1825 msgid "Color of quoted lines :" msgstr "Colour of quoted lines :" -#: src/lang.c:1833 +#: src/lang.c:1826 msgid "# Color of quote-lines\n" msgstr "# Colour of quote-lines\n" -#: src/lang.c:1838 +#: src/lang.c:1831 msgid "Color of twice quoted line :" msgstr "Colour of twice quoted line :" -#: src/lang.c:1839 +#: src/lang.c:1832 msgid "# Color of twice quoted lines\n" msgstr "# Colour of twice quoted lines\n" -#: src/lang.c:1844 +#: src/lang.c:1837 msgid "Color of =>3 times quoted line :" msgstr "Colour of =>3 times quoted line :" -#: src/lang.c:1845 +#: src/lang.c:1838 msgid "# Color of >=3 times quoted lines\n" msgstr "# Colour of >=3 times quoted lines\n" -#: src/lang.c:1850 +#: src/lang.c:1843 msgid "Color of article header lines :" msgstr "Colour of article header lines :" -#: src/lang.c:1851 +#: src/lang.c:1844 msgid "# Color of header-lines\n" msgstr "# Colour of header-lines\n" -#: src/lang.c:1856 +#: src/lang.c:1849 msgid "Color of actual news header fields :" msgstr "Colour of actual news header fields:" -#: src/lang.c:1857 +#: src/lang.c:1850 msgid "# Color of actual news header fields\n" msgstr "# Colour of actual news header fields\n" -#: src/lang.c:1862 +#: src/lang.c:1855 msgid "Color of article subject lines :" msgstr "Colour of article subject lines :" -#: src/lang.c:1863 +#: src/lang.c:1856 msgid "# Color of article subject\n" msgstr "# Colour of article subject\n" -#: src/lang.c:1868 +#: src/lang.c:1861 msgid "Color of response counter :" msgstr "Colour of response counter :" -#: src/lang.c:1869 +#: src/lang.c:1862 msgid "# Color of response counter\n" msgstr "# Colour of response counter\n" -#: src/lang.c:1874 +#: src/lang.c:1867 msgid "Color of sender (From:) :" msgstr "Colour of sender (From:) :" -#: src/lang.c:1875 +#: src/lang.c:1868 msgid "# Color of sender (From:)\n" msgstr "# Colour of sender (From:)\n" -#: src/lang.c:1880 +#: src/lang.c:1873 msgid "Color of help/mail sign :" msgstr "Colour of help/mail sign :" -#: src/lang.c:1881 +#: src/lang.c:1874 msgid "# Color of Help/Mail-Sign\n" msgstr "# Colour of Help/Mail-Sign\n" -#: src/lang.c:1886 +#: src/lang.c:1879 msgid "Color of signatures :" msgstr "Colour of signatures :" -#: src/lang.c:1887 +#: src/lang.c:1880 msgid "# Color of signature\n" msgstr "# Colour of signature\n" -#: src/lang.c:1892 +#: src/lang.c:1885 msgid "Color of highlighting with *stars* :" msgstr "Colour of highlighting with *stars*:" -#: src/lang.c:1893 +#: src/lang.c:1886 msgid "# Color of word highlighting. There are four possibilities\n" "# in articles: *stars*, /slashes/, _underdashes_ and -strokes-.\n" msgstr "# Colour of word highlighting. There are four possibilities\n" "# in articles: *stars*, /slashes/, _underdashes_ and -strokes-.\n" -#: src/lang.c:1899 +#: src/lang.c:1892 msgid "Color of highlighting with _dash_ :" msgstr "Colour of highlighting with _dash_ :" -#: src/lang.c:1905 +#: src/lang.c:1898 msgid "Color of highlighting with /slash/ :" msgstr "Colour of highlighting with /slash/:" -#: src/lang.c:1911 +#: src/lang.c:1904 msgid "Color of highlighting with -stroke-:" msgstr "Colour of highlighting w. -stroke- :" -#: src/lang.c:1918 +#: src/lang.c:1911 msgid "Attr. of highlighting with *stars* :" msgstr "" -#: src/lang.c:1919 +#: src/lang.c:1912 msgid "# Attribute of word highlighting on mono terminals.\n" "# There are four possibilities in articles:\n" "# *stars*, /slashes/, _underdashes_ and -strokes-.\n" @@ -4945,93 +4934,93 @@ msgid "# Attribute of word highlighting "# 3 - Reverse video, 4 - Blinking, 5 - Half bright, 6 - Bold\n" msgstr "" -#: src/lang.c:1929 +#: src/lang.c:1922 msgid "Attr. of highlighting with _dash_ :" msgstr "" -#: src/lang.c:1935 +#: src/lang.c:1928 msgid "Attr. of highlighting with /slash/ :" msgstr "" -#: src/lang.c:1941 +#: src/lang.c:1934 msgid "Attr. of highlighting with -stroke-:" msgstr "" -#: src/lang.c:1947 +#: src/lang.c:1940 msgid "URL highlighting in message body :" msgstr "" -#: src/lang.c:1948 +#: src/lang.c:1941 msgid "# Enable URL highlighting?\n" msgstr "" -#: src/lang.c:1953 +#: src/lang.c:1946 msgid "Word highlighting in message body :" msgstr "" -#: src/lang.c:1954 +#: src/lang.c:1947 msgid "# Enable word highlighting?\n" msgstr "" -#: src/lang.c:1959 +#: src/lang.c:1952 msgid "What to display instead of mark :" msgstr "" -#: src/lang.c:1960 +#: src/lang.c:1953 msgid "# Should the leading and ending stars and dashes also be displayed,\n" "# even when they are highlighting marks?\n" "# 0 - no 1 - yes, display mark 2 - print a space instead\n" msgstr "" -#: src/lang.c:1966 +#: src/lang.c:1959 msgid "Enter column number to wrap article lines to in the pager. sets." msgstr "" -#: src/lang.c:1967 +#: src/lang.c:1960 msgid "Page line wrap column :" msgstr "" -#: src/lang.c:1968 +#: src/lang.c:1961 msgid "# Wrap article lines at column\n" msgstr "" -#: src/lang.c:1973 +#: src/lang.c:1966 msgid "Wrap around threads on next unread :" msgstr "" -#: src/lang.c:1974 +#: src/lang.c:1967 msgid "# If ON wrap around threads on searching next unread article\n" msgstr "" -#: src/lang.c:1978 +#: src/lang.c:1971 msgid "Enter default mail address (and fullname). sets." msgstr "" -#: src/lang.c:1979 +#: src/lang.c:1972 msgid "Mail address (and fullname) :" msgstr "" -#: src/lang.c:1980 +#: src/lang.c:1973 msgid "# User's mail address (and fullname), if not username@host (fullname)\n" msgstr "" -#: src/lang.c:1985 +#: src/lang.c:1978 msgid "Show empty Followup-To in editor :" msgstr "" -#: src/lang.c:1986 +#: src/lang.c:1979 msgid "# If ON show empty Followup-To header when editing an article\n" msgstr "" -#: src/lang.c:1990 +#: src/lang.c:1983 msgid "Enter path/! command/--none to create your default signature. sets." msgstr "" -#: src/lang.c:1991 +#: src/lang.c:1984 msgid "Create signature from path/command :" msgstr "" -#: src/lang.c:1992 +#: src/lang.c:1985 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 " @@ -5039,48 +5028,48 @@ msgid "# Signature path (random sigs)/fi "# default_sigfile=--none don't append a signature\n" msgstr "" -#: src/lang.c:1999 +#: src/lang.c:1992 msgid "Prepend signature with \"-- \" on own line. toggles & sets." msgstr "" -#: src/lang.c:2000 +#: src/lang.c:1993 msgid "Prepend signature with \"-- \" :" msgstr "" -#: src/lang.c:2001 +#: src/lang.c:1994 msgid "# If ON prepend the signature with dashes '\\n-- \\n'\n" msgstr "" -#: src/lang.c:2005 +#: src/lang.c:1998 msgid "Add signature when reposting articles. toggles & sets." msgstr "" -#: src/lang.c:2006 +#: src/lang.c:1999 msgid "Add signature when reposting :" msgstr "" -#: src/lang.c:2007 +#: src/lang.c:2000 msgid "# If ON add signature to reposted articles\n" msgstr "" -#: src/lang.c:2011 +#: src/lang.c:2004 msgid "Enter quotation marks, %s or %S for author's initials." msgstr "" -#: src/lang.c:2012 +#: src/lang.c:2005 msgid "Characters used as quote-marks :" msgstr "" -#: src/lang.c:2013 +#: src/lang.c:2006 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:2019 +#: src/lang.c:2012 msgid "Quoting behavior :" msgstr "Quoting behaviour :" -#: src/lang.c:2020 +#: src/lang.c:2013 msgid "# How quoting should be handled when following up or replying.\n" "# 0 = Nothing special\n" "# 1 = Compress quotes\n" @@ -5092,49 +5081,49 @@ msgid "# How quoting should be handled w "# 7 = Compress quotes, quote signatures, quote empty lines\n" msgstr "" -#: src/lang.c:2032 src/lang.c:2040 src/lang.c:2046 +#: src/lang.c:2025 src/lang.c:2033 src/lang.c:2039 msgid "%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name" msgstr "" -#: src/lang.c:2033 +#: src/lang.c:2026 msgid "Quote line when following up :" msgstr "" -#: src/lang.c:2034 +#: src/lang.c:2027 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:2041 +#: src/lang.c:2034 msgid "Quote line when cross-posting :" msgstr "" -#: src/lang.c:2047 +#: src/lang.c:2040 msgid "Quote line when mailing :" msgstr "" -#: src/lang.c:2052 +#: src/lang.c:2045 msgid "If ON, include User-Agent: header. toggles & sets." msgstr "" -#: src/lang.c:2053 +#: src/lang.c:2046 msgid "Insert 'User-Agent:'-header :" msgstr "" -#: src/lang.c:2054 +#: src/lang.c:2047 msgid "# If ON include advertising User-Agent: header\n" msgstr "" -#: src/lang.c:2058 +#: src/lang.c:2051 msgid "Enter charset name for MIME (e.g. US-ASCII, ISO-8859-1, EUC-KR), to set." msgstr "" -#: src/lang.c:2059 +#: src/lang.c:2052 msgid "MM_CHARSET :" msgstr "" -#: src/lang.c:2060 +#: src/lang.c:2053 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" @@ -5143,27 +5132,27 @@ msgid "# Charset supported locally which "# mm_charset is considered not displayable and represented as '?'.\n" msgstr "" -#: src/lang.c:2071 +#: src/lang.c:2064 msgid "MM_NETWORK_CHARSET :" msgstr "" -#: src/lang.c:2072 +#: src/lang.c:2065 msgid "# Charset used for MIME (Content-Type) header in postings.\n" msgstr "" -#: src/lang.c:2078 +#: src/lang.c:2071 msgid "Mailbox format :" msgstr "" -#: src/lang.c:2079 +#: src/lang.c:2072 msgid "# Format of the mailbox.\n" msgstr "" -#: src/lang.c:2084 +#: src/lang.c:2077 msgid "MIME encoding in news messages :" msgstr "" -#: src/lang.c:2085 +#: src/lang.c:2078 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" @@ -5171,42 +5160,42 @@ msgid "# MIME encoding (8bit, base64, qu "# Russian charsets with a lot of 8bit characters.\n" msgstr "" -#: src/lang.c:2093 src/lang.c:2114 +#: src/lang.c:2086 src/lang.c:2107 msgid "Don't change unless you know what you are doing. cancels." msgstr "" -#: src/lang.c:2094 +#: src/lang.c:2087 msgid "Use 8bit characters in news headers:" msgstr "" -#: src/lang.c:2095 +#: src/lang.c:2088 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:2102 +#: src/lang.c:2095 msgid "Auto-view post-processed files toggles, sets, cancels." msgstr "" -#: src/lang.c:2103 +#: src/lang.c:2096 msgid "View post-processed files :" msgstr "" -#: src/lang.c:2104 +#: src/lang.c:2097 msgid "# If set, post processed files will be opened in a viewer\n" msgstr "" -#: src/lang.c:2109 +#: src/lang.c:2102 msgid "MIME encoding in mail messages :" msgstr "" -#: src/lang.c:2115 +#: src/lang.c:2108 msgid "Use 8bit characters in mail headers:" msgstr "" -#: src/lang.c:2116 +#: src/lang.c:2109 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 " @@ -5216,641 +5205,433 @@ msgid "# If ON, 8bit characters in mail "# turn it ON unless you have some compelling reason.\n" msgstr "" -#: src/lang.c:2126 +#: src/lang.c:2119 msgid "Strip blanks from ends of lines :" msgstr "" -#: src/lang.c:2127 +#: src/lang.c:2120 msgid "# If ON strip blanks from ends of lines for faster display on slow " "terminals.\n" msgstr "" -#: src/lang.c:2132 +#: src/lang.c:2125 msgid "If ON, use transliteration. toggles & sets." msgstr "" -#: src/lang.c:2133 +#: src/lang.c:2126 msgid "Transliteration :" msgstr "" -#: src/lang.c:2134 +#: src/lang.c:2127 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:2141 +#: src/lang.c:2134 msgid "Send you a carbon copy automatically. toggles & sets." msgstr "" -#: src/lang.c:2142 +#: src/lang.c:2135 msgid "Send you a cc automatically :" msgstr "" -#: src/lang.c:2143 +#: src/lang.c:2136 msgid "# If ON automatically put your name in the Cc: field when mailing an article\n" msgstr "" -#: src/lang.c:2147 +#: src/lang.c:2140 msgid "Send you a blind carbon copy automatically. toggles & sets." msgstr "" -#: src/lang.c:2148 +#: src/lang.c:2141 msgid "Send you a blind cc automatically :" msgstr "" -#: src/lang.c:2149 +#: src/lang.c:2142 msgid "# If ON automatically put your name in the Bcc: field when mailing an " "article\n" msgstr "" -#: src/lang.c:2153 +#: src/lang.c:2146 msgid "Enter address elements about which you want to be warned. sets." msgstr "" -#: src/lang.c:2154 +#: src/lang.c:2147 msgid "Spamtrap warning address parts :" msgstr "" -#: src/lang.c:2155 +#: src/lang.c:2148 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:2160 +#: src/lang.c:2153 msgid "Enter default number of days a filter entry will be valid. sets." msgstr "" -#: src/lang.c:2161 +#: src/lang.c:2154 msgid "No. of days a filter entry is valid:" msgstr "" -#: src/lang.c:2162 +#: src/lang.c:2155 msgid "# Number of days a short term filter will be active\n" msgstr "" -#: src/lang.c:2166 +#: src/lang.c:2159 msgid "Add posted articles to filter. toggles & sets." msgstr "" -#: src/lang.c:2167 +#: src/lang.c:2160 msgid "Add posted articles to filter :" msgstr "" -#: src/lang.c:2168 +#: src/lang.c:2161 msgid "# If ON add posted articles which start a new thread to filter for\n" "# highlighting follow-ups\n" msgstr "" -#: src/lang.c:2172 +#: src/lang.c:2165 msgid "The directory where articles/threads are to be saved in mailbox format." msgstr "" -#: src/lang.c:2173 +#: src/lang.c:2166 msgid "Mail directory :" msgstr "" -#: src/lang.c:2174 +#: src/lang.c:2167 msgid "# (-m) directory where articles/threads are saved in mailbox format\n" msgstr "" -#: src/lang.c:2179 +#: src/lang.c:2172 msgid "Save articles in batch mode (-S) :" msgstr "" -#: src/lang.c:2180 +#: src/lang.c:2173 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:2185 +#: src/lang.c:2178 msgid "The directory where you want articles/threads saved." msgstr "" -#: src/lang.c:2186 +#: src/lang.c:2179 msgid "Directory to save arts/threads in :" msgstr "" -#: src/lang.c:2187 +#: src/lang.c:2180 msgid "# Directory where articles/threads are saved\n" msgstr "" -#: src/lang.c:2191 +#: src/lang.c:2184 msgid "Auto save article/thread by Archive-name: header. toggles & sets." msgstr "" -#: src/lang.c:2192 +#: src/lang.c:2185 msgid "Use Archive-name: header for save :" msgstr "" -#: src/lang.c:2193 +#: src/lang.c:2186 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:2198 +#: src/lang.c:2191 msgid "Mark saved articles/threads as read. toggles, sets, " "cancels." msgstr "" -#: src/lang.c:2199 +#: src/lang.c:2192 msgid "Mark saved articles/threads as read:" msgstr "" -#: src/lang.c:2200 +#: src/lang.c:2193 msgid "# If ON mark articles that are saved as read\n" msgstr "" -#: src/lang.c:2204 +#: src/lang.c:2197 msgid "Do post processing (eg. extract attachments) for saved articles." msgstr "" -#: src/lang.c:2205 +#: src/lang.c:2198 msgid "Post process saved articles :" msgstr "" -#: src/lang.c:2206 +#: src/lang.c:2199 msgid "# Perform post processing (saving binary attachments) from saved articles.\n" "# 0=(no) 1=(yes) 2=(extract shell archives (shar) only)\n" msgstr "" -#: src/lang.c:2212 +#: src/lang.c:2205 msgid "Process only unread articles :" msgstr "" -#: src/lang.c:2213 +#: src/lang.c:2206 msgid "# If ON only save/print/pipe/mail unread articles (tagged articles excepted)\n" msgstr "" -#: src/lang.c:2218 +#: src/lang.c:2211 msgid "Print all or just part of header. toggles & sets." msgstr "" -#: src/lang.c:2219 +#: src/lang.c:2212 msgid "Print all headers when printing :" msgstr "" -#: src/lang.c:2220 +#: src/lang.c:2213 msgid "# If ON print all of article header otherwise just the important lines\n" msgstr "" -#: src/lang.c:2224 +#: src/lang.c:2217 msgid "The printer program with options that is to be used to print articles/threads." msgstr "" -#: src/lang.c:2225 +#: src/lang.c:2218 msgid "Printer program with options :" msgstr "" -#: src/lang.c:2226 +#: src/lang.c:2219 msgid "# Print program with parameters used to print articles/threads\n" msgstr "" -#: src/lang.c:2232 +#: src/lang.c:2225 msgid "Force redraw after certain commands:" msgstr "" -#: src/lang.c:2233 +#: src/lang.c:2226 msgid "# If ON a screen redraw will always be done after certain external commands\n" msgstr "" -#: src/lang.c:2237 +#: src/lang.c:2230 msgid "Start editor with line offset. toggles, sets, cancels." msgstr "" -#: src/lang.c:2238 +#: src/lang.c:2231 msgid "Start editor with line offset :" msgstr "" -#: src/lang.c:2239 +#: src/lang.c:2232 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:2244 +#: src/lang.c:2237 msgid "Enter %E for editor, %F for filename, %N for line-number, to set." msgstr "" -#: src/lang.c:2245 +#: src/lang.c:2238 msgid "Invocation of your editor :" msgstr "" -#: src/lang.c:2246 +#: src/lang.c:2239 msgid "# Format of editor line including parameters\n" "# %%E Editor %%F Filename %%N Linenumber\n" msgstr "" -#: src/lang.c:2251 +#: src/lang.c:2244 msgid "Enter name and options for external-inews, --internal for internal inews" msgstr "" -#: src/lang.c:2252 +#: src/lang.c:2245 msgid "External inews :" msgstr "" -#: src/lang.c:2253 +#: src/lang.c:2246 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:2257 +#: src/lang.c:2250 msgid "Enter %M for mailer, %S for subject, %T for to, %F for filename, to set." msgstr "" -#: src/lang.c:2258 +#: src/lang.c:2251 msgid "Invocation of your mail command :" msgstr "" -#: src/lang.c:2259 +#: src/lang.c:2252 msgid "# Format of mailer line including parameters\n" - "# %%M Mailer %%S Subject %%T To %%F Filename %%U User (AmigaDOS)\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:2267 +#: src/lang.c:2260 msgid "Use interactive mail reader :" msgstr "" -#: src/lang.c:2268 +#: src/lang.c:2261 msgid "# Interactive mailreader:\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:2276 +#: src/lang.c:2269 msgid "Remove ~/.article after posting :" msgstr "" -#: src/lang.c:2277 +#: src/lang.c:2270 msgid "# If ON remove ~/.article after posting.\n" msgstr "" -#: src/lang.c:2281 +#: src/lang.c:2274 msgid "Filename for all posted articles, sets, no filename=do not save." msgstr "" -#: src/lang.c:2282 +#: src/lang.c:2275 msgid "Filename for posted articles :" msgstr "" -#: src/lang.c:2283 +#: src/lang.c:2276 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:2288 +#: src/lang.c:2281 msgid "Keep all failed articles in ~/dead.articles. toggles & sets." msgstr "" -#: src/lang.c:2289 +#: src/lang.c:2282 msgid "Keep failed arts in ~/dead.articles:" msgstr "" -#: src/lang.c:2290 +#: src/lang.c:2283 msgid "# If ON keep all failed postings in ~/dead.articles\n" msgstr "" -#: src/lang.c:2294 +#: src/lang.c:2287 msgid "Do you want to strip unsubscribed groups from .newsrc" msgstr "" -#: src/lang.c:2295 +#: src/lang.c:2288 msgid "No unsubscribed groups in newsrc :" msgstr "" -#: src/lang.c:2296 +#: src/lang.c:2289 msgid "# If ON strip unsubscribed groups from newsrc\n" msgstr "" -#: src/lang.c:2301 +#: src/lang.c:2294 msgid "Remove bogus groups from newsrc :" msgstr "" -#: src/lang.c:2302 +#: src/lang.c:2295 msgid "# What to do with bogus groups in newsrc file\n" "# 0=(Keep) 1=(Remove) 2=(Highlight with D on selection screen).\n" msgstr "" -#: src/lang.c:2306 +#: src/lang.c:2299 msgid "Enter number of seconds until active file will be reread. sets." msgstr "" -#: src/lang.c:2307 +#: src/lang.c:2300 msgid "Interval in secs to reread active :" msgstr "" -#: src/lang.c:2308 +#: src/lang.c:2301 msgid "# Time interval in seconds between rereading the active file (0=never)\n" msgstr "" -#: src/lang.c:2313 +#: src/lang.c:2306 msgid "Reconnect to server automatically :" msgstr "" -#: src/lang.c:2314 +#: src/lang.c:2307 msgid "# If ON automatically reconnect to NNTP server if the connection is broken\n" msgstr "" -#: src/lang.c:2318 +#: src/lang.c:2311 msgid "Create local copies of NNTP overview files. toggles & sets." msgstr "" -#: src/lang.c:2319 +#: src/lang.c:2312 msgid "Cache NNTP overview files locally :" msgstr "" -#: src/lang.c:2320 +#: src/lang.c:2313 msgid "# If ON, create local copies of NNTP overview files.\n" msgstr "" -#: src/main.c:619 +#: src/lang.c:2317 +msgid "Enter format string. sets, cancels." +msgstr "" + +#: src/lang.c:2318 +msgid "Format string for display of dates :" +msgstr "" + +#: src/lang.c:2319 +msgid "# Format string for date representation\n" +msgstr "" + +#: src/main.c:590 #, c-format msgid "Version: %s release %s (\"%s\") %s %s" msgstr "" -#: src/main.c:622 +#: src/main.c:593 #, c-format msgid "Version: %s release %s (\"%s\")" msgstr "" -#: src/nntplib.c:804 +#: src/newsrc.c:432 +msgid "Unreachable?\n" +msgstr "" + +#: src/nntplib.c:821 #, c-format msgid "\n" "Server timed out, trying reconnect # %d\n" msgstr "" -#: src/nntplib.c:822 +#: src/nntplib.c:839 msgid "Rejoin current group\n" msgstr "" -#: src/nntplib.c:829 +#: src/nntplib.c:846 #, c-format msgid "Read (%s)\n" msgstr "" -#: src/nntplib.c:831 +#: src/nntplib.c:848 #, c-format msgid "Resend last command (%s)\n" msgstr "" -#: src/nntplib.c:951 -msgid "100 Help text on way" -msgstr "" - -#: src/nntplib.c:955 -msgid "180 Authorization capabilities" -msgstr "180 Authorisation capabilities" - -#: src/nntplib.c:959 -msgid "199 Debug output" -msgstr "" - -#: src/nntplib.c:963 -msgid "200 Hello; you can post" -msgstr "" - -#: src/nntplib.c:967 -msgid "201 Hello; you can't post" -msgstr "" - -#: src/nntplib.c:971 -msgid "202 Slave status noted" -msgstr "" - -#: src/nntplib.c:979 -msgid "211 Group selected" -msgstr "" - -#: src/nntplib.c:984 -msgid "215 Newsgroups follow" -msgstr "" - -#: src/nntplib.c:989 -msgid "218 Group index file follows" -msgstr "" - -#: src/nntplib.c:994 -msgid "220 Article (head & body) follows" -msgstr "" - -#: src/nntplib.c:998 -msgid "221 Head follows" -msgstr "" - -#: src/nntplib.c:1002 -msgid "222 Body follows" -msgstr "" - -#: src/nntplib.c:1006 -msgid "223 No text sent -- stat, next, last" -msgstr "" - -#: src/nntplib.c:1010 -msgid "230 New articles by message-id follow" -msgstr "" - -#: src/nntplib.c:1014 -msgid "231 New newsgroups follow" -msgstr "" - -#: src/nntplib.c:1018 -msgid "235 Article transferred successfully" -msgstr "" - -#: src/nntplib.c:1022 -msgid "240 Article posted successfully" -msgstr "" - -#: src/nntplib.c:1026 -msgid "280 Authorization system ok" -msgstr "280 Authorisation system ok" - -#: src/nntplib.c:1030 -msgid "281 Authorization (user/pass) ok" -msgstr "281 Authorisation (user/pass) ok" - -#: src/nntplib.c:1034 -msgid "282 binary data follows" -msgstr "" - -#: src/nntplib.c:1038 -msgid "283 spooldir list follows" -msgstr "" - -#: src/nntplib.c:1042 -msgid "284 Switching to a different spooldir" -msgstr "" - -#: src/nntplib.c:1046 -msgid "285 Still using same spooldir" -msgstr "" - -#: src/nntplib.c:1050 -msgid "286 Current spooldir" -msgstr "" - -#: src/nntplib.c:1054 -msgid "287 Available spooldir" -msgstr "" - -#: src/nntplib.c:1058 -msgid "288 Unavailable spooldir or invalid entry" -msgstr "" - -#: src/nntplib.c:1062 -msgid "335 Continue to send article" -msgstr "" - -#: src/nntplib.c:1066 -msgid "340 Continue to post article" -msgstr "" - -#: src/nntplib.c:1070 -msgid "380 authorization is required" -msgstr "380 authorisation is required" - -#: src/nntplib.c:1074 -msgid "381 authorization data required" -msgstr "381 authorisation data required" - -#: src/nntplib.c:1078 -msgid "400 Have to hang up for some reason" -msgstr "" - -#: src/nntplib.c:1082 -msgid "411 No such newsgroup" -msgstr "" - -#: src/nntplib.c:1086 -msgid "412 Not currently in newsgroup" -msgstr "" - -#: src/nntplib.c:1090 -msgid "418 No index file for this group" -msgstr "" - -#: src/nntplib.c:1094 -msgid "420 No current article selected" -msgstr "" - -#: src/nntplib.c:1098 -msgid "421 No next article in this group" -msgstr "" - -#: src/nntplib.c:1102 -msgid "422 No previous article in this group" -msgstr "" - -#: src/nntplib.c:1106 -msgid "423 No such article in this group" -msgstr "" - -#: src/nntplib.c:1110 -msgid "430 No such article at all" -msgstr "" - -#: src/nntplib.c:1114 -msgid "435 Already got that article, don't send" -msgstr "" - -#: src/nntplib.c:1118 -msgid "436 Transfer failed" -msgstr "" - -#: src/nntplib.c:1122 -msgid "437 Article rejected, don't resend" -msgstr "" - -#: src/nntplib.c:1126 -msgid "440 Posting not allowed" -msgstr "" - -#: src/nntplib.c:1130 -msgid "441 Posting failed" -msgstr "" - -#: src/nntplib.c:1134 -msgid "480 authorization required for command" -msgstr "480 authorisation required for command" - -#: src/nntplib.c:1138 -msgid "481 Authorization system invalid" -msgstr "481 Authorisation system invalid" - -#: src/nntplib.c:1142 -msgid "482 Authorization data rejected" -msgstr "482 Authorisation data rejected" - -#: src/nntplib.c:1146 -msgid "483 Invalid alias on spooldir cmd" -msgstr "" - -#: src/nntplib.c:1150 -msgid "484 No spooldir file found" -msgstr "" - -#: src/nntplib.c:1154 -msgid "500 Command not recognized" -msgstr "500 Command not recognised" - -#: src/nntplib.c:1158 -msgid "501 Command syntax error" -msgstr "" - -#: src/nntplib.c:1162 -msgid "502 Access to server denied" -msgstr "" - -#: src/nntplib.c:1167 -msgid "503 Program fault, command not performed" -msgstr "" - -#: src/nntplib.c:1171 -msgid "580 Authorization Failed" -msgstr "580 Authorisation Failed" - -#: src/nntplib.c:1175 -msgid "Unknown NNTP response code" -msgstr "" - #: src/nrctbl.c:172 #, c-format msgid "couldn't expand %s\n" msgstr "" -#: src/open.c:1123 -msgid "Unreachable?\n" -msgstr "" - -#: src/post.c:1749 +#: src/post.c:1747 #, c-format msgid "%s is bogus" msgstr "" -#: src/post.c:1936 +#: src/post.c:1934 #, c-format msgid "Posting: %.*s ..." msgstr "" #. TODO: -> lang.c -#: src/post.c:4034 +#: src/post.c:4037 #, c-format msgid "Rereading %s..." msgstr "" #. fp #. Check if okay to read -#: src/read.c:219 +#: src/read.c:214 msgid "Aborting read, please wait..." msgstr "" -#: src/read.c:366 +#: src/read.c:361 msgid "Aborted read\n" msgstr "" -#: src/read.c:422 +#: src/read.c:417 msgid "Draining\n" msgstr "" Binary files tin-1.7.1/po/et.gmo and tin-1.7.2/po/et.gmo differ diff -Nurp tin-1.7.1/po/et.po tin-1.7.2/po/et.po --- tin-1.7.1/po/et.po Thu Sep 18 18:32:21 2003 +++ tin-1.7.2/po/et.po Sun Oct 19 00:57:51 2003 @@ -3,8 +3,8 @@ # Toomas Soome , 2003. # msgid "" -msgstr "Project-Id-Version: tin 1.7.0\n" - "POT-Creation-Date: 2003-09-18 18:31+0200\n" +msgstr "Project-Id-Version: tin 1.7.1\n" + "POT-Creation-Date: 2003-10-19 00:55+0200\n" "PO-Revision-Date: 2003-07-15 11:07+0300\n" "Last-Translator: Toomas Soome \n" "Language-Team: Estonian \n" @@ -12,227 +12,232 @@ msgstr "Project-Id-Version: tin 1.7.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" -#: src/art.c:1228 +# TRANSLATION MISSING +#: src/art.c:1423 #, c-format msgid "%d Bad overview record (%d fields) '%s'" msgstr "" -#: src/attrib.c:574 +#: src/attrib.c:580 msgid "# Do not edit this comment block\n" "#\n" msgstr "# Ärge seda kommentaari blokki muutke\n" "#\n" -#: src/attrib.c:575 +#: src/attrib.c:581 msgid "# scope=STRING (ie. alt.*,!alt.bin*) [mandatory]\n" msgstr "# scope=SÕNE (n. alt.*,!alt.bin*) [kohustuslik]\n" -#: src/attrib.c:576 +#: src/attrib.c:582 msgid "# maildir=STRING (ie. ~/Mail)\n" msgstr "# maildir=SÕNE (n. ~/Mail)\n" -#: src/attrib.c:577 +#: src/attrib.c:583 msgid "# savedir=STRING (ie. ~user/News)\n" msgstr "# savedir=SÕNE (n. ~user/News)\n" -#: src/attrib.c:578 +#: src/attrib.c:584 msgid "# savefile=STRING (ie. =linux)\n" msgstr "# savefile=SÕNE (n. =linux)\n" -#: src/attrib.c:579 +#: src/attrib.c:585 msgid "# sigfile=STRING (ie. $var/sig)\n" msgstr "# sigfile=SÕNE (n. $var/sig)\n" -#: src/attrib.c:580 +#: src/attrib.c:586 msgid "# organization=STRING (if beginning with '/' read from file)\n" msgstr "# organization=SÕNE (kui algab sümboliga '/', loe failist)\n" -#: src/attrib.c:581 +#: src/attrib.c:587 msgid "# followup_to=STRING\n" msgstr "# followup_to=SÕNE\n" -#: src/attrib.c:582 +#: src/attrib.c:588 msgid "# mailing_list=STRING (ie. majordomo@example.org)\n" msgstr "# mailing_list=SÕNE (n. majordomo@example.org)\n" -#: src/attrib.c:583 +#: src/attrib.c:589 msgid "# x_headers=STRING (ie. ~/.tin/extra-headers)\n" msgstr "# x_headers=SÕNE (n. ~/.tin/extra-headers)\n" -#: src/attrib.c:584 +#: src/attrib.c:590 msgid "# x_body=STRING (ie. ~/.tin/extra-body-text)\n" msgstr "# x_body=SÕNE (n. ~/.tin/extra-body-text)\n" -#: src/attrib.c:585 +#: src/attrib.c:591 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:586 +#: src/attrib.c:592 msgid "# news_quote_format=STRING\n" msgstr "# news_quote_format=SÕNE\n" -#: src/attrib.c:587 +#: src/attrib.c:593 msgid "# quote_chars=STRING (%%s, %%S for initials)\n" msgstr "# quote_chars=SÕNE (%%s, %%S annavad initsiaalid)\n" -#: src/attrib.c:588 +#: src/attrib.c:594 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:590 +#: src/attrib.c:596 msgid "# ispell=STRING\n" msgstr "# ispell=SÕNE\n" -#: src/attrib.c:592 +#: src/attrib.c:598 msgid "# auto_select=ON/OFF\n" msgstr "# auto_select=ON/OFF\n" -#: src/attrib.c:593 +#: src/attrib.c:599 msgid "# auto_save=ON/OFF\n" msgstr "# auto_save=ON/OFF\n" -#: src/attrib.c:594 +#: src/attrib.c:600 msgid "# batch_save=ON/OFF\n" msgstr "# batch_save=ON/OFF\n" -#: src/attrib.c:595 +#: src/attrib.c:601 msgid "# delete_tmp_files=ON/OFF\n" msgstr "# delete_tmp_files=ON/OFF\n" -#: src/attrib.c:596 +#: src/attrib.c:602 msgid "# show_only_unread=ON/OFF\n" msgstr "# show_only_unread=ON/OFF\n" -#: src/attrib.c:597 +#: src/attrib.c:603 msgid "# thread_arts=NUM" msgstr "# thread_arts=NUM" -#: src/attrib.c:604 +#: src/attrib.c:610 msgid "# show_author=NUM\n" msgstr "# show_author=NUM\n" -#: src/attrib.c:610 +#: src/attrib.c:616 msgid "# sort_art_type=NUM\n" msgstr "# sort_art_type=NUM\n" -#: src/attrib.c:628 +#: src/attrib.c:634 msgid "# sort_threads_type=NUM\n" msgstr "# sort_threads_type=NUM\n" -#: src/attrib.c:633 +#: src/attrib.c:639 msgid "# post_proc_type=NUM\n" msgstr "# post_proc_type=NUM\n" -#: src/attrib.c:638 +#: src/attrib.c:644 msgid "# quick_kill_scope=STRING (ie. talk.*)\n" msgstr "# quick_kill_scope=SÕNE (n. talk.*)\n" -#: src/attrib.c:639 +#: src/attrib.c:645 msgid "# quick_kill_expire=ON/OFF\n" msgstr "# quick_kill_expire=ON/OFF\n" -#: src/attrib.c:640 +#: src/attrib.c:646 msgid "# quick_kill_case=ON/OFF\n" msgstr "# quick_kill_case=ON/OFF\n" -#: src/attrib.c:641 +#: src/attrib.c:647 msgid "# quick_kill_header=NUM\n" msgstr "# quick_kill_header=NUM\n" -#: src/attrib.c:642 src/attrib.c:649 +#: src/attrib.c:648 src/attrib.c:655 msgid "# 0=subj (case sensitive) 1=subj (ignore case)\n" msgstr "# 0=teema (tõstutundlik) 1=teema (tõstutundetu)\n" -#: src/attrib.c:643 src/attrib.c:650 +#: src/attrib.c:649 src/attrib.c:656 msgid "# 2=from (case sensitive) 3=from (ignore case)\n" msgstr "# 2=saatja (tõstutundlik) 3=saatja (tõstutundetu)\n" -#: src/attrib.c:644 src/attrib.c:651 +#: src/attrib.c:650 src/attrib.c:657 msgid "# 4=msgid 5=lines\n" msgstr "# 4=msgid 5=read\n" -#: src/attrib.c:645 +#: src/attrib.c:651 msgid "# quick_select_scope=STRING\n" msgstr "# quick_select_scope=SÕNE\n" -#: src/attrib.c:646 +#: src/attrib.c:652 msgid "# quick_select_expire=ON/OFF\n" msgstr "# quick_select_expire=ON/OFF\n" -#: src/attrib.c:647 +#: src/attrib.c:653 msgid "# quick_select_case=ON/OFF\n" msgstr "# quick_select_case=ON/OFF\n" -#: src/attrib.c:648 +#: src/attrib.c:654 msgid "# quick_select_header=NUM\n" msgstr "# quick_select_header=NUM\n" -#: src/attrib.c:652 +#: src/attrib.c:658 msgid "# x_comment_to=ON/OFF\n" msgstr "# x_comment_to=ON/OFF\n" +# TRANSLATION MISSING +#: src/attrib.c:659 +msgid "# fcc=STRING (eg. =mailbox)\n" +msgstr "" + # -#: src/attrib.c:653 +#: src/attrib.c:660 msgid "# tex2iso_conv=ON/OFF\n" msgstr "# tex2iso_conv=ON/OFF\n" -#: src/attrib.c:655 +#: src/attrib.c:662 msgid "# mm_network_charset=supported_charset" msgstr "# mm_network_charset=toetatud_koodileht" -#: src/attrib.c:662 +#: src/attrib.c:669 msgid "# undeclared_charset=STRING (default is US-ASCII)\n" msgstr "# undeclared_charset=SÕNE (vaikimisi on US-ASCII)\n" -#: src/attrib.c:664 +#: src/attrib.c:671 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:665 +#: src/attrib.c:672 msgid "# entries first followed by group specific entries.\n" "#\n" msgstr "# ning seejärel konkreetsemad, grupi spetsiifilised, reeglid.\n" "#\n" -#: src/attrib.c:666 +#: src/attrib.c:673 msgid "############################################################################\n" "\n" msgstr "############################################################################\n" "\n" -#: src/attrib.c:672 +#: src/attrib.c:679 msgid "# include extra headers\n" msgstr "# lisa täiendavaid päiseid\n" -#: src/attrib.c:680 +#: src/attrib.c:687 msgid "# in *sources* set post process type to shar only\n" msgstr "# *tekstidel* sea järeltöötlemise tüübiks ainult shar\n" -#: src/attrib.c:684 +#: src/attrib.c:691 msgid "# in *binaries* do full post processing, remove tmp files\n" msgstr "# *binaarfailidel* sea täielik järeltöötlemine, kustuta ajutised failid\n" -#: src/attrib.c:685 +#: src/attrib.c:692 msgid "# and set Followup-To: poster\n" msgstr "# ja sea Followup-To: postitaja\n" -#: src/cook.c:799 +#: src/cook.c:809 msgid "(unknown)" msgstr "(tundmatu)" #. #. * TODO: add to the right rule, give better explanation, -> lang.c #. -#: src/filter.c:604 src/filter.c:612 +#: src/filter.c:607 src/filter.c:615 msgid "Removed from the previous rule: " msgstr "Eelmisest reeglist eemaldatud: " #: src/lang.c:42 -#, c-format -msgid "1 Response%s" -msgstr "1 Vastus%s" +msgid "1 Response" +msgstr "1 Vastus" #: src/lang.c:46 #, c-format @@ -578,7 +583,7 @@ msgstr "Loon salvestatud gruppidele acti msgid "Creating newsrc file...\n" msgstr "Loon newsrc faili...\n" -#: src/lang.c:127 src/lang.c:1129 +#: src/lang.c:127 src/lang.c:1122 msgid "Default" msgstr "Vaikimisi" @@ -884,7 +889,7 @@ msgstr "\n" msgid "Insecure permissions of %s (%o)" msgstr "Ebaturvalised õigused failil %s (%o)" -#: src/lang.c:199 src/open.c:1100 +#: src/lang.c:199 src/newsrc.c:409 #, c-format msgid "Invalid response to GROUP command, %s" msgstr "Vigane vastus GROUP käsule, %s" @@ -1483,10 +1488,9 @@ msgstr "artiklite loend jooksvas teemas msgid "mark article as unread" msgstr "märgi artikkel loetuks" -# TRANSLATION MISSING #: src/lang.c:353 msgid "mark current thread or tagged threads as read" -msgstr "" +msgstr "märgi jooksev teema või märgitud teemad loetuks" #: src/lang.c:354 msgid "mark thread as unread" @@ -1600,7 +1604,7 @@ msgstr "liiguta valitud gruppi loendis" msgid "choose next group with unread news" msgstr "vali järgmine lugemata artiklitega grupp" -#: src/lang.c:387 src/lang.c:1176 +#: src/lang.c:387 src/lang.c:1169 msgid "quit" msgstr "välju" @@ -1684,10 +1688,9 @@ msgstr "vali loendis esimene artikkel" msgid "choose last article in list" msgstr "vali loendis viimane artikkel" -# TRANSLATION MISSING #: src/lang.c:408 msgid "mark article or tagged articles as read and move cursor to next unread article" -msgstr "" +msgstr "märgi artikkel või märgitud artiklid loetuks, liigu järgm. lugemata artiklile" #: src/lang.c:411 msgid "Display properties\n" @@ -2192,74 +2195,69 @@ msgid "No previous unread article" msgstr "Eelmist lugemata artiklit pole" #: src/lang.c:535 -#, c-format -msgid "No responses%s" -msgstr "Vastuseid pole%s" - -#: src/lang.c:536 msgid "No responses" msgstr "Vastuseid pole" -#: src/lang.c:537 +#: src/lang.c:536 msgid "No responses to list in current thread" msgstr "Jooksvas teemas pole vastuseid" -#: src/lang.c:538 +#: src/lang.c:537 msgid "No search string" msgstr "Otsingusõne puudub" -#: src/lang.c:539 +#: src/lang.c:538 msgid "No subject" msgstr "Teema puudub" -#: src/lang.c:540 +#: src/lang.c:539 #, 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:541 +#: src/lang.c:540 #, 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:542 +#: src/lang.c:541 #, c-format msgid "%s: Terminal must have clearscreen (cl) capability\n" msgstr "%s: Terminalil peab olema ekraanipuhastamise (cl) omadus\n" -#: src/lang.c:543 +#: src/lang.c:542 #, c-format msgid "%s: Terminal must have cursor motion (cm)\n" msgstr "%s: Terminal peab toetama kursori liigutamist (cm)\n" -#: src/lang.c:544 +#: src/lang.c:543 #, 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:545 +#: src/lang.c:544 #, c-format msgid "No viewer found for %s/%s\n" msgstr "%s/%s jaoks puudub vaatur\n" -#: src/lang.c:546 +#: src/lang.c:545 msgid "Newsgroup does not exist on this server" msgstr "Gruppi pole sellel serveril" -#: src/lang.c:547 +#: src/lang.c:546 #, c-format msgid "Group %s not found in active file" msgstr "Gruppi %s pole aktiivsete gruppide failis" -#: src/lang.c:548 +#: src/lang.c:547 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:549 +#: src/lang.c:548 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:550 +#: src/lang.c:549 #, c-format msgid "# NNTP-server -> newsrc translation table and NNTP-server\n" "# shortname list for %s %s\n" @@ -2286,40 +2284,40 @@ msgstr "# NNTP-server -> newsrc teisendu "# news.ka.nu /tmp/nrc-nu kanu nu\n" "#\n" -#: src/lang.c:557 +#: src/lang.c:556 msgid "Only" msgstr "Ainult" -#: src/lang.c:558 +#: src/lang.c:557 #, c-format msgid "Option not enabled. Recompile with %s." msgstr "Võti pole lubatud. Kasutage kompileerimisel %s." -#: src/lang.c:559 +#: src/lang.c:558 msgid "Options Menu" msgstr "Omaduste menüü" -#: src/lang.c:562 +#: src/lang.c:561 #, c-format msgid "Error in regex: %s at pos. %d '%s'" msgstr "Viga regulaaravaldises: %s positsioonil %d '%s'" -#: src/lang.c:563 +#: src/lang.c:562 #, c-format msgid "Error in regex: pcre internal error %d" msgstr "Viga regulaaravaldises: pcre sisemine viga %d" -#: src/lang.c:564 +#: src/lang.c:563 #, c-format msgid "Error in regex: study - pcre internal error %s" msgstr "Viga regulaaravaldises: uurimiseks - pcre sisemine viga %s" -#: src/lang.c:565 +#: src/lang.c:564 msgid "Post a followup..." msgstr "Postita vastus..." #. TODO: replace hardcoded key-name in txt_post_error_ask_postpone -#: src/lang.c:567 +#: src/lang.c:566 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" @@ -2327,269 +2325,269 @@ msgstr "Artikli postitamisel tekkis viga "või muul viisil kõrvaldatav, võite artikli salvestada hiljem postitamiseks\n" "ja ^O käsuga hiljem postitada.\n" -#: src/lang.c:570 +#: src/lang.c:569 msgid "Posted articles history" msgstr "Postitatud artiklite ajalugu" -#: src/lang.c:571 +#: src/lang.c:570 #, c-format msgid "Post to newsgroup(s) [%s]> " msgstr "Postita gruppidesse [%s]> " -#: src/lang.c:572 +#: src/lang.c:571 msgid "-- post processing started --" msgstr "-- lõpptöötlus alustas --" -#: src/lang.c:573 +#: src/lang.c:572 msgid "-- post processing completed --" msgstr "-- lõpptöötlus lõpetas --" -#: src/lang.c:574 +#: src/lang.c:573 #, c-format msgid "Post subject [%s]> " msgstr "Postituse teema [%s]> " -#: src/lang.c:575 +#: src/lang.c:574 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:576 +#: src/lang.c:575 msgid "Posting article..." msgstr "Postitan artiklit..." -#: src/lang.c:577 +#: src/lang.c:576 msgid "Post postponed articles [%%.*s]? (%s/%s/%s/%s/%s): " msgstr "Postitan ootel artiklid [%%.*s]? (%s/%s/%s/%s/%s): " -#: src/lang.c:578 +#: src/lang.c:577 #, c-format msgid "Hot %s" msgstr "Kuum %s" -#: src/lang.c:579 +#: src/lang.c:578 #, c-format msgid "Tagged %s" msgstr "Märgitud %s" -#: src/lang.c:580 +#: src/lang.c:579 #, c-format msgid "Untagged %s" msgstr "Märkimata %s" -#: src/lang.c:581 +#: src/lang.c:580 msgid "Processing mail messages marked for deletion." msgstr "Töötlen kirju, mis on kustutamiseks märgitud." -#: src/lang.c:582 +#: src/lang.c:581 msgid "Processing saved articles marked for deletion." msgstr "Töötlen salvestatud ja kustutamiseks märgitud artikleid." -#: src/lang.c:583 +#: src/lang.c:582 #, 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:584 +#: src/lang.c:583 msgid "Article unchanged, abort mailing?" msgstr "Artiklit ei ole muudetud, katkestan saatmise?" -#: src/lang.c:585 +#: src/lang.c:584 #, c-format msgid "Do you want to see postponed articles (%d)?" msgstr "Kas soovite näha postitamisootel artikleid (%d)?" -#: src/lang.c:587 +#: src/lang.c:586 msgid "Add quick kill filter?" msgstr "Lisan kiirsurmamise filtri?" -#: src/lang.c:588 +#: src/lang.c:587 msgid "Add quick selection filter?" msgstr "Lisan kiirvaliku filtri?" -#: src/lang.c:589 +#: src/lang.c:588 msgid "Do you really want to quit?" msgstr "Kas te tõesti soovite väljuda?" -#: src/lang.c:590 +#: src/lang.c:589 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:591 +#: src/lang.c:590 msgid "You have tagged articles in this group - quit anyway?" msgstr "Teil on siin grupis märgitud artikleid - väljun siiski?" -#: src/lang.c:592 +#: src/lang.c:591 #, c-format msgid "%s=quit, %s=edit, %s=postpone: " msgstr "%s=välju, %s=toimeta, %s=ootele: " -#: src/lang.c:593 +#: src/lang.c:592 #, c-format msgid "%s=quit %s=edit %s=save kill description: " msgstr "%s=välju %s=toimeta %s=salvesta surmamise kirjeldus: " -#: src/lang.c:594 +#: src/lang.c:593 #, c-format msgid "%s=quit %s=edit %s=save select description: " msgstr "%s=välju %s=toimeta %s=salvesta valiku kirjeldus: " -#: src/lang.c:595 +#: src/lang.c:594 msgid "Do you really want to quit without saving your configuration?" msgstr "Kas te tõesti soovite seadeid salvestamata väljuda?" -#: src/lang.c:598 +#: src/lang.c:597 msgid "Invalid range - valid are '0-9.$' eg. 1-$" msgstr "Vigane vahemik - lubatud on '0-9.$' näiteks 1-$" -#: src/lang.c:599 +#: src/lang.c:598 msgid "Do you want to abort this operation?" msgstr "Kas soovite seda operatsiooni katkestada?" -#: src/lang.c:600 +#: src/lang.c:599 msgid "Do you want to exit tin immediately?" msgstr "Kas soovite viivitamata tinist väljuda?" -#: src/lang.c:601 +#: src/lang.c:600 msgid "Read response> " msgstr "Loen vastust> " -#: src/lang.c:602 +#: src/lang.c:601 msgid "Reading ('q' to quit)..." msgstr "Loen ('q' katkestamiseks)..." -#: src/lang.c:603 +#: src/lang.c:602 #, c-format msgid "Reading %sarticles..." msgstr "Loen %sartikleid..." -#: src/lang.c:604 +#: src/lang.c:603 #, c-format msgid "Reading %sattributes file...\n" msgstr "Loen %satribuutide faili...\n" -#: src/lang.c:605 +#: src/lang.c:604 #, c-format msgid "Reading %sconfig file...\n" msgstr "Loen %sseadete faili...\n" -#: src/lang.c:606 +#: src/lang.c:605 msgid "Reading filter file...\n" msgstr "Loen filtrite faili...\n" -#: src/lang.c:607 +#: src/lang.c:606 #, c-format msgid "Reading %s groups..." msgstr "Loen %s gruppe..." -#: src/lang.c:608 +#: src/lang.c:607 msgid "Reading input history file...\n" msgstr "Loen sisendi ajalugu...\n" -#: src/lang.c:609 +#: src/lang.c:608 msgid "Reading keymap file...\n" msgstr "Loen klahvitabeli faili...\n" -#: src/lang.c:610 +#: src/lang.c:609 msgid "Reading groups from active file... " msgstr "Loen aktiivseid gruppe... " -#: src/lang.c:611 +#: src/lang.c:610 msgid "Reading groups from newsrc file... " msgstr "Loen gruppe newsrc failist... " -#: src/lang.c:612 +#: src/lang.c:611 msgid "Reading newsgroups file... " msgstr "Loen gruppide kirjeldusi... " -#: src/lang.c:613 +#: src/lang.c:612 msgid "Reading newsrc file..." msgstr "Loen newsrc faili..." -#: src/lang.c:614 +#: src/lang.c:613 #, c-format msgid "Bogus group %s removed." msgstr "Vigane grupp %s on eemaldatud." -#: src/lang.c:615 +#: src/lang.c:614 #, c-format msgid "Error: rename %s to %s" msgstr "Viga: %s uus nimi %s" -#: src/lang.c:616 +#: src/lang.c:615 msgid "Reply to author..." msgstr "Vastan autorile..." -#: src/lang.c:617 +#: src/lang.c:616 msgid "Repost" msgstr "Uuesti postitus" -#: src/lang.c:618 +#: src/lang.c:617 msgid "Reposting article..." msgstr "Postitan artikli uuesti..." -#: src/lang.c:619 +#: src/lang.c:618 #, c-format msgid "Repost article(s) to group(s) [%s]> " msgstr "Postitan artikli(d) gruppi(desse) [%s]> " -#: src/lang.c:620 +#: src/lang.c:619 msgid "Reset newsrc?" msgstr "Algväärtustan newsrc?" -#: src/lang.c:621 +#: src/lang.c:620 msgid "Responses have been directed to the following newsgroups" msgstr "Vastused edastatakse järgnevatesse gruppidesse" -#: src/lang.c:622 +#: src/lang.c:621 #, c-format msgid "Responses have been directed to poster. %s=mail, %s=post, %s=quit: " msgstr "Vastused edastatakse postitajale. %s=kirjuta, %s=postita, %s=välju: " -#: src/lang.c:623 +#: src/lang.c:622 #, c-format -msgid "RespNo %4d of %4d%s" -msgstr "Vastus %4d : %4d%s" +msgid "RespNo %4d of %4d" +msgstr "Vastus %4d : %4d" -#: src/lang.c:624 +#: src/lang.c:623 msgid "Press to continue..." msgstr "Jätkamiseks vajutage ..." -#: src/lang.c:626 +#: src/lang.c:625 #, c-format msgid "Select From [%-*.*s] (y/n): " msgstr "Valige From [%-*.*s] (j/e): " -#: src/lang.c:627 +#: src/lang.c:626 msgid "Select Lines: (num): " msgstr "Valige read: (num): " -#: src/lang.c:628 +#: src/lang.c:627 msgid "Auto-select Article Menu" msgstr "Automaatselt valitavate artiklite menüü" -#: src/lang.c:629 +#: src/lang.c:628 #, c-format msgid "Select Msg-Id [%-*.*s] (f/l/o/n): " msgstr "Valige Msg-Id [%-*.*s] (f/l/o/n): " -#: src/lang.c:630 +#: src/lang.c:629 msgid "Select pattern scope: " msgstr "Valige mustri ulatus: " -#: src/lang.c:631 +#: src/lang.c:630 #, c-format msgid "Select Subject [%-*.*s] (y/n): " msgstr "Valige teema [%-*.*s] (j/e): " -#: src/lang.c:632 +#: src/lang.c:631 msgid "Select text pattern : " msgstr "Valige tekstimuster : " -#: src/lang.c:633 +#: src/lang.c:632 msgid "Select time in days : " msgstr "Valige aeg päevades : " -#: src/lang.c:634 +#: src/lang.c:633 #, c-format msgid "# %s server configuration file\n" "# This file was automatically saved by %s %s %s (\"%s\")\n" @@ -2608,218 +2606,218 @@ msgstr "# %s serveri seadete fail\n" "############################################################################\n" "\n" -#: src/lang.c:640 +#: src/lang.c:639 msgid "Showing unread groups only" msgstr "Näitan ainult lugemata gruppe" -#: src/lang.c:641 +#: src/lang.c:640 msgid "Subject: line (ignore case) " msgstr "Subject: rida (tõstutundetu)" -#: src/lang.c:642 +#: src/lang.c:641 msgid "Subject: line (case sensitive)" msgstr "Subject: rida (tõstutundlik)" -#: src/lang.c:643 +#: src/lang.c:642 msgid "Save" msgstr "Salvesta" -#: src/lang.c:644 +#: src/lang.c:643 #, c-format msgid "Save '%s' (%s/%s)?" msgstr "Salvestan '%s' (%s/%s)?" -#: src/lang.c:645 +#: src/lang.c:644 msgid "Save configuration before continuing?" msgstr "Salvestan seaded enne jätkamist?" -#: src/lang.c:646 +#: src/lang.c:645 msgid "Save filename> " msgstr "Fail salvestamiseks> " -#: src/lang.c:647 +#: src/lang.c:646 msgid "Saved" msgstr "Salvestatud" -#: src/lang.c:648 +#: src/lang.c:647 #, c-format msgid "%4d unread (%4d hot) %s in %s\n" msgstr "%4d lugemata (%4d kuuma) %s grupis %s\n" -#: src/lang.c:649 +#: src/lang.c:648 #, c-format msgid "Saved %s...\n" msgstr "Salvestatud %s...\n" -#: src/lang.c:650 +#: src/lang.c:649 msgid "Nothing was saved" msgstr "Midagi ei salvestatud" -#: src/lang.c:651 +#: src/lang.c:650 #, c-format msgid "\n" "%s %d %s from %d %s\n" msgstr "\n" "%s %d %s %d grupist%s\n" -#: src/lang.c:652 +#: src/lang.c:651 #, c-format msgid "-- %s saved to %s%s --" msgstr "-- %s salvestati %s%s --" -#: src/lang.c:653 +#: src/lang.c:652 #, c-format msgid "-- %s saved to %s - %s --" msgstr "-- %s salvestati %s - %s --" -#: src/lang.c:654 +#: src/lang.c:653 msgid "Saving..." msgstr "Salvestan..." -#: src/lang.c:655 +#: src/lang.c:654 #, c-format msgid "%s: Screen initialization failed" msgstr "%s: Ekraani initsialiseerimine ebaõnnestus" -#: src/lang.c:656 +#: src/lang.c:655 #, c-format msgid "%s: screen is too small\n" msgstr "%s: ekraan on liiga väike\n" -#: src/lang.c:657 +#: src/lang.c:656 #, 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:658 +#: src/lang.c:657 #, c-format msgid "Search backwards [%s]> " msgstr "Otsin tagurpidi [%s]> " -#: src/lang.c:659 +#: src/lang.c:658 #, c-format msgid "Search body [%s]> " msgstr "Otsi kehast [%s]> " -#: src/lang.c:660 +#: src/lang.c:659 #, c-format msgid "Search forwards [%s]> " msgstr "Otsi edaspidi [%s]> " -#: src/lang.c:661 +#: src/lang.c:660 msgid "Searching..." msgstr "Otsin..." -#: src/lang.c:662 +#: src/lang.c:661 #, c-format msgid "Searching article %d of %d ('q' to abort)..." msgstr "Otsin artiklit %d/%d ('q' katkestamiseks)..." -#: src/lang.c:663 +#: src/lang.c:662 msgid "Select article> " msgstr "Valige artikkel> " -#: src/lang.c:664 +#: src/lang.c:663 msgid "Select option number before text or use arrow keys and . 'q' to quit." msgstr "Valige teksti eest omaduse number või kasutage nooli ja . 'q' väljumiseks." -#: src/lang.c:665 +#: src/lang.c:664 msgid "Select group> " msgstr "Valige grupp> " -#: src/lang.c:666 +#: src/lang.c:665 #, c-format msgid "Enter selection pattern [%s]> " msgstr "Sisestage valiku muster [%s]> " -#: src/lang.c:667 +#: src/lang.c:666 msgid "Select thread > " msgstr "Valige teema > " -#: src/lang.c:668 +#: src/lang.c:667 #, 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:669 +#: src/lang.c:668 msgid "servers active-file" msgstr "serveri aktiivsete gruppide fail" -#: src/lang.c:670 +#: src/lang.c:669 msgid "Cannot move into new newsgroups. Subscribe first..." msgstr "Uutesse gruppidesse ei saa siseneda. Tellige kõigepealt..." -#: src/lang.c:671 +#: src/lang.c:670 msgid "" msgstr "" -#: src/lang.c:672 +#: src/lang.c:671 #, c-format msgid "Starting: (%s)" msgstr "Stardin: (%s)" -#: src/lang.c:673 +#: src/lang.c:672 #, c-format msgid "List Thread (%d of %d)" msgstr "Teemad (%d/%d)" -#: src/lang.c:674 +#: src/lang.c:673 #, c-format msgid "Thread (%.*s)" msgstr "Teema (%.*s)" -#: src/lang.c:675 +#: src/lang.c:674 msgid "Enter wildcard subscribe pattern> " msgstr "Sisestage tellimise muster> " -#: src/lang.c:676 +#: src/lang.c:675 #, c-format msgid "subscribed to %d groups" msgstr "%d gruppi on tellitud" -#: src/lang.c:677 +#: src/lang.c:676 #, c-format msgid "Subscribed to %s" msgstr "%s on tellitud" -#: src/lang.c:678 +#: src/lang.c:677 msgid "Subscribing... " msgstr "Tellin... " -#: src/lang.c:679 +#: src/lang.c:678 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:680 +#: src/lang.c:679 #, c-format msgid "Supersede article(s) to group(s) [%s]> " msgstr "Asendan artikli(d) gruppides [%s]> " -#: src/lang.c:681 +#: src/lang.c:680 msgid "Superseding article ..." msgstr "Asendan artikli ..." -#: src/lang.c:682 +#: src/lang.c:681 #, 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:684 +#: src/lang.c:683 #, c-format msgid "%d days" msgstr "%d päeva" -#: src/lang.c:685 +#: src/lang.c:684 msgid "" msgstr "" -#: src/lang.c:686 +#: src/lang.c:685 msgid "# Default action/prompt strings\n" msgstr "# Vaikimisi aktsioonide/viipade sõned\n" -#: src/lang.c:687 +#: src/lang.c:686 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" @@ -2836,262 +2834,261 @@ msgstr "# Vaikeväärtused kiire (1 võtme) "# case=ON/OFF ON=filter on tõstutundlik OFF=tõstutundetu\n" "# expire=ON/OFF ON=kehtivusaeg default_filter_days OFF=ei aegu\n" -#: src/lang.c:700 +#: src/lang.c:699 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:701 +#: src/lang.c:700 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:702 +#: src/lang.c:701 msgid "There is no news\n" msgstr "Uudiseid pole\n" -#: src/lang.c:703 +#: src/lang.c:702 msgid "Thread" msgstr "Teema" -#: src/lang.c:704 +#: src/lang.c:703 msgid "Thread Level Commands" msgstr "Teemataseme käsud" -#: src/lang.c:705 +#: src/lang.c:704 msgid "Thread deselected" msgstr "Teema pole valitud" -#: src/lang.c:706 +#: src/lang.c:705 msgid "Thread selected" msgstr "Teema on valitud" -#: src/lang.c:707 +#: src/lang.c:706 msgid "threads" msgstr "teemad" -#: src/lang.c:708 +#: src/lang.c:707 msgid "Thread range" msgstr "Teemade vahemik" -#: src/lang.c:709 +#: src/lang.c:708 msgid "thread" msgstr "teema" -#: src/lang.c:710 +#: src/lang.c:709 #, c-format -msgid "%sThread %4s of %4s" -msgstr "%sTeema %4s : %4s" +msgid "Thread %4s of %4s" +msgstr "Teema %4s : %4s" -#: src/lang.c:711 +#: src/lang.c:710 msgid "Threading articles..." msgstr "Järjestan artiklid teemade kaupa..." -#: src/lang.c:712 +#: src/lang.c:711 #, c-format msgid "Toggled word highlighting %s" msgstr "Sõnade esiletõstmine lülitatud %s" -#: src/lang.c:713 +#: src/lang.c:712 msgid "Toggled rot13 encoding" msgstr "Lülitatud rot13 kodeerimine" -#: src/lang.c:714 +#: src/lang.c:713 #, c-format msgid "Toggled german TeX encoding %s" msgstr "Lülitatud saksa TeX kodeering %s" -#: src/lang.c:715 +#: src/lang.c:714 #, c-format msgid "Toggled tab-width to %d" msgstr "Lülitatud tab-width väärtus %d" -#: src/lang.c:716 +#: src/lang.c:715 #, c-format msgid "%d Trying to dotlock %s" msgstr "%d Üritan punkt-lukustada %s" -#: src/lang.c:717 +#: src/lang.c:716 #, c-format msgid "%d Trying to lock %s" msgstr "%d Üritan lukustada %s" -#: src/lang.c:718 +#: src/lang.c:717 msgid " h=help\n" msgstr " h=appi\n" -#: src/lang.c:720 +#: src/lang.c:719 msgid "Unlimited" msgstr "Piiramata" -#: src/lang.c:721 +#: src/lang.c:720 msgid "Enter wildcard unsubscribe pattern> " msgstr "Sisestage loobumise muster> " -#: src/lang.c:722 +#: src/lang.c:721 #, c-format msgid "Error decoding %s : %s" msgstr "Viga %s dekodeerimisel: %s" -#: src/lang.c:723 +#: src/lang.c:722 msgid "No end." msgstr "Lõpp puudub." -#: src/lang.c:724 +#: src/lang.c:723 #, c-format msgid "%s successfully decoded." msgstr "%s on edukalt dekodeeritud." -#: src/lang.c:725 +#: src/lang.c:724 #, 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:726 +#: src/lang.c:725 msgid "unread " msgstr "lugemata " -#: src/lang.c:727 +#: src/lang.c:726 #, c-format msgid "unsubscribed from %d groups" msgstr "loobunud %d grupist" -#: src/lang.c:728 +#: src/lang.c:727 #, c-format msgid "Unsubscribed from %s" msgstr "Loobunud grupist %s" -#: src/lang.c:729 +#: src/lang.c:728 msgid "Unsubscribing... " msgstr "Loobun gruppidest... " -#: src/lang.c:730 +#: src/lang.c:729 msgid "Unthreading articles..." msgstr "Tükeldan teemad..." -#: src/lang.c:731 +#: src/lang.c:730 msgid "Updated" msgstr "Uuendatud" -#: src/lang.c:732 +#: src/lang.c:731 msgid "Updating" msgstr "Uuendan" -#: src/lang.c:733 +#: src/lang.c:732 #, c-format msgid "Opening %s\n" msgstr "Proovin %s\n" -#: src/lang.c:734 +#: src/lang.c:733 msgid "No more URL's in this article" msgstr "Selles artiklis pole rohkem URL'e" -#: src/lang.c:735 +#: src/lang.c:734 msgid "Use MIME display program for this message?" msgstr "Kasutan selle teate lugemiseks MIME näitamise programmi?" -#: src/lang.c:736 +#: src/lang.c:735 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:737 +#: src/lang.c:736 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:738 +#: src/lang.c:737 msgid " -q don't check for new newsgroups" msgstr " -q ära otsi uusi gruppe" -#: src/lang.c:739 +#: src/lang.c:738 msgid " -X don't save any files on quit" msgstr " -X töö lõpetamisel ära salvesta ühtegi faili" -#: src/lang.c:740 +#: src/lang.c:739 msgid " -d don't show newsgroup descriptions" msgstr " -d ära näita gruppide kirjeldusi" -#: src/lang.c:741 +#: src/lang.c:740 msgid " -G limit get only limit articles/group" msgstr " -G num loe aunult num artiklit/gruppi" -#: src/lang.c:742 +#: src/lang.c:741 #, c-format msgid " -H help information about %s" msgstr " -H %s kasutamise abiinfo" -#: src/lang.c:743 +#: src/lang.c:742 msgid " -h this help message" msgstr " -h see abitekst" -#: src/lang.c:744 +#: src/lang.c:743 #, c-format msgid " -I dir news index file directory [default=%s]" msgstr " -I kat uudiste indeksfaili kataloog [vaikimisi=%s]" -#: src/lang.c:745 +#: src/lang.c:744 msgid " -u update index files (batch mode)" msgstr " -u värskenda indeksfaile (pakettmood)" -#: src/lang.c:746 +#: src/lang.c:745 #, c-format msgid " -m dir mailbox directory [default=%s]" msgstr " -m kat kirjakaustade kataloog [vaikimisi=%s]" -#: src/lang.c:747 +#: src/lang.c:746 #, c-format msgid "\n" "Mail bug reports/comments to %s" msgstr "\n" "Saatke palun vea raport/kommentaarid aadressil %s" -#: src/lang.c:748 +#: src/lang.c:747 msgid " -N mail new news to your posts (batch mode)" msgstr " -N saada uued vastused teie postitustele (pakettmood)" -#: src/lang.c:749 +#: src/lang.c:748 msgid " -M user mail new news to specified user (batch mode)" msgstr " -M kasut saada uued artiklid näidatud kasutajale (pakettmood)" -#: src/lang.c:750 +#: src/lang.c:749 #, c-format msgid " -f file subscribed to newsgroups file [default=%s]" msgstr " -f fail tellitud gruppide fail [vaikimisi=%s]" -# TRANSLATION MISSING -#: src/lang.c:751 +#: src/lang.c:750 msgid " -x no posting mode" -msgstr "" +msgstr " -x postitamiseta mood" -#: src/lang.c:752 +#: src/lang.c:751 msgid " -w post an article and exit" msgstr " -w postita artikkel ja lõpeta töö" -#: src/lang.c:753 +#: src/lang.c:752 msgid " -o post all postponed articles and exit" msgstr " -o postita kõik postitamisootel artiklid ja lõpeta töö" -#: src/lang.c:754 +#: src/lang.c:753 msgid " -r read news remotely from default NNTP server" msgstr " -r loe artikleid kasutades vaikimisi NNTP serverit" -#: src/lang.c:755 +#: src/lang.c:754 msgid " -R read news saved by -S option" msgstr " -R loe artikleid, mis on salvestatud -S võtmega" -#: src/lang.c:756 +#: src/lang.c:755 #, c-format msgid " -s dir save news directory [default=%s]" msgstr " -s kat artiklite salvestamise kataloog [vaikimisi=%s]" -#: src/lang.c:757 +#: src/lang.c:756 msgid " -S save new news for later reading (batch mode)" msgstr " -S salvesta uued artiklid hilisemaks lugemiseks (pakettmood)" -#: src/lang.c:758 +#: src/lang.c:757 msgid " -z start if any unread news" msgstr " -z alusta tööd, kui on lugemata uudiseid" -#: src/lang.c:759 +#: src/lang.c:758 #, c-format msgid "A Usenet reader.\n" "\n" @@ -3100,37 +3097,37 @@ msgstr "Usenet klient.\n" "\n" "Kasuta: %s [võtmed] [grupp[,...]]" -#: src/lang.c:760 +#: src/lang.c:759 msgid " -v verbose output for batch mode options" msgstr " -v esita pakettmoodi käskudega detailsemat informatsiooni" -#: src/lang.c:761 +#: src/lang.c:760 msgid " -V print version & date information" msgstr " -V esita versiooni ja kuupäeva informatsioon" -#: src/lang.c:762 +#: src/lang.c:761 #, c-format msgid "%s only useful without batch mode operations\n" msgstr "%s on kasutatav ainult pakettmoodi käskudeta\n" -#: src/lang.c:763 +#: src/lang.c:762 #, c-format msgid "%s only useful for batch mode operations\n" msgstr "%s on kasutatav ainult pakettmoodi käskudega\n" -#: src/lang.c:765 +#: src/lang.c:764 #, c-format msgid "\n" "%s%d out of range (0 - %d). Reset to 0" msgstr "\n" "%s%d piiridest väljas (0 - %d). Sean 0" -#: src/lang.c:766 +#: src/lang.c:765 #, c-format msgid "View '%s' (%s/%s)?" msgstr "Vaatan '%s' (%s/%s)?" -#: src/lang.c:768 +#: src/lang.c:767 #, c-format msgid "\n" "Warning: posting exceeds %d columns. Line %d is the first long one:\n" @@ -3139,26 +3136,26 @@ msgstr "\n" "Hoiatus: postitus ületab %d veergu. Esimene pikk rida on rida %d:\n" "%-100s\n" -#: src/lang.c:769 +#: src/lang.c:768 msgid "\n" "Warning: article unchanged after editing\n" msgstr "\n" "Hoiatus: artiklit ei ole toimetamise käigus muudetud\n" -#: src/lang.c:770 +#: src/lang.c:769 msgid "\n" "Warning: \"Subject:\" contains only whitespaces.\n" msgstr "\n" "Hoiatus: \"Subject:\" real on ainult tühikud.\n" -#: src/lang.c:771 +#: src/lang.c:770 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:773 +#: src/lang.c:772 msgid "\n" "Warning: Article has \"References:\" but \"Subject:\" does not begin\n" " with \"Re: \" and does not contain \"(was:\".\n" @@ -3166,7 +3163,7 @@ msgstr "\n" "Hoiatus: Artiklis on \"References:\" päis, aga \"Subject:\" ei alga fraasiga\n" " \"Re: \" ega sisalda \"(was:\".\n" -#: src/lang.c:776 +#: src/lang.c:775 msgid "Read carefully!\n" "\n" " You are about to cancel an article seemingly written by you. This will " @@ -3186,7 +3183,7 @@ msgstr "Lugege hoolikalt!\n" "Siin on artikkel, mida te hakkate kustutama:\n" "\n" -#: src/lang.c:780 +#: src/lang.c:779 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" @@ -3198,7 +3195,7 @@ msgstr "\n" " lisab artiklile signatuuri, siis on võimalik, et seda ei kodeerita\n" " korrektselt.\n" -#: src/lang.c:785 +#: src/lang.c:784 #, c-format msgid "\n" "\n" @@ -3211,7 +3208,7 @@ msgstr "\n" "Väärtused failis %s on muutunud!\n" "Palun lugege faile WHATSNEW, jne...\n" -#: src/lang.c:787 +#: src/lang.c:786 #, c-format msgid "\n" "\n" @@ -3223,7 +3220,7 @@ msgstr "\n" "kasutatu!\n" "Mõningaid väärtusi failis %s võidakse ignoreerida, mõningaid võidakse muuta!\n" -#: src/lang.c:790 +#: src/lang.c:789 #, c-format msgid "Warning: tin wrote fewer groups to your\n" "\t%s\n" @@ -3236,7 +3233,7 @@ msgstr "Hoiatus: tin kirjutas vähem grup "grupist%s, tähendab see viga ja te peaksite varundama oma %s\n" "enne, kui te tini uuesti käivitate!\n" -#: src/lang.c:794 +#: src/lang.c:793 #, c-format msgid "\n" "Warning: Found %d '-- \\n' lines, this may confuse some people.\n" @@ -3244,12 +3241,12 @@ msgstr "\n" "Hoiatus: Leidsin %d '-- \\n' rida, mis võib tekitada osades inimestes " "segadust.\n" -#: src/lang.c:795 +#: src/lang.c:794 #, c-format msgid "Warning: Only %d out of %d articles were saved" msgstr "Hoiatus: Salvestati ainult %d artiklit %d artiklist" -#: src/lang.c:796 +#: src/lang.c:795 #, c-format msgid "\n" "Warning: Your signature is longer than %d lines. Since signatures usually " @@ -3264,48 +3261,48 @@ msgstr "\n" "võimalikult\n" " lühikesed.\n" -#: src/lang.c:800 +#: src/lang.c:799 #, 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:801 +#: src/lang.c:800 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:802 +#: src/lang.c:801 msgid "Writing attributes file..." msgstr "Kirjutan atribuutide faili..." -#: src/lang.c:804 +#: src/lang.c:803 #, c-format -msgid "%d Responses%s" -msgstr "%d Vastust%s" +msgid "%d Responses" +msgstr "%d Vastust" -#: src/lang.c:806 +#: src/lang.c:805 #, c-format msgid "Added %d %s" msgstr "Lisatud %d %s" -#: src/lang.c:807 +#: src/lang.c:806 msgid "No unsubscribed groups to show" msgstr "Tellimata gruppe pole" -#: src/lang.c:808 +#: src/lang.c:807 msgid "Showing subscribed to groups only" msgstr "Näitan ainult tellitud gruppe" -#: src/lang.c:809 +#: src/lang.c:808 msgid "Yes " msgstr "Jah " -#: src/lang.c:810 +#: src/lang.c:809 msgid " You have mail\n" msgstr " Teil on kiri\n" -#: src/lang.c:815 +#: src/lang.c:814 #, c-format msgid "\n" "Warning: Posting is in %s and contains characters which are not\n" @@ -3324,16 +3321,16 @@ msgstr "\n" " MM_NETWORK_CHARSET. Viimast saate teostada kasutades valikut " "M)enüü.\n" -#: src/lang.c:826 +#: src/lang.c:825 #, c-format msgid "Redefined key %s '%s' -> '%s'\n" msgstr "Klahvi %s uus definitsioon '%s' -> '%s'\n" -#: src/lang.c:827 +#: src/lang.c:826 msgid " -D debug mode 1=NNTP 2=ALL" msgstr " -D silumismood 1=NNTP 2=KÕIK" -#: src/lang.c:831 +#: src/lang.c:830 msgid "Read carefully!\n" "\n" " You are about to cancel an article seemingly not written by you. This " @@ -3357,11 +3354,11 @@ msgstr "Lugege hoolikalt!\n" "Siin on artikkel, mida te asute kustutama:\n" "\n" -#: src/lang.c:840 +#: src/lang.c:839 msgid "toggle color" msgstr "lülita värve" -#: src/lang.c:841 +#: src/lang.c:840 msgid "# For color-adjust use the following numbers\n" "# 0-black 1-red 2-green 3-brown\n" "# 4-blue 5-pink 6-cyan 7-white\n" @@ -3381,44 +3378,44 @@ msgstr "# Värvide seadmiseks kasutage jä "# taust must)\n" "\n" -#: src/lang.c:849 +#: src/lang.c:848 msgid " -a toggle color flag" msgstr " -a lülita värvide kasutamist" -#: src/lang.c:853 +#: src/lang.c:852 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:854 +#: src/lang.c:853 #, 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:855 +#: src/lang.c:854 #, c-format msgid "\n" "Error: \"%s\" is not a valid newsgroup!\n" msgstr "\n" "Viga: \"%s\" ei ole lubatud grupp!\n" -#: src/lang.c:857 +#: src/lang.c:856 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:858 +#: src/lang.c:857 #, 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:859 +#: src/lang.c:858 #, c-format msgid "\n" "Warning: \"%s\" is not in your newsrc, it may be invalid at this site!\n" @@ -3426,317 +3423,308 @@ msgstr "\n" "Hoiatus: \"%s\" puudub teie newsrc failist, see võib olla selles serveris " "vigane!\n" -#: src/lang.c:860 +#: src/lang.c:859 #, 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:864 +#: src/lang.c:863 #, 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:865 +#: src/lang.c:864 msgid "Missing parts." msgstr "Osad puuduvad." -#: src/lang.c:866 +#: src/lang.c:865 msgid "No beginning." msgstr "Algus puudub." -#: src/lang.c:867 +#: src/lang.c:866 msgid "No data." msgstr "Andmeid pole." -#: src/lang.c:868 +#: src/lang.c:867 msgid "Unknown error." msgstr "Tundmatu viga." -#: src/lang.c:870 +#: src/lang.c:869 #, c-format msgid "\tChecksum of %s (%ld %s)" msgstr "\t%s kontrollsumma (%ld %s)" -#: src/lang.c:874 +#: src/lang.c:873 msgid "Reading mail active file... " msgstr "Loen aktiivsete kirjade kausta... " -#: src/lang.c:875 +#: src/lang.c:874 msgid "Reading mailgroups file... " msgstr "Loen kirjagruppide faili... " -#: src/lang.c:879 +#: src/lang.c:878 msgid "perform PGP operations on article" msgstr "kasuta artiklil PGP operatsioone" -#: src/lang.c:880 +#: src/lang.c:879 msgid "Add key(s) to public keyring?" msgstr "Lisan võtmed avalike võtmete hoidlasse?" -#: src/lang.c:881 +#: src/lang.c:880 #, 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:882 +#: src/lang.c:881 #, 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:883 +#: src/lang.c:882 #, c-format msgid "PGP has not been set up (can't open %s)" msgstr "PGP pole seadistatud (ei saa avada %s)" -#: src/lang.c:884 +#: src/lang.c:883 msgid "Article not signed and no public keys found" msgstr "Artikkel pole allkirjastatud ja avalikke võtmeid pole" -#: src/lang.c:886 +#: src/lang.c:885 #, 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:887 +#: src/lang.c:886 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:888 +#: src/lang.c:887 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:890 +#: src/lang.c:889 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "%s=välju, %s=toimeta, %s=pgp, %s=menüü, %s=postita, %s=ootele: " -#: src/lang.c:891 +#: src/lang.c:890 msgid "%s=quit, %s=edit, %s=pgp, %s=send [%%.*s]: " msgstr "%s=välju, %s=toimeta, %s=pgp, %s=saada [%%.*s]: " -#: src/lang.c:892 +#: src/lang.c:891 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:896 +#: src/lang.c:895 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone: " msgstr "%s=välju, %s=toimeta, %s=ispell, %s=menüü, %s=postita, %s=ootele: " -#: src/lang.c:897 +#: src/lang.c:896 msgid "%s=quit, %s=edit, %s=ispell, %s=send [%%.*s]: " msgstr "%s=välju, %s=toimeta, %s=ispell, %s=saada [%%.*s]: " -#: src/lang.c:898 +#: src/lang.c:897 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:900 +#: src/lang.c:899 #, c-format msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: " msgstr "%s=välju, %s=toimeta, %s=menüü, %s=postita, %s=ootele: " -#: src/lang.c:901 +#: src/lang.c:900 msgid "%s=quit, %s=edit, %s=send [%%.*s]: " msgstr "%s=välju, %s=toimeta, %s=saada [%%.*s]: " -#: src/lang.c:902 +#: src/lang.c:901 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:908 -#, c-format -msgid "Environment variable %s not found. Set and retry..." -msgstr "Keskkonnamuutujat %s pole. Looge ja proovige uuesti..." - -#: src/lang.c:909 -msgid " -B BBS mode. File operations limited to home directories." -msgstr " -B BBS mood. Failioperatsioonid on piiratud kodukataloogiga." - -#: src/lang.c:917 +#: src/lang.c:910 msgid "Try cache_overview_files to speed up things.\n" msgstr "Proovige asjade kiirendamiseks cache_overview_files.\n" -#: src/lang.c:918 +#: src/lang.c:911 msgid "Tin will use local index files instead.\n" msgstr "Tin kasutab hoopis kohalikke indeksfaile.\n" -#: src/lang.c:919 +#: src/lang.c:912 msgid "Cannot find NNTP server name" msgstr "Ei leia NNTP serveri nime" -#: src/lang.c:920 +#: src/lang.c:913 #, c-format msgid "Connecting to %s:%d..." msgstr "Loon ühendust serveriga %s:%d..." -#: src/lang.c:921 +#: src/lang.c:914 msgid "Disconnecting from server...\n" msgstr "Lõpetan ühenduse...\n" -#: src/lang.c:922 +#: src/lang.c:915 #, c-format msgid "Wrong newsgroup name in response of GROUP command, %s for %s" msgstr "Vigane vastus GROUP käsule, %s grupile %s" -#: src/lang.c:923 +#: src/lang.c:916 #, c-format msgid "Failed to connect to NNTP server %s. Exiting..." msgstr "NNTP serveriga %s ühenduse loomine ebaõnnestus. Lõpetan..." -#: src/lang.c:924 src/nntplib.c:975 +#: src/lang.c:917 msgid "205 Closing connection" msgstr "205 Sulen ühendust" -#: src/lang.c:925 +#: src/lang.c:918 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:926 +#: src/lang.c:919 msgid "Connection to news server has timed out. Reconnect?" msgstr "Ühendus uudisegruppide serveriga aegus. ühendun uuesti?" -#: src/lang.c:927 +#: src/lang.c:920 #, 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:928 +#: src/lang.c:921 msgid " -A force authentication on connect" msgstr " -A sunni ühenduse loomisel autentima" -#: src/lang.c:929 +#: src/lang.c:922 #, c-format msgid " -g serv read news from NNTP server serv [default=%s]" msgstr " -g serv loe uudiseid NNTP serverist serv [vaikimisi=%s]" -#: src/lang.c:930 +#: src/lang.c:923 #, c-format msgid " -p port use port as NNTP port [default=%d]" msgstr " -p port kasuta NNTP porti [vaikimisi=%d]" -#: src/lang.c:931 +#: src/lang.c:924 msgid " -Q quick start. Same as -nqd" msgstr " -Q kiirstart. Sama kui -nqd" -#: src/lang.c:932 +#: src/lang.c:925 msgid " -l use only LIST instead of GROUP (-n) command" msgstr " -l kasuta LIST käsku GROUP (-n) käsu asemel" -#: src/lang.c:933 +#: src/lang.c:926 msgid " -n only read subscribed .newsrc groups from NNTP server" msgstr " -n loe NNTP serverist ainult tellitud .newsrc grupid" -#: src/lang.c:935 +#: src/lang.c:928 #, c-format msgid "%s/tcp: Unknown service.\n" msgstr "%s/tcp: Tundmatu teenus.\n" -#: src/lang.c:938 +#: src/lang.c:931 msgid "\n" "socket or connect problem\n" msgstr "\n" "Probleem pistikuga või ühendusega\n" -#: src/lang.c:940 +#: src/lang.c:933 #, c-format msgid "\n" "Connection to %s: " msgstr "\n" "Loon ühendust serveriga %s: " -#: src/lang.c:941 +#: src/lang.c:934 msgid "Giving up...\n" msgstr "Annan alla...\n" -#: src/lang.c:944 +#: src/lang.c:937 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:947 +#: src/lang.c:940 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:950 +#: src/lang.c:943 #, 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:953 +#: src/lang.c:946 msgid " -Q quick start. Same as -qd" msgstr " -Q kiirstart. Sama kui -qd" -#: src/lang.c:954 +#: src/lang.c:947 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:955 +#: src/lang.c:948 msgid " -n only read subscribed .newsrc groups from spool" msgstr " -n loe poolist ainult tellitud .newsrc gruppe" -#: src/lang.c:956 +#: src/lang.c:949 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:960 +#: src/lang.c:953 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:961 +#: src/lang.c:954 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:969 +#: src/lang.c:962 #, c-format msgid "%d %s printed" msgstr "%d %s trükitud" -#: src/lang.c:970 +#: src/lang.c:963 msgid "output article/thread/hot/pattern/tagged articles to printer" msgstr "saada artikkel/teema/kuum/muster/märgitud trükkalile" -#: src/lang.c:971 +#: src/lang.c:964 msgid "Print" msgstr "Trüki" -#: src/lang.c:972 +#: src/lang.c:965 msgid "Printing..." msgstr "Trükin..." -#: src/lang.c:976 +#: src/lang.c:969 msgid "pipe article/thread/hot/pattern/tagged articles into command" msgstr "saada artikkel/teema/kuum/muster/märgitud toruga käsule" -#: src/lang.c:977 +#: src/lang.c:970 msgid "No command" msgstr "Käsku pole" -#: src/lang.c:978 +#: src/lang.c:971 msgid "Pipe" msgstr "Toru" -#: src/lang.c:979 +#: src/lang.c:972 #, c-format msgid "Pipe to command [%.*s]> " msgstr "Toru käsku [%.*s]> " -#: src/lang.c:980 +#: src/lang.c:973 msgid "Piping..." msgstr "Saadan torusse..." -#: src/lang.c:982 +#: src/lang.c:975 msgid "Piping not enabled." msgstr "Toru kasutamine pole lubatud." -#: src/lang.c:986 +#: src/lang.c:979 #, c-format msgid "\n" "Error: The \"%s:\" line has spaces in it that MUST be removed.\n" @@ -3748,7 +3736,7 @@ msgstr "\n" " tühik on see, mis eraldab koolonit (:) teistest komponentidest\n" " real. Gruppide eraldamiseks kasutage palun koma (,).\n" -#: src/lang.c:991 +#: src/lang.c:984 #, c-format msgid "\n" "Error: The \"%s:\" line is continued in the next line. Since\n" @@ -3759,7 +3747,7 @@ msgstr "\n" " tühikuid, siis ei ole see lubatud. Palun kirjutage kõik grupid\n" " ühele reale.\n" -#: src/lang.c:996 +#: src/lang.c:989 #, c-format msgid "\n" "Warning: The \"%s:\" line is continued in the next line.\n" @@ -3770,14 +3758,14 @@ msgstr "\n" " See on uus omadus ja kõik serverid ei pruugi seda toetada.\n" " Probleemide vältimiseks, kirjutage palun kõik grupid ühele reale.\n" -#: src/lang.c:1000 +#: src/lang.c:993 #, 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:1005 +#: src/lang.c:998 msgid "\n" " If your article contains quoted text please take some time to pare it " "down\n" @@ -3807,538 +3795,538 @@ msgstr "\n" " tega, siis ilmselt enamus lugejaid ignoreerib teid täiesti. Tänapäeval on\n" " võrgus palju rahvast ja infot!\n" -#: src/lang.c:1018 +#: src/lang.c:1011 msgid "shell escape" msgstr "paojada käsureale" -#: src/lang.c:1019 +#: src/lang.c:1012 #, c-format msgid "Shell Command (%s)" msgstr "Käsurea käsk (%s)" -#: src/lang.c:1020 +#: src/lang.c:1013 #, c-format msgid "Enter shell command [%s]> " msgstr "Sisestage käsurea käsk [%s]> " -#: src/lang.c:1024 +#: src/lang.c:1017 #, c-format msgid "%s: Can't get entry for TERM\n" msgstr "%s: Ei saa TERM kirjet\n" -#: src/lang.c:1028 +#: src/lang.c:1021 #, c-format msgid "Group %.*s ('q' to quit)..." msgstr "Grupp %.*s ('q' lõpetamiseks)... " -#: src/lang.c:1030 +#: src/lang.c:1023 #, c-format msgid "Group %.*s..." msgstr "Grupp %.*s... " -#: src/lang.c:1034 +#: src/lang.c:1027 msgid "Server unavailable\n" msgstr "Server ei vasta\n" -#: src/lang.c:1040 +#: src/lang.c:1033 #, c-format msgid "%s=pipe; %s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; " "%s=post" msgstr "%s=toru; %s=kiri; %s=trüki; %s=välju; %s=kõik/lugem; %s=salv; %s=märgi; " "%s=postita" -#: src/lang.c:1041 +#: src/lang.c:1034 #, 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:1043 +#: src/lang.c:1036 #, 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:1044 +#: src/lang.c:1037 #, 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:1048 +#: src/lang.c:1041 #, 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:1049 +#: src/lang.c:1042 #, 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:1051 +#: src/lang.c:1044 #, 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:1052 +#: src/lang.c:1045 #, 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:1058 +#: src/lang.c:1051 msgid "Terminal does not support color" msgstr "Terminal ei toeta värve" -#: src/lang.c:1063 +#: src/lang.c:1056 #, c-format msgid "Trying %s" msgstr "Proovin %s" -#: src/lang.c:1077 src/lang.c:1102 src/lang.c:1118 src/refs.c:266 +#: src/lang.c:1070 src/lang.c:1095 src/lang.c:1111 src/refs.c:266 msgid "None" msgstr "Pole" -#: src/lang.c:1078 +#: src/lang.c:1071 msgid "Subject" msgstr "Teema" -#: src/lang.c:1079 +#: src/lang.c:1072 msgid "References" msgstr "Viited" -#: src/lang.c:1080 +#: src/lang.c:1073 msgid "Both Subject and References" msgstr "Nii teema kui viited" -#: src/lang.c:1081 +#: src/lang.c:1074 msgid "Multipart Subject" msgstr "Mitmeosaliste teema" -#: src/lang.c:1093 src/lang.c:1204 +#: src/lang.c:1086 src/lang.c:1197 msgid "No" msgstr "Ei" -#: src/lang.c:1094 src/lang.c:1206 +#: src/lang.c:1087 src/lang.c:1199 msgid "Yes" msgstr "Jah" -#: src/lang.c:1095 +#: src/lang.c:1088 msgid "Hide All" msgstr "Peida kõik" -#: src/lang.c:1103 +#: src/lang.c:1096 msgid "Address" msgstr "Aadress" -#: src/lang.c:1104 +#: src/lang.c:1097 msgid "Full Name" msgstr "Täisnimi" -#: src/lang.c:1105 +#: src/lang.c:1098 msgid "Address and Name" msgstr "Aadress ja nimi" -#: src/lang.c:1112 +#: src/lang.c:1105 msgid "Max" msgstr "Maksimum" -#: src/lang.c:1113 +#: src/lang.c:1106 msgid "Sum" msgstr "Summa" -#: src/lang.c:1114 +#: src/lang.c:1107 msgid "Average" msgstr "Keskmine" -#: src/lang.c:1119 +#: src/lang.c:1112 msgid "Lines" msgstr "Read" -#: src/lang.c:1120 +#: src/lang.c:1113 msgid "Score" msgstr "Kaal" -#: src/lang.c:1121 +#: src/lang.c:1114 msgid "Lines & Score" msgstr "Read & kaal" -#: src/lang.c:1130 +#: src/lang.c:1123 msgid "Black" msgstr "Must" -#: src/lang.c:1131 +#: src/lang.c:1124 msgid "Red" msgstr "Punane" -#: src/lang.c:1132 +#: src/lang.c:1125 msgid "Green" msgstr "Roheline" -#: src/lang.c:1133 +#: src/lang.c:1126 msgid "Brown" msgstr "Pruun" -#: src/lang.c:1134 +#: src/lang.c:1127 msgid "Blue" msgstr "Sinine" -#: src/lang.c:1135 +#: src/lang.c:1128 msgid "Pink" msgstr "Roosa" -#: src/lang.c:1136 +#: src/lang.c:1129 msgid "Cyan" msgstr "Lilla" -#: src/lang.c:1137 +#: src/lang.c:1130 msgid "White" msgstr "valge" -#: src/lang.c:1138 +#: src/lang.c:1131 msgid "Gray" msgstr "Hall" -#: src/lang.c:1139 +#: src/lang.c:1132 msgid "Light Red" msgstr "Helepunane" -#: src/lang.c:1140 +#: src/lang.c:1133 msgid "Light Green" msgstr "Heleroheline" -#: src/lang.c:1141 +#: src/lang.c:1134 msgid "Yellow" msgstr "Kollane" -#: src/lang.c:1142 +#: src/lang.c:1135 msgid "Light Blue" msgstr "Helesinine" -#: src/lang.c:1143 +#: src/lang.c:1136 msgid "Light Pink" msgstr "Heleroosa" -#: src/lang.c:1144 +#: src/lang.c:1137 msgid "Light Cyan" msgstr "Helelilla" -#: src/lang.c:1145 +#: src/lang.c:1138 msgid "Light White" msgstr "Helevalge" -#: src/lang.c:1153 src/lang.c:1210 src/lang.c:1224 +#: src/lang.c:1146 src/lang.c:1203 src/lang.c:1217 msgid "Nothing" msgstr "Ei kasuta" -#: src/lang.c:1154 +#: src/lang.c:1147 msgid "Mark" msgstr "Märk" -#: src/lang.c:1155 +#: src/lang.c:1148 msgid "Space" msgstr "Tühik" -#: src/lang.c:1162 +#: src/lang.c:1155 msgid "Normal" msgstr "Tavaline" -#: src/lang.c:1163 +#: src/lang.c:1156 msgid "Best highlighting" msgstr "Parim esiletõstmine" -#: src/lang.c:1164 +#: src/lang.c:1157 msgid "Underline" msgstr "Allajoonitud" -#: src/lang.c:1165 +#: src/lang.c:1158 msgid "Reverse video" msgstr "Pööratud video" -#: src/lang.c:1166 +#: src/lang.c:1159 msgid "Blinking" msgstr "Plinkiv" -#: src/lang.c:1167 +#: src/lang.c:1160 msgid "Half bright" msgstr "Poolhele" -#: src/lang.c:1168 +#: src/lang.c:1161 msgid "Bold" msgstr "Paks" -#: src/lang.c:1173 +#: src/lang.c:1166 msgid "none" msgstr "pole" -#: src/lang.c:1174 +#: src/lang.c:1167 msgid "commands" msgstr "käsud" -#: src/lang.c:1175 +#: src/lang.c:1168 msgid "select" msgstr "valik" -#: src/lang.c:1177 +#: src/lang.c:1170 msgid "commands & quit" msgstr "käsud & välju" -#: src/lang.c:1178 +#: src/lang.c:1171 msgid "commands & select" msgstr "käsud & valik" -#: src/lang.c:1179 +#: src/lang.c:1172 msgid "quit & select" msgstr "välju & valik" -#: src/lang.c:1180 +#: src/lang.c:1173 msgid "commands & quit & select" msgstr "käsud & välju & valik" -#: src/lang.c:1205 +#: src/lang.c:1198 msgid "Shell archive" msgstr "Shelli arhiiv" -#: src/lang.c:1211 +#: src/lang.c:1204 msgid "Subject: (descending)" msgstr "Subject: (kahanevalt)" -#: src/lang.c:1212 +#: src/lang.c:1205 msgid "Subject: (ascending)" msgstr "Subject: (kasvavalt)" -#: src/lang.c:1213 +#: src/lang.c:1206 msgid "From: (descending)" msgstr "From: (kahanevalt)" -#: src/lang.c:1214 +#: src/lang.c:1207 msgid "From: (ascending)" msgstr "From: (kasvavalt)" -#: src/lang.c:1215 +#: src/lang.c:1208 msgid "Date: (descending)" msgstr "Date: (kahanevalt)" -#: src/lang.c:1216 +#: src/lang.c:1209 msgid "Date: (ascending)" msgstr "Date: (kasvavalt)" -#: src/lang.c:1217 src/lang.c:1225 +#: src/lang.c:1210 src/lang.c:1218 msgid "Score (descending)" msgstr "Kaal (kahanevalt)" -#: src/lang.c:1218 src/lang.c:1226 +#: src/lang.c:1211 src/lang.c:1219 msgid "Score (ascending)" msgstr "Kaal (kasvavalt)" -#: src/lang.c:1219 +#: src/lang.c:1212 msgid "Lines: (descending)" msgstr "Lines: (kahanevalt)" -#: src/lang.c:1220 +#: src/lang.c:1213 msgid "Lines: (ascending)" msgstr "Lines: (kasvavalt)" -#: src/lang.c:1231 +#: src/lang.c:1224 msgid "Always Keep" msgstr "Hoia alati" -#: src/lang.c:1232 +#: src/lang.c:1225 msgid "Always Remove" msgstr "Eemalda alati" -#: src/lang.c:1233 +#: src/lang.c:1226 msgid "Mark with D on selection screen" msgstr "Märgi valikuekraanil tähega D" -#: src/lang.c:1238 +#: src/lang.c:1231 msgid "Kill only unread arts" msgstr "Surma ainult lugemata artiklid" -#: src/lang.c:1239 +#: src/lang.c:1232 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:1240 +#: src/lang.c:1233 msgid "Kill all arts and never show" msgstr "Surma kõik artiklid ja ära näita" -#: src/lang.c:1245 +#: src/lang.c:1238 msgid "Nothing special" msgstr "Ei midagi erilist" -#: src/lang.c:1246 +#: src/lang.c:1239 msgid "Compress quotes" msgstr "Tihenda tsitaadid" -#: src/lang.c:1247 +#: src/lang.c:1240 msgid "Quote signatures" msgstr "Tsiteeri allkirju" -#: src/lang.c:1248 +#: src/lang.c:1241 msgid "Compress quotes, quote sigs" msgstr "Tihenda tsitaadid, tsiteeri allkirju" -#: src/lang.c:1249 +#: src/lang.c:1242 msgid "Quote empty lines" msgstr "Tsiteeri tühje ridu" -#: src/lang.c:1250 +#: src/lang.c:1243 msgid "Compress quotes, quote empty lines" msgstr "Tihenda tsitaadid, tsiteeri tühje ridu" -#: src/lang.c:1251 +#: src/lang.c:1244 msgid "Quote sigs & empty lines" msgstr "Tsiteeri allkirju ja tühje ridu" -#: src/lang.c:1252 +#: src/lang.c:1245 msgid "Comp. q., quote sigs & empty lines" msgstr "Tihenda tsitaate, tsiteeri allkirju ja tühje ridu" # TRANSLATION MISSING -#: src/lang.c:1290 +#: src/lang.c:1283 msgid "no" msgstr "" # TRANSLATION MISSING -#: src/lang.c:1291 +#: src/lang.c:1284 msgid "with headers" msgstr "" # TRANSLATION MISSING -#: src/lang.c:1292 +#: src/lang.c:1285 msgid "without headers" msgstr "" -#: src/lang.c:1297 +#: src/lang.c:1290 msgid "Display Options" msgstr "Ekraani seaded" -#: src/lang.c:1303 +#: src/lang.c:1296 msgid "Color Options" msgstr "Värvide seaded" -#: src/lang.c:1309 +#: src/lang.c:1302 msgid "Article-Limiting Options" msgstr "Artikli piirangute seaded" -#: src/lang.c:1315 +#: src/lang.c:1308 msgid "Posting/Mailing Options" msgstr "Postitamise/saatmise seaded" -#: src/lang.c:1321 +#: src/lang.c:1314 msgid "Saving/Printing Options" msgstr "Salvestamise/trükkimise seaded" -#: src/lang.c:1327 +#: src/lang.c:1320 msgid "Expert Options" msgstr "Ekspertseaded" -#: src/lang.c:1333 +#: src/lang.c:1326 msgid "Filtering Options" msgstr "Filtreerimise seaded" -#: src/lang.c:1338 src/lang.c:1364 src/lang.c:1370 src/lang.c:1377 src/lang.c:1409 -#: src/lang.c:1415 src/lang.c:1423 src/lang.c:1443 src/lang.c:1518 src/lang.c:1680 -#: src/lang.c:1686 src/lang.c:1692 src/lang.c:1698 src/lang.c:1710 src/lang.c:1717 -#: src/lang.c:1768 src/lang.c:1777 src/lang.c:1783 src/lang.c:1789 src/lang.c:1795 -#: src/lang.c:1801 src/lang.c:1807 src/lang.c:1813 src/lang.c:1819 src/lang.c:1825 -#: src/lang.c:1831 src/lang.c:1837 src/lang.c:1843 src/lang.c:1849 src/lang.c:1855 -#: src/lang.c:1861 src/lang.c:1867 src/lang.c:1873 src/lang.c:1879 src/lang.c:1885 -#: src/lang.c:1891 src/lang.c:1898 src/lang.c:1904 src/lang.c:1910 src/lang.c:1917 -#: src/lang.c:1928 src/lang.c:1934 src/lang.c:1940 src/lang.c:1946 src/lang.c:1952 -#: src/lang.c:1958 src/lang.c:1972 src/lang.c:1984 src/lang.c:2018 src/lang.c:2070 -#: src/lang.c:2077 src/lang.c:2083 src/lang.c:2108 src/lang.c:2125 src/lang.c:2178 -#: src/lang.c:2211 src/lang.c:2231 src/lang.c:2266 src/lang.c:2275 src/lang.c:2300 -#: src/lang.c:2312 +#: src/lang.c:1331 src/lang.c:1357 src/lang.c:1363 src/lang.c:1370 src/lang.c:1402 +#: src/lang.c:1408 src/lang.c:1416 src/lang.c:1436 src/lang.c:1511 src/lang.c:1673 +#: src/lang.c:1679 src/lang.c:1685 src/lang.c:1691 src/lang.c:1703 src/lang.c:1710 +#: src/lang.c:1761 src/lang.c:1770 src/lang.c:1776 src/lang.c:1782 src/lang.c:1788 +#: src/lang.c:1794 src/lang.c:1800 src/lang.c:1806 src/lang.c:1812 src/lang.c:1818 +#: src/lang.c:1824 src/lang.c:1830 src/lang.c:1836 src/lang.c:1842 src/lang.c:1848 +#: src/lang.c:1854 src/lang.c:1860 src/lang.c:1866 src/lang.c:1872 src/lang.c:1878 +#: src/lang.c:1884 src/lang.c:1891 src/lang.c:1897 src/lang.c:1903 src/lang.c:1910 +#: src/lang.c:1921 src/lang.c:1927 src/lang.c:1933 src/lang.c:1939 src/lang.c:1945 +#: src/lang.c:1951 src/lang.c:1965 src/lang.c:1977 src/lang.c:2011 src/lang.c:2063 +#: src/lang.c:2070 src/lang.c:2076 src/lang.c:2101 src/lang.c:2118 src/lang.c:2171 +#: src/lang.c:2204 src/lang.c:2224 src/lang.c:2259 src/lang.c:2268 src/lang.c:2293 +#: src/lang.c:2305 msgid " toggles, sets, cancels." msgstr " lülitab, seab, katkestab." -#: src/lang.c:1339 +#: src/lang.c:1332 msgid "Show mini menu & posting etiquette :" msgstr "Näita minimenüüd & post. etiketti :" -#: src/lang.c:1340 +#: src/lang.c:1333 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:1345 +#: src/lang.c:1338 msgid "Show short description for each newsgroup. toggles & sets." msgstr "Näita gruppide lühikirjeldusi. lülitab ja seab." -#: src/lang.c:1346 +#: src/lang.c:1339 msgid "Show description of each newsgroup :" msgstr "Näita iga grupi lühikirjeldust :" -#: src/lang.c:1347 +#: src/lang.c:1340 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:1352 +#: src/lang.c:1345 msgid "Show Subject & From (author) fields in group menu. toggles & " "sets." msgstr "Näita grupimenüüs teema ja From (autor) välju. lülitab ja seab." -#: src/lang.c:1353 +#: src/lang.c:1346 msgid "In group menu, show author by :" msgstr "Näita grupimenüüs autorit :" -#: src/lang.c:1354 +#: src/lang.c:1347 msgid "# Part of from field to display 0) none 1) address 2) full name 3) both\n" msgstr "# Millist saatja nime osa näidata 0) mitte midagi 1) aadress 2) täisnimi\n" "# 3) mõlemad\n" -#: src/lang.c:1358 +#: src/lang.c:1351 msgid "Draw -> or highlighted bar for selection. toggles & sets." msgstr "Märgi valik -> või heleda ribaga. lülitab, seab." -#: src/lang.c:1359 +#: src/lang.c:1352 msgid "Draw -> instead of highlighted bar :" msgstr "Joonista -> heleda riba asemel :" -#: src/lang.c:1360 +#: src/lang.c:1353 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:1365 +#: src/lang.c:1358 msgid "Use inverse video for page headers :" msgstr "Kasuta päistel pööratud videot :" -#: src/lang.c:1366 +#: src/lang.c:1359 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:1371 +#: src/lang.c:1364 msgid "Thread articles by :" msgstr "Artiklite teemadesse jagamine :" -#: src/lang.c:1372 +#: src/lang.c:1365 msgid "# Thread articles on 0=(nothing) 1=(Subject) 2=(References) 3=(Both)\n" "# 4=(Multipart Subject).\n" msgstr "# Jaga artiklid teemadesse 0=(ei jaga) 1=(teema järgi) 2=(viite järgi)\n" "# 3=(mõlema järgi) 4=(Mitmeosaliste teema).\n" -#: src/lang.c:1378 +#: src/lang.c:1371 msgid "Score of a thread :" msgstr "Teema kaal :" -#: src/lang.c:1379 +#: src/lang.c:1372 msgid "# Thread score 0=(Max) 1=(Sum) 2=(Average)\n" msgstr "# Teema kaal 0=(Maksimum) 1=(Summa) 2=(Keskmine)\n" -#: src/lang.c:1383 +#: src/lang.c:1376 msgid "Sort articles by Subject, From, Date or Score. toggles & sets." msgstr "Järjesta artiklid Subject, From, Date, kaalu järgi. lülitab, " "seab." -#: src/lang.c:1384 +#: src/lang.c:1377 msgid "Sort articles by :" msgstr "Artiklite järjestus :" -#: src/lang.c:1385 +#: src/lang.c:1378 msgid "# Sort articles by 0=(nothing) 1=(Subject descend) 2=(Subject ascend)\n" "# 3=(From descend) 4=(From ascend) 5=(Date descend) 6=(Date ascend)\n" "# 7=(Score descend) 8=(Score ascend) 9=(Lines descend) 10=(Lines ascend).\n" @@ -4346,57 +4334,57 @@ msgstr "# Artiklite järjestamine 0=(ei j "# 3=(Saatja kahanev) 4=(Saatja kasvava) 5=(Kuup. kahanev) 6=(Kuup. kasvav)\n" "# 7=(Kaal kahanev) 8=(Kaal kasvav) 9=(Ridu kahanev) 10=(Ridu kasvav).\n" -#: src/lang.c:1391 +#: src/lang.c:1384 msgid "Sort threads by Nothing or Score. toggles & sets." msgstr "Järjesta teemad mitte millegi või kaalu järgi. lülitab, seab." -#: src/lang.c:1392 +#: src/lang.c:1385 msgid "Sort threads by :" msgstr "Teemade järjestus :" -#: src/lang.c:1393 +#: src/lang.c:1386 msgid "# Sort thread by 0=(nothing) 1=(Score descend) 2=(Score ascend)\n" msgstr "# Järjesta teema 0=(ei järjesta) 1=skoor kahanevalt, 2=skoor kasvavalt\n" -#: src/lang.c:1397 +#: src/lang.c:1390 msgid "Put cursor at first/last unread art in groups. toggles & sets." msgstr "Vii kursor grupis esimesele/viimasele lugemata artiklile. lülitab, " " seab." -#: src/lang.c:1398 +#: src/lang.c:1391 msgid "Goto first unread article in group :" msgstr "Mine grupis esimesele lugemata art.:" -#: src/lang.c:1399 +#: src/lang.c:1392 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:1403 +#: src/lang.c:1396 msgid "Show all articles or only unread articles. toggles & sets." msgstr "Näita kõiki või ainult lugemata artikleid. lülitab, seab." -#: src/lang.c:1404 +#: src/lang.c:1397 msgid "Show only unread articles :" msgstr "Näita ainult lugemata artikleid :" -#: src/lang.c:1405 +#: src/lang.c:1398 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:1410 +#: src/lang.c:1403 msgid "Show only groups with unread arts :" msgstr "Ainult lugemata artiklitega grupid :" -#: src/lang.c:1411 +#: src/lang.c:1404 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:1416 +#: src/lang.c:1409 msgid "Filter which articles :" msgstr "Filtreeri artikleid :" -#: src/lang.c:1417 +#: src/lang.c:1410 msgid "# 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" @@ -4404,212 +4392,212 @@ msgstr "# 0=(Surma ainult lugemata artik "# 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:1424 +#: src/lang.c:1417 msgid "Tab goes to next unread article :" msgstr "Tab viib järgmisele lugemata art. :" -#: src/lang.c:1425 +#: src/lang.c:1418 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:1429 +#: src/lang.c:1422 msgid "Scrolling with past the end of an art. jumps to the next unread one." msgstr "Tühikuga artikli lõpust edasi kerimine hüppab järgmisele lugemata artiklile." -#: src/lang.c:1430 +#: src/lang.c:1423 msgid "Space goes to next unread article :" msgstr "Tühik viib järgmisele lugemata art.:" -#: src/lang.c:1431 +#: src/lang.c:1424 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:1436 +#: src/lang.c:1429 msgid "Scrolling with / past the end of an art. jumps to the unread one." msgstr "/noolega art. lõpust edasi kerimine hüppab järgmisele lugemata art." -#: src/lang.c:1437 +#: src/lang.c:1430 msgid "PgDn goes to next unread article :" msgstr "PgDn viib järgmisele lugemata art. :" -#: src/lang.c:1438 +#: src/lang.c:1431 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:1444 +#: src/lang.c:1437 msgid "List thread using right arrow key :" msgstr "Nool paremale näitab teema loendit :" -#: src/lang.c:1445 +#: src/lang.c:1438 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:1449 +#: src/lang.c:1442 msgid "Enter character to indicate deleted articles. sets, cancels." msgstr "Sisestage sümbol kustutatud artiklite märkimiseks. seab, katkestab." -#: src/lang.c:1450 +#: src/lang.c:1443 msgid "Character to show deleted articles :" msgstr "Kustutatud artiklite marker :" -#: src/lang.c:1451 +#: src/lang.c:1444 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:1456 +#: src/lang.c:1449 msgid "Enter character to indicate articles in a range. sets, cancels." msgstr "Sisestage sümbol, mis märgib vahemikku kuuluvaid artikleid. seab, " "katkestab." -#: src/lang.c:1457 +#: src/lang.c:1450 msgid "Character to show inrange articles :" msgstr "Artiklite vahemiku marker :" -#: src/lang.c:1458 +#: src/lang.c:1451 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:1463 +#: src/lang.c:1456 msgid "Enter character to indicate that article will return. sets, " "cancels." msgstr "Sisestage tagasituleva artikli marker. seab, katkestab." -#: src/lang.c:1464 +#: src/lang.c:1457 msgid "Character to show returning arts :" msgstr "Tagasi tulnud artiklite marker :" -#: src/lang.c:1465 +#: src/lang.c:1458 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:1470 +#: src/lang.c:1463 msgid "Enter character to indicate selected articles. sets, cancels." msgstr "Sisestage valitud artikleid märkiv sümbol. seab, katkestab." -#: src/lang.c:1471 +#: src/lang.c:1464 msgid "Character to show selected articles:" msgstr "Valitud artiklite marker :" -#: src/lang.c:1472 +#: src/lang.c:1465 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:1477 +#: src/lang.c:1470 msgid "Enter character to indicate recent articles. sets, cancels." msgstr "Sisestage värskeid artikleid märkiv sümbol. seab, katkestab." -#: src/lang.c:1478 +#: src/lang.c:1471 msgid "Character to show recent articles :" msgstr "Värskete artiklite marker :" -#: src/lang.c:1479 +#: src/lang.c:1472 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:1484 +#: src/lang.c:1477 msgid "Enter character to indicate unread articles. sets, cancels." msgstr "Sisestage lugemata artikleid märkiv sümbol. seab, katkestab." -#: src/lang.c:1485 +#: src/lang.c:1478 msgid "Character to show unread articles :" msgstr "Lugemata artiklite marker :" -#: src/lang.c:1486 +#: src/lang.c:1479 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:1491 +#: src/lang.c:1484 msgid "Enter character to indicate read articles. sets, cancels." msgstr "Sisestage loetud artikleid märkiv sümbol. seab, katkestab." -#: src/lang.c:1492 +#: src/lang.c:1485 msgid "Character to show read articles :" msgstr "Loetud artiklite marker :" -#: src/lang.c:1493 +#: src/lang.c:1486 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:1498 +#: src/lang.c:1491 msgid "Enter character to indicate killed articles. sets, cancels." msgstr "Sisestage surmatud artikleid märkiv sümbol. seab, katkestab." -#: src/lang.c:1499 +#: src/lang.c:1492 msgid "Character to show killed articles :" msgstr "Surmatud artiklite marker :" -#: src/lang.c:1500 +#: src/lang.c:1493 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:1505 +#: src/lang.c:1498 msgid "Enter character to indicate read selected articles. sets, cancels." msgstr "Sisestage valitud artikleid märkiv sümbol. seab, katkestab." -#: src/lang.c:1506 +#: src/lang.c:1499 msgid "Character to show readselected arts:" msgstr "Lugemiseks valitud artiklite marker:" -#: src/lang.c:1507 +#: src/lang.c:1500 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:1512 +#: src/lang.c:1505 msgid "Enter maximum length of newsgroup names displayed. sets." msgstr "Sisestage maksimaalne näidatav grupi nime pikkus. seab." -#: src/lang.c:1513 +#: src/lang.c:1506 msgid "Max. length of group names shown :" msgstr "Maksimaalne grupinime pikkus :" -#: src/lang.c:1514 +#: src/lang.c:1507 msgid "# Maximum length of the names of newsgroups displayed\n" msgstr "# Maksimaalne grupi nime pikkus, mida näidatakse ekraanil\n" -#: src/lang.c:1519 +#: src/lang.c:1512 msgid "Show lines/score in listings :" msgstr "Näita loendis artikli kaalu/ridu :" -#: src/lang.c:1520 +#: src/lang.c:1513 msgid "# What informations should be displayed in article/thread listing\n" "# 0 = nothing, 1 = lines, 2 = score, 3 = lines & score\n" msgstr "# Millist informatsiooni tuleks näidata artikli/teema loendis\n" "# 0 = midagi, 1 = ridu, 2 = kaalu, 3 = ridu ja kaalu\n" -#: src/lang.c:1525 +#: src/lang.c:1518 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:1526 +#: src/lang.c:1519 msgid "Number of lines to scroll in pager :" msgstr "Lehitsejas keritavate ridade arv :" -#: src/lang.c:1527 +#: src/lang.c:1520 msgid "# Number of lines that cursor-up/down will scroll in article pager\n" "# eg, 1+ = line-by-line, 0 = page-by-page (traditional behavior),\n" "# -1 = the top/bottom line is carried over onto the next page,\n" @@ -4619,27 +4607,27 @@ msgstr "# Ridade arv, mida lehitseja ker "# -1 = ülemine või alumine rida jäetakse järgmisele lehele\n" "# -2 = poole lehe kaupa kerimine\n" -#: src/lang.c:1534 +#: src/lang.c:1527 msgid "Display signatures. toggles & sets." msgstr "Näita signatuure, lülitab, seab." -#: src/lang.c:1535 +#: src/lang.c:1528 msgid "Display signatures :" msgstr "Näita signatuure :" -#: src/lang.c:1536 +#: src/lang.c:1529 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:1540 +#: src/lang.c:1533 msgid "Display uuencoded data as tagged attachments. toggles & sets." msgstr "Näita uuenkodeeritud andmeid märgitud lisadena. lülitab ja seab." -#: src/lang.c:1541 +#: src/lang.c:1534 msgid "Display uue data as an attachment :" msgstr "Näita uuenk. andmeid lisadena :" -#: src/lang.c:1542 +#: src/lang.c:1535 msgid "# Handling of uuencoded data in the pager\n" "# 0 = display raw uuencoded data\n" "# 1 = uuencoded data will be condensed to a single tag line showing\n" @@ -4654,30 +4642,30 @@ msgstr "# uuenkodeeritud andmete käsitle "# märgituna.\n" # -#: src/lang.c:1551 +#: src/lang.c:1544 msgid "Decode German style TeX umlaut codes to ISO. toggles & sets." msgstr "Dekodeeri saksa TeX esituses tähed ISO koodideks. lülitab, seab." # -#: src/lang.c:1552 +#: src/lang.c:1545 msgid "Display \"a as Umlaut-a :" msgstr "Näita \"a kui Umlaut-a :" -#: src/lang.c:1553 +#: src/lang.c:1546 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:1558 src/lang.c:1568 +#: src/lang.c:1551 src/lang.c:1561 msgid "Space separated list of header fields" msgstr "Tühikuga eraldatud päised" -#: src/lang.c:1559 +#: src/lang.c:1552 msgid "Display these header fields (or *) :" msgstr "Näita neid päiseid (või *) :" -#: src/lang.c:1560 +#: src/lang.c:1553 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" @@ -4692,11 +4680,11 @@ msgstr "# Milliseid artikli päiseid te s "tühikut.\n" "# Kui te väärtust ei määra, lülitatakse see omadus välja.\n" -#: src/lang.c:1569 +#: src/lang.c:1562 msgid "Do not display these header fields :" msgstr "Ära näita neid päiseridu :" -#: src/lang.c:1570 +#: src/lang.c:1563 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 " @@ -4714,28 +4702,28 @@ msgstr "# Sama kui 'news_headers_to_disp "#\n" "# Kui te väärtust ei määra, lülitatakse see omadus välja.\n" -#: src/lang.c:1580 +#: src/lang.c:1573 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:1581 +#: src/lang.c:1574 msgid "Skip multipart/alternative parts :" msgstr "Jäta multipart/alternative osad :" -#: src/lang.c:1582 +#: src/lang.c:1575 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:1587 +#: src/lang.c:1580 msgid "A regex used to decide which lines to show in col_quote." msgstr "Regulaaravaldis otsustamaks, milliseid ridu tsitaatides näidata." -#: src/lang.c:1588 +#: src/lang.c:1581 msgid "Regex used to show quoted lines :" msgstr "Tsiteeritud ridade näitamise regex :" -#: src/lang.c:1589 +#: src/lang.c:1582 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" @@ -4743,15 +4731,15 @@ msgstr "# Regulaaravaldis, mida tin kasu "# milliseid read on tsiteeritud. Tsiteeritud ridu näidatakse col_quote.\n" "# Kui te jätate selle tühjaks, kasutab tin sisseehitatud väärtust.\n" -#: src/lang.c:1595 +#: src/lang.c:1588 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:1596 +#: src/lang.c:1589 msgid "Regex used to show twice quoted l. :" msgstr "Topelt tsiteeritud ridu näitav reg :" -#: src/lang.c:1597 +#: src/lang.c:1590 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" @@ -4760,15 +4748,15 @@ msgstr "# Regulaaravaldis, mida tin kasu "# näidatakse col_quote2.\n" "# Kui te jätate selle tühjaks, kasutab tin sisseehitatud väärtust.\n" -#: src/lang.c:1603 +#: src/lang.c:1596 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:1604 +#: src/lang.c:1597 msgid "Regex used to show >= 3 times q.l. :" msgstr ">= 3 tsiteeritud ridu näitav reg :" -#: src/lang.c:1605 +#: src/lang.c:1598 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" @@ -4777,15 +4765,15 @@ msgstr "# Regulaaravaldis, mida tin kasu "# näidatakse col_quote3.\n" "# Kui te jätate selle tühjaks, kasutab tin sisseehitatud väärtust.\n" -#: src/lang.c:1612 +#: src/lang.c:1605 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:1613 +#: src/lang.c:1606 msgid "Regex used to highlight /slashes/ :" msgstr "Regex et esile tõsta /kaldkriipse/ :" -#: src/lang.c:1614 +#: src/lang.c:1607 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" @@ -4793,15 +4781,15 @@ msgstr "# Regulaaravaldis mida tin kasut "# sõnu näidata col_markslashes abil. Kui jätate selle tühjaks, kasutab\n" "# tin sisse ehitatud vaikeväärtust.\n" -#: src/lang.c:1620 +#: src/lang.c:1613 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:1621 +#: src/lang.c:1614 msgid "Regex used to highlight *stars* :" msgstr "Regex et esile tõsta *tärne* :" -#: src/lang.c:1622 +#: src/lang.c:1615 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" @@ -4809,15 +4797,15 @@ msgstr "# Regulaaravaldis mida tin kasut "# sõnu näidata col_markstars abil. Kui jätate selle tühjaks, kasutab\n" "# tin sisse ehitatud vaikeväärtust.\n" -#: src/lang.c:1628 +#: src/lang.c:1621 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:1629 +#: src/lang.c:1622 msgid "Regex used to highlight -strokes- :" msgstr "Regex et esile tõsta -kriipse- :" -#: src/lang.c:1630 +#: src/lang.c:1623 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" @@ -4825,15 +4813,15 @@ msgstr "# Regulaaravaldis mida tin kasut "# sõnu näidata col_markstroke abil. Kui jätate selle tühjaks, kasutab\n" "# tin sisse ehitatud vaikeväärtust.\n" -#: src/lang.c:1636 +#: src/lang.c:1629 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:1637 +#: src/lang.c:1630 msgid "Regex used to highlight _underline_:" msgstr "Regex et esile tõsta _alakriipse_ :" -#: src/lang.c:1638 +#: src/lang.c:1631 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" @@ -4841,44 +4829,44 @@ msgstr "# Regulaaravaldis mida tin kasut "# sõnu näidata col_markdash abil. Kui jätate selle tühjaks, kasutab\n" "# tin sisse ehitatud vaikeväärtust.\n" -#: src/lang.c:1644 +#: src/lang.c:1637 msgid "A regex used to find Subject prefixes to remove. Use '|' as separator." msgstr "Regulaaravaldis eemaldatava teema prefiksi leidmiseks. Eraldajaks on '|'." -#: src/lang.c:1645 +#: src/lang.c:1638 msgid "Regex with Subject prefixes :" msgstr "Regex teema prefiksi leidmiseks :" -#: src/lang.c:1646 +#: src/lang.c:1639 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:1651 +#: src/lang.c:1644 msgid "A regex used to find Subject suffixes to remove. Use '|' as separator." msgstr "Regulaaravaldis eemaldatava teema sufiksi leidmiseks. Eraldajaks on '|'." -#: src/lang.c:1652 +#: src/lang.c:1645 msgid "Regex with Subject suffixes :" msgstr "Regex teema sufiksi leidmiseks :" -#: src/lang.c:1653 +#: src/lang.c:1646 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:1658 +#: src/lang.c:1651 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:1659 +#: src/lang.c:1652 msgid "MIME binary content viewer :" msgstr "MIME kahendsisu lehitseja :" -#: src/lang.c:1660 +#: src/lang.c:1653 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" @@ -4888,372 +4876,372 @@ msgstr "# --internal korral kasuta artik "# Muidu määra automaatseks vaatamiseks väline programm (nt. metamail) või\n" "# jäta tühjaks\n" -#: src/lang.c:1667 +#: src/lang.c:1660 msgid "Confirm before starting non-text viewing program" msgstr "Küsi enne mitte-tekstiliste osade vaatamist kinnitust" -#: src/lang.c:1668 +#: src/lang.c:1661 msgid "Ask before using MIME viewer :" msgstr "Küsi MIME lehitseja kasutamise luba:" -#: src/lang.c:1669 +#: src/lang.c:1662 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:1674 +#: src/lang.c:1667 msgid "Ask to mark groups read when quitting. toggles & sets." msgstr "Küsi, kas märkida väljumisel grupid loetuks. lülitab ja seab." -#: src/lang.c:1675 +#: src/lang.c:1668 msgid "Catchup read groups when quitting :" msgstr "Väljumisel märkida grupid loetuks :" -#: src/lang.c:1676 +#: src/lang.c:1669 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:1681 +#: src/lang.c:1674 msgid "Catchup group using left key :" msgstr "Nool vasakule märgib grupi loetuks :" -#: src/lang.c:1682 +#: src/lang.c:1675 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:1687 +#: src/lang.c:1680 msgid "Catchup thread by using left key :" msgstr "Nool vasakule märgib teema loetuks :" # TRANSLATION TOO LONG -#: src/lang.c:1693 +#: src/lang.c:1686 msgid "Which actions require confirmation :" msgstr "Millised tegevused nõuavad kinnitust:" -#: src/lang.c:1694 +#: src/lang.c:1687 msgid "# What should we ask confirmation for.\n" msgstr "# Millele me peaksime küsima kinnitust.\n" -# TRANSLATION MISSING -#: src/lang.c:1699 +# TRANSLATION TOO LONG +#: src/lang.c:1692 msgid "'Mark article read' ignores tags :" -msgstr "" +msgstr "'Märgi artikkel loetuks' ignoreerib märke:" -# TRANSLATION MISSING -#: src/lang.c:1700 +#: src/lang.c:1693 msgid "# If ON the 'Mark article read' function marks only the current article.\n" -msgstr "" +msgstr "# Kui väärtus on ON märgib 'Märgi artikkel loetuks' funktsioon ainult\n" + "# jooksva artikli.\n" -#: src/lang.c:1704 +#: src/lang.c:1697 msgid "Program to run to open URL's, sets, cancels." msgstr "Programm URLide avamiseks, seab, katkestab." -#: src/lang.c:1705 +#: src/lang.c:1698 msgid "Program that opens URL's :" msgstr "Programm URLide avamiseks :" -#: src/lang.c:1706 +#: src/lang.c:1699 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:1711 +#: src/lang.c:1704 msgid "Use mouse in xterm :" msgstr "Kasuta xterm aknas hiirt :" -#: src/lang.c:1712 +#: src/lang.c:1705 msgid "# If ON enable mouse key support on xterm terminals\n" msgstr "# Kui väärtus on ON, luba xterm aknas hiire tugi\n" -#: src/lang.c:1718 +#: src/lang.c:1711 msgid "Use scroll keys on keypad :" msgstr "Kasuta kerimisnuppe :" -#: src/lang.c:1719 +#: src/lang.c:1712 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:1724 +#: src/lang.c:1717 msgid "Enter maximum number of article to get. sets." msgstr "Sisestage suurim laetavate artiklite arv. seab." -#: src/lang.c:1725 +#: src/lang.c:1718 msgid "Number of articles to get :" msgstr "Laetavate artiklite arv :" -#: src/lang.c:1726 +#: src/lang.c:1719 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:1731 +#: src/lang.c:1724 msgid "Enter number of days article is considered recent. sets." msgstr "Sisestage artikli värskuse kestus. seab." -#: src/lang.c:1732 +#: src/lang.c:1725 msgid "Article recentness time limit :" msgstr "Artikli värskuse ajapiir :" -#: src/lang.c:1733 +#: src/lang.c:1726 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:1737 +#: src/lang.c:1730 msgid "WILDMAT for normal wildcards, REGEX for full regular expression matching." msgstr "WILDMAT tavalistele jokkeritele, REGEX täisregulaaravaldistega otsimisele." -#: src/lang.c:1738 +#: src/lang.c:1731 msgid "Wildcard matching :" msgstr "Jokkeritega otsimine :" -#: src/lang.c:1739 +#: src/lang.c:1732 msgid "# Wildcard matching 0=(wildmat) 1=(regex)\n" msgstr "# Jokkeritega otsimine 0=(wildmat) 1=(regex)\n" -#: src/lang.c:1743 +#: src/lang.c:1736 msgid "Enter minimal score before an article is marked killed. sets." msgstr "Sisestage minimaalne kaal artikli surmamiseks. seab." -#: src/lang.c:1744 +#: src/lang.c:1737 msgid "Score limit (kill) :" msgstr "Kaalu alampiir (surmamine) :" -#: src/lang.c:1745 +#: src/lang.c:1738 msgid "# Score limit before an article is marked killed\n" msgstr "# Kaalu alampiir, enne kui artikkel märgitakse surmatuks\n" -#: src/lang.c:1749 +#: src/lang.c:1742 msgid "Enter default score to kill articles. sets." msgstr "Sisestage vaikimisi kaal artiklite surmamiseks. seab." # TRANSLATION TOO LONG -#: src/lang.c:1750 +#: src/lang.c:1743 msgid "Default score to kill articles :" msgstr "Vaikimisi kaal artiklite surmamiseks:" -#: src/lang.c:1751 +#: src/lang.c:1744 msgid "# Default score to kill articles\n" msgstr "# Vaikimisi kaal artiklite surmamiseks\n" -#: src/lang.c:1755 +#: src/lang.c:1748 msgid "Enter minimal score before an article is marked hot. sets." msgstr "Sisestage minimaalne kaal, enne kui artikkel märgitakse kuumaks. seab." -#: src/lang.c:1756 +#: src/lang.c:1749 msgid "Score limit (select) :" msgstr "Kaalu alampiir (valik) :" -#: src/lang.c:1757 +#: src/lang.c:1750 msgid "# Score limit before an article is marked hot\n" msgstr "# Kaalu alampiir, enne kui artikkel märgitakse muumaks\n" -#: src/lang.c:1761 +#: src/lang.c:1754 msgid "Enter default score to select articles. sets." msgstr "Sisestage vaikimisi kaal artiklite valimiseks. seab." -#: src/lang.c:1762 +#: src/lang.c:1755 msgid "Default score to select articles :" msgstr "Vaikimisi kaal artiklite valimiseks:" -#: src/lang.c:1763 +#: src/lang.c:1756 msgid "# Default score to select articles\n" msgstr "# Vaikimisi kaal artiklite valimiseks\n" # TRANSLATION TOO LONG -#: src/lang.c:1769 +#: src/lang.c:1762 msgid "Use slrnface to show ''X-Face:''s :" msgstr "Et näidata ''X-Face:'', kasutage slrnface:" -#: src/lang.c:1770 +#: src/lang.c:1763 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:1778 +#: src/lang.c:1771 msgid "Use ANSI color :" msgstr "Kasuta ANSI värve :" -#: src/lang.c:1779 +#: src/lang.c:1772 msgid "# If ON using ANSI-color\n" msgstr "# Kui väärtus on ON, kasuta ANSI värve\n" -#: src/lang.c:1784 +#: src/lang.c:1777 msgid "Standard foreground color :" msgstr "Standardne esiplaani värv :" -#: src/lang.c:1785 +#: src/lang.c:1778 msgid "# Standard foreground color\n" msgstr "# Standardne esiplaani värv\n" -#: src/lang.c:1790 +#: src/lang.c:1783 msgid "Standard background color :" msgstr "Standardne tagaplaani värv :" -#: src/lang.c:1791 +#: src/lang.c:1784 msgid "# Standard-Background-Color\n" msgstr "# Standardne tagaplaani värv\n" -#: src/lang.c:1796 +#: src/lang.c:1789 msgid "Color for inverse text (background):" msgstr "Pööratud teksti värv (tagaplaan) :" -#: src/lang.c:1797 +#: src/lang.c:1790 msgid "# Color of background for inverse text\n" msgstr "# Pööratud teksti tagaplaani värv\n" -#: src/lang.c:1802 +#: src/lang.c:1795 msgid "Color for inverse text (foreground):" msgstr "Pööratud teksti värv (esiplaan) :" -#: src/lang.c:1803 +#: src/lang.c:1796 msgid "# Color of foreground for inverse text\n" msgstr "# Pööratud teksti esiplaani värv\n" -#: src/lang.c:1808 +#: src/lang.c:1801 msgid "Color of text lines :" msgstr "Tekstiridade värv :" -#: src/lang.c:1809 +#: src/lang.c:1802 msgid "# Color of text-lines\n" msgstr "# Tekstiridade värv\n" -#: src/lang.c:1814 +#: src/lang.c:1807 msgid "Color of mini help menu :" msgstr "Miniabiinfo värv :" -#: src/lang.c:1815 +#: src/lang.c:1808 msgid "# Color of mini help menu\n" msgstr "# Miniabiinfo värv\n" -#: src/lang.c:1820 +#: src/lang.c:1813 msgid "Color of help text :" msgstr "Abiinfo värv :" -#: src/lang.c:1821 +#: src/lang.c:1814 msgid "# Color of help pages\n" msgstr "# Abiinfo värv\n" -#: src/lang.c:1826 +#: src/lang.c:1819 msgid "Color of status messages :" msgstr "Olekuteadete värv :" -#: src/lang.c:1827 +#: src/lang.c:1820 msgid "# Color of messages in last line\n" msgstr "# Viimasel real olevate teadete värv\n" -#: src/lang.c:1832 +#: src/lang.c:1825 msgid "Color of quoted lines :" msgstr "Tsitaadi värv :" -#: src/lang.c:1833 +#: src/lang.c:1826 msgid "# Color of quote-lines\n" msgstr "# Tsitaadi värv\n" -#: src/lang.c:1838 +#: src/lang.c:1831 msgid "Color of twice quoted line :" msgstr "Topelt tsiteeritud rea värv :" -#: src/lang.c:1839 +#: src/lang.c:1832 msgid "# Color of twice quoted lines\n" msgstr "# Topelt tsiteeritud rea värv\n" -#: src/lang.c:1844 +#: src/lang.c:1837 msgid "Color of =>3 times quoted line :" msgstr "=>3 korda tsiteeritud rea värv :" -#: src/lang.c:1845 +#: src/lang.c:1838 msgid "# Color of >=3 times quoted lines\n" msgstr "# =>3 korda tsiteeritud rea värv\n" -#: src/lang.c:1850 +#: src/lang.c:1843 msgid "Color of article header lines :" msgstr "Artikli päiseridade värv :" -#: src/lang.c:1851 +#: src/lang.c:1844 msgid "# Color of header-lines\n" msgstr "# Päiseridade värv\n" -#: src/lang.c:1856 +#: src/lang.c:1849 msgid "Color of actual news header fields :" msgstr "Artikli tegelike päiseridade värv :" -#: src/lang.c:1857 +#: src/lang.c:1850 msgid "# Color of actual news header fields\n" msgstr "# Artikli tegelike päiseridade värv\n" -#: src/lang.c:1862 +#: src/lang.c:1855 msgid "Color of article subject lines :" msgstr "Artikli teemarea värv :" -#: src/lang.c:1863 +#: src/lang.c:1856 msgid "# Color of article subject\n" msgstr "# Artikli teema värv\n" -#: src/lang.c:1868 +#: src/lang.c:1861 msgid "Color of response counter :" msgstr "Vastuste arvu loenduri värv :" -#: src/lang.c:1869 +#: src/lang.c:1862 msgid "# Color of response counter\n" msgstr "# Vastuste arvu loenduri värv\n" -#: src/lang.c:1874 +#: src/lang.c:1867 msgid "Color of sender (From:) :" msgstr "Saatja värv (From:) :" -#: src/lang.c:1875 +#: src/lang.c:1868 msgid "# Color of sender (From:)\n" msgstr "# Saatja värv (From:)\n" -#: src/lang.c:1880 +#: src/lang.c:1873 msgid "Color of help/mail sign :" msgstr "Abiinfo/kirja teate värv :" -#: src/lang.c:1881 +#: src/lang.c:1874 msgid "# Color of Help/Mail-Sign\n" msgstr "# Abiinfo/kirja teate värv\n" -#: src/lang.c:1886 +#: src/lang.c:1879 msgid "Color of signatures :" msgstr "Signatuuri värv :" -#: src/lang.c:1887 +#: src/lang.c:1880 msgid "# Color of signature\n" msgstr "# Signatuuri värv\n" -#: src/lang.c:1892 +#: src/lang.c:1885 msgid "Color of highlighting with *stars* :" msgstr "*tärnidega* esiletõstmise värv :" -#: src/lang.c:1893 +#: src/lang.c:1886 msgid "# Color of word highlighting. There are four possibilities\n" "# in articles: *stars*, /slashes/, _underdashes_ and -strokes-.\n" msgstr "# Sõnade esiletõstmise värv. Artiklites saab kasutada nelja võimalust:\n" "# *tärnid*, /kaldkriipsud/, _alakriipsud_ ja -kriipsud-.\n" -#: src/lang.c:1899 +#: src/lang.c:1892 msgid "Color of highlighting with _dash_ :" msgstr "_alakriipsudega_ esiletõstmise värv:" # TRANSLATION TOO LONG -#: src/lang.c:1905 +#: src/lang.c:1898 msgid "Color of highlighting with /slash/ :" msgstr "/Kaldkriipsudega/ esiletõstmise värv:" -#: src/lang.c:1911 +#: src/lang.c:1904 msgid "Color of highlighting with -stroke-:" msgstr "-Kriipsudega- esiletõstmise värv :" -#: src/lang.c:1918 +#: src/lang.c:1911 msgid "Attr. of highlighting with *stars* :" msgstr "*tärnidega* esiletõstmise atribuut :" -#: src/lang.c:1919 +#: src/lang.c:1912 msgid "# Attribute of word highlighting on mono terminals.\n" "# There are four possibilities in articles:\n" "# *stars*, /slashes/, _underdashes_ and -strokes-.\n" @@ -5267,42 +5255,42 @@ msgstr "# Sõnade esiletõstmise atribuut "# 0 - Tavaline, 1 - Allajoonitud, 2 - Parim esiletõstmine,\n" "# 3 - Pööratud video, 4 - Plinkiv, 5 - Poolhele, 6 - Paks\n" -#: src/lang.c:1929 +#: src/lang.c:1922 msgid "Attr. of highlighting with _dash_ :" msgstr "_alakriipsudega_ esiletõstmise atr.:" # TRANSLATION TOO LONG -#: src/lang.c:1935 +#: src/lang.c:1928 msgid "Attr. of highlighting with /slash/ :" msgstr "/Kaldkriipsudega/ esiletõstmise atr.:" -#: src/lang.c:1941 +#: src/lang.c:1934 msgid "Attr. of highlighting with -stroke-:" msgstr "-Kriipsudega- esiletõstmise atr. :" # TRANSLATION MISSING -#: src/lang.c:1947 +#: src/lang.c:1940 msgid "URL highlighting in message body :" msgstr "" # TRANSLATION MISSING -#: src/lang.c:1948 +#: src/lang.c:1941 msgid "# Enable URL highlighting?\n" msgstr "" -#: src/lang.c:1953 +#: src/lang.c:1946 msgid "Word highlighting in message body :" msgstr "Sõnade esiletõstmine teate kehas :" -#: src/lang.c:1954 +#: src/lang.c:1947 msgid "# Enable word highlighting?\n" msgstr "# Lubada sõnade esiletõstmine?\n" -#: src/lang.c:1959 +#: src/lang.c:1952 msgid "What to display instead of mark :" msgstr "Mida näidata märgi asemel :" -#: src/lang.c:1960 +#: src/lang.c:1953 msgid "# Should the leading and ending stars and dashes also be displayed,\n" "# even when they are highlighting marks?\n" "# 0 - no 1 - yes, display mark 2 - print a space instead\n" @@ -5310,55 +5298,55 @@ msgstr "# Kas näidata algavaid ja lõppev "# isegi, kui need on ka esiletõstmise märgid?\n" "# 0 - ei 1 - jah, näita märki 2 - trüki hoopis tühik\n" -#: src/lang.c:1966 +#: src/lang.c:1959 msgid "Enter column number to wrap article lines to in the pager. sets." msgstr "Sisestage veerg, millelt lehitseja hakkab ridu murdma. seab." -#: src/lang.c:1967 +#: src/lang.c:1960 msgid "Page line wrap column :" msgstr "Rea murdmise veerg lehitsejas :" -#: src/lang.c:1968 +#: src/lang.c:1961 msgid "# Wrap article lines at column\n" msgstr "# Murra artikli read antud veerus\n" -#: src/lang.c:1973 +#: src/lang.c:1966 msgid "Wrap around threads on next unread :" msgstr "Liigu lugemata art-le ümber teemade:" -#: src/lang.c:1974 +#: src/lang.c:1967 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:1978 +#: src/lang.c:1971 msgid "Enter default mail address (and fullname). sets." msgstr "Sisestage oma e-posti aadress (ja oma nimi). seab." -#: src/lang.c:1979 +#: src/lang.c:1972 msgid "Mail address (and fullname) :" msgstr "E-posti aadress (ja teie nimi) :" -#: src/lang.c:1980 +#: src/lang.c:1973 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:1985 +#: src/lang.c:1978 msgid "Show empty Followup-To in editor :" msgstr "Näita toimetis tühja Followup-To :" -#: src/lang.c:1986 +#: src/lang.c:1979 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:1990 +#: src/lang.c:1983 msgid "Enter path/! command/--none to create your default signature. sets." msgstr "Sisestage tee/! käsk/--none, et luua oma vaikimisi signatuur. seab." -#: src/lang.c:1991 +#: src/lang.c:1984 msgid "Create signature from path/command :" msgstr "Signatuuri loomiseks tee/käsk :" -#: src/lang.c:1992 +#: src/lang.c:1985 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 " @@ -5369,49 +5357,49 @@ msgstr "# Postitamisel/vastamisel kasuta "# default_sigfile=!käsk käivitab käsu, mis genereerib signatuuri\n" "# default_sigfile=--none ära lisa signatuuri\n" -#: src/lang.c:1999 +#: src/lang.c:1992 msgid "Prepend signature with \"-- \" on own line. toggles & sets." msgstr "Signatuurile eelnevale reale \"-- \". lülitab, seab." -#: src/lang.c:2000 +#: src/lang.c:1993 msgid "Prepend signature with \"-- \" :" msgstr "Lisa signatuuri ette \"-- \" :" -#: src/lang.c:2001 +#: src/lang.c:1994 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:2005 +#: src/lang.c:1998 msgid "Add signature when reposting articles. toggles & sets." msgstr "Lisa artikli uuestipostitamisel signatuur. lülitab, seab." -#: src/lang.c:2006 +#: src/lang.c:1999 msgid "Add signature when reposting :" msgstr "Lisa uuestipostitusel signatuur :" -#: src/lang.c:2007 +#: src/lang.c:2000 msgid "# If ON add signature to reposted articles\n" msgstr "# Kui väärtus on ON, lisa uuestipostitatud artiklile signatuur\n" -#: src/lang.c:2011 +#: src/lang.c:2004 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:2012 +#: src/lang.c:2005 msgid "Characters used as quote-marks :" msgstr "Tsiteerimise märgid :" -#: src/lang.c:2013 +#: src/lang.c:2006 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:2019 +#: src/lang.c:2012 msgid "Quoting behavior :" msgstr "Käitumine tsiteerimisel :" -#: src/lang.c:2020 +#: src/lang.c:2013 msgid "# How quoting should be handled when following up or replying.\n" "# 0 = Nothing special\n" "# 1 = Compress quotes\n" @@ -5431,15 +5419,15 @@ msgstr "# Kuidas käsitleda vastamisel ts "# 6 = Tsiteeri allkirju, tsiteeri tühje ridu\n" "# 7 = Tihenda tsitaadid, tsiteeri allkirju, tsiteeri tühje ridu\n" -#: src/lang.c:2032 src/lang.c:2040 src/lang.c:2046 +#: src/lang.c:2025 src/lang.c:2033 src/lang.c:2039 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:2033 +#: src/lang.c:2026 msgid "Quote line when following up :" msgstr "Tsiteerimise rida vastamisel :" -#: src/lang.c:2034 +#: src/lang.c:2027 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" @@ -5447,35 +5435,35 @@ msgstr "# Tsiteeriva rea vorming artikli "# %%A Aadress %%D Kuup %%F Aadr+Nimi %%G Grupp %%M Message-ID\n" "# %%N Täielik nimi %%C Eesnimi %%I Initsiaalid\n" -#: src/lang.c:2041 +#: src/lang.c:2034 msgid "Quote line when cross-posting :" msgstr "Tsiteerimise rida ristpostitusel :" -#: src/lang.c:2047 +#: src/lang.c:2040 msgid "Quote line when mailing :" msgstr "Tsiteerimise rida kirjutamisel :" -#: src/lang.c:2052 +#: src/lang.c:2045 msgid "If ON, include User-Agent: header. toggles & sets." msgstr "Kasuta User-Agent: päiserida. lülitab, seab." -#: src/lang.c:2053 +#: src/lang.c:2046 msgid "Insert 'User-Agent:'-header :" msgstr "Sisestage 'User-Agent:'-päis :" -#: src/lang.c:2054 +#: src/lang.c:2047 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:2058 +#: src/lang.c:2051 msgid "Enter charset name for MIME (e.g. US-ASCII, ISO-8859-1, EUC-KR), to set." msgstr "Sisestage MIME kooditabeli nimi (n. US-ASCII, ISO-8859-15, EUC-KR), seab." -#: src/lang.c:2059 +#: src/lang.c:2052 msgid "MM_CHARSET :" msgstr "MM_CHARSET :" -#: src/lang.c:2060 +#: src/lang.c:2053 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" @@ -5491,27 +5479,27 @@ msgstr "# Lokaalselt toetatud kooditabel "# loetakse mm_charset väärtusest erinev kooditabel mitte-näidatavaks\n" "# ja näitamisel kasutatakse '?'.\n" -#: src/lang.c:2071 +#: src/lang.c:2064 msgid "MM_NETWORK_CHARSET :" msgstr "MM_NETWORK_CHARSET :" -#: src/lang.c:2072 +#: src/lang.c:2065 msgid "# Charset used for MIME (Content-Type) header in postings.\n" msgstr "# Postituste MIME (Content-Type) päises kasutatav kooditabel.\n" -#: src/lang.c:2078 +#: src/lang.c:2071 msgid "Mailbox format :" msgstr "Kirjade kataloog :" -#: src/lang.c:2079 +#: src/lang.c:2072 msgid "# Format of the mailbox.\n" msgstr "# Kirjade kataloog.\n" -#: src/lang.c:2084 +#: src/lang.c:2077 msgid "MIME encoding in news messages :" msgstr "Kasuta artiklites MIME kodeerimist :" -#: src/lang.c:2085 +#: src/lang.c:2078 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" @@ -5523,15 +5511,15 @@ msgstr "# Vajadusel kirjade ja artiklite "# Base64 on kasulik enamuse 8 bitistele ida-aasia, kreeka ja vene\n" "# kooditabelitele, kus kasutatakse palju 8 bitiseid sümboleid.\n" -#: src/lang.c:2093 src/lang.c:2114 +#: src/lang.c:2086 src/lang.c:2107 msgid "Don't change unless you know what you are doing. cancels." msgstr "Ärge muutke, kui te ei tea, mida teete. katkestab." -#: src/lang.c:2094 +#: src/lang.c:2087 msgid "Use 8bit characters in news headers:" msgstr "Kasuta artikli päises 8bit tähti :" -#: src/lang.c:2095 +#: src/lang.c:2088 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" @@ -5541,28 +5529,28 @@ msgstr "# Kui väärtus on ON, 8bit sümbol "# 8bit sümbolid päistes kodeeritakse sõltumata selle parameetri väärtusest,\n" "# v.a. juhul, kui post_mime_encoding väärtus on samuti 8bit.\n" -#: src/lang.c:2102 +#: src/lang.c:2095 msgid "Auto-view post-processed files toggles, sets, cancels." msgstr "Vaata töödeldud faile automaatselt lülitab, seab, " "katkestab." -#: src/lang.c:2103 +#: src/lang.c:2096 msgid "View post-processed files :" msgstr "Vaata töödeldud faile :" -#: src/lang.c:2104 +#: src/lang.c:2097 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:2109 +#: src/lang.c:2102 msgid "MIME encoding in mail messages :" msgstr "Kasuta kirjades MIME kodeerimist :" -#: src/lang.c:2115 +#: src/lang.c:2108 msgid "Use 8bit characters in mail headers:" msgstr "Kasuta kirja päises 8bit tähti :" -#: src/lang.c:2116 +#: src/lang.c:2109 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 " @@ -5577,25 +5565,25 @@ msgstr "# Kui väärtus on ON, 8bit sümbol "# et RFC 2822 keelab 8bit sümbolid kirjade päistes, seega selle\n" "# parameetri väärtus ON ei ole soovitatav kasutada.\n" -#: src/lang.c:2126 +#: src/lang.c:2119 msgid "Strip blanks from ends of lines :" msgstr "Eemalda tühikud realõppudest :" -#: src/lang.c:2127 +#: src/lang.c:2120 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:2132 +#: src/lang.c:2125 msgid "If ON, use transliteration. toggles & sets." msgstr "Kui väärtus on ON, kasuta transliteratsiooni. lülitab, seab." -#: src/lang.c:2133 +#: src/lang.c:2126 msgid "Transliteration :" msgstr "Transliteratsioon :" -#: src/lang.c:2134 +#: src/lang.c:2127 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" @@ -5604,643 +5592,438 @@ msgstr "# Kui väärtus on ON, kasuta //TR "kasutades\n" "# üht või enamat sarnast sümbolit.\n" -#: src/lang.c:2141 +#: src/lang.c:2134 msgid "Send you a carbon copy automatically. toggles & sets." msgstr "Saada kasutajale automaatselt koopia. lülitab, seab." -#: src/lang.c:2142 +#: src/lang.c:2135 msgid "Send you a cc automatically :" msgstr "Saada automaatselt koopia :" -#: src/lang.c:2143 +#: src/lang.c:2136 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:2147 +#: src/lang.c:2140 msgid "Send you a blind carbon copy automatically. toggles & sets." msgstr "Saada automaatselt pimekoopia. lülitab, seab." -#: src/lang.c:2148 +#: src/lang.c:2141 msgid "Send you a blind cc automatically :" msgstr "Saada automaatselt pimekoopia :" -#: src/lang.c:2149 +#: src/lang.c:2142 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:2153 +#: src/lang.c:2146 msgid "Enter address elements about which you want to be warned. sets." msgstr "Sisestage aadressi komponendid, mille eest peaks hoiatama. seab." -#: src/lang.c:2154 +#: src/lang.c:2147 msgid "Spamtrap warning address parts :" msgstr "Rämpsposti hoiatus aadressi osadele:" -#: src/lang.c:2155 +#: src/lang.c:2148 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:2160 +#: src/lang.c:2153 msgid "Enter default number of days a filter entry will be valid. sets." msgstr "Sisestage kirje kehtivuse aeg päevades. seab." -#: src/lang.c:2161 +#: src/lang.c:2154 msgid "No. of days a filter entry is valid:" msgstr "Filtri kehtivus päevades :" -#: src/lang.c:2162 +#: src/lang.c:2155 msgid "# Number of days a short term filter will be active\n" msgstr "# lühiajalise filtri kehtivus päevades\n" -#: src/lang.c:2166 +#: src/lang.c:2159 msgid "Add posted articles to filter. toggles & sets." msgstr "Lisage postitatud artikkel filtrisse. lülitab, seab." -#: src/lang.c:2167 +#: src/lang.c:2160 msgid "Add posted articles to filter :" msgstr "Lisage postitatud artikkel filtrile:" -#: src/lang.c:2168 +#: src/lang.c:2161 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:2172 +#: src/lang.c:2165 msgid "The directory where articles/threads are to be saved in mailbox format." msgstr "Kataloog, kuhu artikleid/teemasid salvestatakse kirjaformaadis." -#: src/lang.c:2173 +#: src/lang.c:2166 msgid "Mail directory :" msgstr "Kirjade kataloog :" -#: src/lang.c:2174 +#: src/lang.c:2167 msgid "# (-m) directory where articles/threads are saved in mailbox format\n" msgstr "# (-m) kataloog, kuhu artikleid/teemasid salvestatakse kirjaformaadis\n" -#: src/lang.c:2179 +#: src/lang.c:2172 msgid "Save articles in batch mode (-S) :" msgstr "Salvesta artiklid pakettmoodis (-S):" -#: src/lang.c:2180 +#: src/lang.c:2173 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:2185 +#: src/lang.c:2178 msgid "The directory where you want articles/threads saved." msgstr "Kataloog, kuhu te soovite artikleid salvestada." -#: src/lang.c:2186 +#: src/lang.c:2179 msgid "Directory to save arts/threads in :" msgstr "Kataloog artiklite salvestamiseks :" -#: src/lang.c:2187 +#: src/lang.c:2180 msgid "# Directory where articles/threads are saved\n" msgstr "# Kataloog, kuhu salvestatakse artiklid/teemad\n" -#: src/lang.c:2191 +#: src/lang.c:2184 msgid "Auto save article/thread by Archive-name: header. toggles & sets." msgstr "Salvesta artiklid Archive-name: päiserea järgi. lülitab, seab." -#: src/lang.c:2192 +#: src/lang.c:2185 msgid "Use Archive-name: header for save :" msgstr "Kasuta salvestamisel Archive-name: :" -#: src/lang.c:2193 +#: src/lang.c:2186 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:2198 +#: src/lang.c:2191 msgid "Mark saved articles/threads as read. toggles, sets, " "cancels." msgstr "Märgi salvestatud artiklid loetuks. lülitab, seab, " "katkestab." -#: src/lang.c:2199 +#: src/lang.c:2192 msgid "Mark saved articles/threads as read:" msgstr "Märgi salvestatud artiklid loetuks :" -#: src/lang.c:2200 +#: src/lang.c:2193 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:2204 +#: src/lang.c:2197 msgid "Do post processing (eg. extract attachments) for saved articles." msgstr "Teosta salvestatud artiklitel järeltöötlemist (nt. lisade eraldamist)." -#: src/lang.c:2205 +#: src/lang.c:2198 msgid "Post process saved articles :" msgstr "Salvestatud artikl. järeltöötlemine:" -#: src/lang.c:2206 +#: src/lang.c:2199 msgid "# Perform post processing (saving binary attachments) from saved articles.\n" "# 0=(no) 1=(yes) 2=(extract shell archives (shar) only)\n" msgstr "# Teosta salvestatud artiklite järeltöötlemist (lisade eraldamine).\n" "# 0=(ei) 1=(jah) 2=(eralda ainult shelli arhiivid (shar))\n" -#: src/lang.c:2212 +#: src/lang.c:2205 msgid "Process only unread articles :" msgstr "Töötle ainult lugemata artikleid :" -#: src/lang.c:2213 +#: src/lang.c:2206 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:2218 +#: src/lang.c:2211 msgid "Print all or just part of header. toggles & sets." msgstr "Trüki kõik või ainult osa päisest. lülitab, seab." -#: src/lang.c:2219 +#: src/lang.c:2212 msgid "Print all headers when printing :" msgstr "Trükkimisel trüki kõik päised :" -#: src/lang.c:2220 +#: src/lang.c:2213 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:2224 +#: src/lang.c:2217 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:2225 +#: src/lang.c:2218 msgid "Printer program with options :" msgstr "Trükikäsk koos võtmetega :" -#: src/lang.c:2226 +#: src/lang.c:2219 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:2232 +#: src/lang.c:2225 msgid "Force redraw after certain commands:" msgstr "Värskenda ekraani peale käske :" -#: src/lang.c:2233 +#: src/lang.c:2226 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:2237 +#: src/lang.c:2230 msgid "Start editor with line offset. toggles, sets, cancels." msgstr "Käivita tekstitoimeti etteantud real. lülitab, seab, " "katkestab." -#: src/lang.c:2238 +#: src/lang.c:2231 msgid "Start editor with line offset :" msgstr "Käivita tekstitoimeti reanumbril :" -#: src/lang.c:2239 +#: src/lang.c:2232 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:2244 +#: src/lang.c:2237 msgid "Enter %E for editor, %F for filename, %N for line-number, to set." msgstr "Kasutage %E toimeti kohal, %F failinime kohal, %N reanumbrina, seab." -#: src/lang.c:2245 +#: src/lang.c:2238 msgid "Invocation of your editor :" msgstr "Teie tekstitoimeti :" -#: src/lang.c:2246 +#: src/lang.c:2239 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:2251 +#: src/lang.c:2244 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:2252 +#: src/lang.c:2245 msgid "External inews :" msgstr "Väline inews :" -#: src/lang.c:2253 +#: src/lang.c:2246 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:2257 +#: src/lang.c:2250 msgid "Enter %M for mailer, %S for subject, %T for to, %F for filename, to set." msgstr "Kasutage %M programmi kohal, %S teema kohal, %T saaja kohal, %F failinime " "kohal, seab." -#: src/lang.c:2258 +#: src/lang.c:2251 msgid "Invocation of your mail command :" msgstr "Teie e-posti käsk :" -#: src/lang.c:2259 +#: src/lang.c:2252 msgid "# Format of mailer line including parameters\n" - "# %%M Mailer %%S Subject %%T To %%F Filename %%U User (AmigaDOS)\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 %%U Kasutaja (AmigaDOS)\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:2267 +#: src/lang.c:2260 msgid "Use interactive mail reader :" msgstr "Kasuta interaktiivset e-posti :" # TRANSLATION MISSING -#: src/lang.c:2268 +#: src/lang.c:2261 msgid "# Interactive mailreader:\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:2276 +#: src/lang.c:2269 msgid "Remove ~/.article after posting :" msgstr "Eemalda ~/.article peale postitust :" -#: src/lang.c:2277 +#: src/lang.c:2270 msgid "# If ON remove ~/.article after posting.\n" msgstr "# Kui väärtus on ON, kustuta ~/.article peale postitust.\n" -#: src/lang.c:2281 +#: src/lang.c:2274 msgid "Filename for all posted articles, sets, no filename=do not save." msgstr "Failinimi postitatud artiklitele. seab. Nime puudumisel ei salvestata." -#: src/lang.c:2282 +#: src/lang.c:2275 msgid "Filename for posted articles :" msgstr "Failinimi postitatud artiklitele :" -#: src/lang.c:2283 +#: src/lang.c:2276 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:2288 +#: src/lang.c:2281 msgid "Keep all failed articles in ~/dead.articles. toggles & sets." msgstr "Hoia ebaõnnestunud postitused failis ~/dead.articles. lülitab ja " "seab." -#: src/lang.c:2289 +#: src/lang.c:2282 msgid "Keep failed arts in ~/dead.articles:" msgstr "Vigased artiklid ~/dead.articles :" -#: src/lang.c:2290 +#: src/lang.c:2283 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:2294 +#: src/lang.c:2287 msgid "Do you want to strip unsubscribed groups from .newsrc" msgstr "Kas te soovite eemaldada tellimata grupid .newsrc failist" -#: src/lang.c:2295 +#: src/lang.c:2288 msgid "No unsubscribed groups in newsrc :" msgstr "newsrcs ainult tellitud grupid :" -#: src/lang.c:2296 +#: src/lang.c:2289 msgid "# If ON strip unsubscribed groups from newsrc\n" msgstr "# Kui väärtus on ON, eemalda tellimata grupid newsrc failist\n" -#: src/lang.c:2301 +#: src/lang.c:2294 msgid "Remove bogus groups from newsrc :" msgstr "Eemalda olematud grupid newsrcst :" -#: src/lang.c:2302 +#: src/lang.c:2295 msgid "# What to do with bogus groups in newsrc file\n" "# 0=(Keep) 1=(Remove) 2=(Highlight with D on selection screen).\n" msgstr "# Mida teha olematute gruppidega newsrc failis\n" "# 0 =(Hoia alles) 1=(Eemalda) 2=(Märgi valikuekraanil D lipuga).\n" -#: src/lang.c:2306 +#: src/lang.c:2299 msgid "Enter number of seconds until active file will be reread. sets." msgstr "Sisestage aktiivsete faili lugemise intervall sekundites. seab." -#: src/lang.c:2307 +#: src/lang.c:2300 msgid "Interval in secs to reread active :" msgstr "Aktiivsete faili lugemise intervall:" -#: src/lang.c:2308 +#: src/lang.c:2301 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:2313 +#: src/lang.c:2306 msgid "Reconnect to server automatically :" msgstr "Taasta automaatselt NNTP ühendus :" -#: src/lang.c:2314 +#: src/lang.c:2307 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:2318 +#: src/lang.c:2311 msgid "Create local copies of NNTP overview files. toggles & sets." msgstr "Loo NNTP overview failidest lokaalne koopia. lülitab ja seab." -#: src/lang.c:2319 +#: src/lang.c:2312 msgid "Cache NNTP overview files locally :" msgstr "Puhverda NNTP overview lokaalselt :" -#: src/lang.c:2320 +#: src/lang.c:2313 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/main.c:619 +# TRANSLATION MISSING +#: src/lang.c:2317 +msgid "Enter format string. sets, cancels." +msgstr "" + +# TRANSLATION MISSING +#: src/lang.c:2318 +msgid "Format string for display of dates :" +msgstr "" + +# TRANSLATION MISSING +#: src/lang.c:2319 +msgid "# Format string for date representation\n" +msgstr "" + +#: src/main.c:590 #, c-format msgid "Version: %s release %s (\"%s\") %s %s" msgstr "Versioon: %s väljalase %s (\"%s\") %s %s" -#: src/main.c:622 +#: src/main.c:593 #, c-format msgid "Version: %s release %s (\"%s\")" msgstr "Versioon: %s väljalase %s (\"%s\")" -#: src/nntplib.c:804 +#: src/newsrc.c:432 +msgid "Unreachable?\n" +msgstr "Kättesaamatu?\n" + +#: src/nntplib.c:821 #, c-format msgid "\n" "Server timed out, trying reconnect # %d\n" msgstr "\n" "Ühendus serveriga aegus, proovin taastada, katse %d\n" -#: src/nntplib.c:822 +#: src/nntplib.c:839 msgid "Rejoin current group\n" msgstr "Taasühinen jooksva grupiga\n" -#: src/nntplib.c:829 +#: src/nntplib.c:846 #, c-format msgid "Read (%s)\n" msgstr "Lugesin (%s)\n" -#: src/nntplib.c:831 +#: src/nntplib.c:848 #, c-format msgid "Resend last command (%s)\n" msgstr "Saada viimane käsk uuesti (%s)\n" -#: src/nntplib.c:951 -msgid "100 Help text on way" -msgstr "100 Abitekst on tulemas" - -#: src/nntplib.c:955 -msgid "180 Authorization capabilities" -msgstr "180 Autoriseerimis võimalused" - -#: src/nntplib.c:959 -msgid "199 Debug output" -msgstr "199 Silumise väljund" - -#: src/nntplib.c:963 -msgid "200 Hello; you can post" -msgstr "200 Tere; te võite postitada" - -#: src/nntplib.c:967 -msgid "201 Hello; you can't post" -msgstr "200 Tere; te ei saa postitada" - -#: src/nntplib.c:971 -msgid "202 Slave status noted" -msgstr "202 Alamserveri olek teadustatud" - -#: src/nntplib.c:979 -msgid "211 Group selected" -msgstr "211 Grupp valitud" - -#: src/nntplib.c:984 -msgid "215 Newsgroups follow" -msgstr "215 Grupid järgnevad" - -#: src/nntplib.c:989 -msgid "218 Group index file follows" -msgstr "218 Grupi indeksfail järgneb" - -#: src/nntplib.c:994 -msgid "220 Article (head & body) follows" -msgstr "220 Artikkel (päis ja keha) järgneb" - -#: src/nntplib.c:998 -msgid "221 Head follows" -msgstr "221 Päis järgneb" - -#: src/nntplib.c:1002 -msgid "222 Body follows" -msgstr "222 Keha järgneb" - -#: src/nntplib.c:1006 -msgid "223 No text sent -- stat, next, last" -msgstr "223 Teksti ei saadetud -- stat, next, last" - -#: src/nntplib.c:1010 -msgid "230 New articles by message-id follow" -msgstr "230 Uute artiklite message-id järgnevad" - -#: src/nntplib.c:1014 -msgid "231 New newsgroups follow" -msgstr "231 Uued grupid järgnevad" - -#: src/nntplib.c:1018 -msgid "235 Article transferred successfully" -msgstr "235 Artikkel on edukalt edastatud" - -#: src/nntplib.c:1022 -msgid "240 Article posted successfully" -msgstr "240 Artikkel on edukalt postitatud" - -#: src/nntplib.c:1026 -msgid "280 Authorization system ok" -msgstr "280 Autoriseerimissüsteem ok" - -#: src/nntplib.c:1030 -msgid "281 Authorization (user/pass) ok" -msgstr "281 Autoriseerimine (kasutaja/parool) ok" - -#: src/nntplib.c:1034 -msgid "282 binary data follows" -msgstr "282 kahendandmed järgnevad" - -#: src/nntplib.c:1038 -msgid "283 spooldir list follows" -msgstr "283 spooldir nimekiri järgneb" - -#: src/nntplib.c:1042 -msgid "284 Switching to a different spooldir" -msgstr "284 Lülitun teisele spooldirile" - -#: src/nntplib.c:1046 -msgid "285 Still using same spooldir" -msgstr "285 Kasutan ikka endist spooldiri" - -#: src/nntplib.c:1050 -msgid "286 Current spooldir" -msgstr "286 Jooksev spooldir" - -#: src/nntplib.c:1054 -msgid "287 Available spooldir" -msgstr "287 Kasutatav spooldir" - -#: src/nntplib.c:1058 -msgid "288 Unavailable spooldir or invalid entry" -msgstr "288 spooldir pole kasutatav või on vigane" - -#: src/nntplib.c:1062 -msgid "335 Continue to send article" -msgstr "335 Jätka artikli edastamist" - -#: src/nntplib.c:1066 -msgid "340 Continue to post article" -msgstr "340 Jätka artikli postitamist" - -#: src/nntplib.c:1070 -msgid "380 authorization is required" -msgstr "380 nõuame autoriseerimist" - -#: src/nntplib.c:1074 -msgid "381 authorization data required" -msgstr "381 autoriseerimise info on nõutav" - -#: src/nntplib.c:1078 -msgid "400 Have to hang up for some reason" -msgstr "400 Pean miskipärast ühenduse katkestama" - -#: src/nntplib.c:1082 -msgid "411 No such newsgroup" -msgstr "411 Gruppi pole" - -#: src/nntplib.c:1086 -msgid "412 Not currently in newsgroup" -msgstr "412 Pole grupis" - -#: src/nntplib.c:1090 -msgid "418 No index file for this group" -msgstr "418 Sellel grupil pole indeks faili" - -#: src/nntplib.c:1094 -msgid "420 No current article selected" -msgstr "420 Jooksvat artiklit pole valitud" - -#: src/nntplib.c:1098 -msgid "421 No next article in this group" -msgstr "421 Selles grupis pole järgmist artiklit" - -#: src/nntplib.c:1102 -msgid "422 No previous article in this group" -msgstr "422 Selles grupis pole eelmist artiklit" - -#: src/nntplib.c:1106 -msgid "423 No such article in this group" -msgstr "423 Selles grupis pole sellist artiklit" - -#: src/nntplib.c:1110 -msgid "430 No such article at all" -msgstr "430 Sellist artiklit pole" - -#: src/nntplib.c:1114 -msgid "435 Already got that article, don't send" -msgstr "435 Sain juba selle artikli, ära uuesti saada" - -#: src/nntplib.c:1118 -msgid "436 Transfer failed" -msgstr "436 Ülekanne ebaõnnestus" - -#: src/nntplib.c:1122 -msgid "437 Article rejected, don't resend" -msgstr "437 Artikkel lükati tagasi, ära uueasti saada" - -#: src/nntplib.c:1126 -msgid "440 Posting not allowed" -msgstr "440 Postitamine pole lubatud" - -#: src/nntplib.c:1130 -msgid "441 Posting failed" -msgstr "441 Postitamine ebaõnnestus" - -#: src/nntplib.c:1134 -msgid "480 authorization required for command" -msgstr "480 käsk nõuab autoriseerimist" - -#: src/nntplib.c:1138 -msgid "481 Authorization system invalid" -msgstr "481 Autoriseerimise süsteem on vigane" - -#: src/nntplib.c:1142 -msgid "482 Authorization data rejected" -msgstr "482 Autoriseerimise andmed pole vastuvõetavad" - -#: src/nntplib.c:1146 -msgid "483 Invalid alias on spooldir cmd" -msgstr "483 Vigane spooldir käsu lühend" - -#: src/nntplib.c:1150 -msgid "484 No spooldir file found" -msgstr "484 Spooldir faili pole" - -#: src/nntplib.c:1154 -msgid "500 Command not recognized" -msgstr "500 Tundmatu käsk" - -#: src/nntplib.c:1158 -msgid "501 Command syntax error" -msgstr "501 Süntaksi viga käsus" - -#: src/nntplib.c:1162 -msgid "502 Access to server denied" -msgstr "502 Serverile pole juurdepääsu" - -#: src/nntplib.c:1167 -msgid "503 Program fault, command not performed" -msgstr "503 Programmi tõrge, käsku ei täidetud" - -#: src/nntplib.c:1171 -msgid "580 Authorization Failed" -msgstr "580 Autoriseerimine ebaõnnestus" - -#: src/nntplib.c:1175 -msgid "Unknown NNTP response code" -msgstr "Tundmatu NNTP vastusekood" - #: src/nrctbl.c:172 #, c-format msgid "couldn't expand %s\n" msgstr "ei saa laiendada %s\n" -#: src/open.c:1123 -msgid "Unreachable?\n" -msgstr "Kättesaamatu?\n" - -#: src/post.c:1749 +#: src/post.c:1747 #, c-format msgid "%s is bogus" msgstr "gruppi %s pole" -#: src/post.c:1936 +#: src/post.c:1934 #, c-format msgid "Posting: %.*s ..." msgstr "Postitan: %.*s ..." #. TODO: -> lang.c -#: src/post.c:4034 +#: src/post.c:4037 #, c-format msgid "Rereading %s..." msgstr "Loen %s uuesti..." #. fp #. Check if okay to read -#: src/read.c:219 +#: src/read.c:214 msgid "Aborting read, please wait..." msgstr "Katkestan lugemise, palun oodake..." -#: src/read.c:366 +#: src/read.c:361 msgid "Aborted read\n" msgstr "Katkestatud lugemine\n" -#: src/read.c:422 +#: src/read.c:417 msgid "Draining\n" msgstr "Tühjendan\n" Binary files tin-1.7.1/po/fr.gmo and tin-1.7.2/po/fr.gmo differ diff -Nurp tin-1.7.1/po/fr.po tin-1.7.2/po/fr.po --- tin-1.7.1/po/fr.po Thu Sep 18 18:32:23 2003 +++ tin-1.7.2/po/fr.po Sun Oct 19 00:57:53 2003 @@ -3,7 +3,7 @@ # msgid "" msgstr "Project-Id-Version: 1.7.0\n" - "POT-Creation-Date: 2003-09-18 18:31+0200\n" + "POT-Creation-Date: 2003-10-19 00:55+0200\n" "PO-Revision-Date: 2003-07-04 04:15+0200\n" "Last-Translator: Matt Anton \n" @@ -11,227 +11,230 @@ msgstr "Project-Id-Version: 1.7.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" -#: src/art.c:1228 +#: src/art.c:1423 #, c-format msgid "%d Bad overview record (%d fields) '%s'" msgstr "" -#: src/attrib.c:574 +#: src/attrib.c:580 msgid "# Do not edit this comment block\n" "#\n" msgstr "# Ne pas éditer ce commentaire\n" "#\n" -#: src/attrib.c:575 +#: src/attrib.c:581 msgid "# scope=STRING (ie. alt.*,!alt.bin*) [mandatory]\n" msgstr "# scope=TERME (pe. alt.*,!alt.bin*) [obligatoire]\n" -#: src/attrib.c:576 +#: src/attrib.c:582 msgid "# maildir=STRING (ie. ~/Mail)\n" msgstr "# maildir=TERME (pe. ~/Mail)\n" -#: src/attrib.c:577 +#: src/attrib.c:583 msgid "# savedir=STRING (ie. ~user/News)\n" msgstr "# savedir=TERME (pe. ~user/News)\n" -#: src/attrib.c:578 +#: src/attrib.c:584 msgid "# savefile=STRING (ie. =linux)\n" msgstr "# savefile=TERME (pe. =linux)\n" -#: src/attrib.c:579 +#: src/attrib.c:585 msgid "# sigfile=STRING (ie. $var/sig)\n" msgstr "# sigfile=TERME (pe. $var/sig)\n" -#: src/attrib.c:580 +#: src/attrib.c:586 msgid "# organization=STRING (if beginning with '/' read from file)\n" msgstr "# organization=TERME (si commence par '/' lire dans fichier)\n" -#: src/attrib.c:581 +#: src/attrib.c:587 msgid "# followup_to=STRING\n" msgstr "# followup_to=TERME\n" -#: src/attrib.c:582 +#: src/attrib.c:588 msgid "# mailing_list=STRING (ie. majordomo@example.org)\n" msgstr "# mailing_list=TERME (pe. majordomo@example.org)\n" -#: src/attrib.c:583 +#: src/attrib.c:589 msgid "# x_headers=STRING (ie. ~/.tin/extra-headers)\n" msgstr "# x_headers=TERME (pe. ~/.tin/extra-headers)\n" -#: src/attrib.c:584 +#: src/attrib.c:590 msgid "# x_body=STRING (ie. ~/.tin/extra-body-text)\n" msgstr "# x_body=TERME (pe. ~/.tin/extra-body-text)\n" -#: src/attrib.c:585 +#: src/attrib.c:591 msgid "# from=STRING (just append wanted From:-line, don't use quotes)\n" msgstr "# from=TERME (choix du From:-ligne:, ne pas utiliser celui cité)\n" -#: src/attrib.c:586 +#: src/attrib.c:592 msgid "# news_quote_format=STRING\n" msgstr "# news_quote_format=TERME\n" -#: src/attrib.c:587 +#: src/attrib.c:593 msgid "# quote_chars=STRING (%%s, %%S for initials)\n" msgstr "# quote_chars=TERME (%%s, %%S pour les initiales)\n" -#: src/attrib.c:588 +#: src/attrib.c:594 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:590 +#: src/attrib.c:596 msgid "# ispell=STRING\n" msgstr "# ispell=TERME\n" -#: src/attrib.c:592 +#: src/attrib.c:598 msgid "# auto_select=ON/OFF\n" msgstr "# auto_select=ON/OFF\n" -#: src/attrib.c:593 +#: src/attrib.c:599 msgid "# auto_save=ON/OFF\n" msgstr "# auto_save=ON/OFF\n" -#: src/attrib.c:594 +#: src/attrib.c:600 msgid "# batch_save=ON/OFF\n" msgstr "# batch_save=ON/OFF\n" -#: src/attrib.c:595 +#: src/attrib.c:601 msgid "# delete_tmp_files=ON/OFF\n" msgstr "# delete_tmp_files=ON/OFF\n" -#: src/attrib.c:596 +#: src/attrib.c:602 msgid "# show_only_unread=ON/OFF\n" msgstr "# show_only_unread=ON/OFF\n" -#: src/attrib.c:597 +#: src/attrib.c:603 msgid "# thread_arts=NUM" msgstr "# thread_arts=NUM" -#: src/attrib.c:604 +#: src/attrib.c:610 msgid "# show_author=NUM\n" msgstr "# show_author=NUM\n" -#: src/attrib.c:610 +#: src/attrib.c:616 msgid "# sort_art_type=NUM\n" msgstr "# sort_art_type=NUM\n" -#: src/attrib.c:628 +#: src/attrib.c:634 msgid "# sort_threads_type=NUM\n" msgstr "# sort_threads_type=NUM\n" -#: src/attrib.c:633 +#: src/attrib.c:639 msgid "# post_proc_type=NUM\n" msgstr "# post_proc_type=NUM\n" -#: src/attrib.c:638 +#: src/attrib.c:644 msgid "# quick_kill_scope=STRING (ie. talk.*)\n" msgstr "# quick_kill_scope=TERME (pe. talk.*)\n" -#: src/attrib.c:639 +#: src/attrib.c:645 msgid "# quick_kill_expire=ON/OFF\n" msgstr "# quick_kill_expire=ON/OFF\n" -#: src/attrib.c:640 +#: src/attrib.c:646 msgid "# quick_kill_case=ON/OFF\n" msgstr "# quick_kill_case=ON/OFF\n" -#: src/attrib.c:641 +#: src/attrib.c:647 msgid "# quick_kill_header=NUM\n" msgstr "# quick_kill_header=NUM\n" -#: src/attrib.c:642 src/attrib.c:649 +#: src/attrib.c:648 src/attrib.c:655 msgid "# 0=subj (case sensitive) 1=subj (ignore case)\n" msgstr "# 0=sujet (casse sensible) 1=sujet (ignore la casse)\n" -#: src/attrib.c:643 src/attrib.c:650 +#: src/attrib.c:649 src/attrib.c:656 msgid "# 2=from (case sensitive) 3=from (ignore case)\n" msgstr "# 2=de (casse sensible) 3=de (ignore la casse)\n" -#: src/attrib.c:644 src/attrib.c:651 +#: src/attrib.c:650 src/attrib.c:657 msgid "# 4=msgid 5=lines\n" msgstr "# 4=msgid 5=lignes\n" -#: src/attrib.c:645 +#: src/attrib.c:651 msgid "# quick_select_scope=STRING\n" msgstr "# quick_select_scope=TERME\n" -#: src/attrib.c:646 +#: src/attrib.c:652 msgid "# quick_select_expire=ON/OFF\n" msgstr "# quick_select_expire=ON/OFF\n" -#: src/attrib.c:647 +#: src/attrib.c:653 msgid "# quick_select_case=ON/OFF\n" msgstr "# quick_select_case=ON/OFF\n" -#: src/attrib.c:648 +#: src/attrib.c:654 msgid "# quick_select_header=NUM\n" msgstr "# quick_select_header=NUM\n" -#: src/attrib.c:652 +#: src/attrib.c:658 msgid "# x_comment_to=ON/OFF\n" msgstr "# x_comment_to=ON/OFF\n" -#: src/attrib.c:653 +#: src/attrib.c:659 +msgid "# fcc=STRING (eg. =mailbox)\n" +msgstr "" + +#: src/attrib.c:660 msgid "# tex2iso_conv=ON/OFF\n" msgstr "# tex2iso_conv=ON/OFF\n" -#: src/attrib.c:655 +#: src/attrib.c:662 msgid "# mm_network_charset=supported_charset" msgstr "# mm_network_charset=encodage_supporté" -#: src/attrib.c:662 +#: src/attrib.c:669 msgid "# undeclared_charset=STRING (default is US-ASCII)\n" msgstr "# undeclared_charset=TERME (défaut est US-ASCII)\n" -#: src/attrib.c:664 +#: src/attrib.c:671 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:665 +#: src/attrib.c:672 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:666 +#: src/attrib.c:673 msgid "############################################################################\n" "\n" msgstr "############################################################################\n" "\n" -#: src/attrib.c:672 +#: src/attrib.c:679 msgid "# include extra headers\n" msgstr "# inclure des en-têtes supplémentaires\n" -#: src/attrib.c:680 +#: src/attrib.c:687 msgid "# in *sources* set post process type to shar only\n" msgstr "# dans *sources* choisir le type shar en post-traitement\n" -#: src/attrib.c:684 +#: src/attrib.c:691 msgid "# in *binaries* do full post processing, remove tmp files\n" msgstr "# dans *binaries* faire traitement complet, effaçant les fichiers " "temporaires\n" -#: src/attrib.c:685 +#: src/attrib.c:692 msgid "# and set Followup-To: poster\n" msgstr "# et utiliser Followup-To: poster\n" -#: src/cook.c:799 +#: src/cook.c:809 msgid "(unknown)" msgstr "(inconnu)" #. #. * TODO: add to the right rule, give better explanation, -> lang.c #. -#: src/filter.c:604 src/filter.c:612 +#: src/filter.c:607 src/filter.c:615 msgid "Removed from the previous rule: " msgstr "Effacé de la règle précédente : " #: src/lang.c:42 -#, c-format -msgid "1 Response%s" -msgstr "1 Réponse%s" +msgid "1 Response" +msgstr "1 Réponse" #: src/lang.c:46 #, c-format @@ -577,7 +580,7 @@ msgstr "Création du fichier active des g msgid "Creating newsrc file...\n" msgstr "Création du fichier newsrc...\n" -#: src/lang.c:127 src/lang.c:1129 +#: src/lang.c:127 src/lang.c:1122 msgid "Default" msgstr "Défaut" @@ -890,7 +893,7 @@ msgstr "\n" msgid "Insecure permissions of %s (%o)" msgstr "Permissions de %s non sûres (%o)" -#: src/lang.c:199 src/open.c:1100 +#: src/lang.c:199 src/newsrc.c:409 #, c-format msgid "Invalid response to GROUP command, %s" msgstr "Réponse de la commande GROUP invalide, %s" @@ -1579,7 +1582,7 @@ msgstr "déplacer dans la liste le groupe msgid "choose next group with unread news" msgstr "choisir groupe suivant ayant articles non lus" -#: src/lang.c:387 src/lang.c:1176 +#: src/lang.c:387 src/lang.c:1169 msgid "quit" msgstr "quitter" @@ -2180,74 +2183,69 @@ msgid "No previous unread article" msgstr "Pas d'article non lu précédent" #: src/lang.c:535 -#, c-format -msgid "No responses%s" -msgstr "Pas de réponses%s" - -#: src/lang.c:536 msgid "No responses" msgstr "Pas de réponses" -#: src/lang.c:537 +#: src/lang.c:536 msgid "No responses to list in current thread" msgstr "Pas de réponses à afficher dans le fil actuel" -#: src/lang.c:538 +#: src/lang.c:537 msgid "No search string" msgstr "Pas de termes à rechercher" -#: src/lang.c:539 +#: src/lang.c:538 msgid "No subject" msgstr "Pas de sujet" -#: src/lang.c:540 +#: src/lang.c:539 #, 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:541 +#: src/lang.c:540 #, 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:542 +#: src/lang.c:541 #, c-format msgid "%s: Terminal must have clearscreen (cl) capability\n" msgstr "%s: Terminal doit avoir la fonction clearscreen (cl)\n" -#: src/lang.c:543 +#: src/lang.c:542 #, 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:544 +#: src/lang.c:543 #, 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:545 +#: src/lang.c:544 #, c-format msgid "No viewer found for %s/%s\n" msgstr "Visualiseur introuvable pour %s/%s\n" -#: src/lang.c:546 +#: src/lang.c:545 msgid "Newsgroup does not exist on this server" msgstr "Groupe inexistant sur ce serveur" -#: src/lang.c:547 +#: src/lang.c:546 #, c-format msgid "Group %s not found in active file" msgstr "Groupe %s introuvable dans le fichier active" -#: src/lang.c:548 +#: src/lang.c:547 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:549 +#: src/lang.c:548 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:550 +#: src/lang.c:549 #, c-format msgid "# NNTP-server -> newsrc translation table and NNTP-server\n" "# shortname list for %s %s\n" @@ -2275,40 +2273,40 @@ msgstr "# Serveur-NNTP -> tableau de cor "# news.ka.nu /tmp/nrc-nu kanu nu\n" "#\n" -#: src/lang.c:557 +#: src/lang.c:556 msgid "Only" msgstr "Uniquement" -#: src/lang.c:558 +#: src/lang.c:557 #, c-format msgid "Option not enabled. Recompile with %s." msgstr "Option non activée. Recompilez avec %s." -#: src/lang.c:559 +#: src/lang.c:558 msgid "Options Menu" msgstr "Menu Options" -#: src/lang.c:562 +#: src/lang.c:561 #, c-format msgid "Error in regex: %s at pos. %d '%s'" msgstr "Erreur dans la regex : %s à %d '%s'" -#: src/lang.c:563 +#: src/lang.c:562 #, c-format msgid "Error in regex: pcre internal error %d" msgstr "Erreur dans la regex : erreur pcre interne %d" -#: src/lang.c:564 +#: src/lang.c:563 #, c-format msgid "Error in regex: study - pcre internal error %s" msgstr "Erreur dans la regex : study - erreur pcre interne %s" -#: src/lang.c:565 +#: src/lang.c:564 msgid "Post a followup..." msgstr "Postage du suivi..." #. TODO: replace hardcoded key-name in txt_post_error_ask_postpone -#: src/lang.c:567 +#: src/lang.c:566 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" @@ -2316,270 +2314,270 @@ msgstr "Une erreur est survenue lors du "cette erreur est temporaire ou alors corrigeable, vous pouvez enregistrer\n" "l'article comme brouillon et le réutiliser plus tard grâce à la commande ^O.\n" -#: src/lang.c:570 +#: src/lang.c:569 msgid "Posted articles history" msgstr "Historique des articles postés" -#: src/lang.c:571 +#: src/lang.c:570 #, c-format msgid "Post to newsgroup(s) [%s]> " msgstr "Poster dans groupe(s) [%s]> " -#: src/lang.c:572 +#: src/lang.c:571 msgid "-- post processing started --" msgstr "-- post-traitement lancé --" -#: src/lang.c:573 +#: src/lang.c:572 msgid "-- post processing completed --" msgstr "-- post-traitement terminé --" -#: src/lang.c:574 +#: src/lang.c:573 #, c-format msgid "Post subject [%s]> " msgstr "Poster le sujet [%s]> " -#: src/lang.c:575 +#: src/lang.c:574 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:576 +#: src/lang.c:575 msgid "Posting article..." msgstr "Postage de l'article..." -#: src/lang.c:577 +#: src/lang.c:576 msgid "Post postponed articles [%%.*s]? (%s/%s/%s/%s/%s): " msgstr "Poster les brouillons [%%.*s] ? (%s/%s/%s/%s/%s) : " -#: src/lang.c:578 +#: src/lang.c:577 #, c-format msgid "Hot %s" msgstr "%s sélectionné" -#: src/lang.c:579 +#: src/lang.c:578 #, c-format msgid "Tagged %s" msgstr "%s marqué" -#: src/lang.c:580 +#: src/lang.c:579 #, c-format msgid "Untagged %s" msgstr "%s non marqué" -#: src/lang.c:581 +#: src/lang.c:580 msgid "Processing mail messages marked for deletion." msgstr "Traitement des emails enregistrés marqués pour effacement." -#: src/lang.c:582 +#: src/lang.c:581 msgid "Processing saved articles marked for deletion." msgstr "Traitement des articles enregistrés marqués pour effacement." -#: src/lang.c:583 +#: src/lang.c:582 #, 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:584 +#: src/lang.c:583 msgid "Article unchanged, abort mailing?" msgstr "Article inchangé, annuler l'envoi ?" -#: src/lang.c:585 +#: src/lang.c:584 #, c-format msgid "Do you want to see postponed articles (%d)?" msgstr "Voulez-vous voir les brouillons (%d) ?" -#: src/lang.c:587 +#: src/lang.c:586 msgid "Add quick kill filter?" msgstr "Ajout rapide d'un filtre d'élimination ?" -#: src/lang.c:588 +#: src/lang.c:587 msgid "Add quick selection filter?" msgstr "Ajout rapide d'un filtre de sélection ?" -#: src/lang.c:589 +#: src/lang.c:588 msgid "Do you really want to quit?" msgstr "Voulez-vous réellement quitter ?" -#: src/lang.c:590 +#: src/lang.c:589 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:591 +#: src/lang.c:590 msgid "You have tagged articles in this group - quit anyway?" msgstr "Vous avez des articles marqués dans ce groupe - tout de même quitter?" -#: src/lang.c:592 +#: src/lang.c:591 #, c-format msgid "%s=quit, %s=edit, %s=postpone: " msgstr "%s=quitter, %s=éditer, %s=brouillon : " -#: src/lang.c:593 +#: src/lang.c:592 #, c-format msgid "%s=quit %s=edit %s=save kill description: " msgstr "%s=quitter, %s=éditer, %s=enregistrer description du filtre : " -#: src/lang.c:594 +#: src/lang.c:593 #, c-format msgid "%s=quit %s=edit %s=save select description: " msgstr "%s=quitter %s=éditer %s=enregistrer la description sél. : " -#: src/lang.c:595 +#: src/lang.c:594 msgid "Do you really want to quit without saving your configuration?" msgstr "Voulez-vous réellement quitter sans enregistrer votre configuration ?" -#: src/lang.c:598 +#: src/lang.c:597 msgid "Invalid range - valid are '0-9.$' eg. 1-$" msgstr "Champ invalide - '0-9.$' pe. 1-$ est valide" -#: src/lang.c:599 +#: src/lang.c:598 msgid "Do you want to abort this operation?" msgstr "Voulez-vous annuler cette opération ?" -#: src/lang.c:600 +#: src/lang.c:599 msgid "Do you want to exit tin immediately?" msgstr "Voulez-vous quitter tin immédiatement ?" -#: src/lang.c:601 +#: src/lang.c:600 msgid "Read response> " msgstr "Lire la réponse> " -#: src/lang.c:602 +#: src/lang.c:601 msgid "Reading ('q' to quit)..." msgstr "Lecture ('q' pour quitter)..." -#: src/lang.c:603 +#: src/lang.c:602 #, c-format msgid "Reading %sarticles..." msgstr "Lecture de %sarticles..." -#: src/lang.c:604 +#: src/lang.c:603 #, c-format msgid "Reading %sattributes file...\n" msgstr "Lecture du fichier %sattributes...\n" -#: src/lang.c:605 +#: src/lang.c:604 #, c-format msgid "Reading %sconfig file...\n" msgstr "Lecture du fichier %sconfig...\n" -#: src/lang.c:606 +#: src/lang.c:605 msgid "Reading filter file...\n" msgstr "Lecture du fichier filter...\n" -#: src/lang.c:607 +#: src/lang.c:606 #, c-format msgid "Reading %s groups..." msgstr "Lecture de %s groupes..." -#: src/lang.c:608 +#: src/lang.c:607 msgid "Reading input history file...\n" msgstr "Lecture du fichier d'historique...\n" -#: src/lang.c:609 +#: src/lang.c:608 msgid "Reading keymap file...\n" msgstr "Lecture du fichier keymap...\n" -#: src/lang.c:610 +#: src/lang.c:609 msgid "Reading groups from active file... " msgstr "Lecture des groupes depuis le fichier active... " -#: src/lang.c:611 +#: src/lang.c:610 msgid "Reading groups from newsrc file... " msgstr "Lecture des groupes depuis le fichier newsrc... " -#: src/lang.c:612 +#: src/lang.c:611 msgid "Reading newsgroups file... " msgstr "Lecture du fichier newsgroups... " -#: src/lang.c:613 +#: src/lang.c:612 msgid "Reading newsrc file..." msgstr "Lecture du fichier newsrc..." -#: src/lang.c:614 +#: src/lang.c:613 #, c-format msgid "Bogus group %s removed." msgstr "Effacement du groupe corrompu %s." -#: src/lang.c:615 +#: src/lang.c:614 #, c-format msgid "Error: rename %s to %s" msgstr "Erreur : renommer %s à %s" -#: src/lang.c:616 +#: src/lang.c:615 msgid "Reply to author..." msgstr "Répondre à l'auteur..." -#: src/lang.c:617 +#: src/lang.c:616 msgid "Repost" msgstr "Reposter" -#: src/lang.c:618 +#: src/lang.c:617 msgid "Reposting article..." msgstr "Repostage de l'article..." -#: src/lang.c:619 +#: src/lang.c:618 #, c-format msgid "Repost article(s) to group(s) [%s]> " msgstr "Reposter article(s) dans groupe(s) [%s]> " -#: src/lang.c:620 +#: src/lang.c:619 msgid "Reset newsrc?" msgstr "Réinitialiser newsrc ?" -#: src/lang.c:621 +#: src/lang.c:620 msgid "Responses have been directed to the following newsgroups" msgstr "Les réponses ont été redirigées vers les groupes suivants" -#: src/lang.c:622 +#: src/lang.c:621 #, c-format msgid "Responses have been directed to poster. %s=mail, %s=post, %s=quit: " msgstr "Les réponses ont été redirigées à l'auteur. %s=mail, %s=poster, %s=quitter : " -#: src/lang.c:623 +#: src/lang.c:622 #, c-format -msgid "RespNo %4d of %4d%s" -msgstr "Nbre rép. %4d/%4d%s" +msgid "RespNo %4d of %4d" +msgstr "Nbre rép. %4d/%4d" -#: src/lang.c:624 +#: src/lang.c:623 msgid "Press to continue..." msgstr "Appuyez sur pour continuer..." -#: src/lang.c:626 +#: src/lang.c:625 #, c-format msgid "Select From [%-*.*s] (y/n): " msgstr "" -#: src/lang.c:627 +#: src/lang.c:626 msgid "Select Lines: (num): " msgstr "" -#: src/lang.c:628 +#: src/lang.c:627 msgid "Auto-select Article Menu" msgstr "" -#: src/lang.c:629 +#: src/lang.c:628 #, c-format msgid "Select Msg-Id [%-*.*s] (f/l/o/n): " msgstr "" -#: src/lang.c:630 +#: src/lang.c:629 msgid "Select pattern scope: " msgstr "" -#: src/lang.c:631 +#: src/lang.c:630 #, c-format msgid "Select Subject [%-*.*s] (y/n): " msgstr "Sél. Sujet [%-*.*s] (o/n) : " -#: src/lang.c:632 +#: src/lang.c:631 msgid "Select text pattern : " msgstr "" -#: src/lang.c:633 +#: src/lang.c:632 msgid "Select time in days : " msgstr "Durée en jours : " -#: src/lang.c:634 +#: src/lang.c:633 #, c-format msgid "# %s server configuration file\n" "# This file was automatically saved by %s %s %s (\"%s\")\n" @@ -2591,219 +2589,219 @@ msgid "# %s server configuration file\n" "\n" msgstr "" -#: src/lang.c:640 +#: src/lang.c:639 msgid "Showing unread groups only" msgstr "Afficher uniquement les groupes non lus" -#: src/lang.c:641 +#: src/lang.c:640 msgid "Subject: line (ignore case) " msgstr "Ligne Sujet: (casse insensible)" -#: src/lang.c:642 +#: src/lang.c:641 msgid "Subject: line (case sensitive)" msgstr "Ligne Sujet: (casse sensible) " -#: src/lang.c:643 +#: src/lang.c:642 msgid "Save" msgstr "Enregistrer" -#: src/lang.c:644 +#: src/lang.c:643 #, c-format msgid "Save '%s' (%s/%s)?" msgstr "Enregistrer '%s' (%s/%s) ?" -#: src/lang.c:645 +#: src/lang.c:644 msgid "Save configuration before continuing?" msgstr "Enregistrer la configuration avant de continuer ?" -#: src/lang.c:646 +#: src/lang.c:645 msgid "Save filename> " msgstr "Enregistrer sous le nom de fichier> " -#: src/lang.c:647 +#: src/lang.c:646 msgid "Saved" msgstr "Enregistré" -#: src/lang.c:648 +#: src/lang.c:647 #, 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:649 +#: src/lang.c:648 #, c-format msgid "Saved %s...\n" msgstr "Enregistrement de %s...\n" -#: src/lang.c:650 +#: src/lang.c:649 msgid "Nothing was saved" msgstr "Rien n'a été enregistré" -#: src/lang.c:651 +#: src/lang.c:650 #, c-format msgid "\n" "%s %d %s from %d %s\n" msgstr "\n" "%s %d %s de %d %s\n" -#: src/lang.c:652 +#: src/lang.c:651 #, c-format msgid "-- %s saved to %s%s --" msgstr "-- %s enregistré dans %s%s --" -#: src/lang.c:653 +#: src/lang.c:652 #, c-format msgid "-- %s saved to %s - %s --" msgstr "-- %s enregistré dans %s - %s --" -#: src/lang.c:654 +#: src/lang.c:653 msgid "Saving..." msgstr "Enregistrement..." -#: src/lang.c:655 +#: src/lang.c:654 #, c-format msgid "%s: Screen initialization failed" msgstr "%s : Échec de l'initialisation de l'écran" -#: src/lang.c:656 +#: src/lang.c:655 #, c-format msgid "%s: screen is too small\n" msgstr "%s : l'écran est trop petit\n" -#: src/lang.c:657 +#: src/lang.c:656 #, c-format msgid "screen is too small, %s is exiting\n" msgstr "l'écran est trop petit, %s quitte\n" -#: src/lang.c:658 +#: src/lang.c:657 #, c-format msgid "Search backwards [%s]> " msgstr "Recherche arrière [%s]> " -#: src/lang.c:659 +#: src/lang.c:658 #, c-format msgid "Search body [%s]> " msgstr "Rechercher dans le corps [%s]> " -#: src/lang.c:660 +#: src/lang.c:659 #, c-format msgid "Search forwards [%s]> " msgstr "Recherche avant [%s]> " -#: src/lang.c:661 +#: src/lang.c:660 msgid "Searching..." msgstr "Recherche..." -#: src/lang.c:662 +#: src/lang.c:661 #, c-format msgid "Searching article %d of %d ('q' to abort)..." msgstr "Recherche article %d sur %d ('q' pour annuler)..." -#: src/lang.c:663 +#: src/lang.c:662 msgid "Select article> " msgstr "Sélectionner l'article> " # TRANSLATION TOO LONG (75 chars max) -#: src/lang.c:664 +#: src/lang.c:663 msgid "Select option number before text or use arrow keys and . 'q' to quit." msgstr "Sélection n° avant le texte ou utiliser les flèches et . 'q' pour quitter." -#: src/lang.c:665 +#: src/lang.c:664 msgid "Select group> " msgstr "Sélectionner le groupe> " -#: src/lang.c:666 +#: src/lang.c:665 #, c-format msgid "Enter selection pattern [%s]> " msgstr "Entrez le critère de sélection [%s]> " -#: src/lang.c:667 +#: src/lang.c:666 msgid "Select thread > " msgstr "Sélectionner le fil > " -#: src/lang.c:668 +#: src/lang.c:667 #, c-format msgid "%s %s %s (\"%s\") [%s]: send a DETAILED bug report to %s\n" msgstr "%s %s %s (\"%s\") [%s]: envoi d'un rapport de bug DÉTAILLÉ à %s\n" -#: src/lang.c:669 +#: src/lang.c:668 msgid "servers active-file" msgstr "fichier active des serveurs" -#: src/lang.c:670 +#: src/lang.c:669 msgid "Cannot move into new newsgroups. Subscribe first..." msgstr "Déplacement dans nouveaux groupes impossible. Abonnez-vous d'abord..." -#: src/lang.c:671 +#: src/lang.c:670 msgid "" msgstr "" -#: src/lang.c:672 +#: src/lang.c:671 #, c-format msgid "Starting: (%s)" msgstr "Démarrage : (%s)" -#: src/lang.c:673 +#: src/lang.c:672 #, c-format msgid "List Thread (%d of %d)" msgstr "Afficher le fil (%d sur %d)" -#: src/lang.c:674 +#: src/lang.c:673 #, c-format msgid "Thread (%.*s)" msgstr "Fil (%.*s)" -#: src/lang.c:675 +#: src/lang.c:674 msgid "Enter wildcard subscribe pattern> " msgstr "Entrer un caractère joker comme critère> " -#: src/lang.c:676 +#: src/lang.c:675 #, c-format msgid "subscribed to %d groups" msgstr "Abonné à %d groupes" -#: src/lang.c:677 +#: src/lang.c:676 #, c-format msgid "Subscribed to %s" msgstr "Abonné à %s" -#: src/lang.c:678 +#: src/lang.c:677 msgid "Subscribing... " msgstr "Abonnement..." -#: src/lang.c:679 +#: src/lang.c:678 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:680 +#: src/lang.c:679 #, c-format msgid "Supersede article(s) to group(s) [%s]> " msgstr "Remplacer le(s) article(s) du(es) groupe(s) [%s]> " -#: src/lang.c:681 +#: src/lang.c:680 msgid "Superseding article ..." msgstr "Remplacement de l'article..." -#: src/lang.c:682 +#: src/lang.c:681 #, c-format msgid "\n" "Stopped. Type 'fg' to restart %s\n" msgstr "\n" "Arrêté. Tapez 'fg' pour relancer %s\n" -#: src/lang.c:684 +#: src/lang.c:683 #, c-format msgid "%d days" msgstr "%d jours" -#: src/lang.c:685 +#: src/lang.c:684 msgid "" msgstr "" -#: src/lang.c:686 +#: src/lang.c:685 msgid "# Default action/prompt strings\n" msgstr "# Termes action/prompt par défaut\n" -#: src/lang.c:687 +#: src/lang.c:686 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" @@ -2821,266 +2819,266 @@ msgstr "# Réglages par défaut pour les f "# case=ON/OFF ON=filtre sensible à la casse OFF=filtre insensible\n" "# expire=ON/OFF ON=durée d'après default_filter_days OFF=n'expire jamais\n" -#: src/lang.c:700 +#: src/lang.c:699 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 " "ligne\n" -#: src/lang.c:701 +#: src/lang.c:700 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:702 +#: src/lang.c:701 msgid "There is no news\n" msgstr "Rien de neuf\n" -#: src/lang.c:703 +#: src/lang.c:702 msgid "Thread" msgstr "Fil" -#: src/lang.c:704 +#: src/lang.c:703 msgid "Thread Level Commands" msgstr "Commandes pour fil" -#: src/lang.c:705 +#: src/lang.c:704 msgid "Thread deselected" msgstr "Fil désélectionné" -#: src/lang.c:706 +#: src/lang.c:705 msgid "Thread selected" msgstr "Fil sélectionné" -#: src/lang.c:707 +#: src/lang.c:706 msgid "threads" msgstr "fils" -#: src/lang.c:708 +#: src/lang.c:707 msgid "Thread range" msgstr "Champ du fil" -#: src/lang.c:709 +#: src/lang.c:708 msgid "thread" msgstr "fil" -#: src/lang.c:710 +#: src/lang.c:709 #, c-format -msgid "%sThread %4s of %4s" -msgstr "%sFil %4s de %4s" +msgid "Thread %4s of %4s" +msgstr "Fil %4s de %4s" -#: src/lang.c:711 +#: src/lang.c:710 msgid "Threading articles..." msgstr "Regroupement des articles..." -#: src/lang.c:712 +#: src/lang.c:711 #, c-format msgid "Toggled word highlighting %s" msgstr "(Dés)activer surbrillance %s" -#: src/lang.c:713 +#: src/lang.c:712 msgid "Toggled rot13 encoding" msgstr "(Dés)activer codage rot13" -#: src/lang.c:714 +#: src/lang.c:713 #, c-format msgid "Toggled german TeX encoding %s" msgstr "(Dés)activer codage TeX Allemand %s" -#: src/lang.c:715 +#: src/lang.c:714 #, c-format msgid "Toggled tab-width to %d" msgstr "(Dés)activer largeur de tabulation à %d" -#: src/lang.c:716 +#: src/lang.c:715 #, c-format msgid "%d Trying to dotlock %s" msgstr "%d essaye de déverrouiller %s" -#: src/lang.c:717 +#: src/lang.c:716 #, c-format msgid "%d Trying to lock %s" msgstr "%d essaye de verrouiller %s" -#: src/lang.c:718 +#: src/lang.c:717 msgid " h=help\n" msgstr " h=aide\n" -#: src/lang.c:720 +#: src/lang.c:719 msgid "Unlimited" msgstr "Illimité" -#: src/lang.c:721 +#: src/lang.c:720 msgid "Enter wildcard unsubscribe pattern> " msgstr "Terme joker pour se désabonner> " -#: src/lang.c:722 +#: src/lang.c:721 #, c-format msgid "Error decoding %s : %s" msgstr "Erreur lors du décodage de %s : %s" -#: src/lang.c:723 +#: src/lang.c:722 msgid "No end." msgstr "Pas de fin." -#: src/lang.c:724 +#: src/lang.c:723 #, c-format msgid "%s successfully decoded." msgstr "%s décodé avec succès." -#: src/lang.c:725 +#: src/lang.c:724 #, 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:726 +#: src/lang.c:725 msgid "unread " msgstr "non lu" -#: src/lang.c:727 +#: src/lang.c:726 #, c-format msgid "unsubscribed from %d groups" msgstr "désabonné de %d groupes" -#: src/lang.c:728 +#: src/lang.c:727 #, c-format msgid "Unsubscribed from %s" msgstr "Désabonné de %s" -#: src/lang.c:729 +#: src/lang.c:728 msgid "Unsubscribing... " msgstr "Désabonnement..." -#: src/lang.c:730 +#: src/lang.c:729 msgid "Unthreading articles..." msgstr "Dégroupement des articles..." -#: src/lang.c:731 +#: src/lang.c:730 msgid "Updated" msgstr "Mis à jour" -#: src/lang.c:732 +#: src/lang.c:731 msgid "Updating" msgstr "Rafraîchissement" -#: src/lang.c:733 +#: src/lang.c:732 #, c-format msgid "Opening %s\n" msgstr "Ouverture %s\n" -#: src/lang.c:734 +#: src/lang.c:733 msgid "No more URL's in this article" msgstr "Plus d'URL dans cet article" -#: src/lang.c:735 +#: src/lang.c:734 msgid "Use MIME display program for this message?" msgstr "Utiliser le programme d'affichage MIME pour ce message ?" -#: src/lang.c:736 +#: src/lang.c:735 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:737 +#: src/lang.c:736 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:738 +#: src/lang.c:737 msgid " -q don't check for new newsgroups" msgstr " -q ne pas vérifier s'il y a des nouveaux groupes" -#: src/lang.c:739 +#: src/lang.c:738 msgid " -X don't save any files on quit" msgstr " -X ne pas enregistrer de fichiers à la fermeture" -#: src/lang.c:740 +#: src/lang.c:739 msgid " -d don't show newsgroup descriptions" msgstr " -d ne pas afficher les descriptions des groupes" -#: src/lang.c:741 +#: src/lang.c:740 msgid " -G limit get only limit articles/group" msgstr " -G nombre d'articles par groupe limite" -#: src/lang.c:742 +#: src/lang.c:741 #, c-format msgid " -H help information about %s" msgstr " -H aide à propos de %s" -#: src/lang.c:743 +#: src/lang.c:742 msgid " -h this help message" msgstr " -h ce message d'aide" -#: src/lang.c:744 +#: src/lang.c:743 #, c-format msgid " -I dir news index file directory [default=%s]" msgstr " -I rép. dossier du fichier index [défaut=%s]" -#: src/lang.c:745 +#: src/lang.c:744 msgid " -u update index files (batch mode)" msgstr " -u màj des fichiers index (en tâche de fond)" -#: src/lang.c:746 +#: src/lang.c:745 #, c-format msgid " -m dir mailbox directory [default=%s]" msgstr " -m rép. dossier des bàl [défaut=%s]" -#: src/lang.c:747 +#: src/lang.c:746 #, c-format msgid "\n" "Mail bug reports/comments to %s" msgstr "\n" "Envoyez par mail vos rapports de bugs/suggestions à %s" -#: src/lang.c:748 +#: src/lang.c:747 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:749 +#: src/lang.c:748 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:750 +#: src/lang.c:749 #, c-format msgid " -f file subscribed to newsgroups file [default=%s]" msgstr " -f fich. abonné au fichier groupes [défaut=%s]" -#: src/lang.c:751 +#: src/lang.c:750 msgid " -x no posting mode" msgstr "" -#: src/lang.c:752 +#: src/lang.c:751 msgid " -w post an article and exit" msgstr "" -#: src/lang.c:753 +#: src/lang.c:752 msgid " -o post all postponed articles and exit" msgstr " -o poster tous les brouillons puis quitter" -#: src/lang.c:754 +#: src/lang.c:753 msgid " -r read news remotely from default NNTP server" msgstr " -r lire les articles depuis le serveur NNTP par défaut" -#: src/lang.c:755 +#: src/lang.c:754 msgid " -R read news saved by -S option" msgstr " -R lire les articles enregistrés via l'option -S" -#: src/lang.c:756 +#: src/lang.c:755 #, c-format msgid " -s dir save news directory [default=%s]" msgstr " -s rép. dossier où enregistrer les articles [défaut=%s]" -#: src/lang.c:757 +#: src/lang.c:756 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:758 +#: src/lang.c:757 msgid " -z start if any unread news" msgstr " -z lancer si articles non lus" -#: src/lang.c:759 +#: src/lang.c:758 #, c-format msgid "A Usenet reader.\n" "\n" @@ -3088,37 +3086,37 @@ msgid "A Usenet reader.\n" msgstr "Un lecteur UseNet.\n" "Usage : %s [options] [groupe[,...]]" -#: src/lang.c:760 +#: src/lang.c:759 msgid " -v verbose output for batch mode options" msgstr " -v sortie détaillée pour options en tâche de fond" -#: src/lang.c:761 +#: src/lang.c:760 msgid " -V print version & date information" msgstr " -V afficher infos date & version" -#: src/lang.c:762 +#: src/lang.c:761 #, c-format msgid "%s only useful without batch mode operations\n" msgstr "%s utile seulement sans opérations en tâche de fond\n" -#: src/lang.c:763 +#: src/lang.c:762 #, 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:765 +#: src/lang.c:764 #, c-format msgid "\n" "%s%d out of range (0 - %d). Reset to 0" msgstr "\n" "%s%d expiré (0 - %d). Remis à 0" -#: src/lang.c:766 +#: src/lang.c:765 #, c-format msgid "View '%s' (%s/%s)?" msgstr "Vue '%s' (%s/%s) ?" -#: src/lang.c:768 +#: src/lang.c:767 #, c-format msgid "\n" "Warning: posting exceeds %d columns. Line %d is the first long one:\n" @@ -3128,26 +3126,26 @@ msgstr "\n" ":\n" "%-100s\n" -#: src/lang.c:769 +#: src/lang.c:768 msgid "\n" "Warning: article unchanged after editing\n" msgstr "\n" "Attention : article inchangé après son édition\n" -#: src/lang.c:770 +#: src/lang.c:769 msgid "\n" "Warning: \"Subject:\" contains only whitespaces.\n" msgstr "\n" "Attention : \"Subject:\" contient que des espaces.\n" -#: src/lang.c:771 +#: src/lang.c:770 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:773 +#: src/lang.c:772 msgid "\n" "Warning: Article has \"References:\" but \"Subject:\" does not begin\n" " with \"Re: \" and does not contain \"(was:\".\n" @@ -3155,7 +3153,7 @@ msgstr "\n" "Attention : L'article a \"References:\" mais \"Subject:\" ne commence\n" " avec \"Re: \" et ne contient pas \"(was:\".\n" -#: src/lang.c:776 +#: src/lang.c:775 msgid "Read carefully!\n" "\n" " You are about to cancel an article seemingly written by you. This will " @@ -3177,7 +3175,7 @@ msgstr "Lisez ceci attentivement !\n" "Voici l'article que vous vous apprêtez à effacer :\n" "\n" -#: src/lang.c:780 +#: src/lang.c:779 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" @@ -3189,7 +3187,7 @@ msgstr "\n" " votre article. Si une signature y est ajoutée par cet inews,\n" " elle ne sera pas encodée correctement.\n" -#: src/lang.c:785 +#: src/lang.c:784 #, c-format msgid "\n" "\n" @@ -3202,7 +3200,7 @@ msgstr "\n" "Certaines valeurs dans votre fichier %s ont changé !\n" "Lisez le fichier WHATSNEW, etc...\n" -#: src/lang.c:787 +#: src/lang.c:786 #, c-format msgid "\n" "\n" @@ -3214,7 +3212,7 @@ msgstr "\n" "Certaines valeurs dans votre fichier %s peuvent être ignorés, d'autres\n" "ont peut-être changés !\n" -#: src/lang.c:790 +#: src/lang.c:789 #, c-format msgid "Warning: tin wrote fewer groups to your\n" "\t%s\n" @@ -3227,19 +3225,19 @@ msgstr "Attention : tin a écrit quelque "lors de cette session, cela indique une erreur et vous devriez sauvegarder\n" "votre %s avant de relancer tin !\n" -#: src/lang.c:794 +#: src/lang.c:793 #, 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:795 +#: src/lang.c:794 #, 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:796 +#: src/lang.c:795 #, c-format msgid "\n" "Warning: Your signature is longer than %d lines. Since signatures usually " @@ -3254,50 +3252,50 @@ msgstr "\n" "d'être\n" " le plus court possible.\n" -#: src/lang.c:800 +#: src/lang.c:799 #, 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:801 +#: src/lang.c:800 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:802 +#: src/lang.c:801 msgid "Writing attributes file..." msgstr "Écriture du fichier attributes..." -#: src/lang.c:804 +#: src/lang.c:803 #, c-format -msgid "%d Responses%s" -msgstr "%d Réponses%s" +msgid "%d Responses" +msgstr "%d Réponses" -#: src/lang.c:806 +#: src/lang.c:805 #, c-format msgid "Added %d %s" msgstr "%d %s ajouté(s)" -#: src/lang.c:807 +#: src/lang.c:806 msgid "No unsubscribed groups to show" msgstr "Pas de groupes désabonnés à afficher" -#: src/lang.c:808 +#: src/lang.c:807 msgid "Showing subscribed to groups only" msgstr "Afficher uniquement les groupes abonnés" -#: src/lang.c:809 +#: src/lang.c:808 msgid "Yes " msgstr "Oui " -#: src/lang.c:810 +#: src/lang.c:809 msgid " You have mail\n" msgstr " Nouveau mail\n" -#: src/lang.c:815 +#: src/lang.c:814 #, c-format msgid "\n" "Warning: Posting is in %s and contains characters which are not\n" @@ -3316,16 +3314,16 @@ msgstr "\n" " problème, ou bien changer la valeur de MM_NETWORK_CHARSET\n" " via le M)enu.\n" -#: src/lang.c:826 +#: src/lang.c:825 #, c-format msgid "Redefined key %s '%s' -> '%s'\n" msgstr "Clé %s redéfinie '%s' -> '%s'\n" -#: src/lang.c:827 +#: src/lang.c:826 msgid " -D debug mode 1=NNTP 2=ALL" msgstr " -D mode debug 1=NNTP 2=TOUS" -#: src/lang.c:831 +#: src/lang.c:830 msgid "Read carefully!\n" "\n" " You are about to cancel an article seemingly not written by you. This " @@ -3352,11 +3350,11 @@ msgstr "Lisez ceci attentivement !\n" "Voici l'article que vous vous apprêtez a effacer :\n" "\n" -#: src/lang.c:840 +#: src/lang.c:839 msgid "toggle color" msgstr "(dés)activer la couleur" -#: src/lang.c:841 +#: src/lang.c:840 msgid "# For color-adjust use the following numbers\n" "# 0-black 1-red 2-green 3-brown\n" "# 4-blue 5-pink 6-cyan 7-white\n" @@ -3376,44 +3374,44 @@ msgstr "# Pour ajuster les couleurs util "# et l'arrière-plan noir)\n" "\n" -#: src/lang.c:849 +#: src/lang.c:848 msgid " -a toggle color flag" msgstr " -a change la couleur" -#: src/lang.c:853 +#: src/lang.c:852 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:854 +#: src/lang.c:853 #, 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:855 +#: src/lang.c:854 #, 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:857 +#: src/lang.c:856 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:858 +#: src/lang.c:857 #, 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:859 +#: src/lang.c:858 #, c-format msgid "\n" "Warning: \"%s\" is not in your newsrc, it may be invalid at this site!\n" @@ -3422,316 +3420,307 @@ msgstr "\n" " apparaître dans ce groupe !\n" "\n" -#: src/lang.c:860 +#: src/lang.c:859 #, 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:864 +#: src/lang.c:863 #, 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:865 +#: src/lang.c:864 msgid "Missing parts." msgstr "Parties manquantes" -#: src/lang.c:866 +#: src/lang.c:865 msgid "No beginning." msgstr "Pas de début." -#: src/lang.c:867 +#: src/lang.c:866 msgid "No data." msgstr "Pas de données." -#: src/lang.c:868 +#: src/lang.c:867 msgid "Unknown error." msgstr "Erreur inconnue." -#: src/lang.c:870 +#: src/lang.c:869 #, c-format msgid "\tChecksum of %s (%ld %s)" msgstr "\tSomme de contrôle de %s (%ld %s)" -#: src/lang.c:874 +#: src/lang.c:873 msgid "Reading mail active file... " msgstr "Lecture du fichier active mail... " -#: src/lang.c:875 +#: src/lang.c:874 msgid "Reading mailgroups file... " msgstr "Lecture du fichier mailgroups... " -#: src/lang.c:879 +#: src/lang.c:878 msgid "perform PGP operations on article" msgstr "effectuer des opérations PGP sur l'article" -#: src/lang.c:880 +#: src/lang.c:879 msgid "Add key(s) to public keyring?" msgstr "Ajouter les clé(s) au cercle public ?" -#: src/lang.c:881 +#: src/lang.c:880 #, c-format msgid "%s=encrypt, %s=sign, %s=both, %s=quit: " msgstr "%s=encodé, %s=signer, %s=les deux, %s=quitter : " -#: src/lang.c:882 +#: src/lang.c:881 #, 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:883 +#: src/lang.c:882 #, c-format msgid "PGP has not been set up (can't open %s)" msgstr "PGP n'a pas été configuré (ouverture de %s impossible)" -#: src/lang.c:884 +#: src/lang.c:883 msgid "Article not signed and no public keys found" msgstr "Article non signé et pas de clés publiques trouvées" -#: src/lang.c:886 +#: src/lang.c:885 #, 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:887 +#: src/lang.c:886 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:888 +#: src/lang.c:887 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:890 +#: src/lang.c:889 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "%s=quitter, %s=éditer, %s=pgp, %s=menu, %s=poster, %s=brouillon : " -#: src/lang.c:891 +#: src/lang.c:890 msgid "%s=quit, %s=edit, %s=pgp, %s=send [%%.*s]: " msgstr "%s=quitter, %s=éditer, %s=pgp, %s=envoyer [%%.*s] : " -#: src/lang.c:892 +#: src/lang.c:891 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:896 +#: src/lang.c:895 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone: " msgstr "%s=quitter, %s=éditer, %s=ispell, %s=menu, %s=poster, %s=brouillon : " -#: src/lang.c:897 +#: src/lang.c:896 msgid "%s=quit, %s=edit, %s=ispell, %s=send [%%.*s]: " msgstr "%s=quitter, %s=éditer, %s=ispell, %s=envoyer [%%.*s] : " -#: src/lang.c:898 +#: src/lang.c:897 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:900 +#: src/lang.c:899 #, c-format msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: " msgstr "%s=quitter, %s=éditer, %s=menu, %s=poster, %s=brouillon : " -#: src/lang.c:901 +#: src/lang.c:900 msgid "%s=quit, %s=edit, %s=send [%%.*s]: " msgstr "%s=quitter, %s=éditer, %s=envoyer [%%.*s] : " -#: src/lang.c:902 +#: src/lang.c:901 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:908 -#, c-format -msgid "Environment variable %s not found. Set and retry..." -msgstr "Variable d'environnemeent %s introuvable. En choisir une puis réessayez..." - -#: src/lang.c:909 -msgid " -B BBS mode. File operations limited to home directories." -msgstr "" - -#: src/lang.c:917 +#: src/lang.c:910 msgid "Try cache_overview_files to speed up things.\n" msgstr "" -#: src/lang.c:918 +#: src/lang.c:911 msgid "Tin will use local index files instead.\n" msgstr "" -#: src/lang.c:919 +#: src/lang.c:912 msgid "Cannot find NNTP server name" msgstr "Nom du serveur NNTP introuvable" -#: src/lang.c:920 +#: src/lang.c:913 #, c-format msgid "Connecting to %s:%d..." msgstr "Connexion à %s:%d..." -#: src/lang.c:921 +#: src/lang.c:914 msgid "Disconnecting from server...\n" msgstr "Déconnexion du serveur...\n" -#: src/lang.c:922 +#: src/lang.c:915 #, c-format msgid "Wrong newsgroup name in response of GROUP command, %s for %s" msgstr "Nom de groupe erroné dans la réponse de la cmd GROUP, %s pour %s" -#: src/lang.c:923 +#: src/lang.c:916 #, c-format msgid "Failed to connect to NNTP server %s. Exiting..." msgstr "Échec de la connexion au serveur NNTP %s. Fermeture..." -#: src/lang.c:924 src/nntplib.c:975 +#: src/lang.c:917 msgid "205 Closing connection" msgstr "205 Fermeture de la connexion" -#: src/lang.c:925 +#: src/lang.c:918 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:926 +#: src/lang.c:919 msgid "Connection to news server has timed out. Reconnect?" msgstr "Connexion au serveur de nouvelles expirée. Se reconnecter ?" -#: src/lang.c:927 +#: src/lang.c:920 #, 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:928 +#: src/lang.c:921 msgid " -A force authentication on connect" msgstr " -A force l'authentication à la connexion" -#: src/lang.c:929 +#: src/lang.c:922 #, 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:930 +#: src/lang.c:923 #, 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:931 +#: src/lang.c:924 msgid " -Q quick start. Same as -nqd" msgstr " -Q démarrage rapide. Idem que -npd" -#: src/lang.c:932 +#: src/lang.c:925 msgid " -l use only LIST instead of GROUP (-n) command" msgstr " -l utilise seulement LIST plutôt que GROUP (n-)" -#: src/lang.c:933 +#: src/lang.c:926 msgid " -n only read subscribed .newsrc groups from NNTP server" msgstr " -n lire seulement groupes abonnés du .newsrc depuis le serveur NNTP" -#: src/lang.c:935 +#: src/lang.c:928 #, c-format msgid "%s/tcp: Unknown service.\n" msgstr "%s/tcp : Service inconnu.\n" -#: src/lang.c:938 +#: src/lang.c:931 msgid "\n" "socket or connect problem\n" msgstr "\n" "problème de socket ou de connexion\n" -#: src/lang.c:940 +#: src/lang.c:933 #, c-format msgid "\n" "Connection to %s: " msgstr "\n" "Connexion à %s : " -#: src/lang.c:941 +#: src/lang.c:934 msgid "Giving up...\n" msgstr "Abandon...\n" -#: src/lang.c:944 +#: src/lang.c:937 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:947 +#: src/lang.c:940 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:950 +#: src/lang.c:943 #, 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:953 +#: src/lang.c:946 msgid " -Q quick start. Same as -qd" msgstr " -Q démarrage rapide. Idem que -qd" -#: src/lang.c:954 +#: src/lang.c:947 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:955 +#: src/lang.c:948 msgid " -n only read subscribed .newsrc groups from spool" msgstr " -n lire seulement groupes abonnés du .newsrc depuis le spool" -#: src/lang.c:956 +#: src/lang.c:949 msgid "Your server does not have Xref: in its NOV-files.\n" msgstr "Votre serveur n'a pas d'Xref: dans son fichier NOV.\n" -#: src/lang.c:960 +#: src/lang.c:953 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:961 +#: src/lang.c:954 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:969 +#: src/lang.c:962 #, c-format msgid "%d %s printed" msgstr "%d %s imprimé" -#: src/lang.c:970 +#: src/lang.c:963 msgid "output article/thread/hot/pattern/tagged articles to printer" msgstr "envoyer article/fil/sél./articles marqués à l'imprimante" -#: src/lang.c:971 +#: src/lang.c:964 msgid "Print" msgstr "Imprimer" -#: src/lang.c:972 +#: src/lang.c:965 msgid "Printing..." msgstr "Impression..." -#: src/lang.c:976 +#: src/lang.c:969 msgid "pipe article/thread/hot/pattern/tagged articles into command" msgstr "passer article/fil/sél./articles marqués à une commande" -#: src/lang.c:977 +#: src/lang.c:970 msgid "No command" msgstr "Pas de commande" -#: src/lang.c:978 +#: src/lang.c:971 msgid "Pipe" msgstr "Passer (pipe)" -#: src/lang.c:979 +#: src/lang.c:972 #, c-format msgid "Pipe to command [%.*s]> " msgstr "Passer à la commande [%.*s]> " -#: src/lang.c:980 +#: src/lang.c:973 msgid "Piping..." msgstr "Passage..." -#: src/lang.c:982 +#: src/lang.c:975 msgid "Piping not enabled." msgstr "Passage non activé." -#: src/lang.c:986 +#: src/lang.c:979 #, c-format msgid "\n" "Error: The \"%s:\" line has spaces in it that MUST be removed.\n" @@ -3744,7 +3733,7 @@ msgstr "\n" " du contenu. Utilisez une virgule (,) pour séparer de multiples\n" " noms de groupes.\n" -#: src/lang.c:991 +#: src/lang.c:984 #, c-format msgid "\n" "Error: The \"%s:\" line is continued in the next line. Since\n" @@ -3755,7 +3744,7 @@ msgstr "\n" " Comme la ligne ne contient pas d'espace, ce n'est pas autorisé.\n" " Inscrivez svp tous les groupes sur une seule ligne.\n" -#: src/lang.c:996 +#: src/lang.c:989 #, c-format msgid "\n" "Warning: The \"%s:\" line is continued in the next line.\n" @@ -3768,7 +3757,7 @@ msgstr "\n" " Pour éviter les problèmes, indiquez tous les groupes sur une\n" " seule ligne.\n" -#: src/lang.c:1000 +#: src/lang.c:993 #, c-format msgid "\n" "Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n" @@ -3776,7 +3765,7 @@ msgstr "\n" "Attention : La ligne \"%s:\" contient un ou des espaces qui DOIVENT\n" " être enlevés.\n" -#: src/lang.c:1005 +#: src/lang.c:998 msgid "\n" " If your article contains quoted text please take some time to pare it " "down\n" @@ -3810,41 +3799,41 @@ msgstr "\n" "simples\n" " règles, pratiquement toutes les personnes ignoreront vos articles.\n" -#: src/lang.c:1018 +#: src/lang.c:1011 msgid "shell escape" msgstr "accéder à un shell" -#: src/lang.c:1019 +#: src/lang.c:1012 #, c-format msgid "Shell Command (%s)" msgstr "Commande shell (%s)" -#: src/lang.c:1020 +#: src/lang.c:1013 #, c-format msgid "Enter shell command [%s]> " msgstr "Commande shell [%s]> " -#: src/lang.c:1024 +#: src/lang.c:1017 #, c-format msgid "%s: Can't get entry for TERM\n" msgstr "%s : Entrée pour TERM introuvable\n" -#: src/lang.c:1028 +#: src/lang.c:1021 #, c-format msgid "Group %.*s ('q' to quit)..." msgstr "Groupe %.*s ('q' pour quitter)..." -#: src/lang.c:1030 +#: src/lang.c:1023 #, c-format msgid "Group %.*s..." msgstr "Groupe %.*s..." -#: src/lang.c:1034 +#: src/lang.c:1027 msgid "Server unavailable\n" msgstr "Service indisponible\n" # TRANSLATION TOO LONG -#: src/lang.c:1040 +#: src/lang.c:1033 #, c-format msgid "%s=pipe; %s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; " "%s=post" @@ -3852,503 +3841,503 @@ msgstr "%s=pipe; %s=mail; %s=imprimer; % "%s=marquer; %s=poster" # TRANSLATION TOO LONG -#: src/lang.c:1041 +#: src/lang.c:1034 #, 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=imprimer; %s=quitter; %s=répondre; %s=enregistrer; " "%s=marquer; %s=poster" -#: src/lang.c:1043 +#: src/lang.c:1036 #, 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:1044 +#: src/lang.c:1037 #, 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:1048 +#: src/lang.c:1041 #, c-format msgid "%s=pipe; %s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "%s=pipe; %s=mail; %s=quitter; %s=voir lu/non lu; %s=enregistrer; %s=marquer; " "%s=poster" -#: src/lang.c:1049 +#: src/lang.c:1042 #, c-format msgid "%s=pipe; %s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "%s=pipe; %s=mail; %s=quitter; %s=répondre; %s=enregistrer; %s=marquer; " "%s=poster" -#: src/lang.c:1051 +#: src/lang.c:1044 #, 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:1052 +#: src/lang.c:1045 #, 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:1058 +#: src/lang.c:1051 msgid "Terminal does not support color" msgstr "Terminal ne supporte pas les couleurs" -#: src/lang.c:1063 +#: src/lang.c:1056 #, c-format msgid "Trying %s" msgstr "Essai %s" -#: src/lang.c:1077 src/lang.c:1102 src/lang.c:1118 src/refs.c:266 +#: src/lang.c:1070 src/lang.c:1095 src/lang.c:1111 src/refs.c:266 msgid "None" msgstr "Aucun" -#: src/lang.c:1078 +#: src/lang.c:1071 msgid "Subject" msgstr "Sujet" -#: src/lang.c:1079 +#: src/lang.c:1072 msgid "References" msgstr "Références" -#: src/lang.c:1080 +#: src/lang.c:1073 msgid "Both Subject and References" msgstr "Sujet & Références" -#: src/lang.c:1081 +#: src/lang.c:1074 msgid "Multipart Subject" msgstr "Sujet multiparties" -#: src/lang.c:1093 src/lang.c:1204 +#: src/lang.c:1086 src/lang.c:1197 msgid "No" msgstr "Non" -#: src/lang.c:1094 src/lang.c:1206 +#: src/lang.c:1087 src/lang.c:1199 msgid "Yes" msgstr "Oui" -#: src/lang.c:1095 +#: src/lang.c:1088 msgid "Hide All" msgstr "Tout masquer" -#: src/lang.c:1103 +#: src/lang.c:1096 msgid "Address" msgstr "Adresse" -#: src/lang.c:1104 +#: src/lang.c:1097 msgid "Full Name" msgstr "Nom complet" -#: src/lang.c:1105 +#: src/lang.c:1098 msgid "Address and Name" msgstr "Adresse et Nom" -#: src/lang.c:1112 +#: src/lang.c:1105 msgid "Max" msgstr "Max" -#: src/lang.c:1113 +#: src/lang.c:1106 msgid "Sum" msgstr "Sum" -#: src/lang.c:1114 +#: src/lang.c:1107 msgid "Average" msgstr "Moyenne" -#: src/lang.c:1119 +#: src/lang.c:1112 msgid "Lines" msgstr "Lignes" -#: src/lang.c:1120 +#: src/lang.c:1113 msgid "Score" msgstr "Score" -#: src/lang.c:1121 +#: src/lang.c:1114 msgid "Lines & Score" msgstr "Lignes & Score" -#: src/lang.c:1130 +#: src/lang.c:1123 msgid "Black" msgstr "Noir" -#: src/lang.c:1131 +#: src/lang.c:1124 msgid "Red" msgstr "Rouge" -#: src/lang.c:1132 +#: src/lang.c:1125 msgid "Green" msgstr "Vert" -#: src/lang.c:1133 +#: src/lang.c:1126 msgid "Brown" msgstr "Marron" -#: src/lang.c:1134 +#: src/lang.c:1127 msgid "Blue" msgstr "Bleu" -#: src/lang.c:1135 +#: src/lang.c:1128 msgid "Pink" msgstr "Rose" -#: src/lang.c:1136 +#: src/lang.c:1129 msgid "Cyan" msgstr "Cyan" -#: src/lang.c:1137 +#: src/lang.c:1130 msgid "White" msgstr "Blanc" -#: src/lang.c:1138 +#: src/lang.c:1131 msgid "Gray" msgstr "Gris" -#: src/lang.c:1139 +#: src/lang.c:1132 msgid "Light Red" msgstr "Rouge gras" -#: src/lang.c:1140 +#: src/lang.c:1133 msgid "Light Green" msgstr "Vert gras" -#: src/lang.c:1141 +#: src/lang.c:1134 msgid "Yellow" msgstr "Jaune" -#: src/lang.c:1142 +#: src/lang.c:1135 msgid "Light Blue" msgstr "Bleu gras" -#: src/lang.c:1143 +#: src/lang.c:1136 msgid "Light Pink" msgstr "Rose gras" -#: src/lang.c:1144 +#: src/lang.c:1137 msgid "Light Cyan" msgstr "Cyan gras" -#: src/lang.c:1145 +#: src/lang.c:1138 msgid "Light White" msgstr "Blanc gras" -#: src/lang.c:1153 src/lang.c:1210 src/lang.c:1224 +#: src/lang.c:1146 src/lang.c:1203 src/lang.c:1217 msgid "Nothing" msgstr "Rien" -#: src/lang.c:1154 +#: src/lang.c:1147 msgid "Mark" msgstr "Marque" -#: src/lang.c:1155 +#: src/lang.c:1148 msgid "Space" msgstr "Espace" -#: src/lang.c:1162 +#: src/lang.c:1155 msgid "Normal" msgstr "Normal" -#: src/lang.c:1163 +#: src/lang.c:1156 msgid "Best highlighting" msgstr "Meilleure surbrillance" -#: src/lang.c:1164 +#: src/lang.c:1157 msgid "Underline" msgstr "Souligné" -#: src/lang.c:1165 +#: src/lang.c:1158 msgid "Reverse video" msgstr "Vidéo inversée" -#: src/lang.c:1166 +#: src/lang.c:1159 msgid "Blinking" msgstr "Clignotement" -#: src/lang.c:1167 +#: src/lang.c:1160 msgid "Half bright" msgstr "Moins lumineux" -#: src/lang.c:1168 +#: src/lang.c:1161 msgid "Bold" msgstr "Gras" -#: src/lang.c:1173 +#: src/lang.c:1166 msgid "none" msgstr "aucun" -#: src/lang.c:1174 +#: src/lang.c:1167 msgid "commands" msgstr "commandes" -#: src/lang.c:1175 +#: src/lang.c:1168 msgid "select" msgstr "sélection" -#: src/lang.c:1177 +#: src/lang.c:1170 msgid "commands & quit" msgstr "commandes & quitter" -#: src/lang.c:1178 +#: src/lang.c:1171 msgid "commands & select" msgstr "commandes & sélection" -#: src/lang.c:1179 +#: src/lang.c:1172 msgid "quit & select" msgstr "quitter & sélection" -#: src/lang.c:1180 +#: src/lang.c:1173 msgid "commands & quit & select" msgstr "commandes, quitter & sélection" -#: src/lang.c:1205 +#: src/lang.c:1198 msgid "Shell archive" msgstr "Archive shell" -#: src/lang.c:1211 +#: src/lang.c:1204 msgid "Subject: (descending)" msgstr "Sujet : (descendant)" -#: src/lang.c:1212 +#: src/lang.c:1205 msgid "Subject: (ascending)" msgstr "Sujet : (ascendant)" -#: src/lang.c:1213 +#: src/lang.c:1206 msgid "From: (descending)" msgstr "De : (descendant)" -#: src/lang.c:1214 +#: src/lang.c:1207 msgid "From: (ascending)" msgstr "De : (ascendant)" -#: src/lang.c:1215 +#: src/lang.c:1208 msgid "Date: (descending)" msgstr "Date : (descendant)" -#: src/lang.c:1216 +#: src/lang.c:1209 msgid "Date: (ascending)" msgstr "Date : (ascendant)" -#: src/lang.c:1217 src/lang.c:1225 +#: src/lang.c:1210 src/lang.c:1218 msgid "Score (descending)" msgstr "Score (descendant)" -#: src/lang.c:1218 src/lang.c:1226 +#: src/lang.c:1211 src/lang.c:1219 msgid "Score (ascending)" msgstr "Score (ascendant)" -#: src/lang.c:1219 +#: src/lang.c:1212 msgid "Lines: (descending)" msgstr "Lignes : (descendant)" -#: src/lang.c:1220 +#: src/lang.c:1213 msgid "Lines: (ascending)" msgstr "Lignes : (ascendant)" -#: src/lang.c:1231 +#: src/lang.c:1224 msgid "Always Keep" msgstr "Toujours garder" -#: src/lang.c:1232 +#: src/lang.c:1225 msgid "Always Remove" msgstr "Toujours effacer" -#: src/lang.c:1233 +#: src/lang.c:1226 msgid "Mark with D on selection screen" msgstr "Marquer avec un D dans la vue sélection" -#: src/lang.c:1238 +#: src/lang.c:1231 msgid "Kill only unread arts" msgstr "Filtrer uniquement les articles non lus" -#: src/lang.c:1239 +#: src/lang.c:1232 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:1240 +#: src/lang.c:1233 msgid "Kill all arts and never show" msgstr "Filtrer tous les articles et ne jamais afficher" -#: src/lang.c:1245 +#: src/lang.c:1238 msgid "Nothing special" msgstr "Rien de spécial" -#: src/lang.c:1246 +#: src/lang.c:1239 msgid "Compress quotes" msgstr "Citations compressées" -#: src/lang.c:1247 +#: src/lang.c:1240 msgid "Quote signatures" msgstr "Citer les signatures" -#: src/lang.c:1248 +#: src/lang.c:1241 msgid "Compress quotes, quote sigs" msgstr "Compresser les citations, citer les signatures" -#: src/lang.c:1249 +#: src/lang.c:1242 msgid "Quote empty lines" msgstr "Citer les lignes vides" -#: src/lang.c:1250 +#: src/lang.c:1243 msgid "Compress quotes, quote empty lines" msgstr "Compresser les citations, citer les lignes vides" -#: src/lang.c:1251 +#: src/lang.c:1244 msgid "Quote sigs & empty lines" msgstr "Citer les signatures & les lignes vides" -#: src/lang.c:1252 +#: src/lang.c:1245 msgid "Comp. q., quote sigs & empty lines" msgstr "Compr. les citations, citer les signatures & les lignes vides" # TRANSLATION MISSING -#: src/lang.c:1290 +#: src/lang.c:1283 msgid "no" msgstr "" # TRANSLATION MISSING -#: src/lang.c:1291 +#: src/lang.c:1284 msgid "with headers" msgstr "" # TRANSLATION MISSING -#: src/lang.c:1292 +#: src/lang.c:1285 msgid "without headers" msgstr "" -#: src/lang.c:1297 +#: src/lang.c:1290 msgid "Display Options" msgstr "Options d'affichage" -#: src/lang.c:1303 +#: src/lang.c:1296 msgid "Color Options" msgstr "Options des couleurs" -#: src/lang.c:1309 +#: src/lang.c:1302 msgid "Article-Limiting Options" msgstr "Options des articles" -#: src/lang.c:1315 +#: src/lang.c:1308 msgid "Posting/Mailing Options" msgstr "Options de postage/messagerie" -#: src/lang.c:1321 +#: src/lang.c:1314 msgid "Saving/Printing Options" msgstr "Options d'enregistrement/d'impression" -#: src/lang.c:1327 +#: src/lang.c:1320 msgid "Expert Options" msgstr "Options avancées" -#: src/lang.c:1333 +#: src/lang.c:1326 msgid "Filtering Options" msgstr "Options de filtrage" -#: src/lang.c:1338 src/lang.c:1364 src/lang.c:1370 src/lang.c:1377 src/lang.c:1409 -#: src/lang.c:1415 src/lang.c:1423 src/lang.c:1443 src/lang.c:1518 src/lang.c:1680 -#: src/lang.c:1686 src/lang.c:1692 src/lang.c:1698 src/lang.c:1710 src/lang.c:1717 -#: src/lang.c:1768 src/lang.c:1777 src/lang.c:1783 src/lang.c:1789 src/lang.c:1795 -#: src/lang.c:1801 src/lang.c:1807 src/lang.c:1813 src/lang.c:1819 src/lang.c:1825 -#: src/lang.c:1831 src/lang.c:1837 src/lang.c:1843 src/lang.c:1849 src/lang.c:1855 -#: src/lang.c:1861 src/lang.c:1867 src/lang.c:1873 src/lang.c:1879 src/lang.c:1885 -#: src/lang.c:1891 src/lang.c:1898 src/lang.c:1904 src/lang.c:1910 src/lang.c:1917 -#: src/lang.c:1928 src/lang.c:1934 src/lang.c:1940 src/lang.c:1946 src/lang.c:1952 -#: src/lang.c:1958 src/lang.c:1972 src/lang.c:1984 src/lang.c:2018 src/lang.c:2070 -#: src/lang.c:2077 src/lang.c:2083 src/lang.c:2108 src/lang.c:2125 src/lang.c:2178 -#: src/lang.c:2211 src/lang.c:2231 src/lang.c:2266 src/lang.c:2275 src/lang.c:2300 -#: src/lang.c:2312 +#: src/lang.c:1331 src/lang.c:1357 src/lang.c:1363 src/lang.c:1370 src/lang.c:1402 +#: src/lang.c:1408 src/lang.c:1416 src/lang.c:1436 src/lang.c:1511 src/lang.c:1673 +#: src/lang.c:1679 src/lang.c:1685 src/lang.c:1691 src/lang.c:1703 src/lang.c:1710 +#: src/lang.c:1761 src/lang.c:1770 src/lang.c:1776 src/lang.c:1782 src/lang.c:1788 +#: src/lang.c:1794 src/lang.c:1800 src/lang.c:1806 src/lang.c:1812 src/lang.c:1818 +#: src/lang.c:1824 src/lang.c:1830 src/lang.c:1836 src/lang.c:1842 src/lang.c:1848 +#: src/lang.c:1854 src/lang.c:1860 src/lang.c:1866 src/lang.c:1872 src/lang.c:1878 +#: src/lang.c:1884 src/lang.c:1891 src/lang.c:1897 src/lang.c:1903 src/lang.c:1910 +#: src/lang.c:1921 src/lang.c:1927 src/lang.c:1933 src/lang.c:1939 src/lang.c:1945 +#: src/lang.c:1951 src/lang.c:1965 src/lang.c:1977 src/lang.c:2011 src/lang.c:2063 +#: src/lang.c:2070 src/lang.c:2076 src/lang.c:2101 src/lang.c:2118 src/lang.c:2171 +#: src/lang.c:2204 src/lang.c:2224 src/lang.c:2259 src/lang.c:2268 src/lang.c:2293 +#: src/lang.c:2305 msgid " toggles, sets, cancels." msgstr " changer, régler, annuler." -#: src/lang.c:1339 +#: src/lang.c:1332 msgid "Show mini menu & posting etiquette :" msgstr "Afficher menu & intitulé du postage:" -#: src/lang.c:1340 +#: src/lang.c:1333 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:1345 +#: src/lang.c:1338 msgid "Show short description for each newsgroup. toggles & sets." msgstr "Afficher une brève description pour chaque groupe. changer & " "régler." -#: src/lang.c:1346 +#: src/lang.c:1339 msgid "Show description of each newsgroup :" msgstr "Voir description de chaque groupe :" -#: src/lang.c:1347 +#: src/lang.c:1340 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:1352 +#: src/lang.c:1345 msgid "Show Subject & From (author) fields in group menu. toggles & " "sets." msgstr "Afficher les champs Sujet & De (auteur) dans le menu groupe. change " "& règle." -#: src/lang.c:1353 +#: src/lang.c:1346 msgid "In group menu, show author by :" msgstr "Dans vue groupe, voir auteur par :" -#: src/lang.c:1354 +#: src/lang.c:1347 msgid "# Part of from field to display 0) none 1) address 2) full name 3) both\n" msgstr "# Partie du champ from à afficher 0) aucun 1) adresse 2) nom complet\n" "# 3) les deux\n" -#: src/lang.c:1358 +#: src/lang.c:1351 msgid "Draw -> or highlighted bar for selection. toggles & sets." msgstr "Afficher -> ou une ligne pour la sélection. change & règle." -#: src/lang.c:1359 +#: src/lang.c:1352 msgid "Draw -> instead of highlighted bar :" msgstr "Afficher -> plutôt qu'une ligne :" -#: src/lang.c:1360 +#: src/lang.c:1353 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:1365 +#: src/lang.c:1358 msgid "Use inverse video for page headers :" msgstr "Vidéo inversée pour les en-têtes :" -#: src/lang.c:1366 +#: src/lang.c:1359 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 " "vues\n" -#: src/lang.c:1371 +#: src/lang.c:1364 msgid "Thread articles by :" msgstr "Regrouper les articles par :" -#: src/lang.c:1372 +#: src/lang.c:1365 msgid "# Thread articles on 0=(nothing) 1=(Subject) 2=(References) 3=(Both)\n" "# 4=(Multipart Subject).\n" msgstr "# Regrouper les articles sur 0=(rien) 1=(Sujet) 2=(Références) 3=(Les deux)\n" "# 4=(Sujet multi-parties).\n" -#: src/lang.c:1378 +#: src/lang.c:1371 msgid "Score of a thread :" msgstr "Score d'un fil :" -#: src/lang.c:1379 +#: src/lang.c:1372 msgid "# Thread score 0=(Max) 1=(Sum) 2=(Average)\n" msgstr "# Score d'un fil 0=(Max) 1=(Sum) 2=(Moyen)\n" -#: src/lang.c:1383 +#: src/lang.c:1376 msgid "Sort articles by Subject, From, Date or Score. toggles & sets." msgstr "Trier les articles par Sujet, De, Date ou Score. change & règle." -#: src/lang.c:1384 +#: src/lang.c:1377 msgid "Sort articles by :" msgstr "Trier les articles par :" -#: src/lang.c:1385 +#: src/lang.c:1378 msgid "# Sort articles by 0=(nothing) 1=(Subject descend) 2=(Subject ascend)\n" "# 3=(From descend) 4=(From ascend) 5=(Date descend) 6=(Date ascend)\n" "# 7=(Score descend) 8=(Score ascend) 9=(Lines descend) 10=(Lines ascend).\n" @@ -4357,56 +4346,56 @@ msgstr "# Trie les article par 0=(rien) "# 7=(Score descendant) 8=(Score ascendant) 9=(Lignes descendant) 10=(Lignes " "ascendant)\n" -#: src/lang.c:1391 +#: src/lang.c:1384 msgid "Sort threads by Nothing or Score. toggles & sets." msgstr "Trier les fils par Rien ou Score. change & règle." -#: src/lang.c:1392 +#: src/lang.c:1385 msgid "Sort threads by :" msgstr "Trier les fils par :" -#: src/lang.c:1393 +#: src/lang.c:1386 msgid "# Sort thread by 0=(nothing) 1=(Score descend) 2=(Score ascend)\n" msgstr "# Trie le fil par 0=(rien) 1=(Score descendant) 2=(Score ascendant)\n" -#: src/lang.c:1397 +#: src/lang.c:1390 msgid "Put cursor at first/last unread art in groups. toggles & sets." msgstr "Place le curseur sur le 1er article non lu. change & règle." -#: src/lang.c:1398 +#: src/lang.c:1391 msgid "Goto first unread article in group :" msgstr "Aller au 1er art. non lu du groupe :" -#: src/lang.c:1399 +#: src/lang.c:1392 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:1403 +#: src/lang.c:1396 msgid "Show all articles or only unread articles. toggles & sets." msgstr "Affiche tous les articles ou seulement ceux non lus. change & " "règle." -#: src/lang.c:1404 +#: src/lang.c:1397 msgid "Show only unread articles :" msgstr "Afficher articles non lus seulement:" -#: src/lang.c:1405 +#: src/lang.c:1398 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:1410 +#: src/lang.c:1403 msgid "Show only groups with unread arts :" msgstr "Voir groupes avec articles non lus :" -#: src/lang.c:1411 +#: src/lang.c:1404 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:1416 +#: src/lang.c:1409 msgid "Filter which articles :" -msgstr "Filtrer quels articles :" +msgstr "Filtrer quel article :" -#: src/lang.c:1417 +#: src/lang.c:1410 msgid "# 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" @@ -4414,232 +4403,232 @@ msgstr "# 0=(Filtrer seulement les artic "# 1=(Tout filtrer et les afficher dans les fils précédés d'un K)\n" "# 2=(Tout filtrer et ne pas les afficher)\n" -#: src/lang.c:1424 +#: src/lang.c:1417 msgid "Tab goes to next unread article :" msgstr "Tab va au prochain article non lu :" -#: src/lang.c:1425 +#: src/lang.c:1418 msgid "# If ON the TAB command will go to next unread article at article viewer " "level\n" -msgstr "# Si ON TAB ira au prochain article non lu directement depuis le visual iseur " +msgstr "# Si ON TAB ira au prochain article non lu directement depuis le visualiseur " "d'article\n" -#: src/lang.c:1429 +#: src/lang.c:1422 msgid "Scrolling with past the end of an art. jumps to the next unread one." msgstr "Défiler avec passera le fin d'un article et ira au prochain non lu." -#: src/lang.c:1430 +#: src/lang.c:1423 msgid "Space goes to next unread article :" msgstr "Espace va au prochain art. non lu :" -#: src/lang.c:1431 +#: src/lang.c:1424 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 (page style rn)\n" -#: src/lang.c:1436 +#: src/lang.c:1429 msgid "Scrolling with / past the end of an art. jumps to the unread one." msgstr "Défiler avec / passera la fin d'un article et ira au prochain non " "lu." -#: src/lang.c:1437 +#: src/lang.c:1430 msgid "PgDn goes to next unread article :" msgstr "PgDn ira au prochain article non lu:" -#: src/lang.c:1438 +#: src/lang.c:1431 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 PGDN ou BAS ira au prochain article non lu lorsqu'elle sera\n" "# utilisée à la fin d'un article.\n" -#: src/lang.c:1444 +#: src/lang.c:1437 msgid "List thread using right arrow key :" msgstr "Lister le fil via la flèche droite :" -#: src/lang.c:1445 +#: src/lang.c:1438 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 " "droite.\n" -#: src/lang.c:1449 +#: src/lang.c:1442 msgid "Enter character to indicate deleted articles. sets, cancels." msgstr "Caractère indiquant les articles effacés. règle, annule." -#: src/lang.c:1450 +#: src/lang.c:1443 msgid "Character to show deleted articles :" msgstr "Caractère pour les articles effacés:" -#: src/lang.c:1451 +#: src/lang.c:1444 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:1456 +#: src/lang.c:1449 msgid "Enter character to indicate articles in a range. sets, cancels." msgstr "Caractère indiquant les articles inclus. règle, annule." -#: src/lang.c:1457 +#: src/lang.c:1450 msgid "Character to show inrange articles :" msgstr "Caractère pour art. non inclus :" -#: src/lang.c:1458 +#: src/lang.c:1451 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:1463 +#: src/lang.c:1456 msgid "Enter character to indicate that article will return. sets, " "cancels." msgstr "" -#: src/lang.c:1464 +#: src/lang.c:1457 msgid "Character to show returning arts :" msgstr "" -#: src/lang.c:1465 +#: src/lang.c:1458 msgid "# Character used to show that an art will return (default '-')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1470 +#: src/lang.c:1463 msgid "Enter character to indicate selected articles. sets, cancels." msgstr "" -#: src/lang.c:1471 +#: src/lang.c:1464 msgid "Character to show selected articles:" msgstr "" -#: src/lang.c:1472 +#: src/lang.c:1465 msgid "# Character used to show that an art was auto-selected (default '*')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1477 +#: src/lang.c:1470 msgid "Enter character to indicate recent articles. sets, cancels." msgstr "" -#: src/lang.c:1478 +#: src/lang.c:1471 msgid "Character to show recent articles :" msgstr "" -#: src/lang.c:1479 +#: src/lang.c:1472 msgid "# Character used to show that an art is recent (default 'o')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1484 +#: src/lang.c:1477 msgid "Enter character to indicate unread articles. sets, cancels." msgstr "" -#: src/lang.c:1485 +#: src/lang.c:1478 msgid "Character to show unread articles :" msgstr "" -#: src/lang.c:1486 +#: src/lang.c:1479 msgid "# Character used to show that an art is unread (default '+')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1491 +#: src/lang.c:1484 msgid "Enter character to indicate read articles. sets, cancels." msgstr "" -#: src/lang.c:1492 +#: src/lang.c:1485 msgid "Character to show read articles :" msgstr "" -#: src/lang.c:1493 +#: src/lang.c:1486 msgid "# Character used to show that an art was read (default ' ')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1498 +#: src/lang.c:1491 msgid "Enter character to indicate killed articles. sets, cancels." msgstr "" -#: src/lang.c:1499 +#: src/lang.c:1492 msgid "Character to show killed articles :" msgstr "" -#: src/lang.c:1500 +#: src/lang.c:1493 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:1505 +#: src/lang.c:1498 msgid "Enter character to indicate read selected articles. sets, cancels." msgstr "" -#: src/lang.c:1506 +#: src/lang.c:1499 msgid "Character to show readselected arts:" msgstr "" -#: src/lang.c:1507 +#: src/lang.c:1500 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:1512 +#: src/lang.c:1505 msgid "Enter maximum length of newsgroup names displayed. sets." msgstr "" -#: src/lang.c:1513 +#: src/lang.c:1506 msgid "Max. length of group names shown :" msgstr "" -#: src/lang.c:1514 +#: src/lang.c:1507 msgid "# Maximum length of the names of newsgroups displayed\n" msgstr "" -#: src/lang.c:1519 +#: src/lang.c:1512 msgid "Show lines/score in listings :" msgstr "" -#: src/lang.c:1520 +#: src/lang.c:1513 msgid "# What informations should be displayed in article/thread listing\n" "# 0 = nothing, 1 = lines, 2 = score, 3 = lines & score\n" msgstr "" -#: src/lang.c:1525 +#: src/lang.c:1518 msgid "0 = full page scrolling, -1 = show previous last line as first on next page, " "-2 = half page" msgstr "" -#: src/lang.c:1526 +#: src/lang.c:1519 msgid "Number of lines to scroll in pager :" msgstr "" -#: src/lang.c:1527 +#: src/lang.c:1520 msgid "# Number of lines that cursor-up/down will scroll in article pager\n" "# eg, 1+ = line-by-line, 0 = page-by-page (traditional behavior),\n" "# -1 = the top/bottom line is carried over onto the next page,\n" "# -2 = half-page scrolling\n" msgstr "" -#: src/lang.c:1534 +#: src/lang.c:1527 msgid "Display signatures. toggles & sets." msgstr "" -#: src/lang.c:1535 +#: src/lang.c:1528 msgid "Display signatures :" msgstr "Afficher les signatures :" -#: src/lang.c:1536 +#: src/lang.c:1529 msgid "# If OFF don't show signatures when displaying articles\n" msgstr "" -#: src/lang.c:1540 +#: src/lang.c:1533 msgid "Display uuencoded data as tagged attachments. toggles & sets." msgstr "" -#: src/lang.c:1541 +#: src/lang.c:1534 msgid "Display uue data as an attachment :" msgstr "Afficher donnée uue comme PJ :" -#: src/lang.c:1542 +#: src/lang.c:1535 msgid "# Handling of uuencoded data in the pager\n" "# 0 = display raw uuencoded data\n" "# 1 = uuencoded data will be condensed to a single tag line showing\n" @@ -4648,28 +4637,28 @@ msgid "# Handling of uuencoded data in t "# into a tag line.\n" msgstr "" -#: src/lang.c:1551 +#: src/lang.c:1544 msgid "Decode German style TeX umlaut codes to ISO. toggles & sets." msgstr "" -#: src/lang.c:1552 +#: src/lang.c:1545 msgid "Display \"a as Umlaut-a :" msgstr "" -#: src/lang.c:1553 +#: src/lang.c:1546 msgid "# If ON decode German style TeX umlaut codes to ISO and\n" "# show \"a as Umlaut-a, etc.\n" msgstr "" -#: src/lang.c:1558 src/lang.c:1568 +#: src/lang.c:1551 src/lang.c:1561 msgid "Space separated list of header fields" msgstr "" -#: src/lang.c:1559 +#: src/lang.c:1552 msgid "Display these header fields (or *) :" msgstr "" -#: src/lang.c:1560 +#: src/lang.c:1553 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" @@ -4678,11 +4667,11 @@ msgid "# Which news headers you wish to "# spaces. Not defining anything turns off this option.\n" msgstr "" -#: src/lang.c:1569 +#: src/lang.c:1562 msgid "Do not display these header fields :" msgstr "" -#: src/lang.c:1570 +#: src/lang.c:1563 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 " @@ -4693,511 +4682,511 @@ msgid "# Same as 'news_headers_to_displa "# Not defining anything turns off this option.\n" msgstr "" -#: src/lang.c:1580 +#: src/lang.c:1573 msgid "Do you want to enable automatic handling of multipart/alternative articles?" msgstr "" -#: src/lang.c:1581 +#: src/lang.c:1574 msgid "Skip multipart/alternative parts :" msgstr "" -#: src/lang.c:1582 +#: src/lang.c:1575 msgid "# If ON strip multipart/alternative messages automatically\n" msgstr "" -#: src/lang.c:1587 +#: src/lang.c:1580 msgid "A regex used to decide which lines to show in col_quote." msgstr "" -#: src/lang.c:1588 +#: src/lang.c:1581 msgid "Regex used to show quoted lines :" msgstr "" -#: src/lang.c:1589 +#: src/lang.c:1582 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:1595 +#: src/lang.c:1588 msgid "A regex used to decide which lines to show in col_quote2." msgstr "" -#: src/lang.c:1596 +#: src/lang.c:1589 msgid "Regex used to show twice quoted l. :" msgstr "" -#: src/lang.c:1597 +#: src/lang.c:1590 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:1603 +#: src/lang.c:1596 msgid "A regex used to decide which lines to show in col_quote3." msgstr "" -#: src/lang.c:1604 +#: src/lang.c:1597 msgid "Regex used to show >= 3 times q.l. :" msgstr "" -#: src/lang.c:1605 +#: src/lang.c:1598 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:1612 +#: src/lang.c:1605 msgid "A regex used to decide which words to show in col_markslashes." msgstr "" -#: src/lang.c:1613 +#: src/lang.c:1606 msgid "Regex used to highlight /slashes/ :" msgstr "" -#: src/lang.c:1614 +#: src/lang.c:1607 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:1620 +#: src/lang.c:1613 msgid "A regex used to decide which words to show in col_markstars." msgstr "" -#: src/lang.c:1621 +#: src/lang.c:1614 msgid "Regex used to highlight *stars* :" msgstr "" -#: src/lang.c:1622 +#: src/lang.c:1615 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:1628 +#: src/lang.c:1621 msgid "A regex used to decide which words to show in col_markstroke." msgstr "" -#: src/lang.c:1629 +#: src/lang.c:1622 msgid "Regex used to highlight -strokes- :" msgstr "" -#: src/lang.c:1630 +#: src/lang.c:1623 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:1636 +#: src/lang.c:1629 msgid "A regex used to decide which words to show in col_markdash." msgstr "" -#: src/lang.c:1637 +#: src/lang.c:1630 msgid "Regex used to highlight _underline_:" msgstr "" -#: src/lang.c:1638 +#: src/lang.c:1631 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:1644 +#: src/lang.c:1637 msgid "A regex used to find Subject prefixes to remove. Use '|' as separator." msgstr "" -#: src/lang.c:1645 +#: src/lang.c:1638 msgid "Regex with Subject prefixes :" msgstr "" -#: src/lang.c:1646 +#: src/lang.c:1639 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:1651 +#: src/lang.c:1644 msgid "A regex used to find Subject suffixes to remove. Use '|' as separator." msgstr "" -#: src/lang.c:1652 +#: src/lang.c:1645 msgid "Regex with Subject suffixes :" msgstr "" -#: src/lang.c:1653 +#: src/lang.c:1646 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:1658 +#: src/lang.c:1651 msgid "Enter name and options for external MIME viewer, --internal for built-in " "viewer" msgstr "" -#: src/lang.c:1659 +#: src/lang.c:1652 msgid "MIME binary content viewer :" msgstr "" -#: src/lang.c:1660 +#: src/lang.c:1653 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:1667 +#: src/lang.c:1660 msgid "Confirm before starting non-text viewing program" msgstr "" -#: src/lang.c:1668 +#: src/lang.c:1661 msgid "Ask before using MIME viewer :" msgstr "" -#: src/lang.c:1669 +#: src/lang.c:1662 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:1674 +#: src/lang.c:1667 msgid "Ask to mark groups read when quitting. toggles & sets." msgstr "" -#: src/lang.c:1675 +#: src/lang.c:1668 msgid "Catchup read groups when quitting :" msgstr "" -#: src/lang.c:1676 +#: src/lang.c:1669 msgid "# If ON ask user if read groups should all be marked read\n" msgstr "" -#: src/lang.c:1681 +#: src/lang.c:1674 msgid "Catchup group using left key :" msgstr "" -#: src/lang.c:1682 +#: src/lang.c:1675 msgid "# If ON catchup group/thread when leaving with the left arrow key.\n" msgstr "" -#: src/lang.c:1687 +#: src/lang.c:1680 msgid "Catchup thread by using left key :" msgstr "" -#: src/lang.c:1693 +#: src/lang.c:1686 msgid "Which actions require confirmation :" msgstr "" -#: src/lang.c:1694 +#: src/lang.c:1687 msgid "# What should we ask confirmation for.\n" msgstr "" -#: src/lang.c:1699 +#: src/lang.c:1692 msgid "'Mark article read' ignores tags :" msgstr "" -#: src/lang.c:1700 +#: src/lang.c:1693 msgid "# If ON the 'Mark article read' function marks only the current article.\n" msgstr "" -#: src/lang.c:1704 +#: src/lang.c:1697 msgid "Program to run to open URL's, sets, cancels." msgstr "" -#: src/lang.c:1705 +#: src/lang.c:1698 msgid "Program that opens URL's :" msgstr "" -#: src/lang.c:1706 +#: src/lang.c:1699 msgid "# The program used to open URL's. The actual URL will be appended\n" msgstr "" -#: src/lang.c:1711 +#: src/lang.c:1704 msgid "Use mouse in xterm :" msgstr "" -#: src/lang.c:1712 +#: src/lang.c:1705 msgid "# If ON enable mouse key support on xterm terminals\n" msgstr "" -#: src/lang.c:1718 +#: src/lang.c:1711 msgid "Use scroll keys on keypad :" msgstr "" -#: src/lang.c:1719 +#: src/lang.c:1712 msgid "# If ON enable scroll keys on terminals that support it\n" msgstr "" -#: src/lang.c:1724 +#: src/lang.c:1717 msgid "Enter maximum number of article to get. sets." msgstr "" -#: src/lang.c:1725 +#: src/lang.c:1718 msgid "Number of articles to get :" msgstr "" -#: src/lang.c:1726 +#: src/lang.c:1719 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:1731 +#: src/lang.c:1724 msgid "Enter number of days article is considered recent. sets." msgstr "" -#: src/lang.c:1732 +#: src/lang.c:1725 msgid "Article recentness time limit :" msgstr "" -#: src/lang.c:1733 +#: src/lang.c:1726 msgid "# Number of days in which article is considered recent, (0=OFF)\n" msgstr "" -#: src/lang.c:1737 +#: src/lang.c:1730 msgid "WILDMAT for normal wildcards, REGEX for full regular expression matching." msgstr "" -#: src/lang.c:1738 +#: src/lang.c:1731 msgid "Wildcard matching :" msgstr "" -#: src/lang.c:1739 +#: src/lang.c:1732 msgid "# Wildcard matching 0=(wildmat) 1=(regex)\n" msgstr "" -#: src/lang.c:1743 +#: src/lang.c:1736 msgid "Enter minimal score before an article is marked killed. sets." msgstr "" -#: src/lang.c:1744 +#: src/lang.c:1737 msgid "Score limit (kill) :" msgstr "" -#: src/lang.c:1745 +#: src/lang.c:1738 msgid "# Score limit before an article is marked killed\n" msgstr "" -#: src/lang.c:1749 +#: src/lang.c:1742 msgid "Enter default score to kill articles. sets." msgstr "" -#: src/lang.c:1750 +#: src/lang.c:1743 msgid "Default score to kill articles :" msgstr "" -#: src/lang.c:1751 +#: src/lang.c:1744 msgid "# Default score to kill articles\n" msgstr "" -#: src/lang.c:1755 +#: src/lang.c:1748 msgid "Enter minimal score before an article is marked hot. sets." msgstr "" -#: src/lang.c:1756 +#: src/lang.c:1749 msgid "Score limit (select) :" msgstr "" -#: src/lang.c:1757 +#: src/lang.c:1750 msgid "# Score limit before an article is marked hot\n" msgstr "" -#: src/lang.c:1761 +#: src/lang.c:1754 msgid "Enter default score to select articles. sets." msgstr "" -#: src/lang.c:1762 +#: src/lang.c:1755 msgid "Default score to select articles :" msgstr "" -#: src/lang.c:1763 +#: src/lang.c:1756 msgid "# Default score to select articles\n" msgstr "" -#: src/lang.c:1769 +#: src/lang.c:1762 msgid "Use slrnface to show ''X-Face:''s :" msgstr "" -#: src/lang.c:1770 +#: src/lang.c:1763 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:1778 +#: src/lang.c:1771 msgid "Use ANSI color :" msgstr "" -#: src/lang.c:1779 +#: src/lang.c:1772 msgid "# If ON using ANSI-color\n" msgstr "" -#: src/lang.c:1784 +#: src/lang.c:1777 msgid "Standard foreground color :" msgstr "" -#: src/lang.c:1785 +#: src/lang.c:1778 msgid "# Standard foreground color\n" msgstr "" -#: src/lang.c:1790 +#: src/lang.c:1783 msgid "Standard background color :" msgstr "" -#: src/lang.c:1791 +#: src/lang.c:1784 msgid "# Standard-Background-Color\n" msgstr "" -#: src/lang.c:1796 +#: src/lang.c:1789 msgid "Color for inverse text (background):" msgstr "" -#: src/lang.c:1797 +#: src/lang.c:1790 msgid "# Color of background for inverse text\n" msgstr "" -#: src/lang.c:1802 +#: src/lang.c:1795 msgid "Color for inverse text (foreground):" msgstr "" -#: src/lang.c:1803 +#: src/lang.c:1796 msgid "# Color of foreground for inverse text\n" msgstr "" -#: src/lang.c:1808 +#: src/lang.c:1801 msgid "Color of text lines :" msgstr "" -#: src/lang.c:1809 +#: src/lang.c:1802 msgid "# Color of text-lines\n" msgstr "" -#: src/lang.c:1814 +#: src/lang.c:1807 msgid "Color of mini help menu :" msgstr "" -#: src/lang.c:1815 +#: src/lang.c:1808 msgid "# Color of mini help menu\n" msgstr "" -#: src/lang.c:1820 +#: src/lang.c:1813 msgid "Color of help text :" msgstr "" -#: src/lang.c:1821 +#: src/lang.c:1814 msgid "# Color of help pages\n" msgstr "" -#: src/lang.c:1826 +#: src/lang.c:1819 msgid "Color of status messages :" msgstr "" -#: src/lang.c:1827 +#: src/lang.c:1820 msgid "# Color of messages in last line\n" msgstr "" -#: src/lang.c:1832 +#: src/lang.c:1825 msgid "Color of quoted lines :" msgstr "" -#: src/lang.c:1833 +#: src/lang.c:1826 msgid "# Color of quote-lines\n" msgstr "" -#: src/lang.c:1838 +#: src/lang.c:1831 msgid "Color of twice quoted line :" msgstr "" -#: src/lang.c:1839 +#: src/lang.c:1832 msgid "# Color of twice quoted lines\n" msgstr "" -#: src/lang.c:1844 +#: src/lang.c:1837 msgid "Color of =>3 times quoted line :" msgstr "" -#: src/lang.c:1845 +#: src/lang.c:1838 msgid "# Color of >=3 times quoted lines\n" msgstr "" -#: src/lang.c:1850 +#: src/lang.c:1843 msgid "Color of article header lines :" msgstr "" -#: src/lang.c:1851 +#: src/lang.c:1844 msgid "# Color of header-lines\n" msgstr "" -#: src/lang.c:1856 +#: src/lang.c:1849 msgid "Color of actual news header fields :" msgstr "" -#: src/lang.c:1857 +#: src/lang.c:1850 msgid "# Color of actual news header fields\n" msgstr "" -#: src/lang.c:1862 +#: src/lang.c:1855 msgid "Color of article subject lines :" msgstr "" -#: src/lang.c:1863 +#: src/lang.c:1856 msgid "# Color of article subject\n" msgstr "" -#: src/lang.c:1868 +#: src/lang.c:1861 msgid "Color of response counter :" msgstr "" -#: src/lang.c:1869 +#: src/lang.c:1862 msgid "# Color of response counter\n" msgstr "" -#: src/lang.c:1874 +#: src/lang.c:1867 msgid "Color of sender (From:) :" msgstr "" -#: src/lang.c:1875 +#: src/lang.c:1868 msgid "# Color of sender (From:)\n" msgstr "" -#: src/lang.c:1880 +#: src/lang.c:1873 msgid "Color of help/mail sign :" msgstr "" -#: src/lang.c:1881 +#: src/lang.c:1874 msgid "# Color of Help/Mail-Sign\n" msgstr "" -#: src/lang.c:1886 +#: src/lang.c:1879 msgid "Color of signatures :" msgstr "" -#: src/lang.c:1887 +#: src/lang.c:1880 msgid "# Color of signature\n" msgstr "" -#: src/lang.c:1892 +#: src/lang.c:1885 msgid "Color of highlighting with *stars* :" msgstr "" -#: src/lang.c:1893 +#: src/lang.c:1886 msgid "# Color of word highlighting. There are four possibilities\n" "# in articles: *stars*, /slashes/, _underdashes_ and -strokes-.\n" msgstr "" -#: src/lang.c:1899 +#: src/lang.c:1892 msgid "Color of highlighting with _dash_ :" msgstr "" -#: src/lang.c:1905 +#: src/lang.c:1898 msgid "Color of highlighting with /slash/ :" msgstr "" -#: src/lang.c:1911 +#: src/lang.c:1904 msgid "Color of highlighting with -stroke-:" msgstr "" -#: src/lang.c:1918 +#: src/lang.c:1911 msgid "Attr. of highlighting with *stars* :" msgstr "" -#: src/lang.c:1919 +#: src/lang.c:1912 msgid "# Attribute of word highlighting on mono terminals.\n" "# There are four possibilities in articles:\n" "# *stars*, /slashes/, _underdashes_ and -strokes-.\n" @@ -5206,93 +5195,93 @@ msgid "# Attribute of word highlighting "# 3 - Reverse video, 4 - Blinking, 5 - Half bright, 6 - Bold\n" msgstr "" -#: src/lang.c:1929 +#: src/lang.c:1922 msgid "Attr. of highlighting with _dash_ :" msgstr "" -#: src/lang.c:1935 +#: src/lang.c:1928 msgid "Attr. of highlighting with /slash/ :" msgstr "" -#: src/lang.c:1941 +#: src/lang.c:1934 msgid "Attr. of highlighting with -stroke-:" msgstr "" -#: src/lang.c:1947 +#: src/lang.c:1940 msgid "URL highlighting in message body :" msgstr "" -#: src/lang.c:1948 +#: src/lang.c:1941 msgid "# Enable URL highlighting?\n" msgstr "" -#: src/lang.c:1953 +#: src/lang.c:1946 msgid "Word highlighting in message body :" msgstr "" -#: src/lang.c:1954 +#: src/lang.c:1947 msgid "# Enable word highlighting?\n" msgstr "" -#: src/lang.c:1959 +#: src/lang.c:1952 msgid "What to display instead of mark :" msgstr "" -#: src/lang.c:1960 +#: src/lang.c:1953 msgid "# Should the leading and ending stars and dashes also be displayed,\n" "# even when they are highlighting marks?\n" "# 0 - no 1 - yes, display mark 2 - print a space instead\n" msgstr "" -#: src/lang.c:1966 +#: src/lang.c:1959 msgid "Enter column number to wrap article lines to in the pager. sets." msgstr "" -#: src/lang.c:1967 +#: src/lang.c:1960 msgid "Page line wrap column :" msgstr "" -#: src/lang.c:1968 +#: src/lang.c:1961 msgid "# Wrap article lines at column\n" msgstr "" -#: src/lang.c:1973 +#: src/lang.c:1966 msgid "Wrap around threads on next unread :" msgstr "" -#: src/lang.c:1974 +#: src/lang.c:1967 msgid "# If ON wrap around threads on searching next unread article\n" msgstr "" -#: src/lang.c:1978 +#: src/lang.c:1971 msgid "Enter default mail address (and fullname). sets." msgstr "" -#: src/lang.c:1979 +#: src/lang.c:1972 msgid "Mail address (and fullname) :" msgstr "" -#: src/lang.c:1980 +#: src/lang.c:1973 msgid "# User's mail address (and fullname), if not username@host (fullname)\n" msgstr "" -#: src/lang.c:1985 +#: src/lang.c:1978 msgid "Show empty Followup-To in editor :" msgstr "" -#: src/lang.c:1986 +#: src/lang.c:1979 msgid "# If ON show empty Followup-To header when editing an article\n" msgstr "" -#: src/lang.c:1990 +#: src/lang.c:1983 msgid "Enter path/! command/--none to create your default signature. sets." msgstr "" -#: src/lang.c:1991 +#: src/lang.c:1984 msgid "Create signature from path/command :" msgstr "" -#: src/lang.c:1992 +#: src/lang.c:1985 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 " @@ -5300,48 +5289,48 @@ msgid "# Signature path (random sigs)/fi "# default_sigfile=--none don't append a signature\n" msgstr "" -#: src/lang.c:1999 +#: src/lang.c:1992 msgid "Prepend signature with \"-- \" on own line. toggles & sets." msgstr "" -#: src/lang.c:2000 +#: src/lang.c:1993 msgid "Prepend signature with \"-- \" :" msgstr "" -#: src/lang.c:2001 +#: src/lang.c:1994 msgid "# If ON prepend the signature with dashes '\\n-- \\n'\n" msgstr "" -#: src/lang.c:2005 +#: src/lang.c:1998 msgid "Add signature when reposting articles. toggles & sets." msgstr "" -#: src/lang.c:2006 +#: src/lang.c:1999 msgid "Add signature when reposting :" msgstr "" -#: src/lang.c:2007 +#: src/lang.c:2000 msgid "# If ON add signature to reposted articles\n" msgstr "" -#: src/lang.c:2011 +#: src/lang.c:2004 msgid "Enter quotation marks, %s or %S for author's initials." msgstr "" -#: src/lang.c:2012 +#: src/lang.c:2005 msgid "Characters used as quote-marks :" msgstr "" -#: src/lang.c:2013 +#: src/lang.c:2006 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:2019 +#: src/lang.c:2012 msgid "Quoting behavior :" msgstr "" -#: src/lang.c:2020 +#: src/lang.c:2013 msgid "# How quoting should be handled when following up or replying.\n" "# 0 = Nothing special\n" "# 1 = Compress quotes\n" @@ -5353,49 +5342,49 @@ msgid "# How quoting should be handled w "# 7 = Compress quotes, quote signatures, quote empty lines\n" msgstr "" -#: src/lang.c:2032 src/lang.c:2040 src/lang.c:2046 +#: src/lang.c:2025 src/lang.c:2033 src/lang.c:2039 msgid "%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name" msgstr "" -#: src/lang.c:2033 +#: src/lang.c:2026 msgid "Quote line when following up :" msgstr "" -#: src/lang.c:2034 +#: src/lang.c:2027 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:2041 +#: src/lang.c:2034 msgid "Quote line when cross-posting :" msgstr "" -#: src/lang.c:2047 +#: src/lang.c:2040 msgid "Quote line when mailing :" msgstr "" -#: src/lang.c:2052 +#: src/lang.c:2045 msgid "If ON, include User-Agent: header. toggles & sets." msgstr "" -#: src/lang.c:2053 +#: src/lang.c:2046 msgid "Insert 'User-Agent:'-header :" msgstr "" -#: src/lang.c:2054 +#: src/lang.c:2047 msgid "# If ON include advertising User-Agent: header\n" msgstr "" -#: src/lang.c:2058 +#: src/lang.c:2051 msgid "Enter charset name for MIME (e.g. US-ASCII, ISO-8859-1, EUC-KR), to set." msgstr "" -#: src/lang.c:2059 +#: src/lang.c:2052 msgid "MM_CHARSET :" msgstr "" -#: src/lang.c:2060 +#: src/lang.c:2053 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" @@ -5404,27 +5393,27 @@ msgid "# Charset supported locally which "# mm_charset is considered not displayable and represented as '?'.\n" msgstr "" -#: src/lang.c:2071 +#: src/lang.c:2064 msgid "MM_NETWORK_CHARSET :" msgstr "" -#: src/lang.c:2072 +#: src/lang.c:2065 msgid "# Charset used for MIME (Content-Type) header in postings.\n" msgstr "" -#: src/lang.c:2078 +#: src/lang.c:2071 msgid "Mailbox format :" msgstr "" -#: src/lang.c:2079 +#: src/lang.c:2072 msgid "# Format of the mailbox.\n" msgstr "" -#: src/lang.c:2084 +#: src/lang.c:2077 msgid "MIME encoding in news messages :" msgstr "" -#: src/lang.c:2085 +#: src/lang.c:2078 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" @@ -5432,42 +5421,42 @@ msgid "# MIME encoding (8bit, base64, qu "# Russian charsets with a lot of 8bit characters.\n" msgstr "" -#: src/lang.c:2093 src/lang.c:2114 +#: src/lang.c:2086 src/lang.c:2107 msgid "Don't change unless you know what you are doing. cancels." msgstr "" -#: src/lang.c:2094 +#: src/lang.c:2087 msgid "Use 8bit characters in news headers:" msgstr "" -#: src/lang.c:2095 +#: src/lang.c:2088 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:2102 +#: src/lang.c:2095 msgid "Auto-view post-processed files toggles, sets, cancels." msgstr "" -#: src/lang.c:2103 +#: src/lang.c:2096 msgid "View post-processed files :" msgstr "" -#: src/lang.c:2104 +#: src/lang.c:2097 msgid "# If set, post processed files will be opened in a viewer\n" msgstr "" -#: src/lang.c:2109 +#: src/lang.c:2102 msgid "MIME encoding in mail messages :" msgstr "" -#: src/lang.c:2115 +#: src/lang.c:2108 msgid "Use 8bit characters in mail headers:" msgstr "" -#: src/lang.c:2116 +#: src/lang.c:2109 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 " @@ -5477,643 +5466,438 @@ msgid "# If ON, 8bit characters in mail "# turn it ON unless you have some compelling reason.\n" msgstr "" -#: src/lang.c:2126 +#: src/lang.c:2119 msgid "Strip blanks from ends of lines :" msgstr "" -#: src/lang.c:2127 +#: src/lang.c:2120 msgid "# If ON strip blanks from ends of lines for faster display on slow " "terminals.\n" msgstr "" -#: src/lang.c:2132 +#: src/lang.c:2125 msgid "If ON, use transliteration. toggles & sets." msgstr "" -#: src/lang.c:2133 +#: src/lang.c:2126 msgid "Transliteration :" msgstr "" -#: src/lang.c:2134 +#: src/lang.c:2127 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:2141 +#: src/lang.c:2134 msgid "Send you a carbon copy automatically. toggles & sets." msgstr "" -#: src/lang.c:2142 +#: src/lang.c:2135 msgid "Send you a cc automatically :" msgstr "" -#: src/lang.c:2143 +#: src/lang.c:2136 msgid "# If ON automatically put your name in the Cc: field when mailing an article\n" msgstr "" -#: src/lang.c:2147 +#: src/lang.c:2140 msgid "Send you a blind carbon copy automatically. toggles & sets." msgstr "" -#: src/lang.c:2148 +#: src/lang.c:2141 msgid "Send you a blind cc automatically :" msgstr "" -#: src/lang.c:2149 +#: src/lang.c:2142 msgid "# If ON automatically put your name in the Bcc: field when mailing an " "article\n" msgstr "" -#: src/lang.c:2153 +#: src/lang.c:2146 msgid "Enter address elements about which you want to be warned. sets." msgstr "" -#: src/lang.c:2154 +#: src/lang.c:2147 msgid "Spamtrap warning address parts :" msgstr "" -#: src/lang.c:2155 +#: src/lang.c:2148 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:2160 +#: src/lang.c:2153 msgid "Enter default number of days a filter entry will be valid. sets." msgstr "" -#: src/lang.c:2161 +#: src/lang.c:2154 msgid "No. of days a filter entry is valid:" msgstr "" -#: src/lang.c:2162 +#: src/lang.c:2155 msgid "# Number of days a short term filter will be active\n" msgstr "" -#: src/lang.c:2166 +#: src/lang.c:2159 msgid "Add posted articles to filter. toggles & sets." msgstr "" -#: src/lang.c:2167 +#: src/lang.c:2160 msgid "Add posted articles to filter :" msgstr "" -#: src/lang.c:2168 +#: src/lang.c:2161 msgid "# If ON add posted articles which start a new thread to filter for\n" "# highlighting follow-ups\n" msgstr "" -#: src/lang.c:2172 +#: src/lang.c:2165 msgid "The directory where articles/threads are to be saved in mailbox format." msgstr "" -#: src/lang.c:2173 +#: src/lang.c:2166 msgid "Mail directory :" msgstr "" -#: src/lang.c:2174 +#: src/lang.c:2167 msgid "# (-m) directory where articles/threads are saved in mailbox format\n" msgstr "" -#: src/lang.c:2179 +#: src/lang.c:2172 msgid "Save articles in batch mode (-S) :" msgstr "" -#: src/lang.c:2180 +#: src/lang.c:2173 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:2185 +#: src/lang.c:2178 msgid "The directory where you want articles/threads saved." msgstr "" -#: src/lang.c:2186 +#: src/lang.c:2179 msgid "Directory to save arts/threads in :" msgstr "" -#: src/lang.c:2187 +#: src/lang.c:2180 msgid "# Directory where articles/threads are saved\n" msgstr "" -#: src/lang.c:2191 +#: src/lang.c:2184 msgid "Auto save article/thread by Archive-name: header. toggles & sets." msgstr "" -#: src/lang.c:2192 +#: src/lang.c:2185 msgid "Use Archive-name: header for save :" msgstr "" -#: src/lang.c:2193 +#: src/lang.c:2186 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:2198 +#: src/lang.c:2191 msgid "Mark saved articles/threads as read. toggles, sets, " "cancels." msgstr "" -#: src/lang.c:2199 +#: src/lang.c:2192 msgid "Mark saved articles/threads as read:" msgstr "" -#: src/lang.c:2200 +#: src/lang.c:2193 msgid "# If ON mark articles that are saved as read\n" msgstr "" -#: src/lang.c:2204 +#: src/lang.c:2197 msgid "Do post processing (eg. extract attachments) for saved articles." msgstr "" -#: src/lang.c:2205 +#: src/lang.c:2198 msgid "Post process saved articles :" msgstr "" -#: src/lang.c:2206 +#: src/lang.c:2199 msgid "# Perform post processing (saving binary attachments) from saved articles.\n" "# 0=(no) 1=(yes) 2=(extract shell archives (shar) only)\n" msgstr "" -#: src/lang.c:2212 +#: src/lang.c:2205 msgid "Process only unread articles :" msgstr "" -#: src/lang.c:2213 +#: src/lang.c:2206 msgid "# If ON only save/print/pipe/mail unread articles (tagged articles excepted)\n" msgstr "" -#: src/lang.c:2218 +#: src/lang.c:2211 msgid "Print all or just part of header. toggles & sets." msgstr "" -#: src/lang.c:2219 +#: src/lang.c:2212 msgid "Print all headers when printing :" msgstr "" -#: src/lang.c:2220 +#: src/lang.c:2213 msgid "# If ON print all of article header otherwise just the important lines\n" msgstr "" -#: src/lang.c:2224 +#: src/lang.c:2217 msgid "The printer program with options that is to be used to print articles/threads." msgstr "" -#: src/lang.c:2225 +#: src/lang.c:2218 msgid "Printer program with options :" msgstr "" -#: src/lang.c:2226 +#: src/lang.c:2219 msgid "# Print program with parameters used to print articles/threads\n" msgstr "" -#: src/lang.c:2232 +#: src/lang.c:2225 msgid "Force redraw after certain commands:" msgstr "" -#: src/lang.c:2233 +#: src/lang.c:2226 msgid "# If ON a screen redraw will always be done after certain external commands\n" msgstr "" -#: src/lang.c:2237 +#: src/lang.c:2230 msgid "Start editor with line offset. toggles, sets, cancels." msgstr "" -#: src/lang.c:2238 +#: src/lang.c:2231 msgid "Start editor with line offset :" msgstr "" -#: src/lang.c:2239 +#: src/lang.c:2232 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:2244 +#: src/lang.c:2237 msgid "Enter %E for editor, %F for filename, %N for line-number, to set." msgstr "" -#: src/lang.c:2245 +#: src/lang.c:2238 msgid "Invocation of your editor :" msgstr "" -#: src/lang.c:2246 +#: src/lang.c:2239 msgid "# Format of editor line including parameters\n" "# %%E Editor %%F Filename %%N Linenumber\n" msgstr "" -#: src/lang.c:2251 +#: src/lang.c:2244 msgid "Enter name and options for external-inews, --internal for internal inews" msgstr "" -#: src/lang.c:2252 +#: src/lang.c:2245 msgid "External inews :" msgstr "" -#: src/lang.c:2253 +#: src/lang.c:2246 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:2257 +#: src/lang.c:2250 msgid "Enter %M for mailer, %S for subject, %T for to, %F for filename, to set." msgstr "" -#: src/lang.c:2258 +#: src/lang.c:2251 msgid "Invocation of your mail command :" msgstr "" -#: src/lang.c:2259 +#: src/lang.c:2252 msgid "# Format of mailer line including parameters\n" - "# %%M Mailer %%S Subject %%T To %%F Filename %%U User (AmigaDOS)\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:2267 +#: src/lang.c:2260 msgid "Use interactive mail reader :" msgstr "" -#: src/lang.c:2268 +#: src/lang.c:2261 msgid "# Interactive mailreader:\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:2276 +#: src/lang.c:2269 msgid "Remove ~/.article after posting :" msgstr "" -#: src/lang.c:2277 +#: src/lang.c:2270 msgid "# If ON remove ~/.article after posting.\n" msgstr "" -#: src/lang.c:2281 +#: src/lang.c:2274 msgid "Filename for all posted articles, sets, no filename=do not save." msgstr "" -#: src/lang.c:2282 +#: src/lang.c:2275 msgid "Filename for posted articles :" msgstr "" -#: src/lang.c:2283 +#: src/lang.c:2276 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:2288 +#: src/lang.c:2281 msgid "Keep all failed articles in ~/dead.articles. toggles & sets." msgstr "" -#: src/lang.c:2289 +#: src/lang.c:2282 msgid "Keep failed arts in ~/dead.articles:" msgstr "" -#: src/lang.c:2290 +#: src/lang.c:2283 msgid "# If ON keep all failed postings in ~/dead.articles\n" msgstr "" -#: src/lang.c:2294 +#: src/lang.c:2287 msgid "Do you want to strip unsubscribed groups from .newsrc" msgstr "" -#: src/lang.c:2295 +#: src/lang.c:2288 msgid "No unsubscribed groups in newsrc :" msgstr "" -#: src/lang.c:2296 +#: src/lang.c:2289 msgid "# If ON strip unsubscribed groups from newsrc\n" msgstr "" -#: src/lang.c:2301 +#: src/lang.c:2294 msgid "Remove bogus groups from newsrc :" msgstr "" -#: src/lang.c:2302 +#: src/lang.c:2295 msgid "# What to do with bogus groups in newsrc file\n" "# 0=(Keep) 1=(Remove) 2=(Highlight with D on selection screen).\n" msgstr "" -#: src/lang.c:2306 +#: src/lang.c:2299 msgid "Enter number of seconds until active file will be reread. sets." msgstr "" -#: src/lang.c:2307 +#: src/lang.c:2300 msgid "Interval in secs to reread active :" msgstr "" -#: src/lang.c:2308 +#: src/lang.c:2301 msgid "# Time interval in seconds between rereading the active file (0=never)\n" msgstr "" -#: src/lang.c:2313 +#: src/lang.c:2306 msgid "Reconnect to server automatically :" msgstr "Reconnexion automatique au serveur :" -#: src/lang.c:2314 +#: src/lang.c:2307 msgid "# If ON automatically reconnect to NNTP server if the connection is broken\n" msgstr "" -#: src/lang.c:2318 +#: src/lang.c:2311 msgid "Create local copies of NNTP overview files. toggles & sets." msgstr "Créer des copies locales des en-têtes NNTP. change & choisi." -#: src/lang.c:2319 +#: src/lang.c:2312 msgid "Cache NNTP overview files locally :" msgstr "Cache local des en-têtes NNTP :" -#: src/lang.c:2320 +#: src/lang.c:2313 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/main.c:619 +# TRANSLATION MISSING +#: src/lang.c:2317 +msgid "Enter format string. sets, cancels." +msgstr "" + +# TRANSLATION MISSING +#: src/lang.c:2318 +msgid "Format string for display of dates :" +msgstr "" + +# TRANSLATION MISSING +#: src/lang.c:2319 +msgid "# Format string for date representation\n" +msgstr "" + +#: src/main.c:590 #, c-format msgid "Version: %s release %s (\"%s\") %s %s" msgstr "Version : %s release %s (\"%s\") %s %s" -#: src/main.c:622 +#: src/main.c:593 #, c-format msgid "Version: %s release %s (\"%s\")" msgstr "Version : %s release %s (\"%s\")" -#: src/nntplib.c:804 +#: src/newsrc.c:432 +msgid "Unreachable?\n" +msgstr "Inacessible ?\n" + +#: src/nntplib.c:821 #, c-format msgid "\n" "Server timed out, trying reconnect # %d\n" msgstr "\n" "Connexion au serveur expirée, reconnexion # %d\n" -#: src/nntplib.c:822 +#: src/nntplib.c:839 msgid "Rejoin current group\n" msgstr "Rejoindre l'actuel groupe\n" -#: src/nntplib.c:829 +#: src/nntplib.c:846 #, c-format msgid "Read (%s)\n" msgstr "Lecture (%s)\n" -#: src/nntplib.c:831 +#: src/nntplib.c:848 #, c-format msgid "Resend last command (%s)\n" msgstr "Réenvoyer la dernière commande (%s)\n" -#: src/nntplib.c:951 -msgid "100 Help text on way" -msgstr "100 L'aide arrive" - -#: src/nntplib.c:955 -msgid "180 Authorization capabilities" -msgstr "180 Capacités d'autorisation" - -#: src/nntplib.c:959 -msgid "199 Debug output" -msgstr "199 Sortie du déboguage" - -#: src/nntplib.c:963 -msgid "200 Hello; you can post" -msgstr "200 Salut; vous pouvez poster" - -#: src/nntplib.c:967 -msgid "201 Hello; you can't post" -msgstr "201 Salut; vous ne pouvez pas poster" - -#: src/nntplib.c:971 -msgid "202 Slave status noted" -msgstr "202 Statut de l'esclave noté" - -#: src/nntplib.c:979 -msgid "211 Group selected" -msgstr "211 Groupe sélectionné" - -#: src/nntplib.c:984 -msgid "215 Newsgroups follow" -msgstr "215 Les groupes arrivent" - -#: src/nntplib.c:989 -msgid "218 Group index file follows" -msgstr "218 L'index du groupe arrive" - -#: src/nntplib.c:994 -msgid "220 Article (head & body) follows" -msgstr "220 L'article (corps & en-tête) arrive" - -#: src/nntplib.c:998 -msgid "221 Head follows" -msgstr "221 L'en-tête arrive" - -#: src/nntplib.c:1002 -msgid "222 Body follows" -msgstr "222 Le corps arrive" - -#: src/nntplib.c:1006 -msgid "223 No text sent -- stat, next, last" -msgstr "223 Pas de texte envoyé -- stat, next, last" - -#: src/nntplib.c:1010 -msgid "230 New articles by message-id follow" -msgstr "230 Les nouveaux articles pas message-id arrivent" - -#: src/nntplib.c:1014 -msgid "231 New newsgroups follow" -msgstr "231 Les nouveaux groupes arrivent" - -#: src/nntplib.c:1018 -msgid "235 Article transferred successfully" -msgstr "235 Article transféré avec succès" - -#: src/nntplib.c:1022 -msgid "240 Article posted successfully" -msgstr "240 Article posté avec succès" - -#: src/nntplib.c:1026 -msgid "280 Authorization system ok" -msgstr "280 Autorisation système ok" - -#: src/nntplib.c:1030 -msgid "281 Authorization (user/pass) ok" -msgstr "281 Autorisation (utilisateur/mdp) ok" - -#: src/nntplib.c:1034 -msgid "282 binary data follows" -msgstr "282 les données binaires arrivent" - -#: src/nntplib.c:1038 -msgid "283 spooldir list follows" -msgstr "283 la liste des spooldir arrive" - -#: src/nntplib.c:1042 -msgid "284 Switching to a different spooldir" -msgstr "284 Passage à un autre spooldir" - -#: src/nntplib.c:1046 -msgid "285 Still using same spooldir" -msgstr "285 Utilisation du même spooldir" - -#: src/nntplib.c:1050 -msgid "286 Current spooldir" -msgstr "286 Spooldir actuel" - -#: src/nntplib.c:1054 -msgid "287 Available spooldir" -msgstr "287 Spooldir disponible" - -#: src/nntplib.c:1058 -msgid "288 Unavailable spooldir or invalid entry" -msgstr "288 Spooldir indisponible ou entrée invalide" - -#: src/nntplib.c:1062 -msgid "335 Continue to send article" -msgstr "335 Continuer l'envoi de l'article" - -#: src/nntplib.c:1066 -msgid "340 Continue to post article" -msgstr "340 Continuer le postage de l'article" - -#: src/nntplib.c:1070 -msgid "380 authorization is required" -msgstr "380 une autorisation est requise" - -#: src/nntplib.c:1074 -msgid "381 authorization data required" -msgstr "381 données d'autorisation requises" - -#: src/nntplib.c:1078 -msgid "400 Have to hang up for some reason" -msgstr "400 Déconnexion pour une raison quelconque" - -#: src/nntplib.c:1082 -msgid "411 No such newsgroup" -msgstr "411 Pas de groupe de ce type" - -#: src/nntplib.c:1086 -msgid "412 Not currently in newsgroup" -msgstr "412 N'est pas actuellement dans ce groupe" - -#: src/nntplib.c:1090 -msgid "418 No index file for this group" -msgstr "418 Pas d'index pour ce groupe" - -#: src/nntplib.c:1094 -msgid "420 No current article selected" -msgstr "420 Pas d'article actuellement sélectionné" - -#: src/nntplib.c:1098 -msgid "421 No next article in this group" -msgstr "421 Pas d'article suivant dans ce groupe" - -#: src/nntplib.c:1102 -msgid "422 No previous article in this group" -msgstr "422 Pas d'article précédent dans ce groupe" - -#: src/nntplib.c:1106 -msgid "423 No such article in this group" -msgstr "423 Pas d'article de ce type dans ce groupe" - -#: src/nntplib.c:1110 -msgid "430 No such article at all" -msgstr "430 Pas d'article de ce type" - -#: src/nntplib.c:1114 -msgid "435 Already got that article, don't send" -msgstr "435 Article déjà présent, ne pas réenvoyer" - -#: src/nntplib.c:1118 -msgid "436 Transfer failed" -msgstr "436 Échec du transfert" - -#: src/nntplib.c:1122 -msgid "437 Article rejected, don't resend" -msgstr "437 Article rejeté, ne pas réenvoyer" - -#: src/nntplib.c:1126 -msgid "440 Posting not allowed" -msgstr "440 Postage non autorisé" - -#: src/nntplib.c:1130 -msgid "441 Posting failed" -msgstr "441 Échec du postage" - -#: src/nntplib.c:1134 -msgid "480 authorization required for command" -msgstr "480 autorisation requise pour la commande" - -#: src/nntplib.c:1138 -msgid "481 Authorization system invalid" -msgstr "481 Autorisation système invalide" - -#: src/nntplib.c:1142 -msgid "482 Authorization data rejected" -msgstr "482 Données de l'autorisation rejetées" - -#: src/nntplib.c:1146 -msgid "483 Invalid alias on spooldir cmd" -msgstr "483 Alias invalide de la commande spooldir" - -#: src/nntplib.c:1150 -msgid "484 No spooldir file found" -msgstr "484 Fichier du spooldir introuvable" - -#: src/nntplib.c:1154 -msgid "500 Command not recognized" -msgstr "500 Commande non reconnue" - -#: src/nntplib.c:1158 -msgid "501 Command syntax error" -msgstr "501 Erreur sur la syntaxe de la commande" - -#: src/nntplib.c:1162 -msgid "502 Access to server denied" -msgstr "502 Accès au serveur refusé" - -#: src/nntplib.c:1167 -msgid "503 Program fault, command not performed" -msgstr "503 Faute du programme, commande non exécutée" - -#: src/nntplib.c:1171 -msgid "580 Authorization Failed" -msgstr "580 Échec de l'autorisation" - -#: src/nntplib.c:1175 -msgid "Unknown NNTP response code" -msgstr "Code NNTP donné inconnu" - #: src/nrctbl.c:172 #, c-format msgid "couldn't expand %s\n" msgstr "impossible de décompacter %s\n" -#: src/open.c:1123 -msgid "Unreachable?\n" -msgstr "Inacessible ?\n" - -#: src/post.c:1749 +#: src/post.c:1747 #, c-format msgid "%s is bogus" msgstr "%s pose problème" -#: src/post.c:1936 +#: src/post.c:1934 #, c-format msgid "Posting: %.*s ..." msgstr "Postage : %.*s ..." # TRANSLATION MISSING #. TODO: -> lang.c -#: src/post.c:4034 +#: src/post.c:4037 #, c-format msgid "Rereading %s..." msgstr "" #. fp #. Check if okay to read -#: src/read.c:219 +#: src/read.c:214 msgid "Aborting read, please wait..." msgstr "Annulation de la lecture, un moment svp..." -#: src/read.c:366 +#: src/read.c:361 msgid "Aborted read\n" msgstr "Lecture annulée\n" -#: src/read.c:422 +#: src/read.c:417 msgid "Draining\n" msgstr "Purge\n" Binary files tin-1.7.1/po/messages and tin-1.7.2/po/messages differ diff -Nurp tin-1.7.1/po/tin.pot tin-1.7.2/po/tin.pot --- tin-1.7.1/po/tin.pot Thu Sep 18 18:32:06 2003 +++ tin-1.7.2/po/tin.pot Sun Oct 19 00:57:20 2003 @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2003-09-18 18:31+0200\n" +"POT-Creation-Date: 2003-10-19 00:55+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -13,226 +13,229 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: ENCODING\n" -#: src/art.c:1228 +#: src/art.c:1423 #, c-format msgid "%d Bad overview record (%d fields) '%s'" msgstr "" -#: src/attrib.c:574 +#: src/attrib.c:580 msgid "" "# Do not edit this comment block\n" "#\n" msgstr "" -#: src/attrib.c:575 +#: src/attrib.c:581 msgid "# scope=STRING (ie. alt.*,!alt.bin*) [mandatory]\n" msgstr "" -#: src/attrib.c:576 +#: src/attrib.c:582 msgid "# maildir=STRING (ie. ~/Mail)\n" msgstr "" -#: src/attrib.c:577 +#: src/attrib.c:583 msgid "# savedir=STRING (ie. ~user/News)\n" msgstr "" -#: src/attrib.c:578 +#: src/attrib.c:584 msgid "# savefile=STRING (ie. =linux)\n" msgstr "" -#: src/attrib.c:579 +#: src/attrib.c:585 msgid "# sigfile=STRING (ie. $var/sig)\n" msgstr "" -#: src/attrib.c:580 +#: src/attrib.c:586 msgid "# organization=STRING (if beginning with '/' read from file)\n" msgstr "" -#: src/attrib.c:581 +#: src/attrib.c:587 msgid "# followup_to=STRING\n" msgstr "" -#: src/attrib.c:582 +#: src/attrib.c:588 msgid "# mailing_list=STRING (ie. majordomo@example.org)\n" msgstr "" -#: src/attrib.c:583 +#: src/attrib.c:589 msgid "# x_headers=STRING (ie. ~/.tin/extra-headers)\n" msgstr "" -#: src/attrib.c:584 +#: src/attrib.c:590 msgid "# x_body=STRING (ie. ~/.tin/extra-body-text)\n" msgstr "" -#: src/attrib.c:585 +#: src/attrib.c:591 msgid "# from=STRING (just append wanted From:-line, don't use quotes)\n" msgstr "" -#: src/attrib.c:586 +#: src/attrib.c:592 msgid "# news_quote_format=STRING\n" msgstr "" -#: src/attrib.c:587 +#: src/attrib.c:593 msgid "# quote_chars=STRING (%%s, %%S for initials)\n" msgstr "" -#: src/attrib.c:588 +#: src/attrib.c:594 msgid "# mime_types_to_save=STRING (eg. image/*,!image/bmp)\n" msgstr "" -#: src/attrib.c:590 +#: src/attrib.c:596 msgid "# ispell=STRING\n" msgstr "" -#: src/attrib.c:592 +#: src/attrib.c:598 msgid "# auto_select=ON/OFF\n" msgstr "" -#: src/attrib.c:593 +#: src/attrib.c:599 msgid "# auto_save=ON/OFF\n" msgstr "" -#: src/attrib.c:594 +#: src/attrib.c:600 msgid "# batch_save=ON/OFF\n" msgstr "" -#: src/attrib.c:595 +#: src/attrib.c:601 msgid "# delete_tmp_files=ON/OFF\n" msgstr "" -#: src/attrib.c:596 +#: src/attrib.c:602 msgid "# show_only_unread=ON/OFF\n" msgstr "" -#: src/attrib.c:597 +#: src/attrib.c:603 msgid "# thread_arts=NUM" msgstr "" -#: src/attrib.c:604 +#: src/attrib.c:610 msgid "# show_author=NUM\n" msgstr "" -#: src/attrib.c:610 +#: src/attrib.c:616 msgid "# sort_art_type=NUM\n" msgstr "" -#: src/attrib.c:628 +#: src/attrib.c:634 msgid "# sort_threads_type=NUM\n" msgstr "" -#: src/attrib.c:633 +#: src/attrib.c:639 msgid "# post_proc_type=NUM\n" msgstr "" -#: src/attrib.c:638 +#: src/attrib.c:644 msgid "# quick_kill_scope=STRING (ie. talk.*)\n" msgstr "" -#: src/attrib.c:639 +#: src/attrib.c:645 msgid "# quick_kill_expire=ON/OFF\n" msgstr "" -#: src/attrib.c:640 +#: src/attrib.c:646 msgid "# quick_kill_case=ON/OFF\n" msgstr "" -#: src/attrib.c:641 +#: src/attrib.c:647 msgid "# quick_kill_header=NUM\n" msgstr "" -#: src/attrib.c:642 src/attrib.c:649 +#: src/attrib.c:648 src/attrib.c:655 msgid "# 0=subj (case sensitive) 1=subj (ignore case)\n" msgstr "" -#: src/attrib.c:643 src/attrib.c:650 +#: src/attrib.c:649 src/attrib.c:656 msgid "# 2=from (case sensitive) 3=from (ignore case)\n" msgstr "" -#: src/attrib.c:644 src/attrib.c:651 +#: src/attrib.c:650 src/attrib.c:657 msgid "# 4=msgid 5=lines\n" msgstr "" -#: src/attrib.c:645 +#: src/attrib.c:651 msgid "# quick_select_scope=STRING\n" msgstr "" -#: src/attrib.c:646 +#: src/attrib.c:652 msgid "# quick_select_expire=ON/OFF\n" msgstr "" -#: src/attrib.c:647 +#: src/attrib.c:653 msgid "# quick_select_case=ON/OFF\n" msgstr "" -#: src/attrib.c:648 +#: src/attrib.c:654 msgid "# quick_select_header=NUM\n" msgstr "" -#: src/attrib.c:652 +#: src/attrib.c:658 msgid "# x_comment_to=ON/OFF\n" msgstr "" -#: src/attrib.c:653 +#: src/attrib.c:659 +msgid "# fcc=STRING (eg. =mailbox)\n" +msgstr "" + +#: src/attrib.c:660 msgid "# tex2iso_conv=ON/OFF\n" msgstr "" -#: src/attrib.c:655 +#: src/attrib.c:662 msgid "# mm_network_charset=supported_charset" msgstr "" -#: src/attrib.c:662 +#: src/attrib.c:669 msgid "# undeclared_charset=STRING (default is US-ASCII)\n" msgstr "" -#: src/attrib.c:664 +#: src/attrib.c:671 msgid "" "#\n" "# Note that it is best to put general (global scoping)\n" msgstr "" -#: src/attrib.c:665 +#: src/attrib.c:672 msgid "" "# entries first followed by group specific entries.\n" "#\n" msgstr "" -#: src/attrib.c:666 +#: src/attrib.c:673 msgid "" "############################################################################" "\n" "\n" msgstr "" -#: src/attrib.c:672 +#: src/attrib.c:679 msgid "# include extra headers\n" msgstr "" -#: src/attrib.c:680 +#: src/attrib.c:687 msgid "# in *sources* set post process type to shar only\n" msgstr "" -#: src/attrib.c:684 +#: src/attrib.c:691 msgid "# in *binaries* do full post processing, remove tmp files\n" msgstr "" -#: src/attrib.c:685 +#: src/attrib.c:692 msgid "# and set Followup-To: poster\n" msgstr "" -#: src/cook.c:799 +#: src/cook.c:809 msgid "(unknown)" msgstr "" #. #. * TODO: add to the right rule, give better explanation, -> lang.c #. -#: src/filter.c:604 src/filter.c:612 +#: src/filter.c:607 src/filter.c:615 msgid "Removed from the previous rule: " msgstr "" #: src/lang.c:42 -#, c-format -msgid "1 Response%s" +msgid "1 Response" msgstr "" #: src/lang.c:46 @@ -579,7 +582,7 @@ msgstr "" msgid "Creating newsrc file...\n" msgstr "" -#: src/lang.c:127 src/lang.c:1129 +#: src/lang.c:127 src/lang.c:1122 msgid "Default" msgstr "" @@ -877,7 +880,7 @@ msgstr "" msgid "Insecure permissions of %s (%o)" msgstr "" -#: src/lang.c:199 src/open.c:1100 +#: src/lang.c:199 src/newsrc.c:409 #, c-format msgid "Invalid response to GROUP command, %s" msgstr "" @@ -1571,7 +1574,7 @@ msgstr "" msgid "choose next group with unread news" msgstr "" -#: src/lang.c:387 src/lang.c:1176 +#: src/lang.c:387 src/lang.c:1169 msgid "quit" msgstr "" @@ -2145,74 +2148,69 @@ msgid "No previous unread article" msgstr "" #: src/lang.c:535 -#, c-format -msgid "No responses%s" -msgstr "" - -#: src/lang.c:536 msgid "No responses" msgstr "" -#: src/lang.c:537 +#: src/lang.c:536 msgid "No responses to list in current thread" msgstr "" -#: src/lang.c:538 +#: src/lang.c:537 msgid "No search string" msgstr "" -#: src/lang.c:539 +#: src/lang.c:538 msgid "No subject" msgstr "" -#: src/lang.c:540 +#: src/lang.c:539 #, c-format msgid "%s: Terminal must have clear to end-of-line (ce)\n" msgstr "" -#: src/lang.c:541 +#: src/lang.c:540 #, c-format msgid "%s: Terminal must have clear to end-of-screen (cd)\n" msgstr "" -#: src/lang.c:542 +#: src/lang.c:541 #, c-format msgid "%s: Terminal must have clearscreen (cl) capability\n" msgstr "" -#: src/lang.c:543 +#: src/lang.c:542 #, c-format msgid "%s: Terminal must have cursor motion (cm)\n" msgstr "" -#: src/lang.c:544 +#: src/lang.c:543 #, c-format msgid "%s: TERM variable must be set to use screen capabilities\n" msgstr "" -#: src/lang.c:545 +#: src/lang.c:544 #, c-format msgid "No viewer found for %s/%s\n" msgstr "" -#: src/lang.c:546 +#: src/lang.c:545 msgid "Newsgroup does not exist on this server" msgstr "" -#: src/lang.c:547 +#: src/lang.c:546 #, c-format msgid "Group %s not found in active file" msgstr "" -#: src/lang.c:548 +#: src/lang.c:547 msgid "c)reate it, use a)lternative name, use d)efault .newsrc, q)uit tin: " msgstr "" -#: src/lang.c:549 +#: src/lang.c:548 msgid "use a)lternative name, use d)efault .newsrc, q)uit tin: " msgstr "" -#: src/lang.c:550 +#: src/lang.c:549 #, c-format msgid "" "# NNTP-server -> newsrc translation table and NNTP-server\n" @@ -2229,311 +2227,311 @@ msgid "" "#\n" msgstr "" -#: src/lang.c:557 +#: src/lang.c:556 msgid "Only" msgstr "" -#: src/lang.c:558 +#: src/lang.c:557 #, c-format msgid "Option not enabled. Recompile with %s." msgstr "" -#: src/lang.c:559 +#: src/lang.c:558 msgid "Options Menu" msgstr "" -#: src/lang.c:562 +#: src/lang.c:561 #, c-format msgid "Error in regex: %s at pos. %d '%s'" msgstr "" -#: src/lang.c:563 +#: src/lang.c:562 #, c-format msgid "Error in regex: pcre internal error %d" msgstr "" -#: src/lang.c:564 +#: src/lang.c:563 #, c-format msgid "Error in regex: study - pcre internal error %s" msgstr "" -#: src/lang.c:565 +#: src/lang.c:564 msgid "Post a followup..." msgstr "" #. TODO: replace hardcoded key-name in txt_post_error_ask_postpone -#: src/lang.c:567 +#: src/lang.c:566 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:570 +#: src/lang.c:569 msgid "Posted articles history" msgstr "" -#: src/lang.c:571 +#: src/lang.c:570 #, c-format msgid "Post to newsgroup(s) [%s]> " msgstr "" -#: src/lang.c:572 +#: src/lang.c:571 msgid "-- post processing started --" msgstr "" -#: src/lang.c:573 +#: src/lang.c:572 msgid "-- post processing completed --" msgstr "" -#: src/lang.c:574 +#: src/lang.c:573 #, c-format msgid "Post subject [%s]> " msgstr "" -#: src/lang.c:575 +#: src/lang.c:574 msgid "" "# Summary of mailed/posted messages viewable by 'W' command from within " "tin.\n" msgstr "" -#: src/lang.c:576 +#: src/lang.c:575 msgid "Posting article..." msgstr "" -#: src/lang.c:577 +#: src/lang.c:576 msgid "Post postponed articles [%%.*s]? (%s/%s/%s/%s/%s): " msgstr "" -#: src/lang.c:578 +#: src/lang.c:577 #, c-format msgid "Hot %s" msgstr "" -#: src/lang.c:579 +#: src/lang.c:578 #, c-format msgid "Tagged %s" msgstr "" -#: src/lang.c:580 +#: src/lang.c:579 #, c-format msgid "Untagged %s" msgstr "" -#: src/lang.c:581 +#: src/lang.c:580 msgid "Processing mail messages marked for deletion." msgstr "" -#: src/lang.c:582 +#: src/lang.c:581 msgid "Processing saved articles marked for deletion." msgstr "" -#: src/lang.c:583 +#: src/lang.c:582 #, c-format msgid "Accept Followup-To? %s=post, %s=ignore, %s=quit: " msgstr "" -#: src/lang.c:584 +#: src/lang.c:583 msgid "Article unchanged, abort mailing?" msgstr "" -#: src/lang.c:585 +#: src/lang.c:584 #, c-format msgid "Do you want to see postponed articles (%d)?" msgstr "" -#: src/lang.c:587 +#: src/lang.c:586 msgid "Add quick kill filter?" msgstr "" -#: src/lang.c:588 +#: src/lang.c:587 msgid "Add quick selection filter?" msgstr "" -#: src/lang.c:589 +#: src/lang.c:588 msgid "Do you really want to quit?" msgstr "" -#: src/lang.c:590 +#: src/lang.c:589 msgid "%s=edit cancel message, %s=quit, %s=delete (cancel) [%%.*s]: " msgstr "" -#: src/lang.c:591 +#: src/lang.c:590 msgid "You have tagged articles in this group - quit anyway?" msgstr "" -#: src/lang.c:592 +#: src/lang.c:591 #, c-format msgid "%s=quit, %s=edit, %s=postpone: " msgstr "" -#: src/lang.c:593 +#: src/lang.c:592 #, c-format msgid "%s=quit %s=edit %s=save kill description: " msgstr "" -#: src/lang.c:594 +#: src/lang.c:593 #, c-format msgid "%s=quit %s=edit %s=save select description: " msgstr "" -#: src/lang.c:595 +#: src/lang.c:594 msgid "Do you really want to quit without saving your configuration?" msgstr "" -#: src/lang.c:598 +#: src/lang.c:597 msgid "Invalid range - valid are '0-9.$' eg. 1-$" msgstr "" -#: src/lang.c:599 +#: src/lang.c:598 msgid "Do you want to abort this operation?" msgstr "" -#: src/lang.c:600 +#: src/lang.c:599 msgid "Do you want to exit tin immediately?" msgstr "" -#: src/lang.c:601 +#: src/lang.c:600 msgid "Read response> " msgstr "" -#: src/lang.c:602 +#: src/lang.c:601 msgid "Reading ('q' to quit)..." msgstr "" -#: src/lang.c:603 +#: src/lang.c:602 #, c-format msgid "Reading %sarticles..." msgstr "" -#: src/lang.c:604 +#: src/lang.c:603 #, c-format msgid "Reading %sattributes file...\n" msgstr "" -#: src/lang.c:605 +#: src/lang.c:604 #, c-format msgid "Reading %sconfig file...\n" msgstr "" -#: src/lang.c:606 +#: src/lang.c:605 msgid "Reading filter file...\n" msgstr "" -#: src/lang.c:607 +#: src/lang.c:606 #, c-format msgid "Reading %s groups..." msgstr "" -#: src/lang.c:608 +#: src/lang.c:607 msgid "Reading input history file...\n" msgstr "" -#: src/lang.c:609 +#: src/lang.c:608 msgid "Reading keymap file...\n" msgstr "" -#: src/lang.c:610 +#: src/lang.c:609 msgid "Reading groups from active file... " msgstr "" -#: src/lang.c:611 +#: src/lang.c:610 msgid "Reading groups from newsrc file... " msgstr "" -#: src/lang.c:612 +#: src/lang.c:611 msgid "Reading newsgroups file... " msgstr "" -#: src/lang.c:613 +#: src/lang.c:612 msgid "Reading newsrc file..." msgstr "" -#: src/lang.c:614 +#: src/lang.c:613 #, c-format msgid "Bogus group %s removed." msgstr "" -#: src/lang.c:615 +#: src/lang.c:614 #, c-format msgid "Error: rename %s to %s" msgstr "" -#: src/lang.c:616 +#: src/lang.c:615 msgid "Reply to author..." msgstr "" -#: src/lang.c:617 +#: src/lang.c:616 msgid "Repost" msgstr "" -#: src/lang.c:618 +#: src/lang.c:617 msgid "Reposting article..." msgstr "" -#: src/lang.c:619 +#: src/lang.c:618 #, c-format msgid "Repost article(s) to group(s) [%s]> " msgstr "" -#: src/lang.c:620 +#: src/lang.c:619 msgid "Reset newsrc?" msgstr "" -#: src/lang.c:621 +#: src/lang.c:620 msgid "Responses have been directed to the following newsgroups" msgstr "" -#: src/lang.c:622 +#: src/lang.c:621 #, c-format msgid "Responses have been directed to poster. %s=mail, %s=post, %s=quit: " msgstr "" -#: src/lang.c:623 +#: src/lang.c:622 #, c-format -msgid "RespNo %4d of %4d%s" +msgid "RespNo %4d of %4d" msgstr "" -#: src/lang.c:624 +#: src/lang.c:623 msgid "Press to continue..." msgstr "" -#: src/lang.c:626 +#: src/lang.c:625 #, c-format msgid "Select From [%-*.*s] (y/n): " msgstr "" -#: src/lang.c:627 +#: src/lang.c:626 msgid "Select Lines: (num): " msgstr "" -#: src/lang.c:628 +#: src/lang.c:627 msgid "Auto-select Article Menu" msgstr "" -#: src/lang.c:629 +#: src/lang.c:628 #, c-format msgid "Select Msg-Id [%-*.*s] (f/l/o/n): " msgstr "" -#: src/lang.c:630 +#: src/lang.c:629 msgid "Select pattern scope: " msgstr "" -#: src/lang.c:631 +#: src/lang.c:630 #, c-format msgid "Select Subject [%-*.*s] (y/n): " msgstr "" -#: src/lang.c:632 +#: src/lang.c:631 msgid "Select text pattern : " msgstr "" -#: src/lang.c:633 +#: src/lang.c:632 msgid "Select time in days : " msgstr "" -#: src/lang.c:634 +#: src/lang.c:633 #, c-format msgid "" "# %s server configuration file\n" @@ -2547,219 +2545,219 @@ msgid "" "\n" msgstr "" -#: src/lang.c:640 +#: src/lang.c:639 msgid "Showing unread groups only" msgstr "" -#: src/lang.c:641 +#: src/lang.c:640 msgid "Subject: line (ignore case) " msgstr "" -#: src/lang.c:642 +#: src/lang.c:641 msgid "Subject: line (case sensitive)" msgstr "" -#: src/lang.c:643 +#: src/lang.c:642 msgid "Save" msgstr "" -#: src/lang.c:644 +#: src/lang.c:643 #, c-format msgid "Save '%s' (%s/%s)?" msgstr "" -#: src/lang.c:645 +#: src/lang.c:644 msgid "Save configuration before continuing?" msgstr "" -#: src/lang.c:646 +#: src/lang.c:645 msgid "Save filename> " msgstr "" -#: src/lang.c:647 +#: src/lang.c:646 msgid "Saved" msgstr "" -#: src/lang.c:648 +#: src/lang.c:647 #, c-format msgid "%4d unread (%4d hot) %s in %s\n" msgstr "" -#: src/lang.c:649 +#: src/lang.c:648 #, c-format msgid "Saved %s...\n" msgstr "" -#: src/lang.c:650 +#: src/lang.c:649 msgid "Nothing was saved" msgstr "" -#: src/lang.c:651 +#: src/lang.c:650 #, c-format msgid "" "\n" "%s %d %s from %d %s\n" msgstr "" -#: src/lang.c:652 +#: src/lang.c:651 #, c-format msgid "-- %s saved to %s%s --" msgstr "" -#: src/lang.c:653 +#: src/lang.c:652 #, c-format msgid "-- %s saved to %s - %s --" msgstr "" -#: src/lang.c:654 +#: src/lang.c:653 msgid "Saving..." msgstr "" -#: src/lang.c:655 +#: src/lang.c:654 #, c-format msgid "%s: Screen initialization failed" msgstr "" -#: src/lang.c:656 +#: src/lang.c:655 #, c-format msgid "%s: screen is too small\n" msgstr "" -#: src/lang.c:657 +#: src/lang.c:656 #, c-format msgid "screen is too small, %s is exiting\n" msgstr "" -#: src/lang.c:658 +#: src/lang.c:657 #, c-format msgid "Search backwards [%s]> " msgstr "" -#: src/lang.c:659 +#: src/lang.c:658 #, c-format msgid "Search body [%s]> " msgstr "" -#: src/lang.c:660 +#: src/lang.c:659 #, c-format msgid "Search forwards [%s]> " msgstr "" -#: src/lang.c:661 +#: src/lang.c:660 msgid "Searching..." msgstr "" -#: src/lang.c:662 +#: src/lang.c:661 #, c-format msgid "Searching article %d of %d ('q' to abort)..." msgstr "" -#: src/lang.c:663 +#: src/lang.c:662 msgid "Select article> " msgstr "" -#: src/lang.c:664 +#: src/lang.c:663 msgid "" "Select option number before text or use arrow keys and . 'q' to quit." msgstr "" -#: src/lang.c:665 +#: src/lang.c:664 msgid "Select group> " msgstr "" -#: src/lang.c:666 +#: src/lang.c:665 #, c-format msgid "Enter selection pattern [%s]> " msgstr "" -#: src/lang.c:667 +#: src/lang.c:666 msgid "Select thread > " msgstr "" -#: src/lang.c:668 +#: src/lang.c:667 #, c-format msgid "%s %s %s (\"%s\") [%s]: send a DETAILED bug report to %s\n" msgstr "" -#: src/lang.c:669 +#: src/lang.c:668 msgid "servers active-file" msgstr "" -#: src/lang.c:670 +#: src/lang.c:669 msgid "Cannot move into new newsgroups. Subscribe first..." msgstr "" -#: src/lang.c:671 +#: src/lang.c:670 msgid "" msgstr "" -#: src/lang.c:672 +#: src/lang.c:671 #, c-format msgid "Starting: (%s)" msgstr "" -#: src/lang.c:673 +#: src/lang.c:672 #, c-format msgid "List Thread (%d of %d)" msgstr "" -#: src/lang.c:674 +#: src/lang.c:673 #, c-format msgid "Thread (%.*s)" msgstr "" -#: src/lang.c:675 +#: src/lang.c:674 msgid "Enter wildcard subscribe pattern> " msgstr "" -#: src/lang.c:676 +#: src/lang.c:675 #, c-format msgid "subscribed to %d groups" msgstr "" -#: src/lang.c:677 +#: src/lang.c:676 #, c-format msgid "Subscribed to %s" msgstr "" -#: src/lang.c:678 +#: src/lang.c:677 msgid "Subscribing... " msgstr "" -#: src/lang.c:679 +#: src/lang.c:678 msgid "Repost or supersede article(s) [%%.*s]? (%s/%s/%s): " msgstr "" -#: src/lang.c:680 +#: src/lang.c:679 #, c-format msgid "Supersede article(s) to group(s) [%s]> " msgstr "" -#: src/lang.c:681 +#: src/lang.c:680 msgid "Superseding article ..." msgstr "" -#: src/lang.c:682 +#: src/lang.c:681 #, c-format msgid "" "\n" "Stopped. Type 'fg' to restart %s\n" msgstr "" -#: src/lang.c:684 +#: src/lang.c:683 #, c-format msgid "%d days" msgstr "" -#: src/lang.c:685 +#: src/lang.c:684 msgid "" msgstr "" -#: src/lang.c:686 +#: src/lang.c:685 msgid "# Default action/prompt strings\n" msgstr "" -#: src/lang.c:687 +#: src/lang.c:686 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" @@ -2770,262 +2768,262 @@ msgid "" "# expire=ON/OFF ON=limit to default_filter_days OFF=don't ever expire\n" msgstr "" -#: src/lang.c:700 +#: src/lang.c:699 msgid "" "# If ON use print current subject or newsgroup description in the last line\n" msgstr "" -#: src/lang.c:701 +#: src/lang.c:700 msgid "# Host & time info used for detecting new groups (don't touch)\n" msgstr "" -#: src/lang.c:702 +#: src/lang.c:701 msgid "There is no news\n" msgstr "" -#: src/lang.c:703 +#: src/lang.c:702 msgid "Thread" msgstr "" -#: src/lang.c:704 +#: src/lang.c:703 msgid "Thread Level Commands" msgstr "" -#: src/lang.c:705 +#: src/lang.c:704 msgid "Thread deselected" msgstr "" -#: src/lang.c:706 +#: src/lang.c:705 msgid "Thread selected" msgstr "" -#: src/lang.c:707 +#: src/lang.c:706 msgid "threads" msgstr "" -#: src/lang.c:708 +#: src/lang.c:707 msgid "Thread range" msgstr "" -#: src/lang.c:709 +#: src/lang.c:708 msgid "thread" msgstr "" -#: src/lang.c:710 +#: src/lang.c:709 #, c-format -msgid "%sThread %4s of %4s" +msgid "Thread %4s of %4s" msgstr "" -#: src/lang.c:711 +#: src/lang.c:710 msgid "Threading articles..." msgstr "" -#: src/lang.c:712 +#: src/lang.c:711 #, c-format msgid "Toggled word highlighting %s" msgstr "" -#: src/lang.c:713 +#: src/lang.c:712 msgid "Toggled rot13 encoding" msgstr "" -#: src/lang.c:714 +#: src/lang.c:713 #, c-format msgid "Toggled german TeX encoding %s" msgstr "" -#: src/lang.c:715 +#: src/lang.c:714 #, c-format msgid "Toggled tab-width to %d" msgstr "" -#: src/lang.c:716 +#: src/lang.c:715 #, c-format msgid "%d Trying to dotlock %s" msgstr "" -#: src/lang.c:717 +#: src/lang.c:716 #, c-format msgid "%d Trying to lock %s" msgstr "" -#: src/lang.c:718 +#: src/lang.c:717 msgid " h=help\n" msgstr "" -#: src/lang.c:720 +#: src/lang.c:719 msgid "Unlimited" msgstr "" -#: src/lang.c:721 +#: src/lang.c:720 msgid "Enter wildcard unsubscribe pattern> " msgstr "" -#: src/lang.c:722 +#: src/lang.c:721 #, c-format msgid "Error decoding %s : %s" msgstr "" -#: src/lang.c:723 +#: src/lang.c:722 msgid "No end." msgstr "" -#: src/lang.c:724 +#: src/lang.c:723 #, c-format msgid "%s successfully decoded." msgstr "" -#: src/lang.c:725 +#: src/lang.c:724 #, c-format msgid "" "%*s[-- %s/%s, %suuencoded file, %d lines, name: %s --]\n" "\n" msgstr "" -#: src/lang.c:726 +#: src/lang.c:725 msgid "unread " msgstr "" -#: src/lang.c:727 +#: src/lang.c:726 #, c-format msgid "unsubscribed from %d groups" msgstr "" -#: src/lang.c:728 +#: src/lang.c:727 #, c-format msgid "Unsubscribed from %s" msgstr "" -#: src/lang.c:729 +#: src/lang.c:728 msgid "Unsubscribing... " msgstr "" -#: src/lang.c:730 +#: src/lang.c:729 msgid "Unthreading articles..." msgstr "" -#: src/lang.c:731 +#: src/lang.c:730 msgid "Updated" msgstr "" -#: src/lang.c:732 +#: src/lang.c:731 msgid "Updating" msgstr "" -#: src/lang.c:733 +#: src/lang.c:732 #, c-format msgid "Opening %s\n" msgstr "" -#: src/lang.c:734 +#: src/lang.c:733 msgid "No more URL's in this article" msgstr "" -#: src/lang.c:735 +#: src/lang.c:734 msgid "Use MIME display program for this message?" msgstr "" -#: src/lang.c:736 +#: src/lang.c:735 msgid " -c mark all news as read in subscribed newsgroups (batch mode)" msgstr "" -#: src/lang.c:737 +#: src/lang.c:736 msgid " -Z return status indicating if any unread news (batch mode)" msgstr "" -#: src/lang.c:738 +#: src/lang.c:737 msgid " -q don't check for new newsgroups" msgstr "" -#: src/lang.c:739 +#: src/lang.c:738 msgid " -X don't save any files on quit" msgstr "" -#: src/lang.c:740 +#: src/lang.c:739 msgid " -d don't show newsgroup descriptions" msgstr "" -#: src/lang.c:741 +#: src/lang.c:740 msgid " -G limit get only limit articles/group" msgstr "" -#: src/lang.c:742 +#: src/lang.c:741 #, c-format msgid " -H help information about %s" msgstr "" -#: src/lang.c:743 +#: src/lang.c:742 msgid " -h this help message" msgstr "" -#: src/lang.c:744 +#: src/lang.c:743 #, c-format msgid " -I dir news index file directory [default=%s]" msgstr "" -#: src/lang.c:745 +#: src/lang.c:744 msgid " -u update index files (batch mode)" msgstr "" -#: src/lang.c:746 +#: src/lang.c:745 #, c-format msgid " -m dir mailbox directory [default=%s]" msgstr "" -#: src/lang.c:747 +#: src/lang.c:746 #, c-format msgid "" "\n" "Mail bug reports/comments to %s" msgstr "" -#: src/lang.c:748 +#: src/lang.c:747 msgid " -N mail new news to your posts (batch mode)" msgstr "" -#: src/lang.c:749 +#: src/lang.c:748 msgid " -M user mail new news to specified user (batch mode)" msgstr "" -#: src/lang.c:750 +#: src/lang.c:749 #, c-format msgid " -f file subscribed to newsgroups file [default=%s]" msgstr "" -#: src/lang.c:751 +#: src/lang.c:750 msgid " -x no posting mode" msgstr "" -#: src/lang.c:752 +#: src/lang.c:751 msgid " -w post an article and exit" msgstr "" -#: src/lang.c:753 +#: src/lang.c:752 msgid " -o post all postponed articles and exit" msgstr "" -#: src/lang.c:754 +#: src/lang.c:753 msgid " -r read news remotely from default NNTP server" msgstr "" -#: src/lang.c:755 +#: src/lang.c:754 msgid " -R read news saved by -S option" msgstr "" -#: src/lang.c:756 +#: src/lang.c:755 #, c-format msgid " -s dir save news directory [default=%s]" msgstr "" -#: src/lang.c:757 +#: src/lang.c:756 msgid " -S save new news for later reading (batch mode)" msgstr "" -#: src/lang.c:758 +#: src/lang.c:757 msgid " -z start if any unread news" msgstr "" -#: src/lang.c:759 +#: src/lang.c:758 #, c-format msgid "" "A Usenet reader.\n" @@ -3033,37 +3031,37 @@ msgid "" "Usage: %s [options] [newsgroup[,...]]" msgstr "" -#: src/lang.c:760 +#: src/lang.c:759 msgid " -v verbose output for batch mode options" msgstr "" -#: src/lang.c:761 +#: src/lang.c:760 msgid " -V print version & date information" msgstr "" -#: src/lang.c:762 +#: src/lang.c:761 #, c-format msgid "%s only useful without batch mode operations\n" msgstr "" -#: src/lang.c:763 +#: src/lang.c:762 #, c-format msgid "%s only useful for batch mode operations\n" msgstr "" -#: src/lang.c:765 +#: src/lang.c:764 #, c-format msgid "" "\n" "%s%d out of range (0 - %d). Reset to 0" msgstr "" -#: src/lang.c:766 +#: src/lang.c:765 #, c-format msgid "View '%s' (%s/%s)?" msgstr "" -#: src/lang.c:768 +#: src/lang.c:767 #, c-format msgid "" "\n" @@ -3071,33 +3069,33 @@ msgid "" "%-100s\n" msgstr "" -#: src/lang.c:769 +#: src/lang.c:768 msgid "" "\n" "Warning: article unchanged after editing\n" msgstr "" -#: src/lang.c:770 +#: src/lang.c:769 msgid "" "\n" "Warning: \"Subject:\" contains only whitespaces.\n" msgstr "" -#: src/lang.c:771 +#: src/lang.c:770 msgid "" "\n" "Warning: \"Subject:\" begins with \"Re: \" but there are no " "\"References:\".\n" msgstr "" -#: src/lang.c:773 +#: src/lang.c:772 msgid "" "\n" "Warning: Article has \"References:\" but \"Subject:\" does not begin\n" " with \"Re: \" and does not contain \"(was:\".\n" msgstr "" -#: src/lang.c:776 +#: src/lang.c:775 msgid "" "Read carefully!\n" "\n" @@ -3111,7 +3109,7 @@ msgid "" "\n" msgstr "" -#: src/lang.c:780 +#: src/lang.c:779 msgid "" "\n" "Warning: You are using a non-plain transfer encoding (such as base64 or\n" @@ -3120,7 +3118,7 @@ msgid "" " not be encoded properly.\n" msgstr "" -#: src/lang.c:785 +#: src/lang.c:784 #, c-format msgid "" "\n" @@ -3130,7 +3128,7 @@ msgid "" "Read WHATSNEW, etc...\n" msgstr "" -#: src/lang.c:787 +#: src/lang.c:786 #, c-format msgid "" "\n" @@ -3139,7 +3137,7 @@ msgid "" "Some values in your %s file may be ignored, others might have changed!\n" msgstr "" -#: src/lang.c:790 +#: src/lang.c:789 #, c-format msgid "" "Warning: tin wrote fewer groups to your\n" @@ -3149,19 +3147,19 @@ msgid "" "before you start tin once again!\n" msgstr "" -#: src/lang.c:794 +#: src/lang.c:793 #, c-format msgid "" "\n" "Warning: Found %d '-- \\n' lines, this may confuse some people.\n" msgstr "" -#: src/lang.c:795 +#: src/lang.c:794 #, c-format msgid "Warning: Only %d out of %d articles were saved" msgstr "" -#: src/lang.c:796 +#: src/lang.c:795 #, c-format msgid "" "\n" @@ -3172,49 +3170,49 @@ msgid "" " possible.\n" msgstr "" -#: src/lang.c:800 +#: src/lang.c:799 #, c-format msgid "" "Warning: this mail address may contain a spamtrap. %s=continue, %s=abort? " msgstr "" -#: src/lang.c:801 +#: src/lang.c:800 msgid "" "\n" "Warning: Signatures should start with '-- \\n' not with '--\\n'.\n" msgstr "" -#: src/lang.c:802 +#: src/lang.c:801 msgid "Writing attributes file..." msgstr "" -#: src/lang.c:804 +#: src/lang.c:803 #, c-format -msgid "%d Responses%s" +msgid "%d Responses" msgstr "" -#: src/lang.c:806 +#: src/lang.c:805 #, c-format msgid "Added %d %s" msgstr "" -#: src/lang.c:807 +#: src/lang.c:806 msgid "No unsubscribed groups to show" msgstr "" -#: src/lang.c:808 +#: src/lang.c:807 msgid "Showing subscribed to groups only" msgstr "" -#: src/lang.c:809 +#: src/lang.c:808 msgid "Yes " msgstr "" -#: src/lang.c:810 +#: src/lang.c:809 msgid " You have mail\n" msgstr "" -#: src/lang.c:815 +#: src/lang.c:814 #, c-format msgid "" "\n" @@ -3227,16 +3225,16 @@ msgid "" " M)enu option.\n" msgstr "" -#: src/lang.c:826 +#: src/lang.c:825 #, c-format msgid "Redefined key %s '%s' -> '%s'\n" msgstr "" -#: src/lang.c:827 +#: src/lang.c:826 msgid " -D debug mode 1=NNTP 2=ALL" msgstr "" -#: src/lang.c:831 +#: src/lang.c:830 msgid "" "Read carefully!\n" "\n" @@ -3253,11 +3251,11 @@ msgid "" "\n" msgstr "" -#: src/lang.c:840 +#: src/lang.c:839 msgid "toggle color" msgstr "" -#: src/lang.c:841 +#: src/lang.c:840 msgid "" "# For color-adjust use the following numbers\n" "# 0-black 1-red 2-green 3-brown\n" @@ -3270,360 +3268,351 @@ msgid "" "\n" msgstr "" -#: src/lang.c:849 +#: src/lang.c:848 msgid " -a toggle color flag" msgstr "" -#: src/lang.c:853 +#: src/lang.c:852 msgid "" "\n" "Error: Followup-To set to more than one newsgroup!\n" msgstr "" -#: src/lang.c:854 +#: src/lang.c:853 #, c-format msgid "" "\n" "Error: cross-posting to %d newsgroups and no Followup-To line!\n" msgstr "" -#: src/lang.c:855 +#: src/lang.c:854 #, c-format msgid "" "\n" "Error: \"%s\" is not a valid newsgroup!\n" msgstr "" -#: src/lang.c:857 +#: src/lang.c:856 msgid "" "\n" "Warning: Followup-To set to more than one newsgroup!\n" msgstr "" -#: src/lang.c:858 +#: src/lang.c:857 #, c-format msgid "" "\n" "Warning: cross-posting to %d newsgroups and no Followup-To line!\n" msgstr "" -#: src/lang.c:859 +#: src/lang.c:858 #, c-format msgid "" "\n" "Warning: \"%s\" is not in your newsrc, it may be invalid at this site!\n" msgstr "" -#: src/lang.c:860 +#: src/lang.c:859 #, c-format msgid "" "\n" "Warning: \"%s\" is not a valid newsgroup at this site!\n" msgstr "" -#: src/lang.c:864 +#: src/lang.c:863 #, c-format msgid "%d files successfully written from %d articles. %d %s occurred." msgstr "" -#: src/lang.c:865 +#: src/lang.c:864 msgid "Missing parts." msgstr "" -#: src/lang.c:866 +#: src/lang.c:865 msgid "No beginning." msgstr "" -#: src/lang.c:867 +#: src/lang.c:866 msgid "No data." msgstr "" -#: src/lang.c:868 +#: src/lang.c:867 msgid "Unknown error." msgstr "" -#: src/lang.c:870 +#: src/lang.c:869 #, c-format msgid "\tChecksum of %s (%ld %s)" msgstr "" -#: src/lang.c:874 +#: src/lang.c:873 msgid "Reading mail active file... " msgstr "" -#: src/lang.c:875 +#: src/lang.c:874 msgid "Reading mailgroups file... " msgstr "" -#: src/lang.c:879 +#: src/lang.c:878 msgid "perform PGP operations on article" msgstr "" -#: src/lang.c:880 +#: src/lang.c:879 msgid "Add key(s) to public keyring?" msgstr "" -#: src/lang.c:881 +#: src/lang.c:880 #, c-format msgid "%s=encrypt, %s=sign, %s=both, %s=quit: " msgstr "" -#: src/lang.c:882 +#: src/lang.c:881 #, c-format msgid "%s=sign, %s=sign & include public key, %s=quit: " msgstr "" -#: src/lang.c:883 +#: src/lang.c:882 #, c-format msgid "PGP has not been set up (can't open %s)" msgstr "" -#: src/lang.c:884 +#: src/lang.c:883 msgid "Article not signed and no public keys found" msgstr "" -#: src/lang.c:886 +#: src/lang.c:885 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "" -#: src/lang.c:887 +#: src/lang.c:886 msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=send [%%.*s]: " msgstr "" -#: src/lang.c:888 +#: src/lang.c:887 msgid "" "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone [%%.*s]: " msgstr "" -#: src/lang.c:890 +#: src/lang.c:889 #, c-format msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone: " msgstr "" -#: src/lang.c:891 +#: src/lang.c:890 msgid "%s=quit, %s=edit, %s=pgp, %s=send [%%.*s]: " msgstr "" -#: src/lang.c:892 +#: src/lang.c:891 msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone [%%.*s]: " msgstr "" -#: src/lang.c:896 +#: src/lang.c:895 #, c-format msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone: " msgstr "" -#: src/lang.c:897 +#: src/lang.c:896 msgid "%s=quit, %s=edit, %s=ispell, %s=send [%%.*s]: " msgstr "" -#: src/lang.c:898 +#: src/lang.c:897 msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone [%%.*s]: " msgstr "" -#: src/lang.c:900 +#: src/lang.c:899 #, c-format msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: " msgstr "" -#: src/lang.c:901 +#: src/lang.c:900 msgid "%s=quit, %s=edit, %s=send [%%.*s]: " msgstr "" -#: src/lang.c:902 +#: src/lang.c:901 msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone [%%.*s]: " msgstr "" -#: src/lang.c:908 -#, c-format -msgid "Environment variable %s not found. Set and retry..." -msgstr "" - -#: src/lang.c:909 -msgid " -B BBS mode. File operations limited to home directories." -msgstr "" - -#: src/lang.c:917 +#: src/lang.c:910 msgid "Try cache_overview_files to speed up things.\n" msgstr "" -#: src/lang.c:918 +#: src/lang.c:911 msgid "Tin will use local index files instead.\n" msgstr "" -#: src/lang.c:919 +#: src/lang.c:912 msgid "Cannot find NNTP server name" msgstr "" -#: src/lang.c:920 +#: src/lang.c:913 #, c-format msgid "Connecting to %s:%d..." msgstr "" -#: src/lang.c:921 +#: src/lang.c:914 msgid "Disconnecting from server...\n" msgstr "" -#: src/lang.c:922 +#: src/lang.c:915 #, c-format msgid "Wrong newsgroup name in response of GROUP command, %s for %s" msgstr "" -#: src/lang.c:923 +#: src/lang.c:916 #, c-format msgid "Failed to connect to NNTP server %s. Exiting..." msgstr "" -#: src/lang.c:924 src/nntplib.c:975 +#: src/lang.c:917 msgid "205 Closing connection" msgstr "" -#: src/lang.c:925 +#: src/lang.c:918 msgid "Your server does not support the NNTP XOVER or OVER command.\n" msgstr "" -#: src/lang.c:926 +#: src/lang.c:919 msgid "Connection to news server has timed out. Reconnect?" msgstr "" -#: src/lang.c:927 +#: src/lang.c:920 #, c-format msgid "" "Put the server name in the file %s,\n" "or set the environment variable NNTPSERVER" msgstr "" -#: src/lang.c:928 +#: src/lang.c:921 msgid " -A force authentication on connect" msgstr "" -#: src/lang.c:929 +#: src/lang.c:922 #, c-format msgid " -g serv read news from NNTP server serv [default=%s]" msgstr "" -#: src/lang.c:930 +#: src/lang.c:923 #, c-format msgid " -p port use port as NNTP port [default=%d]" msgstr "" -#: src/lang.c:931 +#: src/lang.c:924 msgid " -Q quick start. Same as -nqd" msgstr "" -#: src/lang.c:932 +#: src/lang.c:925 msgid " -l use only LIST instead of GROUP (-n) command" msgstr "" -#: src/lang.c:933 +#: src/lang.c:926 msgid " -n only read subscribed .newsrc groups from NNTP server" msgstr "" -#: src/lang.c:935 +#: src/lang.c:928 #, c-format msgid "%s/tcp: Unknown service.\n" msgstr "" -#: src/lang.c:938 +#: src/lang.c:931 msgid "" "\n" "socket or connect problem\n" msgstr "" -#: src/lang.c:940 +#: src/lang.c:933 #, c-format msgid "" "\n" "Connection to %s: " msgstr "" -#: src/lang.c:941 +#: src/lang.c:934 msgid "Giving up...\n" msgstr "" -#: src/lang.c:944 +#: src/lang.c:937 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:947 +#: src/lang.c:940 msgid "Your server does not have Xref: in its XOVER information.\n" msgstr "" -#: src/lang.c:950 +#: src/lang.c:943 #, c-format msgid "Can't open %s. Try %s -r to read news via NNTP.\n" msgstr "" -#: src/lang.c:953 +#: src/lang.c:946 msgid " -Q quick start. Same as -qd" msgstr "" -#: src/lang.c:954 +#: src/lang.c:947 msgid " -l read only active file instead of scanning spool (-n) command" msgstr "" -#: src/lang.c:955 +#: src/lang.c:948 msgid " -n only read subscribed .newsrc groups from spool" msgstr "" -#: src/lang.c:956 +#: src/lang.c:949 msgid "Your server does not have Xref: in its NOV-files.\n" msgstr "" -#: src/lang.c:960 +#: src/lang.c:953 msgid "Posting using external inews failed. Use built in inews instead?" msgstr "" -#: src/lang.c:961 +#: src/lang.c:954 msgid "It worked! Should I always use my built in inews from now on?" msgstr "" -#: src/lang.c:969 +#: src/lang.c:962 #, c-format msgid "%d %s printed" msgstr "" -#: src/lang.c:970 +#: src/lang.c:963 msgid "output article/thread/hot/pattern/tagged articles to printer" msgstr "" -#: src/lang.c:971 +#: src/lang.c:964 msgid "Print" msgstr "" -#: src/lang.c:972 +#: src/lang.c:965 msgid "Printing..." msgstr "" -#: src/lang.c:976 +#: src/lang.c:969 msgid "pipe article/thread/hot/pattern/tagged articles into command" msgstr "" -#: src/lang.c:977 +#: src/lang.c:970 msgid "No command" msgstr "" -#: src/lang.c:978 +#: src/lang.c:971 msgid "Pipe" msgstr "" -#: src/lang.c:979 +#: src/lang.c:972 #, c-format msgid "Pipe to command [%.*s]> " msgstr "" -#: src/lang.c:980 +#: src/lang.c:973 msgid "Piping..." msgstr "" -#: src/lang.c:982 +#: src/lang.c:975 msgid "Piping not enabled." msgstr "" -#: src/lang.c:986 +#: src/lang.c:979 #, c-format msgid "" "\n" @@ -3633,7 +3622,7 @@ msgid "" " newsgroup names.\n" msgstr "" -#: src/lang.c:991 +#: src/lang.c:984 #, c-format msgid "" "\n" @@ -3642,7 +3631,7 @@ msgid "" " Please write all newsgroups into a single line.\n" msgstr "" -#: src/lang.c:996 +#: src/lang.c:989 #, c-format msgid "" "\n" @@ -3651,14 +3640,14 @@ msgid "" " To avoid trouble please write all newsgroups into a single line.\n" msgstr "" -#: src/lang.c:1000 +#: src/lang.c:993 #, c-format msgid "" "\n" "Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n" msgstr "" -#: src/lang.c:1005 +#: src/lang.c:998 msgid "" "\n" " If your article contains quoted text please take some time to pare it " @@ -3680,815 +3669,815 @@ msgid "" " likely to ignore it completely. It's a crowded net out there.\n" msgstr "" -#: src/lang.c:1018 +#: src/lang.c:1011 msgid "shell escape" msgstr "" -#: src/lang.c:1019 +#: src/lang.c:1012 #, c-format msgid "Shell Command (%s)" msgstr "" -#: src/lang.c:1020 +#: src/lang.c:1013 #, c-format msgid "Enter shell command [%s]> " msgstr "" -#: src/lang.c:1024 +#: src/lang.c:1017 #, c-format msgid "%s: Can't get entry for TERM\n" msgstr "" -#: src/lang.c:1028 +#: src/lang.c:1021 #, c-format msgid "Group %.*s ('q' to quit)..." msgstr "" -#: src/lang.c:1030 +#: src/lang.c:1023 #, c-format msgid "Group %.*s..." msgstr "" -#: src/lang.c:1034 +#: src/lang.c:1027 msgid "Server unavailable\n" msgstr "" -#: src/lang.c:1040 +#: src/lang.c:1033 #, 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:1041 +#: src/lang.c:1034 #, c-format msgid "" "%s=pipe; %s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1043 +#: src/lang.c:1036 #, c-format msgid "" "%s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1044 +#: src/lang.c:1037 #, c-format msgid "%s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1048 +#: src/lang.c:1041 #, c-format msgid "" "%s=pipe; %s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1049 +#: src/lang.c:1042 #, c-format msgid "%s=pipe; %s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1051 +#: src/lang.c:1044 #, c-format msgid "%s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1052 +#: src/lang.c:1045 #, c-format msgid "%s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post" msgstr "" -#: src/lang.c:1058 +#: src/lang.c:1051 msgid "Terminal does not support color" msgstr "" -#: src/lang.c:1063 +#: src/lang.c:1056 #, c-format msgid "Trying %s" msgstr "" -#: src/lang.c:1077 src/lang.c:1102 src/lang.c:1118 src/refs.c:266 +#: src/lang.c:1070 src/lang.c:1095 src/lang.c:1111 src/refs.c:266 msgid "None" msgstr "" -#: src/lang.c:1078 +#: src/lang.c:1071 msgid "Subject" msgstr "" -#: src/lang.c:1079 +#: src/lang.c:1072 msgid "References" msgstr "" -#: src/lang.c:1080 +#: src/lang.c:1073 msgid "Both Subject and References" msgstr "" -#: src/lang.c:1081 +#: src/lang.c:1074 msgid "Multipart Subject" msgstr "" -#: src/lang.c:1093 src/lang.c:1204 +#: src/lang.c:1086 src/lang.c:1197 msgid "No" msgstr "" -#: src/lang.c:1094 src/lang.c:1206 +#: src/lang.c:1087 src/lang.c:1199 msgid "Yes" msgstr "" -#: src/lang.c:1095 +#: src/lang.c:1088 msgid "Hide All" msgstr "" -#: src/lang.c:1103 +#: src/lang.c:1096 msgid "Address" msgstr "" -#: src/lang.c:1104 +#: src/lang.c:1097 msgid "Full Name" msgstr "" -#: src/lang.c:1105 +#: src/lang.c:1098 msgid "Address and Name" msgstr "" -#: src/lang.c:1112 +#: src/lang.c:1105 msgid "Max" msgstr "" -#: src/lang.c:1113 +#: src/lang.c:1106 msgid "Sum" msgstr "" -#: src/lang.c:1114 +#: src/lang.c:1107 msgid "Average" msgstr "" -#: src/lang.c:1119 +#: src/lang.c:1112 msgid "Lines" msgstr "" -#: src/lang.c:1120 +#: src/lang.c:1113 msgid "Score" msgstr "" -#: src/lang.c:1121 +#: src/lang.c:1114 msgid "Lines & Score" msgstr "" -#: src/lang.c:1130 +#: src/lang.c:1123 msgid "Black" msgstr "" -#: src/lang.c:1131 +#: src/lang.c:1124 msgid "Red" msgstr "" -#: src/lang.c:1132 +#: src/lang.c:1125 msgid "Green" msgstr "" -#: src/lang.c:1133 +#: src/lang.c:1126 msgid "Brown" msgstr "" -#: src/lang.c:1134 +#: src/lang.c:1127 msgid "Blue" msgstr "" -#: src/lang.c:1135 +#: src/lang.c:1128 msgid "Pink" msgstr "" -#: src/lang.c:1136 +#: src/lang.c:1129 msgid "Cyan" msgstr "" -#: src/lang.c:1137 +#: src/lang.c:1130 msgid "White" msgstr "" -#: src/lang.c:1138 +#: src/lang.c:1131 msgid "Gray" msgstr "" -#: src/lang.c:1139 +#: src/lang.c:1132 msgid "Light Red" msgstr "" -#: src/lang.c:1140 +#: src/lang.c:1133 msgid "Light Green" msgstr "" -#: src/lang.c:1141 +#: src/lang.c:1134 msgid "Yellow" msgstr "" -#: src/lang.c:1142 +#: src/lang.c:1135 msgid "Light Blue" msgstr "" -#: src/lang.c:1143 +#: src/lang.c:1136 msgid "Light Pink" msgstr "" -#: src/lang.c:1144 +#: src/lang.c:1137 msgid "Light Cyan" msgstr "" -#: src/lang.c:1145 +#: src/lang.c:1138 msgid "Light White" msgstr "" -#: src/lang.c:1153 src/lang.c:1210 src/lang.c:1224 +#: src/lang.c:1146 src/lang.c:1203 src/lang.c:1217 msgid "Nothing" msgstr "" -#: src/lang.c:1154 +#: src/lang.c:1147 msgid "Mark" msgstr "" -#: src/lang.c:1155 +#: src/lang.c:1148 msgid "Space" msgstr "" -#: src/lang.c:1162 +#: src/lang.c:1155 msgid "Normal" msgstr "" -#: src/lang.c:1163 +#: src/lang.c:1156 msgid "Best highlighting" msgstr "" -#: src/lang.c:1164 +#: src/lang.c:1157 msgid "Underline" msgstr "" -#: src/lang.c:1165 +#: src/lang.c:1158 msgid "Reverse video" msgstr "" -#: src/lang.c:1166 +#: src/lang.c:1159 msgid "Blinking" msgstr "" -#: src/lang.c:1167 +#: src/lang.c:1160 msgid "Half bright" msgstr "" -#: src/lang.c:1168 +#: src/lang.c:1161 msgid "Bold" msgstr "" -#: src/lang.c:1173 +#: src/lang.c:1166 msgid "none" msgstr "" -#: src/lang.c:1174 +#: src/lang.c:1167 msgid "commands" msgstr "" -#: src/lang.c:1175 +#: src/lang.c:1168 msgid "select" msgstr "" -#: src/lang.c:1177 +#: src/lang.c:1170 msgid "commands & quit" msgstr "" -#: src/lang.c:1178 +#: src/lang.c:1171 msgid "commands & select" msgstr "" -#: src/lang.c:1179 +#: src/lang.c:1172 msgid "quit & select" msgstr "" -#: src/lang.c:1180 +#: src/lang.c:1173 msgid "commands & quit & select" msgstr "" -#: src/lang.c:1205 +#: src/lang.c:1198 msgid "Shell archive" msgstr "" -#: src/lang.c:1211 +#: src/lang.c:1204 msgid "Subject: (descending)" msgstr "" -#: src/lang.c:1212 +#: src/lang.c:1205 msgid "Subject: (ascending)" msgstr "" -#: src/lang.c:1213 +#: src/lang.c:1206 msgid "From: (descending)" msgstr "" -#: src/lang.c:1214 +#: src/lang.c:1207 msgid "From: (ascending)" msgstr "" -#: src/lang.c:1215 +#: src/lang.c:1208 msgid "Date: (descending)" msgstr "" -#: src/lang.c:1216 +#: src/lang.c:1209 msgid "Date: (ascending)" msgstr "" -#: src/lang.c:1217 src/lang.c:1225 +#: src/lang.c:1210 src/lang.c:1218 msgid "Score (descending)" msgstr "" -#: src/lang.c:1218 src/lang.c:1226 +#: src/lang.c:1211 src/lang.c:1219 msgid "Score (ascending)" msgstr "" -#: src/lang.c:1219 +#: src/lang.c:1212 msgid "Lines: (descending)" msgstr "" -#: src/lang.c:1220 +#: src/lang.c:1213 msgid "Lines: (ascending)" msgstr "" -#: src/lang.c:1231 +#: src/lang.c:1224 msgid "Always Keep" msgstr "" -#: src/lang.c:1232 +#: src/lang.c:1225 msgid "Always Remove" msgstr "" -#: src/lang.c:1233 +#: src/lang.c:1226 msgid "Mark with D on selection screen" msgstr "" -#: src/lang.c:1238 +#: src/lang.c:1231 msgid "Kill only unread arts" msgstr "" -#: src/lang.c:1239 +#: src/lang.c:1232 msgid "Kill all arts & show with K" msgstr "" #. TODO: s/K/art_marked_killed/ -#: src/lang.c:1240 +#: src/lang.c:1233 msgid "Kill all arts and never show" msgstr "" -#: src/lang.c:1245 +#: src/lang.c:1238 msgid "Nothing special" msgstr "" -#: src/lang.c:1246 +#: src/lang.c:1239 msgid "Compress quotes" msgstr "" -#: src/lang.c:1247 +#: src/lang.c:1240 msgid "Quote signatures" msgstr "" -#: src/lang.c:1248 +#: src/lang.c:1241 msgid "Compress quotes, quote sigs" msgstr "" -#: src/lang.c:1249 +#: src/lang.c:1242 msgid "Quote empty lines" msgstr "" -#: src/lang.c:1250 +#: src/lang.c:1243 msgid "Compress quotes, quote empty lines" msgstr "" -#: src/lang.c:1251 +#: src/lang.c:1244 msgid "Quote sigs & empty lines" msgstr "" -#: src/lang.c:1252 +#: src/lang.c:1245 msgid "Comp. q., quote sigs & empty lines" msgstr "" -#: src/lang.c:1290 +#: src/lang.c:1283 msgid "no" msgstr "" -#: src/lang.c:1291 +#: src/lang.c:1284 msgid "with headers" msgstr "" -#: src/lang.c:1292 +#: src/lang.c:1285 msgid "without headers" msgstr "" -#: src/lang.c:1297 +#: src/lang.c:1290 msgid "Display Options" msgstr "" -#: src/lang.c:1303 +#: src/lang.c:1296 msgid "Color Options" msgstr "" -#: src/lang.c:1309 +#: src/lang.c:1302 msgid "Article-Limiting Options" msgstr "" -#: src/lang.c:1315 +#: src/lang.c:1308 msgid "Posting/Mailing Options" msgstr "" -#: src/lang.c:1321 +#: src/lang.c:1314 msgid "Saving/Printing Options" msgstr "" -#: src/lang.c:1327 +#: src/lang.c:1320 msgid "Expert Options" msgstr "" -#: src/lang.c:1333 +#: src/lang.c:1326 msgid "Filtering Options" msgstr "" -#: src/lang.c:1338 src/lang.c:1364 src/lang.c:1370 src/lang.c:1377 -#: src/lang.c:1409 src/lang.c:1415 src/lang.c:1423 src/lang.c:1443 -#: src/lang.c:1518 src/lang.c:1680 src/lang.c:1686 src/lang.c:1692 -#: src/lang.c:1698 src/lang.c:1710 src/lang.c:1717 src/lang.c:1768 -#: src/lang.c:1777 src/lang.c:1783 src/lang.c:1789 src/lang.c:1795 -#: src/lang.c:1801 src/lang.c:1807 src/lang.c:1813 src/lang.c:1819 -#: src/lang.c:1825 src/lang.c:1831 src/lang.c:1837 src/lang.c:1843 -#: src/lang.c:1849 src/lang.c:1855 src/lang.c:1861 src/lang.c:1867 -#: src/lang.c:1873 src/lang.c:1879 src/lang.c:1885 src/lang.c:1891 -#: src/lang.c:1898 src/lang.c:1904 src/lang.c:1910 src/lang.c:1917 -#: src/lang.c:1928 src/lang.c:1934 src/lang.c:1940 src/lang.c:1946 -#: src/lang.c:1952 src/lang.c:1958 src/lang.c:1972 src/lang.c:1984 -#: src/lang.c:2018 src/lang.c:2070 src/lang.c:2077 src/lang.c:2083 -#: src/lang.c:2108 src/lang.c:2125 src/lang.c:2178 src/lang.c:2211 -#: src/lang.c:2231 src/lang.c:2266 src/lang.c:2275 src/lang.c:2300 -#: src/lang.c:2312 +#: src/lang.c:1331 src/lang.c:1357 src/lang.c:1363 src/lang.c:1370 +#: src/lang.c:1402 src/lang.c:1408 src/lang.c:1416 src/lang.c:1436 +#: src/lang.c:1511 src/lang.c:1673 src/lang.c:1679 src/lang.c:1685 +#: src/lang.c:1691 src/lang.c:1703 src/lang.c:1710 src/lang.c:1761 +#: src/lang.c:1770 src/lang.c:1776 src/lang.c:1782 src/lang.c:1788 +#: src/lang.c:1794 src/lang.c:1800 src/lang.c:1806 src/lang.c:1812 +#: src/lang.c:1818 src/lang.c:1824 src/lang.c:1830 src/lang.c:1836 +#: src/lang.c:1842 src/lang.c:1848 src/lang.c:1854 src/lang.c:1860 +#: src/lang.c:1866 src/lang.c:1872 src/lang.c:1878 src/lang.c:1884 +#: src/lang.c:1891 src/lang.c:1897 src/lang.c:1903 src/lang.c:1910 +#: src/lang.c:1921 src/lang.c:1927 src/lang.c:1933 src/lang.c:1939 +#: src/lang.c:1945 src/lang.c:1951 src/lang.c:1965 src/lang.c:1977 +#: src/lang.c:2011 src/lang.c:2063 src/lang.c:2070 src/lang.c:2076 +#: src/lang.c:2101 src/lang.c:2118 src/lang.c:2171 src/lang.c:2204 +#: src/lang.c:2224 src/lang.c:2259 src/lang.c:2268 src/lang.c:2293 +#: src/lang.c:2305 msgid " toggles, sets, cancels." msgstr "" -#: src/lang.c:1339 +#: src/lang.c:1332 msgid "Show mini menu & posting etiquette :" msgstr "" -#: src/lang.c:1340 +#: src/lang.c:1333 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:1345 +#: src/lang.c:1338 msgid "Show short description for each newsgroup. toggles & sets." msgstr "" -#: src/lang.c:1346 +#: src/lang.c:1339 msgid "Show description of each newsgroup :" msgstr "" -#: src/lang.c:1347 +#: src/lang.c:1340 msgid "" "# If ON show group description text after newsgroup name at\n" "# group selection level\n" msgstr "" -#: src/lang.c:1352 +#: src/lang.c:1345 msgid "" "Show Subject & From (author) fields in group menu. toggles & " "sets." msgstr "" -#: src/lang.c:1353 +#: src/lang.c:1346 msgid "In group menu, show author by :" msgstr "" -#: src/lang.c:1354 +#: src/lang.c:1347 msgid "" "# Part of from field to display 0) none 1) address 2) full name 3) both\n" msgstr "" -#: src/lang.c:1358 +#: src/lang.c:1351 msgid "Draw -> or highlighted bar for selection. toggles & sets." msgstr "" -#: src/lang.c:1359 +#: src/lang.c:1352 msgid "Draw -> instead of highlighted bar :" msgstr "" -#: src/lang.c:1360 +#: src/lang.c:1353 msgid "# If ON use -> otherwise highlighted bar for selection\n" msgstr "" -#: src/lang.c:1365 +#: src/lang.c:1358 msgid "Use inverse video for page headers :" msgstr "" -#: src/lang.c:1366 +#: src/lang.c:1359 msgid "# If ON use inverse video for page headers at different levels\n" msgstr "" -#: src/lang.c:1371 +#: src/lang.c:1364 msgid "Thread articles by :" msgstr "" -#: src/lang.c:1372 +#: src/lang.c:1365 msgid "" "# Thread articles on 0=(nothing) 1=(Subject) 2=(References) 3=(Both)\n" "# 4=(Multipart Subject).\n" msgstr "" -#: src/lang.c:1378 +#: src/lang.c:1371 msgid "Score of a thread :" msgstr "" -#: src/lang.c:1379 +#: src/lang.c:1372 msgid "# Thread score 0=(Max) 1=(Sum) 2=(Average)\n" msgstr "" -#: src/lang.c:1383 +#: src/lang.c:1376 msgid "" "Sort articles by Subject, From, Date or Score. toggles & sets." msgstr "" -#: src/lang.c:1384 +#: src/lang.c:1377 msgid "Sort articles by :" msgstr "" -#: src/lang.c:1385 +#: src/lang.c:1378 msgid "" "# Sort articles by 0=(nothing) 1=(Subject descend) 2=(Subject ascend)\n" "# 3=(From descend) 4=(From ascend) 5=(Date descend) 6=(Date ascend)\n" "# 7=(Score descend) 8=(Score ascend) 9=(Lines descend) 10=(Lines ascend).\n" msgstr "" -#: src/lang.c:1391 +#: src/lang.c:1384 msgid "Sort threads by Nothing or Score. toggles & sets." msgstr "" -#: src/lang.c:1392 +#: src/lang.c:1385 msgid "Sort threads by :" msgstr "" -#: src/lang.c:1393 +#: src/lang.c:1386 msgid "# Sort thread by 0=(nothing) 1=(Score descend) 2=(Score ascend)\n" msgstr "" -#: src/lang.c:1397 +#: src/lang.c:1390 msgid "" "Put cursor at first/last unread art in groups. toggles & sets." msgstr "" -#: src/lang.c:1398 +#: src/lang.c:1391 msgid "Goto first unread article in group :" msgstr "" -#: src/lang.c:1399 +#: src/lang.c:1392 msgid "# If ON put cursor at first unread art in group otherwise last art\n" msgstr "" -#: src/lang.c:1403 +#: src/lang.c:1396 msgid "Show all articles or only unread articles. toggles & sets." msgstr "" -#: src/lang.c:1404 +#: src/lang.c:1397 msgid "Show only unread articles :" msgstr "" -#: src/lang.c:1405 +#: src/lang.c:1398 msgid "# If ON show only new/unread articles otherwise show all.\n" msgstr "" -#: src/lang.c:1410 +#: src/lang.c:1403 msgid "Show only groups with unread arts :" msgstr "" -#: src/lang.c:1411 +#: src/lang.c:1404 msgid "# If ON show only subscribed to groups that contain unread articles.\n" msgstr "" -#: src/lang.c:1416 +#: src/lang.c:1409 msgid "Filter which articles :" msgstr "" -#: src/lang.c:1417 +#: src/lang.c:1410 msgid "" "# 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:1424 +#: src/lang.c:1417 msgid "Tab goes to next unread article :" msgstr "" -#: src/lang.c:1425 +#: src/lang.c:1418 msgid "" "# If ON the TAB command will go to next unread article at article viewer " "level\n" msgstr "" -#: src/lang.c:1429 +#: src/lang.c:1422 msgid "" "Scrolling with past the end of an art. jumps to the next unread one." msgstr "" -#: src/lang.c:1430 +#: src/lang.c:1423 msgid "Space goes to next unread article :" msgstr "" -#: src/lang.c:1431 +#: src/lang.c:1424 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:1436 +#: src/lang.c:1429 msgid "" "Scrolling with / past the end of an art. jumps to the unread one." msgstr "" -#: src/lang.c:1437 +#: src/lang.c:1430 msgid "PgDn goes to next unread article :" msgstr "" -#: src/lang.c:1438 +#: src/lang.c:1431 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:1444 +#: src/lang.c:1437 msgid "List thread using right arrow key :" msgstr "" -#: src/lang.c:1445 +#: src/lang.c:1438 msgid "" "# If ON automatically list thread when entering it using right arrow key.\n" msgstr "" -#: src/lang.c:1449 +#: src/lang.c:1442 msgid "Enter character to indicate deleted articles. sets, cancels." msgstr "" -#: src/lang.c:1450 +#: src/lang.c:1443 msgid "Character to show deleted articles :" msgstr "" -#: src/lang.c:1451 +#: src/lang.c:1444 msgid "" "# Character used to show that an art was deleted (default 'D')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1456 +#: src/lang.c:1449 msgid "" "Enter character to indicate articles in a range. sets, cancels." msgstr "" -#: src/lang.c:1457 +#: src/lang.c:1450 msgid "Character to show inrange articles :" msgstr "" -#: src/lang.c:1458 +#: src/lang.c:1451 msgid "" "# Character used to show that an art is in a range (default '#')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1463 +#: src/lang.c:1456 msgid "" "Enter character to indicate that article will return. sets, " "cancels." msgstr "" -#: src/lang.c:1464 +#: src/lang.c:1457 msgid "Character to show returning arts :" msgstr "" -#: src/lang.c:1465 +#: src/lang.c:1458 msgid "" "# Character used to show that an art will return (default '-')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1470 +#: src/lang.c:1463 msgid "" "Enter character to indicate selected articles. sets, cancels." msgstr "" -#: src/lang.c:1471 +#: src/lang.c:1464 msgid "Character to show selected articles:" msgstr "" -#: src/lang.c:1472 +#: src/lang.c:1465 msgid "" "# Character used to show that an art was auto-selected (default '*')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1477 +#: src/lang.c:1470 msgid "Enter character to indicate recent articles. sets, cancels." msgstr "" -#: src/lang.c:1478 +#: src/lang.c:1471 msgid "Character to show recent articles :" msgstr "" -#: src/lang.c:1479 +#: src/lang.c:1472 msgid "" "# Character used to show that an art is recent (default 'o')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1484 +#: src/lang.c:1477 msgid "Enter character to indicate unread articles. sets, cancels." msgstr "" -#: src/lang.c:1485 +#: src/lang.c:1478 msgid "Character to show unread articles :" msgstr "" -#: src/lang.c:1486 +#: src/lang.c:1479 msgid "" "# Character used to show that an art is unread (default '+')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1491 +#: src/lang.c:1484 msgid "Enter character to indicate read articles. sets, cancels." msgstr "" -#: src/lang.c:1492 +#: src/lang.c:1485 msgid "Character to show read articles :" msgstr "" -#: src/lang.c:1493 +#: src/lang.c:1486 msgid "" "# Character used to show that an art was read (default ' ')\n" "# _ is turned into ' '\n" msgstr "" -#: src/lang.c:1498 +#: src/lang.c:1491 msgid "Enter character to indicate killed articles. sets, cancels." msgstr "" -#: src/lang.c:1499 +#: src/lang.c:1492 msgid "Character to show killed articles :" msgstr "" -#: src/lang.c:1500 +#: src/lang.c:1493 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:1505 +#: src/lang.c:1498 msgid "" "Enter character to indicate read selected articles. sets, cancels." msgstr "" -#: src/lang.c:1506 +#: src/lang.c:1499 msgid "Character to show readselected arts:" msgstr "" -#: src/lang.c:1507 +#: src/lang.c:1500 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:1512 +#: src/lang.c:1505 msgid "Enter maximum length of newsgroup names displayed. sets." msgstr "" -#: src/lang.c:1513 +#: src/lang.c:1506 msgid "Max. length of group names shown :" msgstr "" -#: src/lang.c:1514 +#: src/lang.c:1507 msgid "# Maximum length of the names of newsgroups displayed\n" msgstr "" -#: src/lang.c:1519 +#: src/lang.c:1512 msgid "Show lines/score in listings :" msgstr "" -#: src/lang.c:1520 +#: src/lang.c:1513 msgid "" "# What informations should be displayed in article/thread listing\n" "# 0 = nothing, 1 = lines, 2 = score, 3 = lines & score\n" msgstr "" -#: src/lang.c:1525 +#: src/lang.c:1518 msgid "" "0 = full page scrolling, -1 = show previous last line as first on next page, " "-2 = half page" msgstr "" -#: src/lang.c:1526 +#: src/lang.c:1519 msgid "Number of lines to scroll in pager :" msgstr "" -#: src/lang.c:1527 +#: src/lang.c:1520 msgid "" "# Number of lines that cursor-up/down will scroll in article pager\n" "# eg, 1+ = line-by-line, 0 = page-by-page (traditional behavior),\n" @@ -4496,28 +4485,28 @@ msgid "" "# -2 = half-page scrolling\n" msgstr "" -#: src/lang.c:1534 +#: src/lang.c:1527 msgid "Display signatures. toggles & sets." msgstr "" -#: src/lang.c:1535 +#: src/lang.c:1528 msgid "Display signatures :" msgstr "" -#: src/lang.c:1536 +#: src/lang.c:1529 msgid "# If OFF don't show signatures when displaying articles\n" msgstr "" -#: src/lang.c:1540 +#: src/lang.c:1533 msgid "" "Display uuencoded data as tagged attachments. toggles & sets." msgstr "" -#: src/lang.c:1541 +#: src/lang.c:1534 msgid "Display uue data as an attachment :" msgstr "" -#: src/lang.c:1542 +#: src/lang.c:1535 msgid "" "# Handling of uuencoded data in the pager\n" "# 0 = display raw uuencoded data\n" @@ -4527,30 +4516,30 @@ msgid "" "# into a tag line.\n" msgstr "" -#: src/lang.c:1551 +#: src/lang.c:1544 msgid "" "Decode German style TeX umlaut codes to ISO. toggles & sets." msgstr "" -#: src/lang.c:1552 +#: src/lang.c:1545 msgid "Display \"a as Umlaut-a :" msgstr "" -#: src/lang.c:1553 +#: src/lang.c:1546 msgid "" "# If ON decode German style TeX umlaut codes to ISO and\n" "# show \"a as Umlaut-a, etc.\n" msgstr "" -#: src/lang.c:1558 src/lang.c:1568 +#: src/lang.c:1551 src/lang.c:1561 msgid "Space separated list of header fields" msgstr "" -#: src/lang.c:1559 +#: src/lang.c:1552 msgid "Display these header fields (or *) :" msgstr "" -#: src/lang.c:1560 +#: src/lang.c:1553 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" @@ -4560,11 +4549,11 @@ msgid "" "# spaces. Not defining anything turns off this option.\n" msgstr "" -#: src/lang.c:1569 +#: src/lang.c:1562 msgid "Do not display these header fields :" msgstr "" -#: src/lang.c:1570 +#: src/lang.c:1563 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" @@ -4576,163 +4565,163 @@ msgid "" "# Not defining anything turns off this option.\n" msgstr "" -#: src/lang.c:1580 +#: src/lang.c:1573 msgid "" "Do you want to enable automatic handling of multipart/alternative articles?" msgstr "" -#: src/lang.c:1581 +#: src/lang.c:1574 msgid "Skip multipart/alternative parts :" msgstr "" -#: src/lang.c:1582 +#: src/lang.c:1575 msgid "# If ON strip multipart/alternative messages automatically\n" msgstr "" -#: src/lang.c:1587 +#: src/lang.c:1580 msgid "A regex used to decide which lines to show in col_quote." msgstr "" -#: src/lang.c:1588 +#: src/lang.c:1581 msgid "Regex used to show quoted lines :" msgstr "" -#: src/lang.c:1589 +#: src/lang.c:1582 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:1595 +#: src/lang.c:1588 msgid "A regex used to decide which lines to show in col_quote2." msgstr "" -#: src/lang.c:1596 +#: src/lang.c:1589 msgid "Regex used to show twice quoted l. :" msgstr "" -#: src/lang.c:1597 +#: src/lang.c:1590 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:1603 +#: src/lang.c:1596 msgid "A regex used to decide which lines to show in col_quote3." msgstr "" -#: src/lang.c:1604 +#: src/lang.c:1597 msgid "Regex used to show >= 3 times q.l. :" msgstr "" -#: src/lang.c:1605 +#: src/lang.c:1598 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:1612 +#: src/lang.c:1605 msgid "A regex used to decide which words to show in col_markslashes." msgstr "" -#: src/lang.c:1613 +#: src/lang.c:1606 msgid "Regex used to highlight /slashes/ :" msgstr "" -#: src/lang.c:1614 +#: src/lang.c:1607 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:1620 +#: src/lang.c:1613 msgid "A regex used to decide which words to show in col_markstars." msgstr "" -#: src/lang.c:1621 +#: src/lang.c:1614 msgid "Regex used to highlight *stars* :" msgstr "" -#: src/lang.c:1622 +#: src/lang.c:1615 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:1628 +#: src/lang.c:1621 msgid "A regex used to decide which words to show in col_markstroke." msgstr "" -#: src/lang.c:1629 +#: src/lang.c:1622 msgid "Regex used to highlight -strokes- :" msgstr "" -#: src/lang.c:1630 +#: src/lang.c:1623 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:1636 +#: src/lang.c:1629 msgid "A regex used to decide which words to show in col_markdash." msgstr "" -#: src/lang.c:1637 +#: src/lang.c:1630 msgid "Regex used to highlight _underline_:" msgstr "" -#: src/lang.c:1638 +#: src/lang.c:1631 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:1644 +#: src/lang.c:1637 msgid "A regex used to find Subject prefixes to remove. Use '|' as separator." msgstr "" -#: src/lang.c:1645 +#: src/lang.c:1638 msgid "Regex with Subject prefixes :" msgstr "" -#: src/lang.c:1646 +#: src/lang.c:1639 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:1651 +#: src/lang.c:1644 msgid "A regex used to find Subject suffixes to remove. Use '|' as separator." msgstr "" -#: src/lang.c:1652 +#: src/lang.c:1645 msgid "Regex with Subject suffixes :" msgstr "" -#: src/lang.c:1653 +#: src/lang.c:1646 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:1658 +#: src/lang.c:1651 msgid "" "Enter name and options for external MIME viewer, --internal for built-in " "viewer" msgstr "" -#: src/lang.c:1659 +#: src/lang.c:1652 msgid "MIME binary content viewer :" msgstr "" -#: src/lang.c:1660 +#: src/lang.c:1653 msgid "" "# If --internal automatically use the built in MIME viewer for non-text\n" "# parts of articles.\n" @@ -4741,365 +4730,365 @@ msgid "" "# for no automatic viewing\n" msgstr "" -#: src/lang.c:1667 +#: src/lang.c:1660 msgid "Confirm before starting non-text viewing program" msgstr "" -#: src/lang.c:1668 +#: src/lang.c:1661 msgid "Ask before using MIME viewer :" msgstr "" -#: src/lang.c:1669 +#: src/lang.c:1662 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:1674 +#: src/lang.c:1667 msgid "Ask to mark groups read when quitting. toggles & sets." msgstr "" -#: src/lang.c:1675 +#: src/lang.c:1668 msgid "Catchup read groups when quitting :" msgstr "" -#: src/lang.c:1676 +#: src/lang.c:1669 msgid "# If ON ask user if read groups should all be marked read\n" msgstr "" -#: src/lang.c:1681 +#: src/lang.c:1674 msgid "Catchup group using left key :" msgstr "" -#: src/lang.c:1682 +#: src/lang.c:1675 msgid "# If ON catchup group/thread when leaving with the left arrow key.\n" msgstr "" -#: src/lang.c:1687 +#: src/lang.c:1680 msgid "Catchup thread by using left key :" msgstr "" -#: src/lang.c:1693 +#: src/lang.c:1686 msgid "Which actions require confirmation :" msgstr "" -#: src/lang.c:1694 +#: src/lang.c:1687 msgid "# What should we ask confirmation for.\n" msgstr "" -#: src/lang.c:1699 +#: src/lang.c:1692 msgid "'Mark article read' ignores tags :" msgstr "" -#: src/lang.c:1700 +#: src/lang.c:1693 msgid "" "# If ON the 'Mark article read' function marks only the current article.\n" msgstr "" -#: src/lang.c:1704 +#: src/lang.c:1697 msgid "Program to run to open URL's, sets, cancels." msgstr "" -#: src/lang.c:1705 +#: src/lang.c:1698 msgid "Program that opens URL's :" msgstr "" -#: src/lang.c:1706 +#: src/lang.c:1699 msgid "# The program used to open URL's. The actual URL will be appended\n" msgstr "" -#: src/lang.c:1711 +#: src/lang.c:1704 msgid "Use mouse in xterm :" msgstr "" -#: src/lang.c:1712 +#: src/lang.c:1705 msgid "# If ON enable mouse key support on xterm terminals\n" msgstr "" -#: src/lang.c:1718 +#: src/lang.c:1711 msgid "Use scroll keys on keypad :" msgstr "" -#: src/lang.c:1719 +#: src/lang.c:1712 msgid "# If ON enable scroll keys on terminals that support it\n" msgstr "" -#: src/lang.c:1724 +#: src/lang.c:1717 msgid "Enter maximum number of article to get. sets." msgstr "" -#: src/lang.c:1725 +#: src/lang.c:1718 msgid "Number of articles to get :" msgstr "" -#: src/lang.c:1726 +#: src/lang.c:1719 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:1731 +#: src/lang.c:1724 msgid "Enter number of days article is considered recent. sets." msgstr "" -#: src/lang.c:1732 +#: src/lang.c:1725 msgid "Article recentness time limit :" msgstr "" -#: src/lang.c:1733 +#: src/lang.c:1726 msgid "# Number of days in which article is considered recent, (0=OFF)\n" msgstr "" -#: src/lang.c:1737 +#: src/lang.c:1730 msgid "" "WILDMAT for normal wildcards, REGEX for full regular expression matching." msgstr "" -#: src/lang.c:1738 +#: src/lang.c:1731 msgid "Wildcard matching :" msgstr "" -#: src/lang.c:1739 +#: src/lang.c:1732 msgid "# Wildcard matching 0=(wildmat) 1=(regex)\n" msgstr "" -#: src/lang.c:1743 +#: src/lang.c:1736 msgid "Enter minimal score before an article is marked killed. sets." msgstr "" -#: src/lang.c:1744 +#: src/lang.c:1737 msgid "Score limit (kill) :" msgstr "" -#: src/lang.c:1745 +#: src/lang.c:1738 msgid "# Score limit before an article is marked killed\n" msgstr "" -#: src/lang.c:1749 +#: src/lang.c:1742 msgid "Enter default score to kill articles. sets." msgstr "" -#: src/lang.c:1750 +#: src/lang.c:1743 msgid "Default score to kill articles :" msgstr "" -#: src/lang.c:1751 +#: src/lang.c:1744 msgid "# Default score to kill articles\n" msgstr "" -#: src/lang.c:1755 +#: src/lang.c:1748 msgid "Enter minimal score before an article is marked hot. sets." msgstr "" -#: src/lang.c:1756 +#: src/lang.c:1749 msgid "Score limit (select) :" msgstr "" -#: src/lang.c:1757 +#: src/lang.c:1750 msgid "# Score limit before an article is marked hot\n" msgstr "" -#: src/lang.c:1761 +#: src/lang.c:1754 msgid "Enter default score to select articles. sets." msgstr "" -#: src/lang.c:1762 +#: src/lang.c:1755 msgid "Default score to select articles :" msgstr "" -#: src/lang.c:1763 +#: src/lang.c:1756 msgid "# Default score to select articles\n" msgstr "" -#: src/lang.c:1769 +#: src/lang.c:1762 msgid "Use slrnface to show ''X-Face:''s :" msgstr "" -#: src/lang.c:1770 +#: src/lang.c:1763 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:1778 +#: src/lang.c:1771 msgid "Use ANSI color :" msgstr "" -#: src/lang.c:1779 +#: src/lang.c:1772 msgid "# If ON using ANSI-color\n" msgstr "" -#: src/lang.c:1784 +#: src/lang.c:1777 msgid "Standard foreground color :" msgstr "" -#: src/lang.c:1785 +#: src/lang.c:1778 msgid "# Standard foreground color\n" msgstr "" -#: src/lang.c:1790 +#: src/lang.c:1783 msgid "Standard background color :" msgstr "" -#: src/lang.c:1791 +#: src/lang.c:1784 msgid "# Standard-Background-Color\n" msgstr "" -#: src/lang.c:1796 +#: src/lang.c:1789 msgid "Color for inverse text (background):" msgstr "" -#: src/lang.c:1797 +#: src/lang.c:1790 msgid "# Color of background for inverse text\n" msgstr "" -#: src/lang.c:1802 +#: src/lang.c:1795 msgid "Color for inverse text (foreground):" msgstr "" -#: src/lang.c:1803 +#: src/lang.c:1796 msgid "# Color of foreground for inverse text\n" msgstr "" -#: src/lang.c:1808 +#: src/lang.c:1801 msgid "Color of text lines :" msgstr "" -#: src/lang.c:1809 +#: src/lang.c:1802 msgid "# Color of text-lines\n" msgstr "" -#: src/lang.c:1814 +#: src/lang.c:1807 msgid "Color of mini help menu :" msgstr "" -#: src/lang.c:1815 +#: src/lang.c:1808 msgid "# Color of mini help menu\n" msgstr "" -#: src/lang.c:1820 +#: src/lang.c:1813 msgid "Color of help text :" msgstr "" -#: src/lang.c:1821 +#: src/lang.c:1814 msgid "# Color of help pages\n" msgstr "" -#: src/lang.c:1826 +#: src/lang.c:1819 msgid "Color of status messages :" msgstr "" -#: src/lang.c:1827 +#: src/lang.c:1820 msgid "# Color of messages in last line\n" msgstr "" -#: src/lang.c:1832 +#: src/lang.c:1825 msgid "Color of quoted lines :" msgstr "" -#: src/lang.c:1833 +#: src/lang.c:1826 msgid "# Color of quote-lines\n" msgstr "" -#: src/lang.c:1838 +#: src/lang.c:1831 msgid "Color of twice quoted line :" msgstr "" -#: src/lang.c:1839 +#: src/lang.c:1832 msgid "# Color of twice quoted lines\n" msgstr "" -#: src/lang.c:1844 +#: src/lang.c:1837 msgid "Color of =>3 times quoted line :" msgstr "" -#: src/lang.c:1845 +#: src/lang.c:1838 msgid "# Color of >=3 times quoted lines\n" msgstr "" -#: src/lang.c:1850 +#: src/lang.c:1843 msgid "Color of article header lines :" msgstr "" -#: src/lang.c:1851 +#: src/lang.c:1844 msgid "# Color of header-lines\n" msgstr "" -#: src/lang.c:1856 +#: src/lang.c:1849 msgid "Color of actual news header fields :" msgstr "" -#: src/lang.c:1857 +#: src/lang.c:1850 msgid "# Color of actual news header fields\n" msgstr "" -#: src/lang.c:1862 +#: src/lang.c:1855 msgid "Color of article subject lines :" msgstr "" -#: src/lang.c:1863 +#: src/lang.c:1856 msgid "# Color of article subject\n" msgstr "" -#: src/lang.c:1868 +#: src/lang.c:1861 msgid "Color of response counter :" msgstr "" -#: src/lang.c:1869 +#: src/lang.c:1862 msgid "# Color of response counter\n" msgstr "" -#: src/lang.c:1874 +#: src/lang.c:1867 msgid "Color of sender (From:) :" msgstr "" -#: src/lang.c:1875 +#: src/lang.c:1868 msgid "# Color of sender (From:)\n" msgstr "" -#: src/lang.c:1880 +#: src/lang.c:1873 msgid "Color of help/mail sign :" msgstr "" -#: src/lang.c:1881 +#: src/lang.c:1874 msgid "# Color of Help/Mail-Sign\n" msgstr "" -#: src/lang.c:1886 +#: src/lang.c:1879 msgid "Color of signatures :" msgstr "" -#: src/lang.c:1887 +#: src/lang.c:1880 msgid "# Color of signature\n" msgstr "" -#: src/lang.c:1892 +#: src/lang.c:1885 msgid "Color of highlighting with *stars* :" msgstr "" -#: src/lang.c:1893 +#: src/lang.c:1886 msgid "" "# Color of word highlighting. There are four possibilities\n" "# in articles: *stars*, /slashes/, _underdashes_ and -strokes-.\n" msgstr "" -#: src/lang.c:1899 +#: src/lang.c:1892 msgid "Color of highlighting with _dash_ :" msgstr "" -#: src/lang.c:1905 +#: src/lang.c:1898 msgid "Color of highlighting with /slash/ :" msgstr "" -#: src/lang.c:1911 +#: src/lang.c:1904 msgid "Color of highlighting with -stroke-:" msgstr "" -#: src/lang.c:1918 +#: src/lang.c:1911 msgid "Attr. of highlighting with *stars* :" msgstr "" -#: src/lang.c:1919 +#: src/lang.c:1912 msgid "" "# Attribute of word highlighting on mono terminals.\n" "# There are four possibilities in articles:\n" @@ -5109,95 +5098,95 @@ msgid "" "# 3 - Reverse video, 4 - Blinking, 5 - Half bright, 6 - Bold\n" msgstr "" -#: src/lang.c:1929 +#: src/lang.c:1922 msgid "Attr. of highlighting with _dash_ :" msgstr "" -#: src/lang.c:1935 +#: src/lang.c:1928 msgid "Attr. of highlighting with /slash/ :" msgstr "" -#: src/lang.c:1941 +#: src/lang.c:1934 msgid "Attr. of highlighting with -stroke-:" msgstr "" -#: src/lang.c:1947 +#: src/lang.c:1940 msgid "URL highlighting in message body :" msgstr "" -#: src/lang.c:1948 +#: src/lang.c:1941 msgid "# Enable URL highlighting?\n" msgstr "" -#: src/lang.c:1953 +#: src/lang.c:1946 msgid "Word highlighting in message body :" msgstr "" -#: src/lang.c:1954 +#: src/lang.c:1947 msgid "# Enable word highlighting?\n" msgstr "" -#: src/lang.c:1959 +#: src/lang.c:1952 msgid "What to display instead of mark :" msgstr "" -#: src/lang.c:1960 +#: src/lang.c:1953 msgid "" "# Should the leading and ending stars and dashes also be displayed,\n" "# even when they are highlighting marks?\n" "# 0 - no 1 - yes, display mark 2 - print a space instead\n" msgstr "" -#: src/lang.c:1966 +#: src/lang.c:1959 msgid "Enter column number to wrap article lines to in the pager. sets." msgstr "" -#: src/lang.c:1967 +#: src/lang.c:1960 msgid "Page line wrap column :" msgstr "" -#: src/lang.c:1968 +#: src/lang.c:1961 msgid "# Wrap article lines at column\n" msgstr "" -#: src/lang.c:1973 +#: src/lang.c:1966 msgid "Wrap around threads on next unread :" msgstr "" -#: src/lang.c:1974 +#: src/lang.c:1967 msgid "# If ON wrap around threads on searching next unread article\n" msgstr "" -#: src/lang.c:1978 +#: src/lang.c:1971 msgid "Enter default mail address (and fullname). sets." msgstr "" -#: src/lang.c:1979 +#: src/lang.c:1972 msgid "Mail address (and fullname) :" msgstr "" -#: src/lang.c:1980 +#: src/lang.c:1973 msgid "# User's mail address (and fullname), if not username@host (fullname)\n" msgstr "" -#: src/lang.c:1985 +#: src/lang.c:1978 msgid "Show empty Followup-To in editor :" msgstr "" -#: src/lang.c:1986 +#: src/lang.c:1979 msgid "# If ON show empty Followup-To header when editing an article\n" msgstr "" -#: src/lang.c:1990 +#: src/lang.c:1983 msgid "" "Enter path/! command/--none to create your default signature. sets." msgstr "" -#: src/lang.c:1991 +#: src/lang.c:1984 msgid "Create signature from path/command :" msgstr "" -#: src/lang.c:1992 +#: src/lang.c:1985 msgid "" "# Signature path (random sigs)/file to be used when posting/replying\n" "# default_sigfile=file appends file as signature\n" @@ -5206,50 +5195,50 @@ msgid "" "# default_sigfile=--none don't append a signature\n" msgstr "" -#: src/lang.c:1999 +#: src/lang.c:1992 msgid "" "Prepend signature with \"-- \" on own line. toggles & sets." msgstr "" -#: src/lang.c:2000 +#: src/lang.c:1993 msgid "Prepend signature with \"-- \" :" msgstr "" -#: src/lang.c:2001 +#: src/lang.c:1994 msgid "# If ON prepend the signature with dashes '\\n-- \\n'\n" msgstr "" -#: src/lang.c:2005 +#: src/lang.c:1998 msgid "Add signature when reposting articles. toggles & sets." msgstr "" -#: src/lang.c:2006 +#: src/lang.c:1999 msgid "Add signature when reposting :" msgstr "" -#: src/lang.c:2007 +#: src/lang.c:2000 msgid "# If ON add signature to reposted articles\n" msgstr "" -#: src/lang.c:2011 +#: src/lang.c:2004 msgid "Enter quotation marks, %s or %S for author's initials." msgstr "" -#: src/lang.c:2012 +#: src/lang.c:2005 msgid "Characters used as quote-marks :" msgstr "" -#: src/lang.c:2013 +#: src/lang.c:2006 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:2019 +#: src/lang.c:2012 msgid "Quoting behavior :" msgstr "" -#: src/lang.c:2020 +#: src/lang.c:2013 msgid "" "# How quoting should be handled when following up or replying.\n" "# 0 = Nothing special\n" @@ -5262,52 +5251,52 @@ msgid "" "# 7 = Compress quotes, quote signatures, quote empty lines\n" msgstr "" -#: src/lang.c:2032 src/lang.c:2040 src/lang.c:2046 +#: src/lang.c:2025 src/lang.c:2033 src/lang.c:2039 msgid "" "%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name" msgstr "" -#: src/lang.c:2033 +#: src/lang.c:2026 msgid "Quote line when following up :" msgstr "" -#: src/lang.c:2034 +#: src/lang.c:2027 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:2041 +#: src/lang.c:2034 msgid "Quote line when cross-posting :" msgstr "" -#: src/lang.c:2047 +#: src/lang.c:2040 msgid "Quote line when mailing :" msgstr "" -#: src/lang.c:2052 +#: src/lang.c:2045 msgid "If ON, include User-Agent: header. toggles & sets." msgstr "" -#: src/lang.c:2053 +#: src/lang.c:2046 msgid "Insert 'User-Agent:'-header :" msgstr "" -#: src/lang.c:2054 +#: src/lang.c:2047 msgid "# If ON include advertising User-Agent: header\n" msgstr "" -#: src/lang.c:2058 +#: src/lang.c:2051 msgid "" "Enter charset name for MIME (e.g. US-ASCII, ISO-8859-1, EUC-KR), to set." msgstr "" -#: src/lang.c:2059 +#: src/lang.c:2052 msgid "MM_CHARSET :" msgstr "" -#: src/lang.c:2060 +#: src/lang.c:2053 msgid "" "# Charset supported locally which is also used for MIME header and\n" "# Content-Type header.\n" @@ -5317,27 +5306,27 @@ msgid "" "# mm_charset is considered not displayable and represented as '?'.\n" msgstr "" -#: src/lang.c:2071 +#: src/lang.c:2064 msgid "MM_NETWORK_CHARSET :" msgstr "" -#: src/lang.c:2072 +#: src/lang.c:2065 msgid "# Charset used for MIME (Content-Type) header in postings.\n" msgstr "" -#: src/lang.c:2078 +#: src/lang.c:2071 msgid "Mailbox format :" msgstr "" -#: src/lang.c:2079 +#: src/lang.c:2072 msgid "# Format of the mailbox.\n" msgstr "" -#: src/lang.c:2084 +#: src/lang.c:2077 msgid "MIME encoding in news messages :" msgstr "" -#: src/lang.c:2085 +#: src/lang.c:2078 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" @@ -5346,15 +5335,15 @@ msgid "" "# Russian charsets with a lot of 8bit characters.\n" msgstr "" -#: src/lang.c:2093 src/lang.c:2114 +#: src/lang.c:2086 src/lang.c:2107 msgid "Don't change unless you know what you are doing. cancels." msgstr "" -#: src/lang.c:2094 +#: src/lang.c:2087 msgid "Use 8bit characters in news headers:" msgstr "" -#: src/lang.c:2095 +#: src/lang.c:2088 msgid "" "# If ON, 8bit characters in news headers are NOT encoded.\n" "# default is OFF. Thus 8bit characters are encoded by default.\n" @@ -5362,28 +5351,28 @@ msgid "" "# parameter unless post_mime_encoding is 8bit as well.\n" msgstr "" -#: src/lang.c:2102 +#: src/lang.c:2095 msgid "" "Auto-view post-processed files toggles, sets, cancels." msgstr "" -#: src/lang.c:2103 +#: src/lang.c:2096 msgid "View post-processed files :" msgstr "" -#: src/lang.c:2104 +#: src/lang.c:2097 msgid "# If set, post processed files will be opened in a viewer\n" msgstr "" -#: src/lang.c:2109 +#: src/lang.c:2102 msgid "MIME encoding in mail messages :" msgstr "" -#: src/lang.c:2115 +#: src/lang.c:2108 msgid "Use 8bit characters in mail headers:" msgstr "" -#: src/lang.c:2116 +#: src/lang.c:2109 msgid "" "# If ON, 8bit characters in mail headers are NOT encoded.\n" "# default is OFF. Thus 8bit characters are encoded by default.\n" @@ -5394,290 +5383,290 @@ msgid "" "# turn it ON unless you have some compelling reason.\n" msgstr "" -#: src/lang.c:2126 +#: src/lang.c:2119 msgid "Strip blanks from ends of lines :" msgstr "" -#: src/lang.c:2127 +#: src/lang.c:2120 msgid "" "# If ON strip blanks from ends of lines for faster display on slow " "terminals.\n" msgstr "" -#: src/lang.c:2132 +#: src/lang.c:2125 msgid "If ON, use transliteration. toggles & sets." msgstr "" -#: src/lang.c:2133 +#: src/lang.c:2126 msgid "Transliteration :" msgstr "" -#: src/lang.c:2134 +#: src/lang.c:2127 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:2141 +#: src/lang.c:2134 msgid "Send you a carbon copy automatically. toggles & sets." msgstr "" -#: src/lang.c:2142 +#: src/lang.c:2135 msgid "Send you a cc automatically :" msgstr "" -#: src/lang.c:2143 +#: src/lang.c:2136 msgid "" "# If ON automatically put your name in the Cc: field when mailing an " "article\n" msgstr "" -#: src/lang.c:2147 +#: src/lang.c:2140 msgid "" "Send you a blind carbon copy automatically. toggles & sets." msgstr "" -#: src/lang.c:2148 +#: src/lang.c:2141 msgid "Send you a blind cc automatically :" msgstr "" -#: src/lang.c:2149 +#: src/lang.c:2142 msgid "" "# If ON automatically put your name in the Bcc: field when mailing an " "article\n" msgstr "" -#: src/lang.c:2153 +#: src/lang.c:2146 msgid "Enter address elements about which you want to be warned. sets." msgstr "" -#: src/lang.c:2154 +#: src/lang.c:2147 msgid "Spamtrap warning address parts :" msgstr "" -#: src/lang.c:2155 +#: src/lang.c:2148 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:2160 +#: src/lang.c:2153 msgid "Enter default number of days a filter entry will be valid. sets." msgstr "" -#: src/lang.c:2161 +#: src/lang.c:2154 msgid "No. of days a filter entry is valid:" msgstr "" -#: src/lang.c:2162 +#: src/lang.c:2155 msgid "# Number of days a short term filter will be active\n" msgstr "" -#: src/lang.c:2166 +#: src/lang.c:2159 msgid "Add posted articles to filter. toggles & sets." msgstr "" -#: src/lang.c:2167 +#: src/lang.c:2160 msgid "Add posted articles to filter :" msgstr "" -#: src/lang.c:2168 +#: src/lang.c:2161 msgid "" "# If ON add posted articles which start a new thread to filter for\n" "# highlighting follow-ups\n" msgstr "" -#: src/lang.c:2172 +#: src/lang.c:2165 msgid "The directory where articles/threads are to be saved in mailbox format." msgstr "" -#: src/lang.c:2173 +#: src/lang.c:2166 msgid "Mail directory :" msgstr "" -#: src/lang.c:2174 +#: src/lang.c:2167 msgid "# (-m) directory where articles/threads are saved in mailbox format\n" msgstr "" -#: src/lang.c:2179 +#: src/lang.c:2172 msgid "Save articles in batch mode (-S) :" msgstr "" -#: src/lang.c:2180 +#: src/lang.c:2173 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:2185 +#: src/lang.c:2178 msgid "The directory where you want articles/threads saved." msgstr "" -#: src/lang.c:2186 +#: src/lang.c:2179 msgid "Directory to save arts/threads in :" msgstr "" -#: src/lang.c:2187 +#: src/lang.c:2180 msgid "# Directory where articles/threads are saved\n" msgstr "" -#: src/lang.c:2191 +#: src/lang.c:2184 msgid "" "Auto save article/thread by Archive-name: header. toggles & " "sets." msgstr "" -#: src/lang.c:2192 +#: src/lang.c:2185 msgid "Use Archive-name: header for save :" msgstr "" -#: src/lang.c:2193 +#: src/lang.c:2186 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:2198 +#: src/lang.c:2191 msgid "" "Mark saved articles/threads as read. toggles, sets, " "cancels." msgstr "" -#: src/lang.c:2199 +#: src/lang.c:2192 msgid "Mark saved articles/threads as read:" msgstr "" -#: src/lang.c:2200 +#: src/lang.c:2193 msgid "# If ON mark articles that are saved as read\n" msgstr "" -#: src/lang.c:2204 +#: src/lang.c:2197 msgid "Do post processing (eg. extract attachments) for saved articles." msgstr "" -#: src/lang.c:2205 +#: src/lang.c:2198 msgid "Post process saved articles :" msgstr "" -#: src/lang.c:2206 +#: src/lang.c:2199 msgid "" "# Perform post processing (saving binary attachments) from saved articles.\n" "# 0=(no) 1=(yes) 2=(extract shell archives (shar) only)\n" msgstr "" -#: src/lang.c:2212 +#: src/lang.c:2205 msgid "Process only unread articles :" msgstr "" -#: src/lang.c:2213 +#: src/lang.c:2206 msgid "" "# If ON only save/print/pipe/mail unread articles (tagged articles " "excepted)\n" msgstr "" -#: src/lang.c:2218 +#: src/lang.c:2211 msgid "Print all or just part of header. toggles & sets." msgstr "" -#: src/lang.c:2219 +#: src/lang.c:2212 msgid "Print all headers when printing :" msgstr "" -#: src/lang.c:2220 +#: src/lang.c:2213 msgid "" "# If ON print all of article header otherwise just the important lines\n" msgstr "" -#: src/lang.c:2224 +#: src/lang.c:2217 msgid "" "The printer program with options that is to be used to print " "articles/threads." msgstr "" -#: src/lang.c:2225 +#: src/lang.c:2218 msgid "Printer program with options :" msgstr "" -#: src/lang.c:2226 +#: src/lang.c:2219 msgid "# Print program with parameters used to print articles/threads\n" msgstr "" -#: src/lang.c:2232 +#: src/lang.c:2225 msgid "Force redraw after certain commands:" msgstr "" -#: src/lang.c:2233 +#: src/lang.c:2226 msgid "" "# If ON a screen redraw will always be done after certain external commands\n" msgstr "" -#: src/lang.c:2237 +#: src/lang.c:2230 msgid "" "Start editor with line offset. toggles, sets, cancels." msgstr "" -#: src/lang.c:2238 +#: src/lang.c:2231 msgid "Start editor with line offset :" msgstr "" -#: src/lang.c:2239 +#: src/lang.c:2232 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:2244 +#: src/lang.c:2237 msgid "Enter %E for editor, %F for filename, %N for line-number, to set." msgstr "" -#: src/lang.c:2245 +#: src/lang.c:2238 msgid "Invocation of your editor :" msgstr "" -#: src/lang.c:2246 +#: src/lang.c:2239 msgid "" "# Format of editor line including parameters\n" "# %%E Editor %%F Filename %%N Linenumber\n" msgstr "" -#: src/lang.c:2251 +#: src/lang.c:2244 msgid "" "Enter name and options for external-inews, --internal for internal inews" msgstr "" -#: src/lang.c:2252 +#: src/lang.c:2245 msgid "External inews :" msgstr "" -#: src/lang.c:2253 +#: src/lang.c:2246 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:2257 +#: src/lang.c:2250 msgid "" "Enter %M for mailer, %S for subject, %T for to, %F for filename, to set." msgstr "" -#: src/lang.c:2258 +#: src/lang.c:2251 msgid "Invocation of your mail command :" msgstr "" -#: src/lang.c:2259 +#: src/lang.c:2252 msgid "" "# Format of mailer line including parameters\n" -"# %%M Mailer %%S Subject %%T To %%F Filename %%U User (AmigaDOS)\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:2267 +#: src/lang.c:2260 msgid "Use interactive mail reader :" msgstr "" -#: src/lang.c:2268 +#: src/lang.c:2261 msgid "" "# Interactive mailreader:\n" "# 0 = no interactive mailreader\n" @@ -5685,385 +5674,177 @@ msgid "" "# 2 = use interactive mailreader without headers in file\n" msgstr "" -#: src/lang.c:2276 +#: src/lang.c:2269 msgid "Remove ~/.article after posting :" msgstr "" -#: src/lang.c:2277 +#: src/lang.c:2270 msgid "# If ON remove ~/.article after posting.\n" msgstr "" -#: src/lang.c:2281 +#: src/lang.c:2274 msgid "Filename for all posted articles, sets, no filename=do not save." msgstr "" -#: src/lang.c:2282 +#: src/lang.c:2275 msgid "Filename for posted articles :" msgstr "" -#: src/lang.c:2283 +#: src/lang.c:2276 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:2288 +#: src/lang.c:2281 msgid "" "Keep all failed articles in ~/dead.articles. toggles & sets." msgstr "" -#: src/lang.c:2289 +#: src/lang.c:2282 msgid "Keep failed arts in ~/dead.articles:" msgstr "" -#: src/lang.c:2290 +#: src/lang.c:2283 msgid "# If ON keep all failed postings in ~/dead.articles\n" msgstr "" -#: src/lang.c:2294 +#: src/lang.c:2287 msgid "Do you want to strip unsubscribed groups from .newsrc" msgstr "" -#: src/lang.c:2295 +#: src/lang.c:2288 msgid "No unsubscribed groups in newsrc :" msgstr "" -#: src/lang.c:2296 +#: src/lang.c:2289 msgid "# If ON strip unsubscribed groups from newsrc\n" msgstr "" -#: src/lang.c:2301 +#: src/lang.c:2294 msgid "Remove bogus groups from newsrc :" msgstr "" -#: src/lang.c:2302 +#: src/lang.c:2295 msgid "" "# What to do with bogus groups in newsrc file\n" "# 0=(Keep) 1=(Remove) 2=(Highlight with D on selection screen).\n" msgstr "" -#: src/lang.c:2306 +#: src/lang.c:2299 msgid "Enter number of seconds until active file will be reread. sets." msgstr "" -#: src/lang.c:2307 +#: src/lang.c:2300 msgid "Interval in secs to reread active :" msgstr "" -#: src/lang.c:2308 +#: src/lang.c:2301 msgid "" "# Time interval in seconds between rereading the active file (0=never)\n" msgstr "" -#: src/lang.c:2313 +#: src/lang.c:2306 msgid "Reconnect to server automatically :" msgstr "" -#: src/lang.c:2314 +#: src/lang.c:2307 msgid "" "# If ON automatically reconnect to NNTP server if the connection is broken\n" msgstr "" -#: src/lang.c:2318 +#: src/lang.c:2311 msgid "" "Create local copies of NNTP overview files. toggles & sets." msgstr "" -#: src/lang.c:2319 +#: src/lang.c:2312 msgid "Cache NNTP overview files locally :" msgstr "" -#: src/lang.c:2320 +#: src/lang.c:2313 msgid "# If ON, create local copies of NNTP overview files.\n" msgstr "" -#: src/main.c:619 +#: src/lang.c:2317 +msgid "Enter format string. sets, cancels." +msgstr "" + +#: src/lang.c:2318 +msgid "Format string for display of dates :" +msgstr "" + +#: src/lang.c:2319 +msgid "# Format string for date representation\n" +msgstr "" + +#: src/main.c:590 #, c-format msgid "Version: %s release %s (\"%s\") %s %s" msgstr "" -#: src/main.c:622 +#: src/main.c:593 #, c-format msgid "Version: %s release %s (\"%s\")" msgstr "" -#: src/nntplib.c:804 +#: src/newsrc.c:432 +msgid "Unreachable?\n" +msgstr "" + +#: src/nntplib.c:821 #, c-format msgid "" "\n" "Server timed out, trying reconnect # %d\n" msgstr "" -#: src/nntplib.c:822 +#: src/nntplib.c:839 msgid "Rejoin current group\n" msgstr "" -#: src/nntplib.c:829 +#: src/nntplib.c:846 #, c-format msgid "Read (%s)\n" msgstr "" -#: src/nntplib.c:831 +#: src/nntplib.c:848 #, c-format msgid "Resend last command (%s)\n" msgstr "" -#: src/nntplib.c:951 -msgid "100 Help text on way" -msgstr "" - -#: src/nntplib.c:955 -msgid "180 Authorization capabilities" -msgstr "" - -#: src/nntplib.c:959 -msgid "199 Debug output" -msgstr "" - -#: src/nntplib.c:963 -msgid "200 Hello; you can post" -msgstr "" - -#: src/nntplib.c:967 -msgid "201 Hello; you can't post" -msgstr "" - -#: src/nntplib.c:971 -msgid "202 Slave status noted" -msgstr "" - -#: src/nntplib.c:979 -msgid "211 Group selected" -msgstr "" - -#: src/nntplib.c:984 -msgid "215 Newsgroups follow" -msgstr "" - -#: src/nntplib.c:989 -msgid "218 Group index file follows" -msgstr "" - -#: src/nntplib.c:994 -msgid "220 Article (head & body) follows" -msgstr "" - -#: src/nntplib.c:998 -msgid "221 Head follows" -msgstr "" - -#: src/nntplib.c:1002 -msgid "222 Body follows" -msgstr "" - -#: src/nntplib.c:1006 -msgid "223 No text sent -- stat, next, last" -msgstr "" - -#: src/nntplib.c:1010 -msgid "230 New articles by message-id follow" -msgstr "" - -#: src/nntplib.c:1014 -msgid "231 New newsgroups follow" -msgstr "" - -#: src/nntplib.c:1018 -msgid "235 Article transferred successfully" -msgstr "" - -#: src/nntplib.c:1022 -msgid "240 Article posted successfully" -msgstr "" - -#: src/nntplib.c:1026 -msgid "280 Authorization system ok" -msgstr "" - -#: src/nntplib.c:1030 -msgid "281 Authorization (user/pass) ok" -msgstr "" - -#: src/nntplib.c:1034 -msgid "282 binary data follows" -msgstr "" - -#: src/nntplib.c:1038 -msgid "283 spooldir list follows" -msgstr "" - -#: src/nntplib.c:1042 -msgid "284 Switching to a different spooldir" -msgstr "" - -#: src/nntplib.c:1046 -msgid "285 Still using same spooldir" -msgstr "" - -#: src/nntplib.c:1050 -msgid "286 Current spooldir" -msgstr "" - -#: src/nntplib.c:1054 -msgid "287 Available spooldir" -msgstr "" - -#: src/nntplib.c:1058 -msgid "288 Unavailable spooldir or invalid entry" -msgstr "" - -#: src/nntplib.c:1062 -msgid "335 Continue to send article" -msgstr "" - -#: src/nntplib.c:1066 -msgid "340 Continue to post article" -msgstr "" - -#: src/nntplib.c:1070 -msgid "380 authorization is required" -msgstr "" - -#: src/nntplib.c:1074 -msgid "381 authorization data required" -msgstr "" - -#: src/nntplib.c:1078 -msgid "400 Have to hang up for some reason" -msgstr "" - -#: src/nntplib.c:1082 -msgid "411 No such newsgroup" -msgstr "" - -#: src/nntplib.c:1086 -msgid "412 Not currently in newsgroup" -msgstr "" - -#: src/nntplib.c:1090 -msgid "418 No index file for this group" -msgstr "" - -#: src/nntplib.c:1094 -msgid "420 No current article selected" -msgstr "" - -#: src/nntplib.c:1098 -msgid "421 No next article in this group" -msgstr "" - -#: src/nntplib.c:1102 -msgid "422 No previous article in this group" -msgstr "" - -#: src/nntplib.c:1106 -msgid "423 No such article in this group" -msgstr "" - -#: src/nntplib.c:1110 -msgid "430 No such article at all" -msgstr "" - -#: src/nntplib.c:1114 -msgid "435 Already got that article, don't send" -msgstr "" - -#: src/nntplib.c:1118 -msgid "436 Transfer failed" -msgstr "" - -#: src/nntplib.c:1122 -msgid "437 Article rejected, don't resend" -msgstr "" - -#: src/nntplib.c:1126 -msgid "440 Posting not allowed" -msgstr "" - -#: src/nntplib.c:1130 -msgid "441 Posting failed" -msgstr "" - -#: src/nntplib.c:1134 -msgid "480 authorization required for command" -msgstr "" - -#: src/nntplib.c:1138 -msgid "481 Authorization system invalid" -msgstr "" - -#: src/nntplib.c:1142 -msgid "482 Authorization data rejected" -msgstr "" - -#: src/nntplib.c:1146 -msgid "483 Invalid alias on spooldir cmd" -msgstr "" - -#: src/nntplib.c:1150 -msgid "484 No spooldir file found" -msgstr "" - -#: src/nntplib.c:1154 -msgid "500 Command not recognized" -msgstr "" - -#: src/nntplib.c:1158 -msgid "501 Command syntax error" -msgstr "" - -#: src/nntplib.c:1162 -msgid "502 Access to server denied" -msgstr "" - -#: src/nntplib.c:1167 -msgid "503 Program fault, command not performed" -msgstr "" - -#: src/nntplib.c:1171 -msgid "580 Authorization Failed" -msgstr "" - -#: src/nntplib.c:1175 -msgid "Unknown NNTP response code" -msgstr "" - #: src/nrctbl.c:172 #, c-format msgid "couldn't expand %s\n" msgstr "" -#: src/open.c:1123 -msgid "Unreachable?\n" -msgstr "" - -#: src/post.c:1749 +#: src/post.c:1747 #, c-format msgid "%s is bogus" msgstr "" -#: src/post.c:1936 +#: src/post.c:1934 #, c-format msgid "Posting: %.*s ..." msgstr "" #. TODO: -> lang.c -#: src/post.c:4034 +#: src/post.c:4037 #, c-format msgid "Rereading %s..." msgstr "" #. fp #. Check if okay to read -#: src/read.c:219 +#: src/read.c:214 msgid "Aborting read, please wait..." msgstr "" -#: src/read.c:366 +#: src/read.c:361 msgid "Aborted read\n" msgstr "" -#: src/read.c:422 +#: src/read.c:417 msgid "Draining\n" msgstr "" diff -Nurp tin-1.7.1/src/Makefile.in tin-1.7.2/src/Makefile.in --- tin-1.7.1/src/Makefile.in Sat Aug 23 01:58:41 2003 +++ tin-1.7.2/src/Makefile.in Thu Sep 25 19:57:42 2003 @@ -1,7 +1,7 @@ # Source Makefile for tin # - for configuration options read the ../doc/INSTALL file. # -# Updated: 2003-07-24 +# Updated: 2003-09-24 # # Copyright (c) 1995-2003 Thomas E. Dickey # All rights reserved. @@ -160,7 +160,6 @@ CFILES = \ $(SRCDIR)/newsrc.c \ $(SRCDIR)/nntplib.c \ $(SRCDIR)/nrctbl.c \ - $(SRCDIR)/open.c \ $(SRCDIR)/page.c \ $(SRCDIR)/parsdate.y \ $(SRCDIR)/pgp.c \ @@ -234,7 +233,6 @@ OFILES = @ALLOCA@ $(EXTRAOBJS) \ $(OBJDIR)/newsrc.o \ $(OBJDIR)/nntplib.o \ $(OBJDIR)/nrctbl.o \ - $(OBJDIR)/open.o \ $(OBJDIR)/page.o \ $(OBJDIR)/parsdate.o \ $(OBJDIR)/pgp.o \ @@ -533,8 +531,6 @@ $(OBJDIR)/nntplib.o: $(SRCDIR)/nntplib. $(OBJDIR)/nrctbl.o: $(SRCDIR)/nrctbl.c $(TIN_DEP) \ $(INCDIR)/menukeys.h \ $(INCDIR)/version.h -$(OBJDIR)/open.o: $(SRCDIR)/open.c $(TIN_DEP) \ - $(INCDIR)/tnntp.h $(OBJDIR)/page.o: $(SRCDIR)/page.c $(TIN_DEP) \ $(INCDIR)/menukeys.h \ $(INCDIR)/rfc2046.h diff -Nurp tin-1.7.1/src/active.c tin-1.7.2/src/active.c --- tin-1.7.1/src/active.c Mon Aug 25 01:17:53 2003 +++ tin-1.7.2/src/active.c Thu Sep 25 19:58:24 2003 @@ -3,7 +3,7 @@ * Module : active.c * Author : I. Lea * Created : 1992-02-16 - * Updated : 2003-08-16 + * Updated : 2003-09-24 * Notes : * * Copyright (c) 1992-2003 Iain Lea @@ -62,6 +62,8 @@ static time_t active_timestamp; /* time /* * Local prototypes */ +static FILE *open_newgroups_fp(int idx); +static FILE *open_news_active_fp(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); @@ -72,25 +74,6 @@ static void read_newsrc_active_file(void static void subscribe_new_group(char *group, char *autosubscribe, char *autounsubscribe); -/* - * Get default array size for active[] from environment (AmigaDOS) - * or just return the standard default. - */ -int -get_active_num( - void) -{ -#ifdef ENV_VAR_GROUPS /* M_AMIGA only */ - char *ptr; - int num; - - if ((ptr = getenv(ENV_VAR_GROUPS)) != NULL) - return ((num = atoi(ptr)) ? num : DEFAULT_ACTIVE_NUM); -#endif /* ENV_VAR_GROUPS */ - return DEFAULT_ACTIVE_NUM; -} - - t_bool need_reread_active_file( void) @@ -456,6 +439,22 @@ read_newsrc_active_file( /* + * Open the news active file locally or send the LIST command + */ +static FILE * +open_news_active_fp( + void) +{ +#ifdef NNTP_ABLE + if (read_news_via_nntp && !read_saved_news) + return (nntp_command("LIST", OK_GROUPS, NULL, 0)); + else +#endif /* NNTP_ABLE */ + return (fopen(news_active_file, "r")); +} + + +/* * Load the active file into active[] */ static void @@ -591,6 +590,41 @@ read_news_active_file( /* + * Open the active.times file locally or send the NEWGROUPS command + * + * NEWGROUPS yymmdd hhmmss + */ +static FILE * +open_newgroups_fp( + int idx) +{ +#ifdef NNTP_ABLE + char line[NNTP_STRLEN]; + struct tm *ngtm; + + if (read_news_via_nntp && !read_saved_news) { + if (idx == -1) + return (FILE *) 0; + + ngtm = localtime(&newnews[idx].time); + /* + * 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 + * compliant... we should switch over to ngtm->tm_year + 1900 + * when most servers can handle the new format + */ + snprintf(line, sizeof(line), "NEWGROUPS %02d%02d%02d %02d%02d%02d", + ngtm->tm_year % 100, ngtm->tm_mon + 1, ngtm->tm_mday, + ngtm->tm_hour, ngtm->tm_min, ngtm->tm_sec); + + return (nntp_command(line, OK_NEWGROUPS, NULL, 0)); + } else +#endif /* NNTP_ABLE */ + return (fopen(active_times_file, "r")); +} + + +/* * Check for any newly created newsgroups. * * If reading news locally check the NEWSLIBDIR/active.times file. @@ -956,9 +990,7 @@ make_group_list( make_group_list(active_file, base_dir, 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); - - ptr = strrchr(group_path, '/'); /* TODO: Unix'ism */ - if (ptr != NULL) + if ((ptr = strrchr(group_path, '/')) != NULL) /* TODO: Unix'ism */ *ptr = '\0'; } } diff -Nurp tin-1.7.1/src/art.c tin-1.7.2/src/art.c --- tin-1.7.1/src/art.c Fri Aug 29 01:11:46 2003 +++ tin-1.7.2/src/art.c Thu Oct 16 23:24:44 2003 @@ -3,7 +3,7 @@ * Module : art.c * Author : I.Lea & R.Skrenta * Created : 1991-04-01 - * Updated : 2003-08-25 + * Updated : 2003-10-03 * Notes : * * Copyright (c) 1991-2003 Iain Lea , Rich Skrenta @@ -51,30 +51,36 @@ */ #define SortBy(func) qsort(arts, (size_t) top_art, sizeof(struct t_article), func); -static long last_read_article; int top_art = 0; /* # of articles in arts[] */ +#ifdef NNTP_ABLE + long head_next; +#endif /* NNTP_ABLE */ + /* * Local prototypes */ +static FILE *open_art_header(long art); 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 int artnum_comp(t_comptype p1, t_comptype p2); +static int base_comp(t_comptype p1, t_comptype p2); static int date_comp(t_comptype p1, t_comptype p2); static int from_comp(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 lines_comp(t_comptype p1, t_comptype p2); -static int read_nov_file(struct t_group *group, long min, long max, int *expired, t_bool local); -static int read_group(struct t_group *group, int *pcount); +static int read_art_headers(struct t_group *group, long *top); static int score_comp(t_comptype p1, t_comptype p2); static int score_comp_base(t_comptype p1, t_comptype p2); static int subj_comp(t_comptype p1, t_comptype p2); static int valid_artnum(long art); static long find_first_unread(struct t_group *group); +static long setup_hard_base(struct t_group *group); static t_bool parse_headers(FILE *fp, struct t_article *h); +static t_bool read_overview(struct t_group *group, long min, long max, long *top, int *expired, t_bool local); static t_compfunc eval_sort_arts_func(unsigned int sort_art_type); static void sort_base(unsigned int sort_threads_type); static void thread_by_subject(void); @@ -95,19 +101,15 @@ show_art_msg( /* - * Construct the pointers to the base article in each thread. + * Construct the pointers to the first (base) article in each thread. * If we are showing only unread, then point to the first unread. I have * no idea why this should be so, it causes problems elsewhere [which_response] - * .prev is set on each article that is after the first article in the - * thread and points to the previous article. Articles which have been expired - * have their .thread set to ART_EXPIRED */ void find_base( struct t_group *group) { - int i; - int j; + int i, j; grpmenu.max = 0; @@ -115,17 +117,23 @@ find_base( debug_print_arts(); #endif /* DEBUG */ - if (group->attribute->show_only_unread) { - for_each_art(i) { - if (arts[i].prev >= 0 || arts[i].thread == ART_EXPIRED || (arts[i].killed && tinrc.kill_level == KILL_NOTHREAD)) - continue; + for_each_art(i) { + /* + * .prev will be set on each article that is after the first article in + * the thread. Invalid articles which have been expired will have + * .thread set to ART_EXPIRED + */ + if (arts[i].prev >= 0 || arts[i].thread == ART_EXPIRED || (arts[i].killed && tinrc.kill_level == KILL_NOTHREAD)) + continue; - if (grpmenu.max >= max_art) - expand_art(); + if (grpmenu.max >= max_art) + expand_art(); + if (group->attribute->show_only_unread) { if (arts[i].status != ART_READ) 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) { base[grpmenu.max++] = i; @@ -133,21 +141,170 @@ find_base( } } } + } else + base[grpmenu.max++] = i; + } + /* sort base[] */ + if (group->attribute->sort_threads_type > SORT_THREADS_BY_NOTHING) + sort_base(group->attribute->sort_threads_type); +} + + +/* + * Longword comparison routine for the qsort() + */ +static int +base_comp( + t_comptype p1, + t_comptype p2) +{ + const long *a = (const long *) p1; + const long *b = (const long *) p2; + + if (*a < *b) + return -1; + + if (*a > *b) + return 1; + + return 0; +} + + +/* + * via NNTP: + * Issue a LISTGROUP command + * Read the article numbers existing in the group into base[] + * If the LISTGROUP failed, issue a GROUP command. Use the results to + * create a less accurate version of base[] + * This data will already be sorted + * + * on local spool: + * Read the spool dir to populate base[] as above. Sort it. + * + * Grow the arts[] and bitmaps as needed. + * NB: the output will be sorted on artnum + * + * grpmenu.max is one past top. + * Returns total number of articles in group, or -1 on error + */ +static long +setup_hard_base( + struct t_group *group) +{ + char buf[NNTP_STRLEN]; + long art; + long total = 0; + + grpmenu.max = 0; + + /* + * If reading with NNTP, issue a LISTGROUP + */ + if (read_news_via_nntp && group->type == GROUP_TYPE_NEWS) { +#ifdef NNTP_ABLE + 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. + */ + snprintf(buf, sizeof(buf), "GROUP %s", group->name); + if (nntp_command(buf, OK_GROUP, NULL, 0) == NULL) + return -1; +# endif /* BROKEN_LISTGROUP */ + + /* + * See if LISTGROUP works + */ + 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); +# endif /* DEBUG */ + + while ((ptr = tin_fgets(fp, FALSE)) != NULL) { + if (grpmenu.max >= max_art) + expand_art(); + base[grpmenu.max++] = atoi(ptr); + } + + if (tin_errno) + return -1; + + } else { + /* + * LISTGROUP failed, use GROUP command instead + */ + long start, last, count; + char line[NNTP_STRLEN]; + + /* + * Handle the obscure case that the user aborted before the LISTGROUP + * had a chance to respond + */ + if (tin_errno) + return -1; + + snprintf(buf, sizeof(buf), "GROUP %s", group->name); + if (nntp_command(buf, OK_GROUP, line, sizeof(line)) == NULL) + return -1; + + if (sscanf(line, "%ld %ld %ld", &count, &start, &last) != 3) + return -1; + + total = count; + + if (last - count > start) + count = last - start; + + while (start <= last) { + if (grpmenu.max >= max_art) + expand_art(); + base[grpmenu.max++] = start++; + } } +#endif /* NNTP_ABLE */ + /* + * Reading off local spool, read the directory files + */ } else { - for_each_art(i) { - if (arts[i].prev >= 0 || arts[i].thread == ART_EXPIRED || (arts[i].killed && tinrc.kill_level == KILL_NOTHREAD)) - continue; + DIR *d; + DIR_BUF *e; - if (grpmenu.max >= max_art) - expand_art(); + make_base_group_path(group->spooldir, group->name, buf); - base[grpmenu.max++] = i; + if (access(buf, R_OK) != 0) { + error_message(_(txt_not_exist)); + return -1; + } + + if ((d = opendir(buf)) != NULL) { + while ((e = readdir(d)) != NULL) { + art = atol(e->d_name); + if (art >= 1) { + total++; + if (grpmenu.max >= max_art) + expand_art(); + base[grpmenu.max++] = art; + } + } + CLOSEDIR(d); + qsort((char *) base, (size_t) grpmenu.max, sizeof(long), base_comp); } } - /* sort base[] */ - if (group->attribute->sort_threads_type > SORT_THREADS_BY_NOTHING) - sort_base(group->attribute->sort_threads_type); + + if (grpmenu.max) { + if (base[grpmenu.max - 1] > group->xmax) + group->xmax = base[grpmenu.max - 1]; + expand_bitmap(group, base[0]); + } + + return total; } @@ -165,11 +322,10 @@ index_group( struct t_group *group) { int i; - int count; int expired; int modified; - long min; - long max; + long last_read_article; + long min, max; t_bool caching_xover; t_bool filtered; @@ -185,13 +341,11 @@ index_group( free_art_array(); free_msgids(); - /* - * Load articles within min..max from xover index file if it exists - * and then create base[] article numbers from loaded articles. - * If nov file does not exist then create base[] with setup_hard_base(). - */ BegStopWatch("setup_hard_base"); + /* + * Get list of valid article numbers + */ if (setup_hard_base(group) < 0) return FALSE; @@ -199,7 +353,7 @@ index_group( PrintStopWatch(); #ifdef DEBUG_NEWSRC - debug_print_comment("Before read_nov_file"); + debug_print_comment("Before read_overview"); debug_print_bitmap(group, NULL); #endif /* DEBUG_NEWSRC */ @@ -226,7 +380,7 @@ index_group( last_read_article = 0L; /* - * Read in the existing overview + * Read in the existing overview data for min..max * This read has local=TRUE set if locally caching XOVER records to ensure * we pull in any private overview caches in preference to using using OVER * @@ -235,15 +389,15 @@ index_group( */ caching_xover = (tinrc.cache_overview_files && xover_cmd && group->type == GROUP_TYPE_NEWS); - if (read_nov_file(group, min, max, &expired, caching_xover) == -1) + if (!read_overview(group, min, max, &last_read_article, &expired, caching_xover)) return FALSE; /* user aborted indexing */ /* * Fill in the range last_read_article...max using XOVER - * Only do this if the previous read_nov_file() was against private cache + * Only do this if the previous read_overview() was against private cache */ if ((last_read_article < max) && caching_xover) { - if (read_nov_file(group, (last_read_article >= min) ? last_read_article + 1 : min, max, &expired, FALSE) == -1) + if (!read_overview(group, (last_read_article >= min) ? last_read_article + 1 : min, max, &last_read_article, &expired, FALSE)) return FALSE; /* user aborted indexing */ } else caching_xover = FALSE; @@ -251,17 +405,17 @@ index_group( /* * Add any articles to arts[] that are new or were killed */ - if ((modified = read_group(group, &count)) == -1) + if ((modified = read_art_headers(group, &last_read_article)) == -1) return FALSE; /* user aborted indexing */ - /* - * Do this before calling art_mark(,, ART_READ) if you want - * the unread count to be correct. - */ #ifdef DEBUG_NEWSRC debug_print_comment("Before parse_unread_arts()"); debug_print_bitmap(group, NULL); #endif /* DEBUG_NEWSRC */ + /* + * 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()"); @@ -285,7 +439,7 @@ index_group( * Only rewrite the index if it has changed */ if (expired || modified || caching_xover) - write_nov_file(group); + write_overview(group); /* * Create the reference tree. The msgid and ref ptrs will @@ -300,6 +454,9 @@ index_group( BegStopWatch("make_thread"); + /* + * Thread the group + */ make_threads(group, FALSE); EndStopWatch(); @@ -333,28 +490,68 @@ find_first_unread( /* + * Open an article for reading just the header + */ +static FILE * +open_art_header( + long art) +{ + char buf[NNTP_STRLEN]; +#ifdef NNTP_ABLE + FILE *fp; + + if (read_news_via_nntp && CURR_GROUP.type == GROUP_TYPE_NEWS) { + /* + * Don't bother requesting if we have not got there yet. + * This is a big win if the group has got holes in it (ie. if 000's + * of articles have expired between active files min & max values). + */ + if (art < head_next) + return (FILE *) 0; + + snprintf(buf, sizeof(buf), "HEAD %ld", art); + if ((fp = nntp_command(buf, OK_HEAD, NULL, 0)) != NULL) + return fp; + + /* + * HEAD failed, try to find NEXT + * Should return "223 artno message-id more text...." + */ + if (nntp_command("NEXT", OK_NOTEXT, buf, sizeof(buf))) + head_next = atoi(buf); /* Set next art number */ + + return (FILE *) 0; + } else +#endif /* NNTP_ABLE */ + { + snprintf(buf, sizeof(buf), "%ld", art); + return (fopen(buf, "r")); + } +} + + +/* * Called after XOVER/local/private overview databases have been loaded * Read and parse in headers for any arts not already found (usually * new articles that have not been indexed yet) * Already present articles that pass valid_artnum() have their - * ->thread set to ART_NORMAL, as do any new articles that are added. + * ->thread set to ART_UNTHREADED, as do any new articles that are added. + * 'top' is the current highest artnum read and is updated by this + * function. * * Return values are: - * 1 Additional articles were read in + * >0 Number of additional articles read in * 0 No additional (new) articles were found * -1 user aborted during read - * TODO: think of a function name that sucks less - * TODO: *pcount isn't used by the caller (index_group) */ static int -read_group( +read_art_headers( struct t_group *group, - int *pcount) + long *top) { FILE *fp; char buf[PATH_LEN]; int i; - int count = 0; int respnum, total = 0; int modified = 0; long art; @@ -374,30 +571,32 @@ read_group( * Count num of arts to index so the user has an idea of index time */ for (i = 0; i < grpmenu.max; i++) { - if (base[i] <= last_read_article || valid_artnum(base[i]) >= 0) + if (base[i] <= *top || valid_artnum(base[i]) >= 0) continue; total++; } +#ifdef NNTP_ABLE /* * Reset the next article number index (for when HEAD fails) */ head_next = -1; +#endif /* NNTP_ABLE */ for (i = 0; i < grpmenu.max; i++) { /* for each article # */ art = base[i]; /* * Do we already have this article in our index? Change - * arts[].thread from ART_EXPIRED to ART_NORMAL and skip + * arts[].thread from ART_EXPIRED to ART_UNTHREADED and skip * reading the header. */ if ((respnum = valid_artnum(art)) >= 0) { - arts[respnum].thread = ART_NORMAL; + arts[respnum].thread = ART_UNTHREADED; continue; } - if (art <= last_read_article) + if (art <= *top) continue; /* @@ -407,11 +606,6 @@ read_group( continue; /* - * we've modified the index so it will need to be re-written - */ - modified = 1; - - /* * Add article to arts[] */ if (top_art >= max_art) @@ -419,39 +613,32 @@ read_group( set_article(&arts[top_art]); arts[top_art].artnum = art; - arts[top_art].thread = ART_NORMAL; + arts[top_art].thread = ART_UNTHREADED; res = parse_headers(fp, &arts[top_art]); TIN_FCLOSE(fp); if (tin_errno) { - if (!read_news_via_nntp || group->type != GROUP_TYPE_NEWS) - my_chdir(dir); - - return -1; + modified = -1; + break; } if (!res) { snprintf(buf, sizeof(buf), "FAILED parse_headers(%ld)", art); #ifdef DEBUG - debug_nntp("read_group", buf); + debug_nntp("read_art_headers", buf); #endif /* DEBUG */ continue; } - last_read_article = arts[top_art].artnum; /* used if arts are killed */ + *top = arts[top_art].artnum; /* used if arts are killed */ top_art++; - if (++count % MODULO_COUNT_NUM == 0) - show_progress(mesg, count, total); + if (++modified % MODULO_COUNT_NUM == 0) + show_progress(mesg, modified, total); } /* - * Update number of article we 'read' - */ - *pcount = count; - - /* * if !nntp change to previous dir before indexing started */ if (!read_news_via_nntp || group->type != GROUP_TYPE_NEWS) @@ -729,13 +916,14 @@ thread_by_multipart( * THREAD_BOTH Threads created using References and then Subject * THREAD_MULTI Threads created using Subject to search for Multiparts * - * Apart from THREAD_NONE, .thread and .prev are used, the - * first article in a thread should have .prev set to ART_NORMAL, the - * rest >= 0. Only do unexpired articles we haven't visited yet - * (arts[].thread == -1 ART_NORMAL). - * - * The rethread parameter is a misnomer. Its only effect (if set) is - * to delete all threading information, not to rethread + * .thread and .prev are used to hold the threading information, see tin.h for + * more information + * Only process valid (unexpired) articles we haven't visited yet + * (ie arts[].thread == ART_UNTHREADED) + * + * The rethread parameter is used to force the deletion of existing threading + * information before threading which happens anyway expect when using + * THREAD_NONE (I don't immediately see how this is useful) */ /* TODO: rewrite that user can easly combine different 'threading' * methods, i.e: @@ -746,8 +934,6 @@ make_threads( struct t_group *group, t_bool rethread) { - int i; - if (!cmd_line && !batch_mode) info_message((group->attribute->thread_arts == THREAD_NONE ? _(txt_unthreading_arts) : _(txt_threading_arts))); @@ -772,12 +958,14 @@ make_threads( /* * The threading pointers need to be reset if re-threading - * If using ref threading, revector the links back to the articles + * If using ref threading, revector the links back to the articles */ if (rethread || group->attribute->thread_arts) { + int i; + for_each_art(i) { - if (arts[i].thread != ART_EXPIRED) - arts[i].thread = ART_NORMAL; + if (arts[i].thread >= 0) + arts[i].thread = ART_UNTHREADED; arts[i].prev = ART_NORMAL; @@ -821,6 +1009,10 @@ make_threads( default: /* not reached */ break; } + + /* + * Rebuild base[] + */ find_base(group); } @@ -1006,7 +1198,7 @@ parse_headers( /* * 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_nov_file() + * (i.e. in rfc1522_encode() called from write_overview() * with the data read in here). */ case 'S': /* Subject: mandatory */ @@ -1064,7 +1256,8 @@ parse_headers( #endif /* DEBUG */ /* * Read in an overview index file. Fields are separated by TAB. - * return the new value of 'top_art' or -1 if user quit partway. + * return FALSE if the user aborted the read + * 'top' is set to the highest artnum read * 'expired' is set to the # of expired arts * If 'local' is set then always open local overview cache in * preference to using NNTP XOVER @@ -1080,11 +1273,12 @@ parse_headers( * 8. Lines: line (ie. 23) [mandatory] * 9. Xref: line (ie. alt.test:389) [optional] */ -static int -read_nov_file( +static t_bool +read_overview( struct t_group *group, long min, long max, + long *top, int *expired, t_bool local) { @@ -1106,7 +1300,7 @@ read_nov_file( * open the overview file (whether it be local or via nntp) */ if ((fp = open_xover_fp(group, "r", min, max, local)) == NULL) - return top_art; + return TRUE; if (group->xmax > max) group->xmax = max; @@ -1116,17 +1310,21 @@ read_nov_file( handle_resize((need_resize == cRedraw) ? TRUE : FALSE); need_resize = cNo; } -#ifdef DEBUG - debug_nntp("read_nov_file", buf); -#endif /* DEBUG */ + + /* + * Read artnum + */ + if ((ptr = tin_strtok(buf, "\t")) == NULL) + continue; /* * read the article number, guaranteed to be the first field */ - artnum = atol(buf); + artnum = atol(ptr); /* - * 1st line of local cached overview is group name + * artnum field invalid/corrupt or is 1st line of local cached overview + * (group name) */ if (artnum <= 0) continue; @@ -1154,15 +1352,12 @@ read_nov_file( art = &arts[top_art]; set_article(art); - art->artnum = last_read_article = artnum; + art->artnum = *top = artnum; /* * Note: Fields after line count are not mandatory, use "LIST OVERVIEW.FMT" * to check for additions like we do with xref_supported */ - if ((ptr = tin_strtok(buf, "\t")) == NULL) /* Skip past artnum */ - continue; - for (count = 1; (ptr = tin_strtok(NULL, "\t")) != NULL; count++) { switch (count) { case 1: /* Subject */ @@ -1227,7 +1422,7 @@ read_nov_file( 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_nov_file", errbuf); + debug_nntp("read_overview", errbuf); } debug_print_header(art); oerror = 0; @@ -1251,9 +1446,9 @@ read_nov_file( TIN_FCLOSE(fp); if (tin_errno) - return -1; + return FALSE; - return top_art; + return TRUE; } @@ -1283,14 +1478,14 @@ read_nov_file( * long-term solution: store the original data in the overview * (tin has to handle raw 8bit data and other ugly stuff in the * overviews anyway and thus we preserver as much info as possible) - * this would require some changes in read_nov_file() and + * this would require some changes in read_overview() and * parse_headers(): don't do the decoding/unfolding there, but in a - * second pass right after write_nov_file(), or two additional fields + * second pass right after write_overview(), or two additional fields * which hold the raw data for from/subject. the latter has the * disadvantage that it costs (much) more memory. */ void -write_nov_file( +write_overview( struct t_group *group) { FILE *fp; @@ -1819,6 +2014,7 @@ set_article( /* * Do a binary chop to see if 'art' (an article number) exists in arts[] + * Naturally arts[] must be sorted on artnum * Return index into arts[] or -1 */ static int diff -Nurp tin-1.7.1/src/attrib.c tin-1.7.2/src/attrib.c --- tin-1.7.1/src/attrib.c Sat Aug 23 01:58:40 2003 +++ tin-1.7.2/src/attrib.c Sun Oct 12 17:44:45 2003 @@ -3,7 +3,7 @@ * Module : attrib.c * Author : I. Lea * Created : 1993-12-01 - * Updated : 2003-05-22 + * Updated : 2003-10-12 * Notes : Group attribute routines * * Copyright (c) 1993-2003 Iain Lea @@ -81,6 +81,7 @@ enum { ATTRIB_X_BODY, ATTRIB_AUTO_SAVE_MSG, ATTRIB_X_COMMENT_TO, + ATTRIB_FCC, ATTRIB_NEWS_QUOTE, ATTRIB_QUOTE_CHARS, ATTRIB_MIME_TYPES_TO_SAVE, @@ -158,6 +159,7 @@ set_default_attributes( attributes->delete_tmp_files = FALSE; attributes->post_proc_type = tinrc.post_process; attributes->x_comment_to = FALSE; + attributes->fcc = (char *) 0; attributes->tex2iso_conv = tinrc.tex2iso_conv; #ifdef CHARSET_CONVERSION attributes->mm_network_charset = tinrc.mm_network_charset; @@ -273,6 +275,7 @@ read_attributes_file( break; case 'f': + MATCH_STRING("fcc=", ATTRIB_FCC); MATCH_STRING("followup_to=", ATTRIB_FOLLOWUP_TO); MATCH_STRING("from=", ATTRIB_FROM); break; @@ -517,6 +520,9 @@ do_set_attrib( 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); @@ -650,6 +656,7 @@ write_attributes_file( 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, _("# tex2iso_conv=ON/OFF\n")); #ifdef CHARSET_CONVERSION fprintf(fp, _("# mm_network_charset=supported_charset")); @@ -756,6 +763,7 @@ write_attributes_file( 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)); # ifdef CHARSET_CONVERSION fprintf(fp, "mm_network_charset=%s\n", txt_mime_charsets[attr->mm_network_charset]); @@ -845,6 +853,7 @@ dump_attributes( 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)); # ifdef CHARSET_CONVERSION fprintf(stderr, "\tmm_network_charset=%s\n", txt_mime_charsets[group->attribute->mm_network_charset]); diff -Nurp tin-1.7.1/src/config.c tin-1.7.2/src/config.c --- tin-1.7.1/src/config.c Mon Sep 1 00:37:35 2003 +++ tin-1.7.2/src/config.c Wed Oct 8 01:09:20 2003 @@ -3,7 +3,7 @@ * Module : config.c * Author : I. Lea * Created : 1991-04-01 - * Updated : 2003-08-22 + * Updated : 2003-10-08 * Notes : Configuration file routines * * Copyright (c) 1991-2003 Iain Lea @@ -281,6 +281,9 @@ read_config_file( break; case 'd': + 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; @@ -1278,6 +1281,9 @@ write_config_file( fprintf(fp, _(txt_strip_bogus.tinrc)); fprintf(fp, "strip_bogus=%d\n\n", tinrc.strip_bogus); + fprintf(fp, _(txt_date_format.tinrc)); + fprintf(fp, "date_format=%s\n\n", tinrc.date_format); + fprintf(fp, _(txt_wildcard.tinrc)); fprintf(fp, "wildcard=%d\n\n", tinrc.wildcard); @@ -1887,6 +1893,11 @@ change_config_file( break; #endif /* XFACE_ABLE */ + /* word_highlight */ + case OPT_WORD_HIGHLIGHT: + word_highlight = tinrc.word_highlight; + break; + /* * the following are boolean and do not need further action (if I'm right) * @@ -1926,7 +1937,6 @@ change_config_file( * case OPT_USE_KEYPAD: #endif * case OPT_USE_MOUSE: - * case OPT_WORD_HIGHLIGHT_TINRC: * case OPT_WRAP_ON_NEXT_UNREAD: */ @@ -2181,10 +2191,6 @@ change_config_file( case OPT_SAVEDIR: case OPT_SIGFILE: case OPT_POSTED_ARTICLES_FILE: -#ifdef M_AMIGA - if (tin_bbs_mode) - break; -#endif /* M_AMIGA */ prompt_option_string(option); expand_rel_abs_pathname(option_row(option), OPT_ARG_COLUMN + OPTION_WIDTH, @@ -2275,6 +2281,13 @@ change_config_file( 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); + } + break; + default: break; } /* switch (option) */ @@ -2656,7 +2669,7 @@ ulBuildArgv( char *buf, *tmp; int i = 0; - if (!cmd && !*cmd) { + if (!cmd || !*cmd) { *new_argc = 0; return NULL; } diff -Nurp tin-1.7.1/src/cook.c tin-1.7.2/src/cook.c --- tin-1.7.1/src/cook.c Tue Aug 26 00:26:31 2003 +++ tin-1.7.2/src/cook.c Sun Sep 21 17:02:20 2003 @@ -162,11 +162,11 @@ put_cooked( int space; static int overflow = 0; static int saved_flags = 0; + va_list ap; #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) int bytes; wint_t *wp; #endif /* MULTIBYTE_ABLE && !NO_LOCALE */ - va_list ap; buf = my_malloc(buf_len + 1); @@ -287,10 +287,7 @@ set_rest( * Side effects: resizes line if necessary, adjusts max_line_len * accordingly. * - * This function returns the number of character written to the line buffer. - * The buffer is LF + NULL terminated if a complete line was written. The - * buffer is NOT neccessarily NULL terminated if there was no newline in the - * rest. Use the return value to find out how long the string is. + * This function returns the number of characters written to the line buffer. */ static int put_rest( @@ -305,10 +302,10 @@ put_rest( int put_chars = offset; if ((ptr = my_rest) == NULL) - return 0; + return put_chars; if (strlen(my_rest) == 0) { FreeAndNull(*rest); - return 0; + return put_chars; } while ((c = *ptr++) && (c != '\n')) { @@ -335,12 +332,12 @@ put_rest( * this one rely on it. */ (*line)[put_chars++] = '\n'; - (*line)[put_chars] = '\0'; /* don't count the termining NULL! */ set_rest(rest, ptr); - } else + } else /* c == 0 */ /* rest is now empty */ FreeAndNull(*rest); + (*line)[put_chars] = '\0'; /* don't count the termining NULL! */ return put_chars; } @@ -444,6 +441,19 @@ read_decoded_base64_line( if (put_chars && ((*line)[put_chars - 1] == '\n')) /* end of logical line reached */ return lines_read; } while (lines_read < max_lines_to_read); + /* + * FIXME: Adding a newline may be not correct. At least it may be + * not what the author of that article intended. Unfortunately, a + * newline is expected at the end of a line by some other code in + * cook.c. + */ + if (put_chars > *max_line_len - 2) { + *max_line_len <<= 1; + *line = my_realloc(*line, *max_line_len); + } + if ((0 == put_chars) || ('\n' != (*line)[put_chars - 1])) + (*line)[put_chars++] = '\n'; + (*line)[put_chars] = '\0'; return lines_read; } @@ -473,9 +483,9 @@ read_decoded_qp_line( char *ptr; char c; int buflen = LEN; - size_t chars_to_add = 0; int count = 0; int lines_read = 0; + size_t chars_to_add = 0; buf = my_malloc(buflen); /* initial internal line buffer */ *buf = '\0'; @@ -908,8 +918,8 @@ static void dump_cooked( void) { - int i; char *line; + int i; for (i = 0; i < art->cooked_lines; i++) { fseek(art->cooked, art->cookl[i].offset, SEEK_SET); diff -Nurp tin-1.7.1/src/curses.c tin-1.7.2/src/curses.c --- tin-1.7.1/src/curses.c Fri Aug 29 01:15:09 2003 +++ tin-1.7.2/src/curses.c Fri Sep 19 14:12:09 2003 @@ -3,7 +3,7 @@ * Module : curses.c * Author : D. Taylor & I. Lea * Created : 1986-01-01 - * Updated : 2003-08-03 + * Updated : 2003-09-19 * Notes : This is a screen management library borrowed with permission * from the Elm mail system. This library was hacked to provide * what tin needs. @@ -38,10 +38,6 @@ t_bool have_linescroll = TRUE; /* USE_CU #else /* !USE_CURSES */ -#ifdef M_AMIGA -# undef BSD -#endif /* M_AMIGA */ - #ifndef ns32000 # undef sinix #endif /* !ns32000 */ @@ -106,7 +102,7 @@ static TTY _raw_tty, _original_tty; #else /* FIXME: prune the non-autoconf'd stuff */ -# if (defined(M_AMIGA) && !defined(__SASC)) || defined(COHERENT) || defined(BSD) +# if (defined(COHERENT) || defined(BSD) # ifdef BSD4_1 # include # define USE_TERMIO 1 @@ -115,7 +111,7 @@ static TTY _raw_tty, _original_tty; # define USE_SGTTY 1 # endif /* BSD4_1 */ # else -# if !defined(SYSV) && !defined(M_AMIGA) +# if !defined(SYSV) # ifdef MINIX # include # define USE_SGTTY 1 @@ -134,24 +130,22 @@ static TTY _raw_tty, _original_tty; # endif /* sinix */ # endif /* !QNX42 */ # endif /* MINIX */ -# endif /* !SYSV && !M_AMIGA */ -# endif /* (M_AMIGA && !__SASC) || COHERENT || BSD */ +# endif /* !SYSV */ +# endif /* COHERENT || BSD */ # ifndef VMS -# if (defined(M_AMIGA) && !defined(__SASC)) || defined(BSD) || defined(MINIX) +# if (defined(BSD) || defined(MINIX) # define USE_SGTTY 1 struct sgttyb _raw_tty, _original_tty; # else -# if !defined(M_AMIGA) -# if defined(HAVE_TERMIOS_H) || defined(sinix) -# define USE_POSIX_TERMIOS 1 +# if defined(HAVE_TERMIOS_H) || defined(sinix) +# define USE_POSIX_TERMIOS 1 struct termios _raw_tty, _original_tty; -# else -# define USE_TERMIO 1 +# else +# define USE_TERMIO 1 struct termio _raw_tty, _original_tty; -# endif /* HAVE_TERMIOS_H || sinix */ -# endif /* !M_AMIGA */ -# endif /* (M_AMIGA && !__SASC) || BSD || MINIX */ +# endif /* HAVE_TERMIOS_H || sinix */ +# endif /* BSD || MINIX */ # endif /* !VMS */ #endif /* HAVE_CONFIG_H */ @@ -174,10 +168,6 @@ static char *_clearscreen, *_moveto, *_c *_scrollregion, *_scrollfwd, *_scrollback, *_reset, *_reversevideo, *_blink, *_dim, *_bold; -#ifdef M_AMIGA -static char *_getwinsize; -#endif /* M_AMIGA */ - static int _columns, _line, _lines; #ifdef M_UNIX @@ -213,9 +203,6 @@ static int _columns, _line, _lines; static int input_pending(int delay); static void ScreenSize(int *num_lines, int *num_columns); static void xclick(int state); -#if !defined(VMS) && defined(M_AMIGA) - static int AmiReadCh(int getscrsize); -#endif /* !VMS && M_AMIGA */ /* @@ -441,14 +428,6 @@ InitScreen( _clearunderline = "\033[0m"; _keypadlocal = ""; _keypadxmit = ""; -# ifdef M_AMIGA - _terminalinit = "\033[12{\033[0 p"; - _terminalend = "\033[12}\033[ p"; - _cursoron = "\033[ p"; - _cursoroff = "\033[0 p"; - _cleartoeos = "\033[J"; - _getwinsize = "\2330 q"; -# endif /* M_AMIGA */ # ifdef VMS _cleartoeos = "\033[J"; _terminalinit = NULL; @@ -463,11 +442,6 @@ InitScreen( _lines = _columns = -1; - /* - * Get lines and columns from environment settings - useful when - * you're using something other than an Amiga window - */ - if ((ptr = getenv("LINES")) != 0) { _lines = atol(ptr); } @@ -478,18 +452,6 @@ InitScreen( /* * If that failed, try get a response from the console itself */ -# ifdef M_AMIGA - if (_lines == -1 || _columns == -1) { - _lines = DEFAULT_LINES_ON_TERMINAL; - _columns = DEFAULT_COLUMNS_ON_TERMINAL; - } else { - _terminalinit = NULL; /* don't do fancy things on a non-amiga console */ - _terminalend = NULL; - _cursoroff = NULL; - _cursoron = NULL; - _getwinsize = NULL; - } -# endif /* M_AMIGA */ # ifdef VMS /* moved from below InitWin() M.St. 22.01.98 */ { int input_chan, status; @@ -856,10 +818,6 @@ Raw( _inraw = 1; } #else -# if defined(M_AMIGA) && defined(__SASC) - _inraw = state; - rawcon(state); -# else if (!state && _inraw) { SET_TTY(&_original_tty); _inraw = 0; @@ -869,9 +827,6 @@ Raw( # if USE_SGTTY _raw_tty.sg_flags &= ~(ECHO | CRMOD); /* echo off */ _raw_tty.sg_flags |= CBREAK; /* raw on */ -# ifdef M_AMIGA - _raw_tty.sg_flags |= RAW; /* Manx-C 5.2 does not support CBREAK */ -# endif /* M_AMIGA */ # else # ifdef __FreeBSD__ cfmakeraw(&_raw_tty); @@ -885,131 +840,11 @@ Raw( SET_TTY(&_raw_tty); _inraw = 1; } -# endif /* M_AMIGA && __SASC */ #endif /* !VMS */ } /* - * read a character with Raw mode set! - */ - -#ifndef VMS -# ifdef M_AMIGA -# include - -static int new_lines, new_columns; - -static int -AmiReadCh( - int getscrsize) -{ - int result; - static int buflen = 0, bufp = 0; - static unsigned char buf[128]; - unsigned char ch; - - while (getscrsize || !buflen) { -PROFILE_OFF(); - result = read(0, (char *) &buf[buflen], 1); -PROFILE_ON(); - if (result <= 0) return EOF; - buflen++; - if (buf[bufp] == KEY_PREFIX) { - do { - result = read(0, (char *) &buf[buflen], 1); - if (result <= 0) return EOF; - } while (buf[buflen++] < 0x40); - - switch (buf[buflen - 1]) { - char *ptr; - long class; - - case 'r': /* Window bounds report */ - ptr = (char *) &buf[bufp + 1]; - strtol(ptr, &ptr, 10); - ptr++; - strtol(ptr, &ptr, 10); - ptr++; - new_lines = strtol(ptr, &ptr, 10); - ptr++; - new_columns = strtol(ptr, &ptr, 10); - buflen = bufp; - if (getscrsize) - return 0; - break; - - case '|': /* Raw Input Events */ - ptr = (char *) &buf[bufp + 1]; - class = strtol(ptr, &ptr, 10); - ptr++; - switch (class) { - int x, y; - - case 12: /* Window resized */ - buflen = bufp; /* Must do this before raise() */ - raise(SIGWINCH); - break; -# ifdef notdef - case 2: /* Mouse event */ - /* - * At this point we know what button was pressed - * but we don't really know where the mouse is. - * The and parameters don't help. - * Perhaps looking directly in the window's structure - * is the easiest thing to do (after finding out where - * the window's structure is! Sending an ACTION_INFO - * packet to the handler gives us this. I don't know - * if there is an easier way. - */ - buflen = bufp; - break; -# endif /* notdef */ - default: - buflen = bufp; - break; - } - break; - - default: - break; - } - } - } - - ch = buf[bufp++]; - if (bufp >= buflen) - buflen = bufp = 0; - return ch; -} - - -int -ReadCh( - void) -{ - return AmiReadCh(0); -} - - -void -AmiGetWinSize( - int *lines, - int *columns) -{ - if (_getwinsize) { - tputs(_getwinsize, 1, outchar); /* identify yourself */ - my_flush(); - AmiReadCh(1); /* Look for the identification */ - *lines = new_lines; - *columns = new_columns; - } -} - -# endif /* M_AMIGA */ -#endif /* !VMS */ - -/* * output a character. From tputs... (Note: this CANNOT be a macro!) */ OUTC_FUNCTION( @@ -1258,10 +1093,6 @@ input_pending( #else -# ifdef M_AMIGA - return (WaitForChar(Input(), 1000 * delay) == DOSTRUE) ? TRUE : FALSE; -# endif /* M_AMIGA */ - # ifdef HAVE_SELECT int fd = STDIN_FILENO; fd_set fdread; @@ -1325,10 +1156,6 @@ get_arrow_key( && i < ((VT_ESCAPE_TIMEOUT * 1000) / SECOND_CHARACTER_DELAY)) # ifndef VMS -# ifdef M_AMIGA - if (WaitForChar(Input(), 1000) == DOSTRUE) - return prech; -# else /* !M_AMIGA */ if (!input_pending(0)) { # ifdef HAVE_USLEEP int i = 0; @@ -1365,7 +1192,6 @@ get_arrow_key( if (!input_pending(0)) return prech; } -# endif /* M_AMIGA */ # endif /* !VMS */ ch = ReadCh(); if (ch == '[' || ch == 'O') @@ -1404,11 +1230,7 @@ get_arrow_key( # ifdef QNX42 case 0xA2: # endif /* QNX42 */ -# ifdef M_AMIGA - return KEYMAP_PAGE_DOWN; -# else return KEYMAP_PAGE_UP; -# endif /* M_AMIGA */ case 'G': /* ansi PgDn */ case 'U': /* at386 PgDn */ @@ -1416,11 +1238,7 @@ get_arrow_key( # ifdef QNX42 case 0xAA: # endif /* QNX42 */ -# ifdef M_AMIGA - return KEYMAP_PAGE_UP; -# else return KEYMAP_PAGE_DOWN; -# endif /* M_AMIGA */ case 'H': /* at386 Home */ # ifdef QNX42 diff -Nurp tin-1.7.1/src/debug.c tin-1.7.2/src/debug.c --- tin-1.7.1/src/debug.c Fri Aug 29 01:30:43 2003 +++ tin-1.7.2/src/debug.c Sun Oct 5 02:39:20 2003 @@ -3,7 +3,7 @@ * Module : debug.c * Author : I. Lea * Created : 1991-04-01 - * Updated : 2003-04-28 + * Updated : 2003-10-03 * Notes : debug routines * * Copyright (c) 1991-2003 Iain Lea @@ -158,7 +158,6 @@ debug_print_header( 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=[%s] prev=[%s] status=[%s]\n", (s->thread == ART_NORMAL ? "ART_NORMAL" : "ART_EXPIRED"), s->prev, bool_unparse(s->status)); */ fflush(fp); fchmod(fileno(fp), (S_IRUGO|S_IWUGO)); fclose(fp); @@ -367,9 +366,8 @@ debug_print_bitmap( bool_unparse(art->killed), bool_unparse(art->selected), art->subject); - fprintf(fp, "thread=[%s] prev=[%d] status=[%s]\n", - (art->thread == ART_NORMAL ? "ART_NORMAL" : "ART_EXPIRED"), - art->prev, + 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); diff -Nurp tin-1.7.1/src/feed.c tin-1.7.2/src/feed.c --- tin-1.7.1/src/feed.c Thu Aug 28 15:25:14 2003 +++ tin-1.7.2/src/feed.c Mon Oct 6 02:27:40 2003 @@ -280,7 +280,7 @@ get_feed_key( return 0; case iKeyFeedPat: - sprintf(mesg, _(txt_feed_pattern), tinrc.default_pattern); + snprintf(mesg, sizeof(mesg), _(txt_feed_pattern), tinrc.default_pattern); if (!(prompt_string_default(mesg, tinrc.default_pattern, _(txt_no_match), HIST_REGEX_PATTERN))) return 0; break; @@ -535,7 +535,7 @@ feed_articles( switch (function) { /* Setup mail - get address to mail to */ case FEED_MAIL: - sprintf(mesg, _(txt_mail_art_to), cCOLS - (strlen(_(txt_mail_art_to)) + 30), tinrc.default_mail_address); + snprintf(mesg, sizeof(mesg), _(txt_mail_art_to), cCOLS - (strlen(_(txt_mail_art_to)) + 30), tinrc.default_mail_address); if (!(prompt_string_default(mesg, tinrc.default_mail_address, _(txt_no_mail_address), HIST_MAIL_ADDRESS))) return; break; @@ -543,7 +543,7 @@ feed_articles( #ifndef DONT_HAVE_PIPING /* Setup pipe - get pipe-to command and open the pipe */ case FEED_PIPE: - sprintf(mesg, _(txt_pipe_to_command), cCOLS - (strlen(_(txt_pipe_to_command)) + 30), tinrc.default_pipe_command); + snprintf(mesg, sizeof(mesg), _(txt_pipe_to_command), cCOLS - (strlen(_(txt_pipe_to_command)) + 30), tinrc.default_pipe_command); if (!(prompt_string_default(mesg, tinrc.default_pipe_command, _(txt_no_command), HIST_PIPE_COMMAND))) return; @@ -624,12 +624,12 @@ feed_articles( switch (option) { case iKeyFeedSupersede: - sprintf(mesg, _(txt_supersede_group), tinrc.default_repost_group); + snprintf(mesg, sizeof(mesg), _(txt_supersede_group), tinrc.default_repost_group); supersede = TRUE; break; case iKeyFeedRepost: - sprintf(mesg, _(txt_repost_group), tinrc.default_repost_group); + snprintf(mesg, sizeof(mesg), _(txt_repost_group), tinrc.default_repost_group); supersede = FALSE; break; @@ -639,7 +639,7 @@ feed_articles( } #ifndef FORGERY } else { - sprintf(mesg, _(txt_repost_group), tinrc.default_repost_group); + snprintf(mesg, sizeof(mesg), _(txt_repost_group), tinrc.default_repost_group); supersede = FALSE; } #endif /* !FORGERY */ diff -Nurp tin-1.7.1/src/filter.c tin-1.7.2/src/filter.c --- tin-1.7.1/src/filter.c Fri Aug 29 01:55:12 2003 +++ tin-1.7.2/src/filter.c Fri Oct 17 18:41:29 2003 @@ -3,7 +3,7 @@ * Module : filter.c * Author : I. Lea * Created : 1992-12-28 - * Updated : 2003-08-27 + * Updated : 2003-10-17 * Notes : Filter articles. Kill & auto selection are supported. * * Copyright (c) 1991-2003 Iain Lea @@ -94,13 +94,16 @@ static int set_filter_scope(struct t_gro static struct t_filter_comment *add_filter_comment(struct t_filter_comment *ptr, char *text); static struct t_filter_comment *free_filter_comment(struct t_filter_comment *ptr); static struct t_filter_comment *copy_filter_comment(struct t_filter_comment *from, struct t_filter_comment *to); -static t_bool add_filter_rule(struct t_group *group, struct t_article *art, struct t_filter_rule *rule); +static t_bool add_filter_rule(struct t_group *group, struct t_article *art, struct t_filter_rule *rule, t_bool quick_filter_rule); static t_bool test_regex(const char *string, char *regex, t_bool nocase, struct regex_cache *cache); static void expand_filter_array(struct t_filters *ptr); static void free_filter_item(struct t_filter *ptr); static void print_filter_menu(void); static void set_filter(struct t_filter *ptr); static void write_filter_array(FILE *fp, struct t_filters *ptr); +#if 0 /* currently unused */ + static FILE *open_xhdr_fp(char *header, long min, long max); +#endif /* 0 */ /* @@ -206,7 +209,7 @@ test_regex( if (regex_errpos >= 0) return TRUE; else if (regex_errpos != PCRE_ERROR_NOMATCH) - sprintf(mesg, _(txt_pcre_error_num), regex_errpos); + snprintf(mesg, sizeof(mesg), _(txt_pcre_error_num), regex_errpos); } } return FALSE; @@ -1274,7 +1277,7 @@ filter_menu( switch (ch) { case iKeyFilterEdit: - add_filter_rule(group, art, &rule); /* save the rule */ + 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)) return FALSE; @@ -1295,7 +1298,7 @@ filter_menu( /* * Add the filter rule and save it to the filter file */ - ret = add_filter_rule(group, art, &rule); + ret = add_filter_rule(group, art, &rule, FALSE); rule.comment = free_filter_comment(rule.comment); return ret; /* keep lint quiet: */ @@ -1370,7 +1373,7 @@ quick_filter( rule.check_string = TRUE; rule.score = (type == FILTER_KILL) ? tinrc.score_kill : tinrc.score_select; - ret = add_filter_rule(group, art, &rule); + ret = add_filter_rule(group, art, &rule, TRUE); rule.comment = free_filter_comment(rule.comment); return ret; } @@ -1451,10 +1454,10 @@ quick_filter_select_posted_art( /* Hack */ art.refptr = (struct t_msgid *) &refptr_dummyart; - filtered = add_filter_rule(group, &art, &rule); + filtered = add_filter_rule(group, &art, &rule, FALSE); } else { art.subject = my_strdup(subj); - filtered = add_filter_rule(group, &art, &rule); + filtered = add_filter_rule(group, &art, &rule, FALSE); FreeIfNeeded(art.subject); } rule.comment = free_filter_comment(rule.comment); @@ -1470,7 +1473,8 @@ static t_bool add_filter_rule( struct t_group *group, struct t_article *art, - struct t_filter_rule *rule) + struct t_filter_rule *rule, + t_bool quick_filter_rule) { char acBuf[PATH_LEN]; char sbuf[(sizeof(acBuf) / 2)]; /* half as big as acBuf so quote_wild(sbuf) fits into acBuf */ @@ -1590,7 +1594,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 (group->attribute->thread_arts == THREAD_REFS && + if (quick_filter_rule && group->attribute->thread_arts == THREAD_REFS && (group->attribute->quick_kill_header == FILTER_MSGID || group->attribute->quick_kill_header == FILTER_REFS_ONLY) && art->refptr->parent != NULL) @@ -1993,3 +1997,26 @@ set_filter_scope( } return inscope; } + + +/* + * This will come in useful for filtering on non-overview hdr fields + */ +#if 0 +static FILE * +open_xhdr_fp( + char *header, + long min, + long max) +{ +# ifdef NNTP_ABLE + if (read_news_via_nntp && !read_saved_news && xhdr_cmd) { + char buf[NNTP_STRLEN]; + + snprintf(buf, sizeof(buf), "%s %s %ld-%ld", xhdr_cmd, header, min, max); + return (nntp_command(buf, OK_HEAD, NULL, 0)); + } else +# endif /* NNTP_ABLE */ + return (FILE *) 0; /* Some trick implementation for local spool... */ +} +#endif /* 0 */ diff -Nurp tin-1.7.1/src/group.c tin-1.7.2/src/group.c --- tin-1.7.1/src/group.c Fri Aug 29 01:18:06 2003 +++ tin-1.7.2/src/group.c Thu Oct 9 17:07:02 2003 @@ -3,7 +3,7 @@ * Module : group.c * Author : I. Lea & R. Skrenta * Created : 1991-04-01 - * Updated : 2003-08-10 + * Updated : 2003-10-09 * Notes : * * Copyright (c) 1991-2003 Iain Lea , Rich Skrenta @@ -128,7 +128,7 @@ group_right( else { int n = next_unread((int) base[grpmenu.curr]); - if (grpmenu.curr == which_thread(n) && n >= 0) + if (n >= 0 && grpmenu.curr == which_thread(n)) return enter_pager(n, TRUE); } } @@ -807,7 +807,7 @@ group_page( { char pat[128]; - sprintf(mesg, _(txt_select_pattern), tinrc.default_select_pattern); + snprintf(mesg, sizeof(mesg), _(txt_select_pattern), tinrc.default_select_pattern); if (!(prompt_string_default(mesg, tinrc.default_select_pattern, _(txt_info_no_previous_expression), HIST_SELECT_PATTERN))) break; @@ -986,13 +986,13 @@ toggle_read_unread( int n, i = -1; if (force) - CURR_GROUP.attribute->show_only_unread = TRUE; /* Yes - really, we change it in a bit */ + curr_group->attribute->show_only_unread = 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) ? _(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 || new_responses(grpmenu.curr)) i = base[grpmenu.curr]; else if ((n = prev_unread((int) base[grpmenu.curr])) >= 0) i = n; @@ -1000,9 +1000,9 @@ toggle_read_unread( i = n; } - CURR_GROUP.attribute->show_only_unread = bool_not(CURR_GROUP.attribute->show_only_unread); + curr_group->attribute->show_only_unread = bool_not(curr_group->attribute->show_only_unread); - find_base(&CURR_GROUP); + find_base(curr_group); if (i >= 0 && (n = which_thread(i)) >= 0) grpmenu.curr = n; else if (grpmenu.max > 0) @@ -1136,8 +1136,8 @@ void toggle_subject_from( void) { - if (++CURR_GROUP.attribute->show_author > SHOW_FROM_BOTH) - CURR_GROUP.attribute->show_author = SHOW_FROM_NONE; + if (++curr_group->attribute->show_author > SHOW_FROM_BOTH) + curr_group->attribute->show_author = SHOW_FROM_NONE; set_subj_from_size(cCOLS); } @@ -1191,11 +1191,7 @@ build_sline( int respnum; int n, j; struct t_art_stat sbuf; -#ifdef USE_CURSES - char buffer[BUFSIZ]; /* FIXME: allocate? */ -#else char *buffer; -#endif /* USE_CURSES */ #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) size_t len; wchar_t format[32]; @@ -1204,6 +1200,18 @@ build_sline( wchar_t tmp_from[HEADER_LEN], tmp_from2[HEADER_LEN]; #endif /* MULTIBYTE_ABLE && !NO_LOCALE */ +#ifdef USE_CURSES + /* + * Allocate line buffer + * make it the same size like in !USE_CURSES case to simplify the code + */ +# if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) + buffer = my_malloc(cCOLS * MB_CUR_MAX + 2); +# else + buffer = my_malloc(cCOLS + 2); +# endif /* MULTIBYTE_ABLE && !NO_LOCALE */ +#endif /* USE_CURSES */ + from[0] = '\0'; respnum = (int) base[i]; @@ -1212,7 +1220,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) ? (sbuf.unread + sbuf.seen) : sbuf.total); /* * if you like to see the number of responses excluding the first * art in thread - add the following: @@ -1234,7 +1242,7 @@ build_sline( if (arts[j].line_count != -1) { char tmp_buffer[4]; - strcpy(tmp_buffer, tin_ltoa(n, 3)); + STRCPY(tmp_buffer, tin_ltoa(n, 3)); snprintf(art_cnt, sizeof(art_cnt), "%s %s ", tmp_buffer, tin_ltoa(arts[j].line_count, 4)); } else snprintf(art_cnt, sizeof(art_cnt), "%s ? ", tin_ltoa(n, 3)); @@ -1251,7 +1259,7 @@ build_sline( strcpy(art_cnt, " "); } - if (CURR_GROUP.attribute->show_author != SHOW_FROM_NONE) + if (curr_group->attribute->show_author != SHOW_FROM_NONE) #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) /* ignore len_from for now, we truncate it later */ get_author(FALSE, &arts[j], from, sizeof(from) - 1); @@ -1290,23 +1298,19 @@ build_sline( spaces, tmp_from); } -# ifdef USE_CURSES - if ((len = wcstombs(buffer, wbuffer, BUFSIZ - 1)) == (size_t) -1) -# else if ((len = wcstombs(buffer, wbuffer, cCOLS * MB_CUR_MAX)) == (size_t) -1) -# endif /* USE_CURSES */ len = 0; buffer[len] = '\0'; #else arts_sub[len_subj - 12 + 1] = '\0'; if (tinrc.show_info == SHOW_INFO_SCORE || tinrc.show_info == SHOW_INFO_BOTH) - sprintf(buffer, " %s %s %s%6d %-*.*s%s%-*.*s", + snprintf(buffer, cCOLS + 1, " %s %s %s%6d %-*.*s%s%-*.*s", tin_ltoa(i + 1, 4), new_resps, art_cnt, sbuf.score, len_subj - 12, len_subj - 12, arts_sub, spaces, len_from, len_from, from); else - sprintf(buffer, " %s %s %s%-*.*s%s%-*.*s", + snprintf(buffer, cCOLS + 1, " %s %s %s%-*.*s%s%-*.*s", tin_ltoa(i + 1, 4), new_resps, art_cnt, len_subj - 12, len_subj - 12, arts_sub, spaces, len_from, len_from, from); @@ -1318,6 +1322,8 @@ build_sline( * and write line. */ WriteLine(INDEX2LNUM(i), convert_to_printable(buffer)); + + free(buffer); #endif /* USE_CURSES */ } @@ -1328,14 +1334,12 @@ show_group_title( { char buf[LEN], tmp[LEN]; int i, art_cnt = 0, recent_art_cnt = 0, selected_art_cnt = 0, read_selected_art_cnt = 0, killed_art_cnt = 0; - struct t_group currgrp; - currgrp = CURR_GROUP; for_each_art(i) { if (arts[i].thread == ART_EXPIRED) continue; - if (currgrp.attribute->show_only_unread) { + if (curr_group->attribute->show_only_unread) { if (arts[i].status != ART_READ) { art_cnt++; if (tinrc.recent_time && ((time((time_t) 0) - arts[i].date) < (tinrc.recent_time * DAY))) @@ -1364,23 +1368,23 @@ show_group_title( */ /* group name and thread count */ snprintf(buf, sizeof(buf), "%s (%d%c", - currgrp.name, grpmenu.max, - *txt_threading[currgrp.attribute->thread_arts]); + curr_group->name, grpmenu.max, + *txt_threading[curr_group->attribute->thread_arts]); /* article count */ if (tinrc.getart_limit) snprintf(tmp, sizeof(tmp), " %d/%d%c", tinrc.getart_limit, art_cnt, - (currgrp.attribute->show_only_unread ? tinrc.art_marked_unread : tinrc.art_marked_read)); + (curr_group->attribute->show_only_unread ? tinrc.art_marked_unread : tinrc.art_marked_read)); else snprintf(tmp, sizeof(tmp), " %d%c", art_cnt, - (currgrp.attribute->show_only_unread ? tinrc.art_marked_unread : tinrc.art_marked_read)); + (curr_group->attribute->show_only_unread ? tinrc.art_marked_unread : tinrc.art_marked_read)); if (sizeof(buf) > strlen(buf) + strlen(tmp)) strcat(buf, tmp); /* selected articles */ - if (currgrp.attribute->show_only_unread) + if (curr_group->attribute->show_only_unread) snprintf(tmp, sizeof(tmp), " %d%c", selected_art_cnt, tinrc.art_marked_selected); else @@ -1407,7 +1411,7 @@ show_group_title( /* group flag */ snprintf(tmp, sizeof(tmp), ") %c", - group_flag(currgrp.moderated)); + group_flag(curr_group->moderated)); if (sizeof(buf) > strlen(buf) + strlen(tmp)) strcat(buf, tmp); @@ -1493,7 +1497,7 @@ enter_thread( } forever { - switch (i = thread_page(&CURR_GROUP, (int) base[grpmenu.curr], depth, page)) { + switch (i = thread_page(curr_group, (int) base[grpmenu.curr], depth, page)) { case GRP_QUIT: /* 'Q'uit */ case GRP_RETSELECT: /* Back to selection screen */ return i; @@ -1573,8 +1577,8 @@ group_catchup( snprintf(buf, sizeof(buf), _(txt_mark_arts_read), (ch == iKeyGroupCatchupNextUnread) ? _(txt_enter_next_unread_group) : ""); - if (!CURR_GROUP.newsrc.num_unread || (!TINRC_CONFIRM_ACTION) || (pyn = prompt_yn(cLINES, buf, TRUE)) == 1) - grp_mark_read(&CURR_GROUP, arts); + if (!curr_group->newsrc.num_unread || (!TINRC_CONFIRM_ACTION) || (pyn = prompt_yn(cLINES, buf, TRUE)) == 1) + grp_mark_read(curr_group, arts); switch (ch) { case iKeyGroupCatchup: /* 'c' */ diff -Nurp tin-1.7.1/src/hashstr.c tin-1.7.2/src/hashstr.c --- tin-1.7.1/src/hashstr.c Sat Aug 23 01:58:41 2003 +++ tin-1.7.2/src/hashstr.c Fri Sep 19 14:29:03 2003 @@ -3,7 +3,7 @@ * Module : hashstr.c * Author : I. Lea & R. Skrenta * Created : 1991-04-01 - * Updated : 1994-12-01 + * Updated : 2003-09-19 * Notes : * * Copyright (c) 1991-2003 Iain Lea , Rich Skrenta @@ -55,12 +55,7 @@ */ #define HASHNODE_TABLE_SIZE 2411 -#ifdef M_AMIGA - static struct t_hashnode **table = 0; -#else - static struct t_hashnode *table[HASHNODE_TABLE_SIZE]; -#endif /* M_AMIGA */ - +static struct t_hashnode *table[HASHNODE_TABLE_SIZE]; static struct t_hashnode *add_string(const char *s); char * @@ -132,11 +127,6 @@ hash_init( { int i; -#ifdef M_AMIGA - if (!table) - table = my_malloc(HASHNODE_TABLE_SIZE * sizeof(void *)); -#endif /* M_AMIGA */ - for (i = 0; i < HASHNODE_TABLE_SIZE; i++) table[i] = (struct t_hashnode *) 0; } @@ -148,11 +138,6 @@ hash_reclaim( { int i; struct t_hashnode *p, *next; - -#ifdef M_AMIGA - if (!table) - return; -#endif /* M_AMIGA */ for (i = 0; i < HASHNODE_TABLE_SIZE; i++) { if (table[i] != NULL) { diff -Nurp tin-1.7.1/src/header.c tin-1.7.2/src/header.c --- tin-1.7.1/src/header.c Sat Aug 23 01:58:41 2003 +++ tin-1.7.2/src/header.c Fri Sep 19 13:55:25 2003 @@ -3,7 +3,7 @@ * Module : header.c * Author : Urs Janssen * Created : 1997-03-10 - * Updated : 2003-08-16 + * Updated : 2003-09-19 * * Copyright (c) 1997-2003 Urs Janssen * All rights reserved. @@ -56,11 +56,6 @@ get_host_name( #ifdef HAVE_GETHOSTNAME gethostname(hostname, sizeof(hostname) - 1); -#else -# ifdef M_AMIGA - if ((ptr = getenv("NodeName")) != NULL) - strncpy(hostname, ptr, sizeof(hostname) - 1); -# endif /* M_AMIGA */ #endif /* HAVE_GETHOSTNAME */ #ifdef HAVE_SYS_UTSNAME_H if (!*hostname) @@ -85,7 +80,7 @@ get_host_name( /* * find domainname - check DOMAIN_NAME * TODO: check /etc/defaultdomain as a last resort? - * there is M_UNIX/M_AMIGA specific code in here, but no VMS + * there is M_UNIX specific code in here, but no VMS * alternative */ const char * @@ -97,28 +92,12 @@ get_domain_name( char buff[MAXHOSTNAMELEN + 1]; static char domain[8192]; -# ifdef M_AMIGA -/* - * Damn compiler bugs... - * Without this hack, SASC 6.55 produces a TST.B d16(pc), - * which is illegal on a 68000 - */ -static const char *domain_name_hack = DOMAIN_NAME; -# undef DOMAIN_NAME -# define DOMAIN_NAME domain_name_hack -# endif /* M_AMIGA */ - domain[0] = '\0'; if (strlen(DOMAIN_NAME)) strcpy(domain, DOMAIN_NAME); -# ifdef M_AMIGA - if (strchr(domain, ':')) /* absolute AmigaOS paths contain ':', RFC-hostnames don't */ -# else - if (domain[0] == '/' && domain[1]) -# endif /* M_AMIGA */ - { + if (domain[0] == '/' && domain[1]) { /* read domainname from specified file */ if ((fp = fopen(domain, "r")) != NULL) { while (fgets(buff, (int) sizeof(buff), fp) != NULL) { @@ -130,11 +109,7 @@ static const char *domain_name_hack = DO strcpy(domain, buff); } } -# ifdef M_AMIGA - if (strchr(domain, ':')) /* ':' is not allowed in domainames -> file was empty */ -# else if (domain[0] == '/') /* '/' is not allowed in domainames -> file was empty */ -# endif /* M_AMIGA */ domain[0] = '\0'; fclose(fp); @@ -255,35 +230,25 @@ get_user_name( { static char username[128]; struct passwd *pw; -#if defined(M_AMIGA) || defined(VMS) +#ifdef VMS char *p; -#endif /* M_AMIGA || VMS */ +#endif /* VMS */ username[0] = '\0'; -# ifdef M_AMIGA - if ((p = getenv("USERNAME"))) { - STRCPY(username, p); - } -# else -# ifndef VMS +#ifndef VMS if ((pw = getpwuid(getuid())) != NULL) strcpy(username, pw->pw_name); else -# else +#else if (((p = getlogin()) != NULL) && strlen(p)) { if ((pw = getpwnam(p)) != NULL) strcpy(username, pw->pw_name); } -# endif /* !VMS */ -# endif /* M_AMIGA */ +#endif /* !VMS */ if (!*username) { -# ifndef M_AMIGA error_message(_(txt_error_passwd_missing)); -# else - error_message(_(txt_env_var_not_found), "USERNAME"); -# endif /* !M_AMIGA */ tin_done(EXIT_FAILURE); } diff -Nurp tin-1.7.1/src/inews.c tin-1.7.2/src/inews.c --- tin-1.7.1/src/inews.c Mon Aug 25 15:00:23 2003 +++ tin-1.7.2/src/inews.c Thu Oct 16 02:15:55 2003 @@ -3,7 +3,7 @@ * Module : inews.c * Author : I. Lea * Created : 1992-03-17 - * Updated : 2003-05-01 + * Updated : 2003-10-12 * Notes : NNTP built in version of inews * * Copyright (c) 1991-2003 Iain Lea @@ -391,12 +391,14 @@ submit_news_file( { char buf[PATH_LEN]; char *cp = buf; + char *fcc = NULL; t_bool ret_code; t_bool ismail = FALSE; a_message_id[0] = '\0'; - checknadd_headers(name); + fcc = checknadd_headers(name); + 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); diff -Nurp tin-1.7.1/src/init.c tin-1.7.2/src/init.c --- tin-1.7.1/src/init.c Wed Aug 27 23:18:34 2003 +++ tin-1.7.2/src/init.c Fri Oct 3 02:19:53 2003 @@ -3,7 +3,7 @@ * Module : init.c * Author : I. Lea * Created : 1991-04-01 - * Updated : 2003-08-27 + * Updated : 2003-09-29 * Notes : * * Copyright (c) 1991-2003 Iain Lea @@ -409,7 +409,8 @@ struct t_config tinrc = { #ifdef XFACE_ABLE FALSE, /* use_slrnface */ #endif /* XFACE_ABLE */ - TRUE /* default_filter_select_global */ + TRUE, /* default_filter_select_global */ + DEFAULT_DATE_FORMAT /* date_format */ }; #ifdef HAVE_COLOR @@ -496,23 +497,19 @@ init_selfinfo( const char *cptr; FILE *fp; struct stat sb; -#ifndef M_AMIGA struct passwd *myentry; -#endif /* !M_AMIGA */ host_name[0] = '\0'; domain_name[0] = '\0'; -#ifndef M_AMIGA /* TODO: why do we exclude M_AMIGA here but not in main.c:read_cmd_line_options() */ -# if defined(HAVE_SYS_UTSNAME_H) && defined(HAVE_UNAME) +#if defined(HAVE_SYS_UTSNAME_H) && defined(HAVE_UNAME) if (uname(&system_info) < 0) { strcpy(system_info.sysname, "unknown"); *system_info.machine = '\0'; *system_info.release = '\0'; *system_info.nodename = '\0'; } -# endif /* HAVE_SYS_UTSNAME_H && HAVE_UNAME */ -#endif /* !M_AMIGA */ +#endif /* HAVE_SYS_UTSNAME_H && HAVE_UNAME */ if ((cptr = get_host_name()) != NULL) strcpy(host_name, cptr); @@ -535,46 +532,33 @@ init_selfinfo( real_umask = umask(0); (void) umask(real_umask); -#ifndef M_AMIGA -# ifndef VMS +#ifndef VMS if ((myentry = getpwuid(getuid())) == NULL) { error_message(_(txt_error_passwd_missing)); giveup(); } -# else +#else if (((ptr = getlogin()) != NULL) && strlen(ptr)) myentry = getpwnam(ptr); else { error_message(_(txt_error_passwd_missing)); giveup(); } -# endif /* !VMS */ +#endif /* !VMS */ strcpy(userid, myentry->pw_name); -# ifdef VMS +#ifdef VMS lower(userid); -# endif /* VMS */ - -#else - if ((ptr = getenv("USERNAME")) == NULL) { - error_message(_(txt_env_var_not_found), "USERNAME"); - giveup(); - } - my_strncpy(userid, ptr, sizeof(userid) - 1); -#endif /* !M_AMIGA */ +#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)) { my_strncpy(homedir, ptr, sizeof(homedir) - 1); - } -#ifndef M_AMIGA - else if (strlen(myentry->pw_dir)) { + } else if (strlen(myentry->pw_dir)) { strncpy(homedir, myentry->pw_dir, sizeof(homedir) - 1); - } -#endif /* !M_AMIGA */ - else + } else strncpy(homedir, TMPDIR, sizeof(homedir) - 1); cmdline_nntpserver[0] = '\0'; @@ -619,10 +603,10 @@ init_selfinfo( index_savedir[0] = '\0'; newsrc[0] = '\0'; - sprintf(page_header, "%s %s release %s (\"%s\") [%s%s]", + snprintf(page_header, sizeof(page_header), "%s %s release %s (\"%s\") [%s%s]", tin_progname, VERSION, RELEASEDATE, RELEASENAME, OSNAME, (iso2asc_supported >= 0 ? " ISO2ASC" : "")); - sprintf(cvers, txt_copyright_notice, page_header); + 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); @@ -684,14 +668,6 @@ init_selfinfo( } /* - * Amiga uses assigns which end in a ':' and won't work with a '/' - * tacked on after them: e.g. we want UULIB:active, and not - * UULIB:/active. For this reason I have changed the sprintf calls - * to joinpath. This is defined to sprintf(result,"%s/%s",dir,file) - * on all UNIX systems. - */ - - /* * only set the following variables if they weren't set from within * read_site_config() * @@ -769,10 +745,6 @@ init_selfinfo( my_strncpy(mailer, get_val(ENV_VAR_MAILER, DEFAULT_MAILER), sizeof(mailer) - 1); #ifndef DISABLE_PRINTING strcpy(tinrc.printer, DEFAULT_PRINTER); -# ifdef M_AMIGA - if (tin_bbs_mode) - strcpy(tinrc.printer, DEFAULT_BBS_PRINTER); -# endif /* M_AMIGA */ #endif /* !DISABLE_PRINTING */ strcpy(tinrc.inews_prog, PATH_INEWS); joinpath(article, homedir, TIN_ARTICLE_NAME); @@ -836,7 +808,7 @@ init_selfinfo( write_attributes_file(local_attributes_file); init_postinfo(); - sprintf(txt_help_bug_report, _(txt_help_bug), bug_addr); + snprintf(txt_help_bug_report, sizeof(txt_help_bug_report), _(txt_help_bug), bug_addr); #ifdef HAVE_PGP_GPG init_pgp(); diff -Nurp tin-1.7.1/src/joinpath.c tin-1.7.2/src/joinpath.c --- tin-1.7.1/src/joinpath.c Sat Aug 23 01:58:41 2003 +++ tin-1.7.2/src/joinpath.c Fri Sep 19 14:29:34 2003 @@ -3,7 +3,7 @@ * Module : joinpath.c * Author : Thomas Dickey * Created : 1997-01-10 - * Updated : 1997-01-10 + * Updated : 2003-09-19 * Notes : * * Copyright (c) 1997-2003 Thomas Dickey @@ -43,36 +43,15 @@ * 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 - * TODO: ../amiga/amiga.c defines a joinpath, plus this section is ifndef AMIGA - * so can we junk the #ifdef __amigaos from this code? */ -#ifndef M_AMIGA void joinpath( char *result, const char *dir, const char *file) { -# ifdef __amigaos - int i = 0, tmp = 0, tmp2 = 1; -# endif /* __amigaos */ -# ifdef M_UNIX (void) strcpy(result, dir); if (result[0] == '\0' || result[strlen(result) - 1] != '/') (void) strcat(result, "/"); (void) strcat(result, BlankIfNull(file)); -# endif /* M_UNIX */ -/* - * JK - horrible hack to convert "/foo/baz/bar" to "foo:baz/bar" (editors bug with *NIX-paths) - * "foo:baz/bar" -styled paths should always work on Amiga - */ -# ifdef __amigaos - if (result[0] == '/') - while ((result[tmp++] = result[tmp2++]) != 0) - ; - while (result[i] != '/' && result[i] != ':') - i++; - result[i] = ':'; -# endif /* __amigaos */ } -#endif /* !M_AMIGA */ diff -Nurp tin-1.7.1/src/lang.c tin-1.7.2/src/lang.c --- tin-1.7.1/src/lang.c Wed Aug 27 23:18:49 2003 +++ tin-1.7.2/src/lang.c Mon Sep 29 03:52:02 2003 @@ -3,7 +3,7 @@ * Module : lang.c * Author : I. Lea * Created : 1991-04-01 - * Updated : 2003-08-12 + * Updated : 2003-09-29 * Notes : * * Copyright (c) 1991-2003 Iain Lea @@ -39,7 +39,7 @@ # include "tin.h" #endif /* !TIN_H */ -constext txt_1_resp[] = N_("1 Response%s"); +constext txt_1_resp[] = N_("1 Response"); constext txt_7bit[] = "7bit"; constext txt_8bit[] = "8bit"; @@ -532,7 +532,6 @@ constext txt_no_newsgroups[] = N_("No ne constext txt_no_next_unread_art[] = N_("No next unread article"); constext txt_no_prev_group[] = N_("No previous group"); constext txt_no_prev_unread_art[] = N_("No previous unread article"); -constext txt_no_resp[] = N_("No responses%s"); constext txt_no_responses[] = N_("No responses"); constext txt_no_resps_in_thread[] = N_("No responses to list in current thread"); constext txt_no_search_string[] = N_("No search string"); @@ -620,7 +619,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%s"); +constext txt_resp_x_of_n[] = N_("RespNo %4d of %4d"); constext txt_return_key[] = N_("Press to continue..."); constext txt_select_from[] = N_("Select From [%-*.*s] (y/n): "); @@ -707,7 +706,7 @@ constext txt_thread_marked_as_selected[] constext txt_thread_plural[] = N_("threads"); constext txt_thread_range[] = N_("Thread range"); constext txt_thread_singular[] = N_("thread"); -constext txt_thread_x_of_n[] = N_("%sThread %4s of %4s"); +constext txt_thread_x_of_n[] = N_("Thread %4s of %4s"); constext txt_threading_arts[] = N_("Threading articles..."); constext txt_toggled_high[] = N_("Toggled word highlighting %s"); constext txt_toggled_rot13[] = N_("Toggled rot13 encoding"); @@ -801,7 +800,7 @@ constext txt_warn_suspicious_mail[] = N_ constext txt_warn_wrong_sig_format[] = N_("\nWarning: Signatures should start with '-- \\n' not with '--\\n'.\n"); constext txt_writing_attributes_file[] = N_("Writing attributes file..."); -constext txt_x_resp[] = N_("%d Responses%s"); +constext txt_x_resp[] = N_("%d Responses"); constext txt_yanked_groups[] = N_("Added %d %s"); constext txt_yanked_none[] = N_("No unsubscribed groups to show"); @@ -903,12 +902,6 @@ Warning: Posting is in %s and contains c # endif /* HAVE_ISPELL */ #endif /* HAVE_PGP_GPG */ -#ifdef M_AMIGA - constext txt_copyright_notice[] = "%s (c) Copyright 1991-2003 Iain Lea & Mark Tomlinson."; - constext txt_env_var_not_found[] = N_("Environment variable %s not found. Set and retry..."); - constext txt_usage_bbs_mode[] = N_(" -B BBS mode. File operations limited to home directories."); -#endif /* M_AMIGA */ - #ifdef M_UNIX constext txt_copyright_notice[] = "%s (c) Copyright 1991-2003 Iain Lea."; #endif /* M_UNIX */ @@ -2257,7 +2250,7 @@ struct opttxt txt_mailer_format = { N_("Enter %M for mailer, %S for subject, %T for to, %F for filename, to set."), N_("Invocation of your mail command :"), N_("# Format of mailer line including parameters\n\ -# %%M Mailer %%S Subject %%T To %%F Filename %%U User (AmigaDOS)\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") }; @@ -2318,4 +2311,10 @@ struct opttxt txt_cache_overview_files = N_("Create local copies of NNTP overview files. toggles & sets."), N_("Cache NNTP overview files locally :"), N_("# If ON, create local copies of NNTP overview files.\n") +}; + +struct opttxt txt_date_format = { + N_("Enter format string. sets, cancels."), + N_("Format string for display of dates :"), + N_("# Format string for date representation\n") }; diff -Nurp tin-1.7.1/src/mail.c tin-1.7.2/src/mail.c --- tin-1.7.1/src/mail.c Sat Aug 23 01:58:41 2003 +++ tin-1.7.2/src/mail.c Thu Oct 16 23:24:44 2003 @@ -3,7 +3,7 @@ * Module : mail.c * Author : I. Lea * Created : 1992-10-02 - * Updated : 2003-03-24 + * Updated : 2003-09-24 * Notes : Mail handling routines for creating pseudo newsgroups * * Copyright (c) 1992-2003 Iain Lea @@ -45,17 +45,42 @@ /* * local prototypes */ +static FILE *open_newsgroups_fp(void); static void read_groups_descriptions(FILE *fp, FILE *fp_save); static void read_newsgroups_file(t_bool verb); #ifdef HAVE_MH_MAIL_HANDLING + static FILE *open_mail_active_fp(const char *mode); + static FILE *open_mailgroups_fp(void); static void read_mailgroups_file(t_bool verb); #endif /* HAVE_MH_MAIL_HANDLING */ +#ifdef HAVE_MH_MAIL_HANDLING +/* + * Open the mail active file locally + */ +static FILE * +open_mail_active_fp( + const char *mode) +{ + return fopen(mail_active_file, mode); +} + + +/* + * Open mail groups description file locally + */ +static FILE * +open_mailgroups_fp( + void) +{ + return fopen(mailgroups_file, "r"); +} + + /* * Load the mail active file into active[] */ -#ifdef HAVE_MH_MAIL_HANDLING void read_mail_active_file( void) @@ -214,16 +239,41 @@ read_mailgroups_file( /* - * read group descriptions for news (and mailgroups) + * 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. */ -void -read_descriptions( - t_bool verb) +static FILE * +open_newsgroups_fp( + void) { -#ifdef HAVE_MH_MAIL_HANDLING - read_mailgroups_file(verb); -#endif /* HAVE_MH_MAIL_HANDLING */ - read_newsgroups_file(verb); +#ifdef NNTP_ABLE + FILE *result; + + if (read_news_via_nntp && !read_saved_news) { + if (read_local_newsgroups_file) { + result = fopen(local_newsgroups_file, "r"); + if (result != NULL) { +# ifdef DEBUG + debug_nntp("open_newsgroups_fp", "Using local copy of newsgroups file"); +# endif /* DEBUG */ + return result; + } + read_local_newsgroups_file = FALSE; + } +# 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); + } + } else +# endif /* 0 */ + return (nntp_command("LIST NEWSGROUPS", OK_GROUPS, NULL, 0)); + } else +#endif /* NNTP_ABLE */ + return fopen(newsgroups_file, "r"); } @@ -261,6 +311,20 @@ read_newsgroups_file( /* + * read group descriptions for news (and mailgroups) + */ +void +read_descriptions( + t_bool verb) +{ +#ifdef HAVE_MH_MAIL_HANDLING + read_mailgroups_file(verb); +#endif /* HAVE_MH_MAIL_HANDLING */ + read_newsgroups_file(verb); +} + + +/* * 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. @@ -448,7 +512,7 @@ grp_del_mail_arts( #if 0 /* * current tin's build_references() is changed to free msgid and refs, - * therefore we cannot call write_nov_file after it. I simply commented + * therefore we cannot call write_overview after it. I simply commented * out this codes, NovFile will update at next time. */ /* @@ -456,7 +520,7 @@ grp_del_mail_arts( * the active[] entry for the group and rewrite the mail.active file */ if (update_index_file) - write_nov_file(group); + write_overview(group); #endif /* 0 */ } } diff -Nurp tin-1.7.1/src/main.c tin-1.7.2/src/main.c --- tin-1.7.1/src/main.c Sat Sep 6 12:05:34 2003 +++ tin-1.7.2/src/main.c Thu Oct 2 12:55:30 2003 @@ -3,7 +3,7 @@ * Module : main.c * Author : I. Lea & R. Skrenta * Created : 1991-04-01 - * Updated : 2003-07-22 + * Updated : 2003-09-19 * Notes : * * Copyright (c) 1991-2003 Iain Lea , Rich Skrenta @@ -45,16 +45,9 @@ # include "version.h" #endif /* !VERSION_H */ -#if defined(M_AMIGA) && defined(__SASC_650) - extern int _WBArg; - extern char **_WBArgv; - char __stdiowin[] = "con:0/12/640/200/TIN " VERSION; - char __stdiov37[] = "/AUTO/NOCLOSE"; -#else -# ifdef VMS +#ifdef VMS int debug; -# endif /* VMS */ -#endif /* M_AMIGA && __SASC_650 */ +#endif /* VMS */ signed long int read_newsrc_lines = -1; @@ -112,16 +105,6 @@ main( debug = 0; /* debug OFF */ -#if defined(M_AMIGA) && defined(__SASC) - /* Call tzset() here! */ - _TZ = "GMT0"; - tzset(); - if (argc == 0) { /* we are running from the Workbench */ - argc = _WBArgc; - argv = _WBArgv; - } -#endif /* M_AMIGA && __SASC */ - base_name(argv[0], tin_progname); #ifdef VMS argv[0] = tin_progname; @@ -418,11 +401,7 @@ main( /* * process command line options */ -#ifndef M_AMIGA -# define OPTIONS "aAcdD:f:G:g:hHI:lm:M:nNop:qQrRs:SuvVwxXzZ" -#else -# define OPTIONS "BcdD:f:G:hHI:lm:M:nNop:qQrRs:SuvVwxXzZ" -#endif /* !M_AMIGA */ +#define OPTIONS "aAcdD:f:g:G:hHI:lm:M:nNop:qQrRs:SuvVwxXzZ" static void read_cmd_line_options( @@ -436,33 +415,27 @@ read_cmd_line_options( while ((ch = getopt(argc, argv, OPTIONS)) != -1) { switch (ch) { -#ifndef M_AMIGA case 'a': -# ifdef HAVE_COLOR +#ifdef HAVE_COLOR use_color = bool_not(use_color); -# else +#else error_message(_(txt_option_not_enabled), "-DHAVE_COLOR"); giveup(); /* keep lint quiet: */ /* NOTREACHED */ -# endif /* HAVE_COLOR */ +#endif /* HAVE_COLOR */ break; case 'A': -# ifdef NNTP_ABLE +#ifdef NNTP_ABLE force_auth_on_conn_open = TRUE; -# else +#else error_message(_(txt_option_not_enabled), "-DNNTP_ABLE"); giveup(); /* keep lint quiet: */ /* NOTREACHED */ -# endif /* NNTP_ABLE */ - break; -#else - case 'B': - tin_bbs_mode = TRUE; +#endif /* NNTP_ABLE */ break; -#endif /* !M_AMIGA */ case 'c': /* TODO: should -c enter batch-mode? */ @@ -494,19 +467,17 @@ read_cmd_line_options( tinrc.getart_limit = atoi(optarg); break; -#ifndef M_AMIGA case 'g': /* select alternative NNTP-server, implies -r */ -# ifdef NNTP_ABLE +#ifdef NNTP_ABLE my_strncpy(cmdline_nntpserver, optarg, sizeof(cmdline_nntpserver) - 1); read_news_via_nntp = TRUE; -# else +#else error_message(_(txt_option_not_enabled), "-DNNTP_ABLE"); giveup(); /* keep lint quiet: */ /* NOTREACHED */ -# endif /* NNTP_ABLE */ +#endif /* NNTP_ABLE */ break; -#endif /* !M_AMIGA */ case 'H': show_intro_page(); @@ -897,12 +868,9 @@ read_cmd_line_options( get_newsrcname(newsrc, uts.nodename); #else char nodenamebuf[256]; /* SUSv2 limit; better use HOST_NAME_MAX */ -# if defined(HAVE_GETHOSTNAME) && !defined(M_AMIGA) +#ifdef HAVE_GETHOSTNAME (void) gethostname(nodenamebuf, sizeof(nodenamebuf)); -# else - /* TODO: document $NodeName */ - my_strncpy(nodenamebuf, get_val("NodeName", "PROBLEM_WITH_NODE_NAME"), sizeof(nodenamebuf) - 1); -# endif /* HAVE_GETHOSTNAME && !M_AMIGA */ +#endif /* HAVE_GETHOSTNAME */ get_newsrcname(newsrc, nodenamebuf); #endif /* HAVE_SYS_UTSNAME_H && HAVE_UNAME */ } @@ -952,16 +920,12 @@ usage( { error_message(_(txt_usage_tin), theProgname); -#ifndef M_AMIGA -# ifdef HAVE_COLOR +#ifdef HAVE_COLOR error_message(_(txt_usage_toggle_color)); -# endif /* HAVE_COLOR */ -# ifdef NNTP_ABLE +#endif /* HAVE_COLOR */ +#ifdef NNTP_ABLE error_message(_(txt_usage_force_authentication)); -# endif /* NNTP_ABLE */ -#else - error_message(_(txt_usage_bbs_mode)); -#endif /* !M_AMIGA */ +#endif /* NNTP_ABLE */ error_message(_(txt_usage_catchup)); error_message(_(txt_usage_dont_show_descriptions)); @@ -973,11 +937,9 @@ usage( error_message(_(txt_usage_newsrc_file), newsrc); error_message(_(txt_usage_getart_limit)); -#ifndef M_AMIGA -# ifdef NNTP_ABLE - error_message(_(txt_usage_newsserver), get_val("NNTPSERVER", NNTP_DEFAULT_SERVER)); -# endif /* NNTP_ABLE */ -#endif /* !M_AMIGA */ +#ifdef NNTP_ABLE + error_message(_(txt_usage_newsserver), get_val("NNTPSERVER", NNTP_DEFAULT_SERVER)); +#endif /* NNTP_ABLE */ error_message(_(txt_usage_help_message)); error_message(_(txt_usage_help_information), theProgname); diff -Nurp tin-1.7.1/src/memory.c tin-1.7.2/src/memory.c --- tin-1.7.1/src/memory.c Fri Aug 29 01:31:08 2003 +++ tin-1.7.2/src/memory.c Sun Oct 12 17:42:36 2003 @@ -3,7 +3,7 @@ * Module : memory.c * Author : I. Lea & R. Skrenta * Created : 1991-04-01 - * Updated : 2003-05-10 + * Updated : 2003-10-12 * Notes : * * Copyright (c) 1991-2003 Iain Lea , Rich Skrenta @@ -87,7 +87,7 @@ init_alloc( /* * active file arrays */ - max_active = get_active_num(); + max_active = DEFAULT_ACTIVE_NUM; max_newnews = DEFAULT_NEWNEWS_NUM; active = my_malloc(sizeof(*active) * max_active); @@ -325,6 +325,8 @@ free_attributes_array( FreeAndNull(group->attribute->followup_to); + FreeAndNull(group->attribute->fcc); + FreeAndNull(group->attribute->mailing_list); FreeAndNull(group->attribute->x_headers); FreeAndNull(group->attribute->x_body); @@ -361,6 +363,8 @@ free_attributes_array( 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); diff -Nurp tin-1.7.1/src/misc.c tin-1.7.2/src/misc.c --- tin-1.7.1/src/misc.c Fri Aug 29 01:20:03 2003 +++ tin-1.7.2/src/misc.c Tue Oct 7 07:04:28 2003 @@ -3,7 +3,7 @@ * Module : misc.c * Author : I. Lea & R. Skrenta * Created : 1991-04-01 - * Updated : 2003-08-24 + * Updated : 2003-10-05 * Notes : * * Copyright (c) 1991-2003 Iain Lea , Rich Skrenta @@ -78,6 +78,10 @@ static void write_input_history_file(voi #if (defined(MIME_STRICT_CHARSET) && !defined(NO_LOCALE)) || defined(CHARSET_CONVERSION) static void buffer_to_ascii(char *c); #endif /* (MIME_STRICT_CHARSET && !NO_LOCALE) || CHARSET_CONVERSION */ +#if 0 /* currently unused */ + static t_bool stat_article(long art, const char *group_path); +#endif /* 0 */ + /* * generate tmp-filename @@ -465,7 +469,7 @@ shell_escape( char *p; char shell[LEN]; - sprintf(mesg, _(txt_shell_escape), tinrc.default_shell_command); + snprintf(mesg, sizeof(mesg), _(txt_shell_escape), tinrc.default_shell_command); if (!prompt_string(mesg, shell, HIST_SHELL_COMMAND)) return; @@ -481,7 +485,7 @@ shell_escape( } ClearScreen(); - sprintf(mesg, _(txt_shell_command), p); + snprintf(mesg, sizeof(mesg), _(txt_shell_command), p); center_line(0, TRUE, mesg); MoveCursor(INDEX_TOP, 0); @@ -757,26 +761,6 @@ rename_file( #endif /* VMS */ -#ifdef M_AMIGA -/* - * AmigaOS now has links. Better not to use them as not everybody has new ROMS - */ -void -rename_file( - char *old_filename, - char *new_filename) -{ - char buf[1024]; - - unlink(new_filename); - if (rename(old_filename, new_filename) == EOF) - perror_message(_(txt_rename_error), old_filename, new_filename); - - return; -} -#endif /* M_AMIGA */ - - /* * Note that we exit screen/curses mode when invoking * external commands @@ -832,6 +816,10 @@ draw_percent_mark( long max_num) { char buf[32]; /* should be big enough */ + int len; +#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) + wchar_t wbuf[32]; +#endif /* MULTIBYTE_ABLE && !NO_LOCALE */ if (NOTESLINES <= 0) return; @@ -841,7 +829,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); - MoveCursor(cLINES, (cCOLS - (int) strlen(buf)) - (1 + BLANK_PAGE_COLS)); +#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) + if (mbstowcs(wbuf, buf, ARRAY_SIZE(wbuf)) != (size_t) (-1)) { + wbuf[ARRAY_SIZE(wbuf) - 1] = (wchar_t) '\0'; + wconvert_to_printable(wbuf); + len = wcswidth(wbuf, ARRAY_SIZE(wbuf)); + } else +#endif /* MULTIBYTE_ABLE && !NO_LOCALE */ + len = (int) strlen(buf); + MoveCursor(cLINES, cCOLS - len - (1 + BLANK_PAGE_COLS)); StartInverse(); my_fputs(buf, stdout); my_flush(); @@ -907,53 +903,11 @@ mail_check( { const char *mailbox_name; struct stat buf; -#ifdef M_AMIGA - static long mbox_size = 0; -#endif /* M_AMIGA */ mailbox_name = get_val("MAIL", mailbox); -#ifdef M_AMIGA - /* - * Since AmigaDOS does not distinguish between atime and mtime - * we have to find some other way to figure out if the mailbox - * was modified (to bad that Iain removed the mail_setup() and - * mail_check() scheme used prior to 1.30 260694 which worked also - * on AmigaDOS). (R. Luebke 10.7.1994) - */ - - /* this is only a first try, but it seems to work :) */ - - if (mailbox_name != 0) { - if (stat(mailbox_name, &buf) >= 0) { - if (buf.st_size > 0) { - if (buf.st_size > mbox_size) { - mbox_size = buf.st_size; - return TRUE; - } else - /* - * at this point we have to calculate how much the - * mailbox has to grow until we say "new mail" - * Unfortunately, some MUAs write status information - * back to the users mailbox. This is a size increase - * and would result in "new mail" if we only look for some - * size increase. The mbox_size calculation below works - * for me for some time now (I use AmigaELM). - * Probably there is a better method, if you know one - * you are welcome... :-) - * I think a constant offset is more accurate today, - * 1k is the average size of mail-headers alone in each - * message I receive. (obw) - */ - mbox_size = buf.st_size + 1024; - } else - mbox_size = 0; - } - } -#else if (mailbox_name != 0 && stat(mailbox_name, &buf) >= 0 && buf.st_atime < buf.st_mtime && buf.st_size > 0) return TRUE; -#endif /* M_AMIGA */ return FALSE; } @@ -1481,9 +1435,7 @@ _strfpath( char tbuf[PATH_LEN]; char *envptr; int i; -#ifndef M_AMIGA struct passwd *pwd; -#endif /* !M_AMIGA */ t_bool is_mailbox = FALSE; if (str == NULL || format == NULL || maxsize == 0) @@ -1516,7 +1468,6 @@ _strfpath( break; default: /* some other users homedir */ -#ifndef M_AMIGA i = 0; while (*format && *format != '/') tbuf[i++] = *format++; @@ -1529,11 +1480,6 @@ _strfpath( return 0; } else sprintf(tbuf, "%s/", pwd->pw_dir); -#else - /* Amiga has no other users */ - return 0; - /* NOTREACHED */ -#endif /* !M_AMIGA */ break; } if ((str = strfpath_cp(str, tbuf, endp)) == NULL) @@ -2109,7 +2055,7 @@ file_size( * returns mtime * -1 in case of an error (file not found, or !S_IFREG) */ -long /* we use long (not time_t) here for FILE_CHANGED() macro */ +long /* we use long (not time_t) here */ file_mtime( const char *file) { @@ -3704,3 +3650,35 @@ utf8_valid( return line; } #endif /* CHARSET_CONVERSION */ + + +#if 0 +/* + * Stat a mail/news article to see if it still exists + */ +static t_bool +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) { + snprintf(buf, sizeof(buf), "STAT %ld", art); + return (nntp_command(buf, OK_NOTEXT, NULL, 0) != NULL); + } else +# endif /* NNTP_ABLE */ + { + struct stat sb; + + joinpath(buf, currgrp.spooldir, group_path); + snprintf(&buf[strlen(buf)], sizeof(buf), "/%ld", art); + + return (stat(buf, &sb) != -1); + } +} +#endif /* 0 */ diff -Nurp tin-1.7.1/src/newsrc.c tin-1.7.2/src/newsrc.c --- tin-1.7.1/src/newsrc.c Sat Sep 6 12:05:34 2003 +++ tin-1.7.2/src/newsrc.c Thu Oct 16 23:24:44 2003 @@ -3,7 +3,7 @@ * Module : newsrc.c * Author : I. Lea & R. Skrenta * Created : 1991-04-01 - * Updated : 2003-06-29 + * Updated : 2003-09-24 * Notes : ArtCount = (ArtMax - ArtMin) + 1 [could have holes] * * Copyright (c) 1991-2003 Iain Lea , Rich Skrenta @@ -52,6 +52,7 @@ static mode_t newsrc_mode = 0; /* * Local prototypes */ +static FILE *open_subscription_fp(void); static char *parse_newsrc_line(char *line, int *sub); static char *parse_subseq(struct t_group *group, char *seq, long *low, long *high, int *sum); static char *parse_get_seq(char *seq, long *low, long *high); @@ -60,6 +61,7 @@ static t_bool create_newsrc(char *newsrc static void auto_subscribe_groups(char *newsrc_file); static void parse_bitmap_seq(struct t_group *group, char *seq); static void print_bitmap_seq(FILE *fp, struct t_group *group); +static void vGet1GrpArtInfo(struct t_group *grp); /* @@ -269,6 +271,30 @@ create_newsrc( /* + * Get a list of default groups to subscribe to + */ +/* TODO: fixme/checkme + * - logic seems to be wrong, NNTP_ABLE && read_saved_news + * looks for a local subscriptions_file, but read_saved_news doesn't + * require a local server... (a missing subscriptions_file doesn't + * cause any trouble, we just have to bother with the read_saved_news + * and a existing local subscriptions_file file case). + * open_newgroups_fp() uses the same logic. + */ +static FILE * +open_subscription_fp( + void) +{ +#ifdef NNTP_ABLE + if (read_news_via_nntp && !read_saved_news) + return (nntp_command("LIST SUBSCRIPTIONS", OK_GROUPS, NULL, 0)); + else +#endif /* NNTP_ABLE */ + return (fopen(subscriptions_file, "r")); +} + + +/* * Automatically subscribe user to newsgroups specified in * NEWSLIBDIR/subscriptions (locally) or same file but from NNTP * server (LIST SUBSCRIPTIONS) and create .newsrc @@ -348,6 +374,121 @@ backup_newsrc( /* + * Find the total, max & min articles number for specified group + * Use nntp GROUP command or read local spool + * Return 0, or -error + */ +int +group_get_art_info( + char *tin_spooldir, + char *groupname, + int grouptype, + long *art_count, + long *art_max, + long *art_min) +{ + 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); +# ifdef DEBUG + debug_nntp("group_get_art_info", buf); +# endif /* DEBUG */ + put_server(buf); + + switch (get_respcode(line, sizeof(line))) { + + case OK_GROUP: + if (sscanf(line, "%ld %ld %ld", art_count, art_min, art_max) != 3) + error_message(_("Invalid response to GROUP command, %s"), line); + break; + + case ERR_NOGROUP: + *art_count = 0; + *art_min = 1; + *art_max = 0; + return -ERR_NOGROUP; + + case ERR_ACCESS: + error_message("%s%s", cCRLF, line); + tin_done(NNTP_ERROR_EXIT); + /* keep lint quiet: */ + /* NOTREACHED */ + break; + + default: +# ifdef DEBUG + debug_nntp("NOT_OK", line); +# endif /* DEBUG */ + return -1; + } +#else + my_fprintf(stderr, _("Unreachable?\n")); + return 0; +#endif /* NNTP_ABLE */ + } else { + *art_count = 0; + *art_min = 1; + *art_max = 0; + + make_base_group_path(tin_spooldir, groupname, buf); + + if ((dir = opendir(buf)) != NULL) { + while ((direntry = readdir(dir)) != NULL) { + artnum = atol(direntry->d_name); /* should be '\0' terminated... */ + if (artnum >= 1) { + if (artnum > *art_max) { + *art_max = artnum; + if (*art_min == 0) + *art_min = artnum; + } else if (artnum < *art_min) + *art_min = artnum; + (*art_count)++; + } + } + CLOSEDIR(dir); + } else + return -1; + } + + return 0; +} + + +static void +vGet1GrpArtInfo( + struct t_group *grp) +{ + long lMinOld = grp->xmin; + long lMaxOld = grp->xmax; + + group_get_art_info(grp->spooldir, grp->name, grp->type, &grp->count, &grp->xmax, &grp->xmin); + + 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(); +#endif /* DEBUG */ + grp->newsrc.num_unread = grp->count; + } + + if (grp->xmin != lMinOld || grp->xmax != lMaxOld) { + expand_bitmap(grp, 0); +#ifdef DEBUG + my_printf(cCRLF "Min/Max DIFF %s old=[%ld-%ld] new=[%ld-%ld]", grp->name, lMinOld, lMaxOld, grp->xmin, grp->xmax); + my_flush(); +#endif /* DEBUG */ + } +} + + +/* * Subscribe/unsubscribe to a group in .newsrc. * This involves rewriting the .newsrc with the new info * If get_info is set we are allowed to issue NNTP commands if needed @@ -616,7 +757,8 @@ parse_bitmap_seq( #ifdef DEBUG_NEWSRC { char buf[NEWSRC_LINE]; - sprintf(buf, "Parsing [%s%c %.*s]", group->name, SUB_CHAR(group->subscribed), (int) (NEWSRC_LINE - strlen(group->name) - 20), ptr); + + 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); } @@ -858,7 +1000,7 @@ parse_unread_arts( * check for wrong article numbers in the overview * * TODO: check disabled as we currently catch the artnum > high_mark - * case in read_nov_file() where we might be able to + * case in read_overview() where we might be able to * fix the broken artnum (via xref:-parsing). currently * we just skip the art there. */ @@ -993,16 +1135,16 @@ pos_group_in_newsrc( #ifdef VMS joinpath(buf, TMPDIR, "subrc"); - sprintf(sub, "%s.%d", buf, (int) process_id); + snprintf(sub, sizeof(sub), "%s.%d", buf, (int) process_id); joinpath(buf, TMPDIR, "unsubrc"); - sprintf(unsub, "%s.%d", buf, (int) process_id); + snprintf(unsub, sizeof(unsub), "%s.%d", buf, (int) process_id); #else joinpath(buf, TMPDIR, ".subrc"); - sprintf(sub, "%s.%d", buf, (int) process_id); + snprintf(sub, sizeof(sub), "%s.%d", buf, (int) process_id); joinpath(buf, TMPDIR, ".unsubrc"); - sprintf(unsub, "%s.%d", buf, (int) process_id); + snprintf(unsub, sizeof(unsub), "%s.%d", buf, (int) process_id); #endif /* !VMS */ if ((fp_sub = fopen(sub, "w" FOPEN_OPTS)) == NULL) diff -Nurp tin-1.7.1/src/nntplib.c tin-1.7.2/src/nntplib.c --- tin-1.7.1/src/nntplib.c Sat Aug 23 01:58:41 2003 +++ tin-1.7.2/src/nntplib.c Fri Oct 3 02:25:13 2003 @@ -3,7 +3,7 @@ * Module : nntplib.c * Author : S. Barber & I. Lea * Created : 1991-01-12 - * Updated : 2003-08-10 + * Updated : 2003-09-14 * 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 @@ -32,6 +32,14 @@ /* Copy of last NNTP command sent, so we can retry it if needed */ char last_put[NNTP_STRLEN]; +char *nntp_server = NULL; +constext *xover_cmd = NULL; +#ifdef NO_POSTING + t_bool can_post = FALSE; +#else + 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; @@ -41,34 +49,37 @@ t_bool quitting = FALSE; static TCP *nntp_rd_fp = NULL; static TCP *nntp_wr_fp = NULL; +#ifdef NNTP_ABLE + static constext *xover_cmds = "XOVER"; +# if 0 /* currently not used */ + static constext *xhdr_cmd = NULL; + static constext *xhdr_cmds = "XHDR"; +# endif /* 0 */ + static t_bool have_list_extensions = FALSE; +#endif /* NNTP_ABLE */ /* * local prototypes */ #ifdef NNTP_ABLE static int reconnect(int retry); + static int server_init(char *machine, const char *cservice, int port, char *text, size_t mlen); + static void check_extensions(void); + static void close_server(void); # ifdef INET6 static int get_tcp6_socket(char *machine, unsigned short port); # else static int get_tcp_socket(char *machine, char *service, unsigned short port); # endif /* INET6 */ -#endif /* NNTP_ABLE */ - -#ifdef NNTP_ABLE -/* Close the NNTP connection with prejudice */ -# define NNTP_HARD_CLOSE \ - if (nntp_wr_fp) \ - s_fclose(nntp_wr_fp); \ - if (nntp_rd_fp) \ - s_fclose(nntp_rd_fp); \ - nntp_rd_fp = nntp_wr_fp = NULL; +# ifdef DECNET + static int get_dnet_socket(char *machine, char *service); +# endif /* DECNET */ #endif /* NNTP_ABLE */ /* * Return the actual fd in use for the nntp read-side socket - * This is a bit of a leak of internal state, but it's use is very - * localised + * This is a leak of internal state and should go away if possible */ FILE * get_nntp_fp( @@ -130,7 +141,7 @@ getserverbyfile( setenv("NNTPSERVER", buf, 1); # else # ifdef HAVE_PUTENV - sprintf(tmpbuf, "NNTPSERVER=%s", buf); + snprintf(tmpbuf, sizeof(tmpbuf), "NNTPSERVER=%s", buf); new_env = my_strdup(tmpbuf); putenv(new_env); FreeIfNeeded(old_env); @@ -202,7 +213,7 @@ getserverbyfile( * "text" is updated to contain the rest of response string from server */ #ifdef NNTP_ABLE -int +static int server_init( char *machine, const char *cservice, /* usually a literal */ @@ -218,11 +229,6 @@ server_init( int sockt_rd, sockt_wr; # endif /* !VMS */ -# ifdef M_AMIGA - if (!s_init()) /* some initialisation ... */ - return -1; -# endif /* M_AMIGA */ - # ifdef DECNET char *cp; @@ -671,7 +677,7 @@ get_tcp6_socket( * * Errors: Printed via nerror. */ -int +static int get_dnet_socket( char *machine, char *service) @@ -732,6 +738,11 @@ get_dnet_socket( #endif /* DECNET */ +/*---------------------------------------------------------------------- + * Ideally the code after this point should be the only interface to the + * NNTP internals... + */ + /* * u_put_server -- send data to the server. Do not flush output. */ @@ -796,8 +807,14 @@ reconnect( /* * Tear down current connection + * Close the NNTP connection with prejudice */ - NNTP_HARD_CLOSE; + if (nntp_wr_fp) + s_fclose(nntp_wr_fp); + if (nntp_rd_fp) + s_fclose(nntp_rd_fp); + nntp_rd_fp = nntp_wr_fp = NULL; + if (!tinrc.auto_reconnect) ring_bell(); @@ -820,7 +837,7 @@ reconnect( */ if (curr_group != NULL) { DEBUG_IO((stderr, _("Rejoin current group\n"))); - sprintf(last_put, "GROUP %s", curr_group->name); + 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 @@ -910,7 +927,7 @@ get_server( * than just "." (i.e. transfer statistics) present it to the user? * */ -void +static void close_server( void) { @@ -931,254 +948,557 @@ close_server( #endif /* !VMS */ -#ifdef DEBUG +#ifdef NNTP_ABLE /* - * NNTP strings for get_respcode() + * Try and use LIST EXTENSIONS here. Get this list before issuing + * other NNTP commands because the correct methods may be + * mentioned in the list of extensions. + * Possible extensions include: + * - HDR & LIST HEADERS + * - OVER + * - LISTGROUP + * - LIST OVERVIEW.FMT + * + * Sets up: have_list_extensions, xover_cmd, (xhdr_cmd) */ -const char * -nntp_respcode( - int respcode) +static void +check_extensions( + void) { -# ifdef NNTP_ABLE - static const char *text; - - switch (respcode) { - case 0: - text = ""; - break; + FILE *fp; + char *ptr; + int i; - case INF_HELP: - text = _("100 Help text on way"); - break; + if ((fp = nntp_command("LIST EXTENSIONS", OK_EXTENSIONS, NULL, 0)) == NULL) + return; - case INF_AUTH: - text = _("180 Authorization capabilities"); - break; + have_list_extensions = TRUE; - case INF_DEBUG: - text = _("199 Debug output"); - break; + while ((ptr = tin_fgets(fp, FALSE)) != NULL) { + /* + * 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 (!xover_cmd) { + for (i = 1; i >= 0; i--) { + if (strcmp(ptr, &xover_cmds[i]) == 0) { + xover_cmd = &xover_cmds[i]; + break; + } + } + } +# if 0 /* currently not used */ + /* + * Check for (X)HDR + * XHDR should not be listed in EXTENSIONS (but sometimes is) + * checking for it if HDR is not found does no harm. + */ + if (!xhdr_cmd) { + for (i = 1; i >= 0; i--) { + if (strcmp(ptr, &xhdr_cmds[i]) == 0) { + xhdr_cmd = &xhdr_cmds[i]; + break; + } + } + } +# endif /* 0 */ + /* + * additional checks for + * - LISTGROUP + * - LIST OVERVIEW.FMT + * - LIST HEADERS + * go here whenever they are needed + */ + } + return; +} +#endif /* NNTP_ABLE */ - case OK_CANPOST: - text = _("200 Hello; you can post"); - break; - case OK_NOPOST: - text = _("201 Hello; you can't post"); - break; +/* + * Open a connection to the NNTP server. Authenticate if necessary or + * desired, and test if the server supports XOVER. + * Returns: 0 success + * > 0 NNTP error response code + * < 0 -errno from system call or similar error + */ +int +nntp_open( + void) +{ +#ifdef NNTP_ABLE + char *linep; + char line[NNTP_STRLEN]; + int i, ret; + t_bool sec = FALSE; + /* It appears that is_reconnect guards code that should be run only once */ + static t_bool is_reconnect = FALSE; - case OK_SLAVE: - text = _("202 Slave status noted"); - break; + if (!read_news_via_nntp) + return 0; - case OK_GOODBYE: - text = _("205 Closing connection"); - break; +# ifdef DEBUG + debug_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); + return -EHOSTUNREACH; + } - case OK_GROUP: - text = _("211 Group selected"); - break; + if (!batch_mode) { + if (nntp_tcp_port != IPPORT_NNTP) + wait_message(0, _(txt_connecting_port), nntp_server, nntp_tcp_port); + else + wait_message(0, _(txt_connecting), nntp_server); + } - /* case OK_MOTD: */ - case OK_GROUPS: - text = _("215 Newsgroups follow"); - break; +# ifdef DEBUG + debug_nntp("nntp_open", nntp_server); +# endif /* DEBUG */ -#if 0 /* obsolete */ - case OK_XINDEX: - text = _("218 Group index file follows"); - break; -#endif /* 0 */ + 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)); - case OK_ARTICLE: - text = _("220 Article (head & body) follows"); - break; + if (!batch_mode && ret >= 0 && cmd_line) + my_fputc('\n', stdout); - case OK_HEAD: - text = _("221 Head follows"); - break; +# ifdef DEBUG + debug_nntp("nntp_open", line); +# endif /* DEBUG */ - case OK_BODY: - text = _("222 Body follows"); - break; + switch (ret) { + /* + * ret < 0 : some error from system call + * ret > 0 : NNTP response code + * + * 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. + * All unrecognised 500 series codes should be assumed as error. + */ - case OK_NOTEXT: - text = _("223 No text sent -- stat, next, last"); + case OK_CANPOST: +/* case OK_NOIHAVE: */ + can_post = TRUE && !force_no_post; break; - case OK_NEWNEWS: - text = _("230 New articles by message-id follow"); + case OK_NOPOST: +/* case OK_NOPOSTIHAVE: */ + can_post = FALSE; break; - case OK_NEWGROUPS: - text = _("231 New newsgroups follow"); - break; + default: + if (ret >= 200 && ret <= 299) { + can_post = TRUE && !force_no_post; + break; + } + if (ret < 0) + error_message(_(txt_failed_to_connect_to_server), nntp_server); + else + error_message(line); + + return ret; + } + if (!is_reconnect) { + /* remove leading whitespace and save server's initial response */ + linep = line; + while (isspace((int) *linep)) + linep++; - case OK_XFERED: - text = _("235 Article transferred successfully"); - break; + STRCPY(bug_nntpserver1, linep); + } - case OK_POSTED: - text = _("240 Article posted successfully"); - break; + /* + * Switch INN into NNRP mode with 'mode reader' + */ - case OK_AUTHSYS: - text = _("280 Authorization system ok"); - break; +# ifdef DEBUG + debug_nntp("nntp_open", "mode reader"); +# endif /* DEBUG */ + DEBUG_IO((stderr, "nntp_command(MODE READER)\n")); + put_server("MODE READER"); - case OK_AUTH: - text = _("281 Authorization (user/pass) ok"); - break; + /* + * According to the latest NNTP draft (Jan 2002), MODE READER may only + * return the following response codes: + * + * 200 (OK_CANPOST) Hello, you can post + * 201 (OK_NOPOST) Hello, you can't post + * (202 (OK_NOIHAVE) discussed on the itef mailinglist) + * (203 (OK_NOPOSTIHAVE) discussed on the itef mailinglist) + * 400 (ERR_GOODBYE) Service temporarily unavailable + * 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. + */ - case OK_BIN: - text = _("282 binary data follows"); + switch ((ret = get_respcode(line, sizeof(line)))) { + case OK_CANPOST: +/* case OK_NOIHAVE: */ + can_post = TRUE && !force_no_post; + sec = TRUE; break; - case OK_SPLIST: - text = _("283 spooldir list follows"); + case OK_NOPOST: +/* case OK_NOPOSTIHAVE: */ + can_post = FALSE; + sec = TRUE; break; - case OK_SPSWITCH: - text = _("284 Switching to a different spooldir"); - break; + case ERR_GOODBYE: + case ERR_ACCESS: + error_message(line); + return ret; - case OK_SPNOCHANGE: - text = _("285 Still using same spooldir"); + case ERR_COMMAND: + default: break; - case OK_SPLDIRCUR: - text = _("286 Current spooldir"); - break; + } - case OK_SPLDIRAVL: - text = _("287 Available spooldir"); - break; + /* + * 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-newman-nntpext-auth-01.txt). + */ + check_extensions(); - case OK_SPLDIRERR: - text = _("288 Unavailable spooldir or invalid entry"); - break; + /* + * If the user wants us to authenticate on connection startup, do it now. + * Some news servers return "201 no posting" first, but after successful + * authentication you get a "200 posting allowed". To find out if we are + * allowed to post after authentication issue a "MODE READER" again and + * interpret the response code. + */ + if (force_auth_on_conn_open) { +# ifdef DEBUG + debug_nntp("nntp_open", "authenticate"); +# endif /* DEBUG */ + authenticate(nntp_server, userid, TRUE); + put_server("MODE READER"); + switch ((ret = get_respcode(line, sizeof(line)))) { + case OK_CANPOST: +/* case OK_NOIHAVE: */ + can_post = TRUE && !force_no_post; + sec = TRUE; + break; + + case OK_NOPOST: +/* case OK_NOPOSTIHAVE: */ + can_post = FALSE; + sec = TRUE; + break; + + case ERR_GOODBYE: + case ERR_ACCESS: + error_message(line); + return ret; + + case ERR_COMMAND: /* Uh-oh ... now we don't know if posting */ + default: /* is allowed or not ... so use last 200 */ + break; /* or 201 response to decide. */ - case CONT_XFER: - text = _("335 Continue to send article"); - break; + } + } - case CONT_POST: - text = _("340 Continue to post article"); - break; + if (!is_reconnect) { + /* Inform user if he cannot post */ + if (!can_post && !batch_mode) + wait_message(0, "%s\n", _(txt_cannot_post)); + + /* Remove leading white space and save server's second response */ + linep = line; + while (isspace((int) *linep)) + linep++; - case NEED_AUTHINFO: - text = _("380 authorization is required"); - break; + STRCPY(bug_nntpserver2, linep); - case NEED_AUTHDATA: - text = _("381 authorization data required"); - break; + /* + * Show user last server response line, do some nice formatting if + * response is longer than a screen wide. + * + * TODO: This only breaks the line once, but the response could be + * longer than two lines ... + */ + if (!batch_mode || verbose) { + char *chr1, *chr2; + int j; + + j = atoi(get_val("COLUMNS", "80")); + chr1 = my_strdup((sec ? bug_nntpserver2 : bug_nntpserver1)); + + if (((int) strlen(chr1)) >= j) { + chr2 = chr1 + strlen(chr1) - 1; + while (chr2 - chr1 >= j) + chr2--; + while (chr2 > chr1 && *chr2 != ' ') + chr2--; + if (chr2 != chr1) + *chr2 = '\n'; + } - case ERR_GOODBYE: - text = _("400 Have to hang up for some reason"); - break; + wait_message(0, "%s\n", chr1); + free(chr1); + } + } - case ERR_NOGROUP: - text = _("411 No such newsgroup"); - break; + /* + * If LIST EXTENSIONS failed, check if NNTP supports XOVER or OVER command + * (successor of XOVER as of latest NNTP Draft (Jan 2002) + * We have to check that we _don't_ get an ERR_COMMAND + */ + if (!have_list_extensions) { + for (i = 0; i < 2; i++) { + if (!nntp_command(&xover_cmds[i], ERR_COMMAND, NULL, 0)) { + xover_cmd = &xover_cmds[i]; + break; + } + } + } else { + if (!xover_cmd) { + /* + * LIST EXTENSIONS didn't mention OVER or XOVER, try + * XOVER + */ + if (!nntp_command(xover_cmds, ERR_COMMAND, NULL, 0)) + xover_cmd = xover_cmds; + } +#if 0 /* unused */ + if (!xhdr_cmd) { + /* + * LIST EXTENSIONS didn't mention HDR or XHDR, try + * XHDR + */ + if (!nntp_command(xhdr_cmds, ERR_COMMAND, NULL, 0)) + xhdr_cmd = xhdr_cmds; + } +#endif /* 0 */ + } - case ERR_NCING: - text = _("412 Not currently in newsgroup"); - break; + if (!xover_cmd) { + if (!is_reconnect && !batch_mode) { + wait_message(2, _(txt_no_xover_support)); + + if (tinrc.cache_overview_files) + wait_message(2, _(txt_caching_on)); + else + wait_message(2, _(txt_caching_off)); + } + } else { + /* TODO: issue warning if old index files found? */ + /* in index_newsdir ? */ + } - case ERR_XINDEX: - text = _("418 No index file for this group"); - break; +# if 0 + /* + * TODO: if we're using -n, check for LIST NEWSGROUPS */ + * see also comments in open_newsgroups_fp() */ + */ + if (newsrc_active && !list_active) { /* -n */ + /* code goes here */ + } +# endif /* 0 */ - case ERR_NOCRNT: - text = _("420 No current article selected"); - break; + is_reconnect = TRUE; - case ERR_NONEXT: - text = _("421 No next article in this group"); - break; +#endif /* NNTP_ABLE */ - case ERR_NOPREV: - text = _("422 No previous article in this group"); - break; + DEBUG_IO((stderr, "nntp_open okay\n")); + return 0; +} - case ERR_NOARTIG: - text = _("423 No such article in this group"); - break; - case ERR_NOART: - text = _("430 No such article at all"); - break; +/* + * 'Public' function to shutdown the NNTP connection + */ +void +nntp_close( + void) +{ +#ifdef NNTP_ABLE + if (read_news_via_nntp) { +# ifdef DEBUG + debug_nntp("nntp_close", "END"); +# endif /* DEBUG */ + close_server(); + } +#endif /* NNTP_ABLE */ +} - case ERR_GOTIT: - text = _("435 Already got that article, don't send"); - break; - case ERR_XFERFAIL: - text = _("436 Transfer failed"); - break; +/* + * Get a response code from the server. + * Returns: + * +ve NNTP return code + * -1 on an error or user abort. We don't differentiate. + * If 'message' is not NULL, then any trailing text after the response + * code is copied into it. + * Does not perform authentication if required; use get_respcode() + * instead. + */ +int +get_only_respcode( + char *message, + size_t mlen) +{ + int respcode = 0; +#ifdef NNTP_ABLE + char *ptr, *end; - case ERR_XFERRJCT: - text = _("437 Article rejected, don't resend"); - break; + ptr = tin_fgets(FAKE_NNTP_FP, FALSE); - case ERR_NOPOST: - text = _("440 Posting not allowed"); - break; + if (tin_errno || ptr == NULL) { +# ifdef DEBUG + debug_nntp("<<<", "Error: tin_error<>0 or ptr==NULL in get_only_respcode()"); +# endif /* DEBUG */ + return -1; + } - case ERR_POSTFAIL: - text = _("441 Posting failed"); - break; +# ifdef DEBUG + debug_nntp("<<<", ptr); +# endif /* DEBUG */ + respcode = (int) strtol(ptr, &end, 10); + DEBUG_IO((stderr, "get_only_respcode(%d)\n", respcode)); - case ERR_NOAUTH: - text = _("480 authorization required for command"); - break; + /* TODO: reconnect on ERR_FAULT? */ + if ((respcode == ERR_FAULT || respcode == ERR_GOODBYE || respcode == OK_GOODBYE) && last_put[0] != '\0' && strcmp(last_put, "QUIT")) { + /* + * Maybe server timed out. + * If so, retrying will force a reconnect. + */ +# ifdef DEBUG + debug_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"); +# endif /* DEBUG */ + return -1; + } - case ERR_AUTHSYS: - text = _("481 Authorization system invalid"); - break; +# ifdef DEBUG + debug_nntp("<<<", 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); - case ERR_AUTHREJ: - text = _("482 Authorization data rejected"); - break; +#endif /* NNTP_ABLE */ + return respcode; +} - case ERR_INVALIAS: - text = _("483 Invalid alias on spooldir cmd"); - break; - case ERR_INVNOSPDIR: - text = _("484 No spooldir file found"); - break; +/* + * Get a response code from the server. + * Returns: + * +ve NNTP return code + * -1 on an error + * If 'message' is not NULL, then any trailing text after the response + * code is copied into it. + * Performs authentication if required and repeats the last command if + * necessary after a timeout. + */ +int +get_respcode( + char *message, + size_t mlen) +{ + int respcode = 0; +#ifdef NNTP_ABLE + char savebuf[NNTP_STRLEN]; + char *ptr, *end; - case ERR_COMMAND: - text = _("500 Command not recognized"); - break; + respcode = get_only_respcode(message, mlen); + if ((respcode == ERR_NOAUTH) || (respcode == NEED_AUTHINFO)) { + /* + * Server requires authentication. + */ +# ifdef DEBUG + debug_nntp("get_respcode", "authentication"); +# endif /* DEBUG */ + strncpy(savebuf, last_put, sizeof(savebuf) - 1); /* Take copy, as authenticate() will clobber this */ - case ERR_CMDSYN: - text = _("501 Command syntax error"); - break; + if (authenticate(nntp_server, userid, FALSE)) { + strcpy(last_put, savebuf); - case ERR_ACCESS: - text = _("502 Access to server denied"); - break; + put_server(last_put); + ptr = tin_fgets(FAKE_NNTP_FP, FALSE); - /* case ERR_MOTD: */ - case ERR_FAULT: - text = _("503 Program fault, command not performed"); - break; + if (tin_errno) { +# ifdef DEBUG + debug_nntp("<<<", "Error: tin_errno <> 0"); +# endif /* DEBUG */ + return -1; + } - case ERR_AUTHBAD: - text = _("580 Authorization Failed"); - break; +# ifdef DEBUG + debug_nntp("<<<", 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); - default: - text = _("Unknown NNTP response code"); - break; + } else { + error_message(_(txt_auth_failed), ERR_ACCESS); + /* return -1; */ + tin_done(EXIT_FAILURE); + } } - return text; +#endif /* NNTP_ABLE */ + return respcode; +} -# else - return ""; -# endif /* NNTP_ABLE */ + +#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 + * Return NULL if we did not see the response we wanted. + * If message is not NULL, then the trailing text of the reply string is + * copied into it for the caller to process. + */ +FILE * +nntp_command( + const char *command, + int success, + char *message, + size_t mlen) +{ +DEBUG_IO((stderr, "nntp_command(%s)\n", command)); +# ifdef DEBUG + debug_nntp("nntp command", 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"); +# endif /* DEBUG */ + /* error_message("%s", message); */ + return (FILE *) 0; + } + } +# ifdef DEBUG + debug_nntp(command, "OK"); +# endif /* DEBUG */ + return FAKE_NNTP_FP; } -#endif /* DEBUG */ +#endif /* NNTP_ABLE */ diff -Nurp tin-1.7.1/src/nrctbl.c tin-1.7.2/src/nrctbl.c --- tin-1.7.1/src/nrctbl.c Thu Aug 28 15:35:20 2003 +++ tin-1.7.2/src/nrctbl.c Tue Oct 7 07:05:22 2003 @@ -230,7 +230,7 @@ get_newsrcname( return TRUE; case iKeyNrctblAlternative: - sprintf(name_found, ".newsrc-%s", nntpserver_name); + snprintf(name_found, sizeof(name_found), ".newsrc-%s", nntpserver_name); joinpath(newsrc_name, homedir, name_found); return TRUE; diff -Nurp tin-1.7.1/src/open.c tin-1.7.2/src/open.c --- tin-1.7.1/src/open.c Sat Aug 23 01:58:41 2003 +++ tin-1.7.2/src/open.c Thu Jan 1 01:00:00 1970 @@ -1,1214 +0,0 @@ -/* - * Project : tin - a Usenet reader - * Module : open.c - * Author : I. Lea & R. Skrenta - * Created : 1991-04-01 - * Updated : 2003-08-16 - * Notes : Routines to make reading news locally (ie. /var/spool/news) - * or via NNTP transparent - * - * Copyright (c) 1991-2003 Iain Lea , Rich Skrenta - * 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 TIN_H -# include "tin.h" -#endif /* !TIN_H */ -#ifndef TCURSES_H -# include "tcurses.h" -#endif /* !TCURSES_H */ -#ifndef TNNTP_H -# include "tnntp.h" -#endif /* !TNNTP_H */ - - -/* - * local prototypes - */ -static int base_comp(t_comptype p1, t_comptype p2); -#ifdef NNTP_ABLE - static void check_extensions(void); -#endif /* NNTP_ABLE */ -#if 0 /* currently unused */ - static FILE *open_xhdr_fp(char *header, long min, long max); - static t_bool stat_article(long art, const char *group_path); -#endif /* 0 */ - - -char *nntp_server = NULL; -constext *xover_cmd = NULL; -long head_next; -#ifdef NO_POSTING - t_bool can_post = FALSE; -#else - t_bool can_post = TRUE; -#endif /* NO_POSTING */ -#ifdef NNTP_ABLE - static constext *xover_cmds = "XOVER"; -# if 0 /* currently not used */ - static constext *xhdr_cmd = NULL; - static constext *xhdr_cmds = "XHDR"; -# endif /* 0 */ - static t_bool have_list_extensions = FALSE; -#endif /* NNTP_ABLE */ - - -#ifdef NNTP_ABLE -/* - * Try and use LIST EXTENSIONS here. Get this list before issuing - * other NNTP commands because the correct methods may be - * mentioned in the list of extensions. - * Possible extensions include: - * - HDR & LIST HEADERS - * - OVER - * - LISTGROUP - * - LIST OVERVIEW.FMT - * - * Sets up: have_list_extensions, xover_cmd, (xhdr_cmd) - */ -static void -check_extensions( - void) -{ - FILE *fp; - char *ptr; - int i; - - if ((fp = nntp_command("LIST EXTENSIONS", OK_EXTENSIONS, NULL, 0)) == NULL) - return; - - have_list_extensions = TRUE; - - while ((ptr = tin_fgets(fp, FALSE)) != NULL) { - /* - * Check for (X)OVER - * XOVER should not be listed in EXTENSIONS (only OVER), but - * checking for it if OVER is not found does no harm. - */ - if (!xover_cmd) { - for (i = 1; i >= 0; i--) { - if (strcmp(ptr, &xover_cmds[i]) == 0) { - xover_cmd = &xover_cmds[i]; - break; - } - } - } -# if 0 /* currently not used */ - /* - * Check for (X)HDR - * XHDR should not be listed in EXTENSIONS (only HDR), but - * checking for it if HDR is not found does no harm. - */ - if (!xhdr_cmd) { - for (i = 1; i >= 0; i--) { - if (strcmp(ptr, &xhdr_cmds[i]) == 0) { - xhdr_cmd = &xhdr_cmds[i]; - break; - } - } - } -# endif /* 0 */ - /* - * additional checks for - * - LISTGROUP - * - LIST OVERVIEW.FMT - * - LIST HEADERS - * go here whenever they are needed - */ - } - return; -} -#endif /* NNTP_ABLE */ - - -/* - * Open a connection to the NNTP server. Authenticate if necessary or - * desired, and test if the server supports XOVER. - * Returns: 0 success - * > 0 NNTP error response code - * < 0 -errno from system call or similar error - */ -int -nntp_open( - void) -{ -#ifdef NNTP_ABLE - char *linep; - char line[NNTP_STRLEN]; - int i, ret; - t_bool sec = FALSE; - /* It appears that is_reconnect guards code that should be run only once */ - static t_bool is_reconnect = FALSE; - - if (!read_news_via_nntp) - return 0; - -# ifdef DEBUG - debug_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); - return -EHOSTUNREACH; - } - - if (!batch_mode) { - if (nntp_tcp_port != IPPORT_NNTP) - wait_message(0, _(txt_connecting_port), nntp_server, nntp_tcp_port); - else - wait_message(0, _(txt_connecting), nntp_server); - } - -# ifdef DEBUG - debug_nntp("nntp_open", 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) - my_fputc('\n', stdout); - -# ifdef DEBUG - debug_nntp("nntp_open", line); -# endif /* DEBUG */ - - switch (ret) { - /* - * ret < 0 : some error from system call - * ret > 0 : NNTP response code - * - * 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. - * All unrecognised 500 series codes should be assumed as error. - */ - - case OK_CANPOST: -/* case OK_NOIHAVE: */ - can_post = TRUE && !force_no_post; - break; - - case OK_NOPOST: -/* case OK_NOPOSTIHAVE: */ - can_post = FALSE; - break; - - default: - if (ret >= 200 && ret <= 299) { - can_post = TRUE && !force_no_post; - break; - } - if (ret < 0) - error_message(_(txt_failed_to_connect_to_server), nntp_server); - else - error_message(line); - - return ret; - } - if (!is_reconnect) { - /* remove leading whitespace and save server's initial response */ - linep = line; - while (isspace((int) *linep)) - linep++; - - STRCPY(bug_nntpserver1, linep); - } - - /* - * Switch INN into NNRP mode with 'mode reader' - */ - -# ifdef DEBUG - debug_nntp("nntp_open", "mode reader"); -# endif /* DEBUG */ - DEBUG_IO((stderr, "nntp_command(MODE READER)\n")); - put_server("MODE READER"); - - /* - * According to the latest NNTP draft (Jan 2002), MODE READER may only - * return the following response codes: - * - * 200 (OK_CANPOST) Hello, you can post - * 201 (OK_NOPOST) Hello, you can't post - * (202 (OK_NOIHAVE) discussed on the itef mailinglist) - * (203 (OK_NOPOSTIHAVE) discussed on the itef mailinglist) - * 400 (ERR_GOODBYE) Service temporarily unavailable - * 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. - */ - - switch ((ret = get_respcode(line, sizeof(line)))) { - case OK_CANPOST: -/* case OK_NOIHAVE: */ - can_post = TRUE && !force_no_post; - sec = TRUE; - break; - - case OK_NOPOST: -/* case OK_NOPOSTIHAVE: */ - can_post = FALSE; - sec = TRUE; - break; - - case ERR_GOODBYE: - case ERR_ACCESS: - error_message(line); - return ret; - - case ERR_COMMAND: - default: - break; - - } - - /* - * 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-newman-nntpext-auth-01.txt). - */ - check_extensions(); - - /* - * If the user wants us to authenticate on connection startup, do it now. - * Some news servers return "201 no posting" first, but after successful - * authentication you get a "200 posting allowed". To find out if we are - * allowed to post after authentication issue a "MODE READER" again and - * interpret the response code. - */ - if (force_auth_on_conn_open) { -# ifdef DEBUG - debug_nntp("nntp_open", "authenticate"); -# endif /* DEBUG */ - authenticate(nntp_server, userid, TRUE); - put_server("MODE READER"); - switch ((ret = get_respcode(line, sizeof(line)))) { - case OK_CANPOST: -/* case OK_NOIHAVE: */ - can_post = TRUE && !force_no_post; - sec = TRUE; - break; - - case OK_NOPOST: -/* case OK_NOPOSTIHAVE: */ - can_post = FALSE; - sec = TRUE; - break; - - case ERR_GOODBYE: - case ERR_ACCESS: - error_message(line); - return ret; - - case ERR_COMMAND: /* Uh-oh ... now we don't know if posting */ - default: /* is allowed or not ... so use last 200 */ - break; /* or 201 response to decide. */ - - } - } - - if (!is_reconnect) { - /* Inform user if he cannot post */ - if (!can_post && !batch_mode) - wait_message(0, "%s\n", _(txt_cannot_post)); - - /* Remove leading white space and save server's second response */ - linep = line; - while (isspace((int) *linep)) - linep++; - - STRCPY(bug_nntpserver2, linep); - - /* - * Show user last server response line, do some nice formatting if - * response is longer than a screen wide. - * - * TODO: This only breaks the line once, but the response could be - * longer than two lines ... - */ - if (!batch_mode || verbose) { - char *chr1, *chr2; - int j; - - j = atoi(get_val("COLUMNS", "80")); - chr1 = my_strdup((sec ? bug_nntpserver2 : bug_nntpserver1)); - - if (((int) strlen(chr1)) >= j) { - chr2 = chr1 + strlen(chr1) - 1; - while (chr2 - chr1 >= j) - chr2--; - while (chr2 > chr1 && *chr2 != ' ') - chr2--; - if (chr2 != chr1) - *chr2 = '\n'; - } - - wait_message(0, "%s\n", chr1); - free(chr1); - } - } - - /* - * If LIST EXTENSIONS failed, check if NNTP supports XOVER or OVER command - * (successor of XOVER as of latest NNTP Draft (Jan 2002) - * We have to check that we _don't_ get an ERR_COMMAND - */ - if (!have_list_extensions) { - for (i = 0; i < 2; i++) { - if (!nntp_command(&xover_cmds[i], ERR_COMMAND, NULL, 0)) { - xover_cmd = &xover_cmds[i]; - break; - } - } - } else { - if (!xover_cmd) { - /* - * LIST EXTENSIONS didn't mention OVER or XOVER, try - * XOVER - */ - if (!nntp_command(xover_cmds, ERR_COMMAND, NULL, 0)) - xover_cmd = xover_cmds; - } -#if 0 /* unused */ - if (!xhdr_cmd) { - /* - * LIST EXTENSIONS didn't mention HDR or XHDR, try - * XHDR - */ - if (!nntp_command(xhdr_cmds, ERR_COMMAND, NULL, 0)) - xhdr_cmd = xhdr_cmds; - } -#endif /* 0 */ - } - - if (!xover_cmd) { - if (!is_reconnect && !batch_mode) { - wait_message(2, _(txt_no_xover_support)); - - if (tinrc.cache_overview_files) - wait_message(2, _(txt_caching_on)); - else - wait_message(2, _(txt_caching_off)); - } - } else { - /* TODO: issue warning if old index files found? */ - /* in index_newsdir ? */ - } - -# if 0 - /* - * TODO: if we're using -n, check for LIST NEWSGROUPS - * see also comments in open_newsgroups_fp() - */ - if (newsrc_active && !list_active) { /* -n */ - /* code goes here */ - } -# endif /* 0 */ - - is_reconnect = TRUE; - -#endif /* NNTP_ABLE */ - - DEBUG_IO((stderr, "nntp_open okay\n")); - return 0; -} - - -void -nntp_close( - void) -{ -#ifdef NNTP_ABLE - if (read_news_via_nntp) { -# ifdef DEBUG - debug_nntp("nntp_close", "END"); -# endif /* DEBUG */ - close_server(); - } -#endif /* NNTP_ABLE */ -} - - -/* - * Get a response code from the server. - * Returns: - * +ve NNTP return code - * -1 on an error or user abort. We don't differentiate. - * If 'message' is not NULL, then any trailing text after the response - * code is copied into it. - * Does not perform authentication if required; use get_respcode() - * instead. - */ -int -get_only_respcode( - char *message, - size_t mlen) -{ - int respcode = 0; -#ifdef NNTP_ABLE - char *ptr, *end; - - 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()"); -# endif /* DEBUG */ - return -1; - } - -# ifdef DEBUG - debug_nntp("<<<", 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")) { - /* - * Maybe server timed out. - * If so, retrying will force a reconnect. - */ -# ifdef DEBUG - debug_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"); -# endif /* DEBUG */ - return -1; - } - -# ifdef DEBUG - debug_nntp("<<<", 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); - -#endif /* NNTP_ABLE */ - return respcode; -} - - -/* - * Get a response code from the server. - * Returns: - * +ve NNTP return code - * -1 on an error - * If 'message' is not NULL, then any trailing text after the response - * code is copied into it. - * Performs authentication if required and repeats the last command if - * necessary after a timeout. - */ -int -get_respcode( - char *message, - size_t mlen) -{ - int respcode = 0; -#ifdef NNTP_ABLE - char savebuf[NNTP_STRLEN]; - char *ptr, *end; - - respcode = get_only_respcode(message, mlen); - if ((respcode == ERR_NOAUTH) || (respcode == NEED_AUTHINFO)) { - /* - * Server requires authentication. - */ -# ifdef DEBUG - debug_nntp("get_respcode", "authentication"); -# endif /* DEBUG */ - strncpy(savebuf, last_put, sizeof(savebuf) - 1); /* Take copy, as authenticate() will clobber this */ - - if (authenticate(nntp_server, userid, FALSE)) { - strcpy(last_put, savebuf); - - put_server(last_put); - ptr = tin_fgets(FAKE_NNTP_FP, FALSE); - - if (tin_errno) { -# ifdef DEBUG - debug_nntp("<<<", "Error: tin_errno <> 0"); -# endif /* DEBUG */ - return -1; - } - -# ifdef DEBUG - debug_nntp("<<<", 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); - } - } -#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 - * Return NULL if we did not see the response we wanted. - * If message is not NULL, then the trailing text of the reply string is - * copied into it for the caller to process. - */ -FILE * -nntp_command( - const char *command, - int success, - char *message, - size_t mlen) -{ -DEBUG_IO((stderr, "nntp_command(%s)\n", command)); -# ifdef DEBUG - debug_nntp("nntp command", 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"); -# endif /* DEBUG */ - /* error_message("%s", message); */ - return (FILE *) 0; - } - } -# ifdef DEBUG - debug_nntp(command, "OK"); -# endif /* DEBUG */ - return FAKE_NNTP_FP; -} -#endif /* NNTP_ABLE */ - - -/* - * Open the news active file locally or send the LIST command - */ -FILE * -open_news_active_fp( - void) -{ -#ifdef NNTP_ABLE - if (read_news_via_nntp && !read_saved_news) - return (nntp_command("LIST", OK_GROUPS, NULL, 0)); - else -#endif /* NNTP_ABLE */ - return (fopen(news_active_file, "r")); -} - - -/* - * Open the NEWSLIBDIR/overview.fmt file locally or send LIST OVERVIEW.FMT - */ -FILE * -open_overview_fmt_fp( - void) -{ - char line[NNTP_STRLEN]; - -#ifdef NNTP_ABLE - if (read_news_via_nntp && !read_saved_news) { - if (!xover_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 - } -#endif /* NNTP_ABLE */ -} - - -/* - * Open the active.times file locally or send the NEWGROUPS command - * - * NEWGROUPS yymmdd hhmmss - */ -FILE * -open_newgroups_fp( - int idx) -{ -#ifdef NNTP_ABLE - char line[NNTP_STRLEN]; - struct tm *ngtm; - - if (read_news_via_nntp && !read_saved_news) { - if (idx == -1) - return (FILE *) 0; - - ngtm = localtime(&newnews[idx].time); - /* - * 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 - * compliant... we should switch over to ngtm->tm_year + 1900 - * when most servers can handle the new format - */ - snprintf(line, sizeof(line), "NEWGROUPS %02d%02d%02d %02d%02d%02d", - ngtm->tm_year % 100, ngtm->tm_mon + 1, ngtm->tm_mday, - ngtm->tm_hour, ngtm->tm_min, ngtm->tm_sec); - - return (nntp_command(line, OK_NEWGROUPS, NULL, 0)); - } else -#endif /* NNTP_ABLE */ - return (fopen(active_times_file, "r")); -} - - -/* - * Get a list of default groups to subscribe to - */ -/* TODO: fixme/checkme - * - logic seems to be wrong, NNTP_ABLE && read_saved_news - * looks for a local subscriptions_file, but read_saved_news doesn't - * require a local server... (a missing subscriptions_file doesn't - * cause any trouble, we just have to bother with the read_saved_news - * and a existing local subscriptions_file file case). - * open_newgroups_fp() uses the same logic. - */ -FILE * -open_subscription_fp( - void) -{ -#ifdef NNTP_ABLE - if (read_news_via_nntp && !read_saved_news) - return (nntp_command("LIST SUBSCRIPTIONS", OK_GROUPS, NULL, 0)); - else -#endif /* NNTP_ABLE */ - return (fopen(subscriptions_file, "r")); -} - - -#ifdef HAVE_MH_MAIL_HANDLING -/* - * Open the mail active file locally - */ -FILE * -open_mail_active_fp( - const char *mode) -{ - return fopen(mail_active_file, mode); -} - - -/* - * Open mail groups description file locally - */ -FILE * -open_mailgroups_fp( - void) -{ - return fopen(mailgroups_file, "r"); -} -#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. - */ -FILE * -open_newsgroups_fp( - void) -{ -#ifdef NNTP_ABLE - FILE *result; - - if (read_news_via_nntp && !read_saved_news) { - if (read_local_newsgroups_file) { - result = fopen(local_newsgroups_file, "r"); - if (result != NULL) { -# ifdef DEBUG - debug_nntp("open_newsgroups_fp", "Using local copy of newsgroups file"); -# endif /* DEBUG */ - return result; - } - read_local_newsgroups_file = FALSE; - } -# if 0 /* TODO: */ - if (list_newsgroups_wildmat_supported && newsrc_active - && !list_active && num_active < some_useful_limit) { - for_each_group(i) { - sprintf(buff, "LIST NEWSGROUPS %s", active[i].name); - nntp_command(buff, OK_LIST, NULL, 0); - } - } else -# endif /* 0 */ - return (nntp_command("LIST NEWSGROUPS", OK_GROUPS, NULL, 0)); - } else -#endif /* NNTP_ABLE */ - return fopen(newsgroups_file, "r"); -} - - -/* - * Open an article for reading just the header - */ -FILE * -open_art_header( - long art) -{ - char buf[NNTP_STRLEN]; -#ifdef NNTP_ABLE - FILE *fp; - - if (read_news_via_nntp && CURR_GROUP.type == GROUP_TYPE_NEWS) { - /* - * Don't bother requesting if we have not got there yet. - * This is a big win if the group has got holes in it (ie. if 000's - * of articles have expired between active files min & max values). - */ - if (art < head_next) - return (FILE *) 0; - - sprintf(buf, "HEAD %ld", art); - if ((fp = nntp_command(buf, OK_HEAD, NULL, 0)) != NULL) - return fp; - - /* - * HEAD failed, try to find NEXT - * Should return "223 artno message-id more text...." - */ - if (nntp_command("NEXT", OK_NOTEXT, buf, sizeof(buf))) - head_next = atoi(buf); /* Set next art number */ - - return (FILE *) 0; - } else { -#endif /* NNTP_ABLE */ - sprintf(buf, "%ld", art); - return (fopen(buf, "r")); -#ifdef NNTP_ABLE - } -#endif /* NNTP_ABLE */ -} - - -/* - * Open a mail/news article. Do MIME decoding if necessary. - * Return: - * A pointer to the open postprocessed file - * NULL pointer if article read fails in some way - */ -FILE * -open_art_fp( - struct t_group *group, - long art) -{ - FILE *art_fp = (FILE *) 0; - char buf[NNTP_STRLEN]; - -#ifdef NNTP_ABLE - if (read_news_via_nntp && group->type == GROUP_TYPE_NEWS) { - snprintf(buf, sizeof(buf), "ARTICLE %ld", art); - art_fp = nntp_command(buf, OK_ARTICLE, NULL, 0); - } else { -#endif /* NNTP_ABLE */ - 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); - snprintf(fbuf, sizeof(fbuf), "%ld", art); - joinpath(pbuf, buf, fbuf); - - art_fp = fopen(pbuf, "r"); -#ifdef NNTP_ABLE - } -#endif /* NNTP_ABLE */ - - return art_fp; -} - - -/* - * Longword comparison routine for the qsort() - */ -static int -base_comp( - t_comptype p1, - t_comptype p2) -{ - const long *a = (const long *) p1; - const long *b = (const long *) p2; - - if (*a < *b) - return -1; - - if (*a > *b) - return 1; - - return 0; -} - - -/* - * via NNTP: - * Issue a LISTGROUP command - * Read the article numbers existing in the group into base[] - * If the LISTGROUP failed, issue a GROUP command. Use the results to - * create a less accurate version of base[] - * This data will already be sorted - * - * on local spool: - * Read the spool dir to populate base[] as above. Sort it. - * - * Grow the arts[] and bitmaps as needed. - * NB: the output will be sorted on artnum - * - * grpmenu.max is one past top. - * Returns total number of articles in group, or -1 on error - */ -long -setup_hard_base( - struct t_group *group) -{ - char buf[NNTP_STRLEN]; - long art; - long total = 0; - - grpmenu.max = 0; - - /* - * If reading with NNTP, issue a LISTGROUP - */ - if (read_news_via_nntp && group->type == GROUP_TYPE_NEWS) { -#ifdef NNTP_ABLE - 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. - */ - snprintf(buf, sizeof(buf), "GROUP %s", group->name); - if (nntp_command(buf, OK_GROUP, NULL, 0) == NULL) - return -1; -# endif /* BROKEN_LISTGROUP */ - - /* - * See if LISTGROUP works - */ - 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); -# endif /* DEBUG */ - - while ((ptr = tin_fgets(fp, FALSE)) != NULL) { - if (grpmenu.max >= max_art) - expand_art(); - base[grpmenu.max++] = atoi(ptr); - } - - if (tin_errno) - return -1; - - } else { - /* - * LISTGROUP failed, use GROUP command instead - */ - long start, last, count; - char line[NNTP_STRLEN]; - - /* - * Handle the obscure case that the user aborted before the LISTGROUP - * had a chance to respond - */ - if (tin_errno) - return -1; - - snprintf(buf, sizeof(buf), "GROUP %s", group->name); - if (nntp_command(buf, OK_GROUP, line, sizeof(line)) == NULL) - return -1; - - if (sscanf(line, "%ld %ld %ld", &count, &start, &last) != 3) - return -1; - - total = count; - - if (last - count > start) - count = last - start; - - while (start <= last) { - if (grpmenu.max >= max_art) - expand_art(); - base[grpmenu.max++] = start++; - } - } -#endif /* NNTP_ABLE */ - /* - * Reading off local spool, read the directory files - */ - } else { - DIR *d; - DIR_BUF *e; - - make_base_group_path(group->spooldir, group->name, buf); - - if (access(buf, R_OK) != 0) { - error_message(_(txt_not_exist)); - return -1; - } - - if ((d = opendir(buf)) != NULL) { - while ((e = readdir(d)) != NULL) { - art = atol(e->d_name); - if (art >= 1) { - total++; - if (grpmenu.max >= max_art) - expand_art(); - base[grpmenu.max++] = art; - } - } - CLOSEDIR(d); - qsort((char *) base, (size_t) grpmenu.max, sizeof(long), base_comp); - } - } - - if (grpmenu.max) { - if (base[grpmenu.max - 1] > group->xmax) - group->xmax = base[grpmenu.max - 1]; - expand_bitmap(group, base[0]); - } - - return total; -} - - -void -vGet1GrpArtInfo( - struct t_group *grp) -{ - long lMinOld = grp->xmin; - long lMaxOld = grp->xmax; - - group_get_art_info(grp->spooldir, grp->name, grp->type, &grp->count, &grp->xmax, &grp->xmin); - - 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(); -#endif /* DEBUG */ - grp->newsrc.num_unread = grp->count; - } - - if (grp->xmin != lMinOld || grp->xmax != lMaxOld) { - expand_bitmap(grp, 0); -#ifdef DEBUG - my_printf(cCRLF "Min/Max DIFF %s old=[%ld-%ld] new=[%ld-%ld]", grp->name, lMinOld, lMaxOld, grp->xmin, grp->xmax); - my_flush(); -#endif /* DEBUG */ - } -} - - -/* - * Find the total, max & min articles number for specified group - * Use nntp GROUP command or read local spool - * Return 0, or -error - */ -int -group_get_art_info( - char *tin_spooldir, - char *groupname, - int grouptype, - long *art_count, - long *art_max, - long *art_min) -{ - DIR *dir; - DIR_BUF *direntry; - char buf[NNTP_STRLEN]; - long artnum; -#ifdef M_AMIGA - long artmin = *art_min; - long artmax = *art_max; -#endif /* M_AMIGA */ - - if (read_news_via_nntp && grouptype == GROUP_TYPE_NEWS) { -#ifdef NNTP_ABLE - char line[NNTP_STRLEN]; - - snprintf(buf, sizeof(buf), "GROUP %s", groupname); -# ifdef DEBUG - debug_nntp("group_get_art_info", buf); -# endif /* DEBUG */ - put_server(buf); - - switch (get_respcode(line, sizeof(line))) { - - case OK_GROUP: - if (sscanf(line, "%ld %ld %ld", art_count, art_min, art_max) != 3) - error_message(_("Invalid response to GROUP command, %s"), line); - break; - - case ERR_NOGROUP: - *art_count = 0; - *art_min = 1; - *art_max = 0; - return -ERR_NOGROUP; - - case ERR_ACCESS: - error_message("%s%s", cCRLF, line); - tin_done(NNTP_ERROR_EXIT); - /* keep lint quiet: */ - /* NOTREACHED */ - break; - - default: -# ifdef DEBUG - debug_nntp("NOT_OK", line); -# endif /* DEBUG */ - return -1; - } -#else - my_fprintf(stderr, _("Unreachable?\n")); - return 0; -#endif /* NNTP_ABLE */ - } else { -#ifdef M_AMIGA - if (!artmin) - *art_min = 1; - *art_max = artmax; - *art_count = artmax - *art_min + 1; -#else - *art_count = 0; - *art_min = 1; - *art_max = 0; - - make_base_group_path(tin_spooldir, groupname, buf); - - if ((dir = opendir(buf)) != NULL) { - while ((direntry = readdir(dir)) != NULL) { - artnum = atol(direntry->d_name); /* should be '\0' terminated... */ - if (artnum >= 1) { - if (artnum > *art_max) { - *art_max = artnum; - if (*art_min == 0) - *art_min = artnum; - } else if (artnum < *art_min) - *art_min = artnum; - (*art_count)++; - } - } - CLOSEDIR(dir); - } else - return -1; -#endif /* M_AMIGA */ - } - - return 0; -} - - -#if 0 -/* - * Stat a mail/news article to see if it still exists - */ -static t_bool -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) { - sprintf(buf, "STAT %ld", art); - return (nntp_command(buf, OK_NOTEXT, NULL, 0) != NULL); - } else -# endif /* NNTP_ABLE */ - { - struct stat sb; - - joinpath(buf, currgrp.spooldir, group_path); - sprintf(&buf[strlen(buf)], "/%ld", art); - - return (stat(buf, &sb) != -1); - } -} -#endif /* 0 */ - - -/* - * This will come in useful for filtering on non-overview hdr fields - */ -#if 0 -static FILE * -open_xhdr_fp( - char *header, - long min, - long max) -{ -# ifdef NNTP_ABLE - if (read_news_via_nntp && !read_saved_news && xhdr_cmd) { - char buf[NNTP_STRLEN]; - - snprintf(buf, sizeof(buf), "%s %s %ld-%ld", xhdr_cmd, header, min, max); - return (nntp_command(buf, OK_HEAD, NULL, 0)); - } else -# endif /* NNTP_ABLE */ - return (FILE *) 0; /* Some trick implementation for local spool... */ -} -#endif /* 0 */ diff -Nurp tin-1.7.1/src/page.c tin-1.7.2/src/page.c --- tin-1.7.1/src/page.c Sat Sep 13 16:46:15 2003 +++ tin-1.7.2/src/page.c Thu Oct 16 23:50:19 2003 @@ -3,7 +3,7 @@ * Module : page.c * Author : I. Lea & R. Skrenta * Created : 1991-04-01 - * Updated : 2003-09-12 + * Updated : 2003-10-11 * Notes : * * Copyright (c) 1991-2003 Iain Lea , Rich Skrenta @@ -69,13 +69,10 @@ t_openartinfo pgart = /* Global context }; int MORE_POS; /* set in set_win_size() */ -int RIGHT_POS; /* set in set_win_size() */ int last_resp; /* previous & current article # in arts[] for '-' command */ int this_resp; -static int tabwidth = 8; - static struct t_header *note_h = &pgart.hdr; /* Easy access to article headers */ static FILE *info_file; @@ -85,6 +82,7 @@ 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; @@ -672,6 +670,8 @@ page_goto_next_unread: case iKeyPageToggleTex2iso: /* toggle german TeX to ISO latin1 style conversion */ if (((group->attribute->tex2iso_conv) = !(group->attribute->tex2iso_conv))) pgart.tex2iso = is_art_tex_encoded(pgart.raw); + else + pgart.tex2iso = FALSE; resize_article(TRUE, &pgart); /* Also recooks it.. */ draw_page(group->name, 0); @@ -1051,11 +1051,9 @@ print_message_page( if (mbstowcs(wline, line, ARRAY_SIZE(wline) - 1) != (size_t) -1) { wline[ARRAY_SIZE(wline) - 1] = (wchar_t) '\0'; if (wcswidth(wline, ARRAY_SIZE(wline) - 1) >= cCOLS) { - int tmp; - wline[cCOLS] = (wint_t) '\0'; - if ((tmp = (int) wcstombs(NULL, wline, 0)) > 0) - bytes = tmp; + if ((bytes = (int) wcstombs(NULL, wline, 0)) <= 0) + bytes = strlen(line);; } } else # endif /* MULTIBYTE_ABLE && !NO_LOCALE */ @@ -1196,10 +1194,26 @@ draw_page( * Print an appropriate footer */ if (curr_line + ARTLINES >= artlines) { + char buf[LEN]; + int len; +#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) + wchar_t wbuf[LEN]; +#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 (mbstowcs(wbuf, buf, ARRAY_SIZE(wbuf)) != (size_t) (-1)) { + wbuf[ARRAY_SIZE(wbuf) - 1] = (wchar_t) '\0'; + wconvert_to_printable(wbuf); + len = wcswidth(wbuf, ARRAY_SIZE(wbuf)); + } else +#endif /* MULTIBYTE_ABLE && !NO_LOCALE */ + len = (int) strlen(buf); + clear_message(); - MoveCursor(cLINES, MORE_POS - (5 + BLANK_PAGE_COLS)); + MoveCursor(cLINES, cCOLS - len - (1 + BLANK_PAGE_COLS)); StartInverse(); - my_fputs(((arts[this_resp].thread != -1) ? _(txt_next_resp) : _(txt_last_resp)), stdout); + my_fputs(buf, stdout); my_flush(); EndInverse(); } else @@ -1271,240 +1285,490 @@ static void draw_page_header( const char *group) { - char buf[HEADER_LEN]; - char tmp[LEN]; /* what if cCOLS is > LEN? */ - int whichresp; - int x_resp; - int pos, i; - int grplen, maxlen, scrlen; - int mb_diff; + char *buf; + int i; + int whichresp, x_resp; + int right_len, center_pos; + size_t len, line_len; #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) - wchar_t wtmp[HEADER_LEN]; - wchar_t wbuf[HEADER_LEN]; + wchar_t *fmt_resp, *fmt_thread, *line, *wbuf, *wtmp; +#else + char *line, *tmp; #endif /* MULTIBYTE_ABLE && !NO_LOCALE */ whichresp = which_response(this_resp); x_resp = num_of_responses(which_thread(this_resp)); - if (!my_strftime(buf, sizeof(buf), "%a, %d %b %Y %H:%M:%S", - localtime(&arts[this_resp].date))) - strcpy(buf, BlankIfNull(note_h->date)); + line_len = LEN + 1; + buf = my_malloc(line_len); + + if (!my_strftime(buf, line_len, tinrc.date_format, localtime(&arts[this_resp].date))) { + strncpy(buf, BlankIfNull(note_h->date), line_len); + buf[line_len - 1] = '\0'; + } - /* - * Work out how much room we have for group name, allow 1 space before and - * after it - */ - grplen = strlen(group); #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) - if (mbstowcs(wtmp, buf, ARRAY_SIZE(wtmp)) != (size_t) -1) { - wtmp[ARRAY_SIZE(wtmp) - 1] = (wchar_t) '\0'; - scrlen = wcswidth(wtmp, ARRAY_SIZE(wtmp)); + line = my_malloc(line_len * sizeof(wchar_t)); + wbuf = my_malloc(line_len * sizeof(wchar_t)); + wtmp = my_malloc(line_len * sizeof(wchar_t)); + + /* convert to wide-char format strings */ + len = mbstowcs(NULL, _(txt_thread_x_of_n), 0) + 1; + if (len > 0) { + fmt_thread = my_malloc(len * sizeof(wchar_t)); + mbstowcs(fmt_thread, _(txt_thread_x_of_n), len); } else -#endif /* MULTIBYTE_ABLE && !NO_LOCALE */ - scrlen = strlen(buf); - maxlen = RIGHT_POS - scrlen - 2; + fmt_thread = NULL; - if (grplen < maxlen) - maxlen = grplen; + len = mbstowcs(NULL, _(txt_resp_x_of_n), 0) + 1; + if (len > 0) { + fmt_resp = my_malloc(len * sizeof(wchar_t)); + mbstowcs(fmt_resp, _(txt_resp_x_of_n), len); + } else + fmt_resp = NULL; /* - * Aesthetics - Add 3 to compensate for the fact that - * the left hand margin (date) is longer than the right hand margin - * Add also a compensation for multi-byte charsets + * determine the needed space for the text at the right hand margin + * the formating info (%4s) needs 3 positions but we need 4 positions + * on the screen for each counter. */ - mb_diff = strlen(buf) - scrlen; - pos = 3 + (cCOLS - maxlen) / 2; + if (fmt_thread && fmt_resp) + right_len = MAX((wcswidth(fmt_thread, wcslen(fmt_thread)) - 6 + 8), (wcswidth(fmt_resp, wcslen(fmt_resp)) - 6 + 8)); + else if (fmt_thread) + right_len = wcswidth(fmt_thread, wcslen(fmt_thread)) - 6 + 8; + else if (fmt_resp) + right_len = wcswidth(fmt_resp, wcslen(fmt_resp)) - 6 + 8; + else + right_len = 0; - for (i = strlen(buf); i < pos + mb_diff; i++) /* Pad out to left */ - buf[i] = ' '; + /* + * first line + */ + /* date */ + if (mbstowcs(wbuf, buf, line_len) == (size_t) (-1)) + wbuf[0] = (wchar_t) '\0'; /* conversion failed */ + else + wbuf[line_len - 1] = (wchar_t) '\0'; - buf[i] = '\0'; + wcsncpy(line, wbuf, line_len); + line[line_len - 1] = (wchar_t) '\0'; - trunc(group, buf + i, sizeof(buf) - i, maxlen); + /* + * determine max len for centered group name + * allow one space before and after group name + */ + len = cCOLS - 2 * MAX(wcswidth(wbuf, line_len), right_len) - 3; - for (i = strlen(buf); i < RIGHT_POS + mb_diff; i++) /* Pad out to right */ - buf[i] = ' '; + /* group name */ + if (mbstowcs(wbuf, group, line_len) == (size_t) (-1)) + wbuf[0] = (wchar_t) '\0'; /* conversion failed */ + else + wbuf[line_len - 1] = (wchar_t) '\0'; - buf[i] = '\0'; + wconvert_to_printable(wbuf); + if ((i = wcswidth(wbuf, line_len)) < (int) len) + len = i; + + center_pos = (cCOLS - len) / 2; + + /* pad out to left */ + wtmp[0] = (wchar_t) ' '; + wtmp[1] = (wchar_t) '\0'; + while (wcswidth(line, line_len) < center_pos && wcslen(line) < line_len - 1) + wcscat(line, wtmp); + + wcsncat(line, wstrunc(wbuf, wtmp, line_len, len), line_len - wcslen(line) - 1); + + /* pad out to right */ + wtmp[0] = (wchar_t) ' '; + wtmp[1] = (wchar_t) '\0'; + while (wcswidth(line, line_len) < cCOLS - right_len - 1 && wcslen(line) < line_len - 1) + wcscat(line, wtmp); + + /* thread info */ + /* can't eval tin_ltoa() more than once in a statement due to statics */ + if (fmt_thread) { + strcpy(buf, tin_ltoa(which_thread(this_resp) + 1, 4)); + swprintf(wbuf, line_len, fmt_thread, buf, tin_ltoa(grpmenu.max, 4)); + } else + wbuf[0] = (wchar_t) '\0'; -#ifdef HAVE_COLOR + wcsncat(line, wbuf, line_len - wcslen(line) - 1); + +# ifdef HAVE_COLOR fcol(tinrc.col_head); -#endif /* HAVE_COLOR */ +# endif /* HAVE_COLOR */ + + my_fputws(line, stdout); + my_fputs(cCRLF, stdout); + +#if 0 + /* display a ruler for layout checking purposes */ + my_fputs("....|....3....|....2....|....1....|....0....|....1....|....2....|....3....|....\n", stdout); +#endif /* 0 */ + + /* + * second line + */ + /* line count */ + if (arts[this_resp].line_count < 0) + strcpy(buf, "?"); + else + snprintf(buf, line_len, "%-4d", arts[this_resp].line_count); { - char x[5]; + wchar_t *fmt; - /* Can't eval tin_ltoa() more than once in a statement due to statics */ - strcpy(x, tin_ltoa(which_thread(this_resp) + 1, 4)); + len = mbstowcs(NULL, _(txt_lines), 0) + 1; + fmt = my_malloc(len * sizeof(wchar_t)); + if (mbstowcs(fmt, _(txt_lines), len) == (size_t) (-1)) + wbuf[0] = (wchar_t) '\0'; + else { + fmt[len - 1] = (wchar_t) '\0'; + swprintf(wbuf, line_len, fmt, buf); + } - snprintf(tmp, sizeof(tmp), _(txt_thread_x_of_n), buf, x, tin_ltoa(grpmenu.max, 4)); -#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) - if (mbstowcs(wtmp, tmp, ARRAY_SIZE(wtmp)) != (size_t) -1) { - wtmp[ARRAY_SIZE(wtmp) - 1] = (wchar_t) '\0'; - wcspart(wbuf, wtmp, cCOLS - 1, ARRAY_SIZE(wbuf), FALSE); - wcstombs(tmp, wbuf, sizeof(tmp)); - } else -#endif /* MULTIBYTE_ABLE && !NO_LOCALE */ - tmp[cCOLS - 1] = '\0'; /* FIXME: see also note in signal.c:set_win_size() */ - strcat(tmp, cCRLF); - my_fputs(tmp, stdout); + free(fmt); } + len = wcswidth(wbuf, line_len); + +# ifdef HAVE_COLOR + fcol(tinrc.col_head); +# endif /* HAVE_COLOR */ + + my_fputws(wbuf, stdout); + +# ifdef HAVE_COLOR + fcol(tinrc.col_subject); +# endif /* HAVE_COLOR */ + + /* tex2iso */ + if (pgart.tex2iso) { + mbstowcs(wtmp, "TeX ", line_len); + len += wcswidth(wtmp, line_len); + my_fputws(wtmp, stdout); + } + + /* subject */ /* - * An accurate line count will appear in the footer anyway + * TODO: why do we fall back to arts[this_resp].subject if !note_h->subj? + * if !note_h->subj then the article just has no subject, no matter + * what the overview says. */ - if (arts[this_resp].line_count < 0) - strcpy(tmp, "?"); + strncpy(buf, (note_h->subj ? note_h->subj : arts[this_resp].subject), line_len); + buf[line_len - 1] = '\0'; + if (mbstowcs(wtmp, buf, line_len) == (size_t) (-1)) + wtmp[0] = (wchar_t) '\0'; /* conversion failed */ + else + wtmp[line_len - 1] = (wchar_t) '\0'; + wconvert_to_printable(wtmp); + if (wcswidth(wtmp, line_len) > cCOLS - 2 * right_len - 3) + wstrunc(wtmp, wbuf, line_len, cCOLS - 2 * right_len - 3); else - snprintf(tmp, sizeof(tmp), "%-4d", arts[this_resp].line_count); + wcscpy(wbuf, wtmp); -#ifdef HAVE_COLOR + center_pos = (cCOLS - wcswidth(wbuf, line_len)) / 2; + + /* pad out to left */ + line[0] = (wchar_t) '\0'; + wtmp[0] = (wchar_t) ' '; + wtmp[1] = (wchar_t) '\0'; + while (wcswidth(line, line_len) < center_pos - (int) len && wcslen(line) < line_len - 1) + wcscat(line, wtmp); + + len += wcswidth(line, line_len); + my_fputws(line, stdout); + + StartInverse(); + my_fputws(wbuf, stdout); + EndInverse(); + len += wcswidth(wbuf, line_len); + +# ifdef HAVE_COLOR + fcol(tinrc.col_response); +# endif /* HAVE_COLOR */ + + /* pad out to right */ + line[0] = (wchar_t) '\0'; + wtmp[0] = (wchar_t) ' '; + wtmp[1] = (wchar_t) '\0'; + while (wcswidth(line, line_len) < cCOLS - right_len - (int) len - 1 && wcslen(line) < line_len - 1) + wcscat(line, wtmp); + + my_fputws(line, stdout); + + if (whichresp) { + if (fmt_resp) { + swprintf(line, line_len, fmt_resp, whichresp, x_resp); + my_fputws(line, stdout); + } + } else { + if (!x_resp) + my_printf(_(txt_no_responses)); + else if (x_resp == 1) + my_printf(_(txt_1_resp)); + else + my_printf(_(txt_x_resp), x_resp); + } + my_fputs(cCRLF, stdout); + + /* + * third line + */ + /* from */ + /* + * TODO: don't use arts[this_resp].name/arts[this_resp].from + * split up note_h->from and use that instead as it might + * be different _if_ the overviews are broken + */ + if (arts[this_resp].name) + snprintf(buf, line_len, "%s <%s>", arts[this_resp].name, arts[this_resp].from); + else { + strncpy(buf, arts[this_resp].from, line_len); + buf[line_len - 1] = '\0'; + } + + if (mbstowcs(wbuf, buf, line_len) == (size_t) (-1)) + line[0] = (wchar_t) '\0'; + wstrunc(wbuf, line, line_len, cCOLS - 1); + + /* organization */ + if (note_h->org) { + snprintf(buf, line_len, _(txt_at_s), note_h->org); + + if (mbstowcs(wbuf, buf, line_len) == (size_t) (-1)) + wbuf[0] = (wchar_t) '\0'; + wconvert_to_printable(wbuf); + + if (wcswidth(line, line_len) + wcswidth(wbuf, line_len) >= cCOLS - 1) { + wcsncat(line, wbuf, line_len - wcslen(line) - 1); + wcscpy(wbuf, line); + wstrunc(wbuf, line, line_len, cCOLS - 1); + } else { + i = cCOLS - 1 - wcswidth(wbuf, line_len); + + wtmp[0] = (wchar_t) ' '; + wtmp[1] = (wchar_t) '\0'; + while(wcswidth(line, line_len) < i && wcslen(line) < line_len - 1) + wcscat(line, wtmp); + wcsncat(line, wbuf, line_len - wcslen(line) - 1); + } + } + +# ifdef HAVE_COLOR + fcol(tinrc.col_from); +# endif /* HAVE_COLOR */ + + my_fputws(line, stdout); + my_fputs(cCRLF, stdout); + my_fputs(cCRLF, stdout); + + /* clean up */ + free(line); + free(wbuf); + free(wtmp); + FreeIfNeeded(fmt_thread); + FreeIfNeeded(fmt_resp); + +#else /* !MULTIBYTE_ABLE || NO_LOCALE */ + + line = my_malloc(line_len); + tmp = my_malloc(line_len); + + /* + * determine the needed space for the text at the right hand margin + * 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)); + + /* + * first line + */ + /* date */ + strncpy(line, buf, line_len); + line[line_len - 1] = '\0'; + + /* + * determine max len for centered group name + * allow one space before and after group name + */ + len = cCOLS - 2 * MAX((int) strlen(buf), right_len) - 3; + + /* group name */ + if ((i = strlen(group)) < (int) len) + len = i; + + center_pos = (cCOLS - len) / 2; + + /* pad out to left */ + for (i = strlen(line); i < center_pos && i < (int) line_len - 1; i++) + line[i] = ' '; + line[i] = '\0'; + + strunc(group, line + i, line_len - i, len); + + /* pad out to right */ + for (i = strlen(line); i < cCOLS - right_len - 1 && i < (int) line_len - 1; i++) + line[i] = ' '; + line[i] = '\0'; + + /* thread info */ + /* can't eval tin_ltoa() more than once in a statement due to statics */ + strcpy(tmp, tin_ltoa(which_thread(this_resp) + 1, 4)); + snprintf(buf, line_len, _(txt_thread_x_of_n), tmp, tin_ltoa(grpmenu.max, 4)); + + strncat(line, buf, line_len - strlen(line) - 1); + +# ifdef HAVE_COLOR fcol(tinrc.col_head); -#endif /* HAVE_COLOR */ +# endif /* HAVE_COLOR */ - snprintf(buf, sizeof(buf), _(txt_lines), tmp); -#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) - if (mbstowcs(wtmp, buf, ARRAY_SIZE(wtmp)) != (size_t) -1) { - wtmp[ARRAY_SIZE(wtmp) - 1] = (wchar_t) '\0'; - i = wcswidth(wtmp, ARRAY_SIZE(wtmp)); - } else -#endif /* MULTIBYTE_ABLE && !NO_LOCALE */ - i = strlen(buf); - my_fputs(buf, stdout); + my_fputs(line, stdout); + my_fputs(cCRLF, stdout); -#ifdef HAVE_COLOR - fcol(tinrc.col_subject); -#endif /* HAVE_COLOR */ +#if 0 + /* display a ruler for layout checking purposes */ + my_fputs("....|....3....|....2....|....1....|....0....|....1....|....2....|....3....|....\n", stdout); +#endif /* 0 */ /* - * TODO: the "TeX "-text is keept in the header even after toggeling - * tex2iso off + * second line */ + /* line count */ + /* an accurate line count will appear in the footer anymay */ + if (arts[this_resp].line_count < 0) + strcpy(buf, "?"); + else + snprintf(buf, line_len, "%-4d", arts[this_resp].line_count); + + snprintf(line, line_len, _(txt_lines), buf); + + len = strlen(line); + +# ifdef HAVE_COLOR + fcol(tinrc.col_head); +# endif /* HAVE_COLOR */ + + my_fputs(line, stdout); + +# ifdef HAVE_COLOR + fcol(tinrc.col_subject); +# endif /* HAVE_COLOR */ + + /* tex2iso */ if (pgart.tex2iso) { strcpy(buf, "TeX "); - i += strlen(buf); + len += strlen(buf); my_fputs(buf, stdout); } + /* subject */ /* * TODO: why do we fall back to arts[this_resp].subject if !note_h->subj? * if !note_h->subj then the article just has no subject, no matter * what the overview says. */ - strncpy(buf, (note_h->subj ? note_h->subj : arts[this_resp].subject), sizeof(buf) - 1); + strncpy(buf, (note_h->subj ? note_h->subj : arts[this_resp].subject), line_len); + buf[line_len - 1] = '\0'; -#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) - if (mbstowcs(wtmp, buf, ARRAY_SIZE(wtmp)) != (size_t) -1) { - wtmp[ARRAY_SIZE(wtmp) - 1] = (wchar_t) '\0'; - wtrunc(wtmp, wbuf, ARRAY_SIZE(wbuf), RIGHT_POS - 5 - i); - scrlen = wcswidth(wbuf, ARRAY_SIZE(wbuf)); - wcstombs(buf, wbuf, sizeof(wbuf)); - } else -#endif /* MULTIBYTE_ABLE && !NO_LOCALE */ - { - STRCPY(tmp, buf); - trunc(tmp, buf, sizeof(buf), RIGHT_POS - 5 - i); - scrlen = (int) strlen(buf); + convert_to_printable(buf); + if ((int) strlen(buf) > cCOLS - 2 * right_len - 3) + strunc(buf, line, line_len, cCOLS - 2 * right_len - 3); + else { + strncpy(line, buf, line_len); + buf[line_len - 1] = '\0'; } - pos = ((cCOLS - scrlen) / 2) - 2; - - MoveCursor(1, ((pos > i) ? pos : i)); + center_pos = (cCOLS - strlen(line)) / 2; - convert_to_printable(buf); + /* pad out to left */ + tmp[0] = '\0'; + for (i = 0; i < center_pos - (int) len && i < (int) line_len - 1; i++) + tmp[i] = ' '; + tmp[i] = '\0'; + len += strlen(tmp); + my_fputs(tmp, stdout); StartInverse(); - my_fputs(buf, stdout); + my_fputs(line, stdout); EndInverse(); + len += strlen(line); -#ifdef HAVE_COLOR +# ifdef HAVE_COLOR fcol(tinrc.col_response); -#endif /* HAVE_COLOR */ +# endif /* HAVE_COLOR */ + + /* pad out to right */ + tmp[0] = '\0'; + for (i = 0; i < cCOLS - right_len - (int) len - 1 && i < (int) line_len - 1; i++) + tmp[i] = ' '; + tmp[i] = '\0'; + + my_fputs(tmp, stdout); - MoveCursor(1, RIGHT_POS); if (whichresp) - my_printf(_(txt_resp_x_of_n), whichresp, x_resp, cCRLF); + my_printf(_(txt_resp_x_of_n), whichresp, x_resp); else { if (!x_resp) - my_printf(_(txt_no_resp), cCRLF); + my_printf(_(txt_no_responses)); else if (x_resp == 1) - my_printf(_(txt_1_resp), cCRLF); + my_printf(_(txt_1_resp)); else - my_printf(_(txt_x_resp), x_resp, cCRLF); + my_printf(_(txt_x_resp), x_resp); } + my_fputs(cCRLF, stdout); -#ifdef HAVE_COLOR - fcol(tinrc.col_normal); -#endif /* HAVE_COLOR */ - + /* + * third line + */ + /* from */ /* * TODO: don't use arts[this_resp].name/arts[this_resp].from * split up note_h->from and use that instead as it might * be different _if_ the overviews are broken */ if (arts[this_resp].name) - snprintf(buf, sizeof(buf), "%s <%s>", arts[this_resp].name, arts[this_resp].from); - else - strncpy(buf, arts[this_resp].from, sizeof(buf)); - -#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) - if (mbstowcs(wtmp, buf, ARRAY_SIZE(wtmp) - 1) != (size_t) -1) { - wtmp[ARRAY_SIZE(wtmp) - 1] = (wchar_t) '\0'; - wtrunc(wtmp, wbuf, ARRAY_SIZE(wbuf), cCOLS - 1); - } else -#endif /* MULTIBYTE_ABLE && !NO_LOCALE */ - { - STRCPY(tmp, buf); - trunc(tmp, buf, sizeof(buf), cCOLS - 1); + snprintf(buf, line_len, "%s <%s>", arts[this_resp].name, arts[this_resp].from); + else { + strncpy(buf, arts[this_resp].from, line_len); + buf[line_len - 1] = '\0'; } + strcpy(tmp, buf); + strunc(tmp, buf, line_len, cCOLS - 1); + if (note_h->org) { - snprintf(tmp, sizeof(tmp), _(txt_at_s), note_h->org); + snprintf(tmp, line_len, _(txt_at_s), note_h->org); -#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) - if (mbstowcs(wtmp, tmp, ARRAY_SIZE(wtmp)) != (size_t) -1) { - wtmp[ARRAY_SIZE(wtmp) - 1] = (wchar_t) '\0'; - wconvert_to_printable(wtmp); - - if (wcswidth(wbuf, ARRAY_SIZE(wbuf)) + wcswidth(wtmp, ARRAY_SIZE(wtmp)) >= cCOLS - 1) { - wcsncat(wbuf, wtmp, ARRAY_SIZE(wbuf) - wcslen(wbuf) - 1); - wcscpy(wtmp, wbuf); - wtrunc(wtmp, wbuf, ARRAY_SIZE(wbuf), cCOLS - 1); - } else { - int j = cCOLS - 1 - wcswidth(wtmp, ARRAY_SIZE(wtmp)) - wcswidth(wbuf, ARRAY_SIZE(wbuf)); - - pos = wcslen(wbuf); - for (i = 0; i < j; i++) - wbuf[pos + i] = (wchar_t) ' '; - wbuf[pos + i] = (wchar_t) '\0'; - wcsncat(wbuf, wtmp, ARRAY_SIZE(wbuf) - wcslen(wbuf) - 1); - } - } else -#endif /* MULTIBYTE_ABLE && !NO_LOCALE */ - if ((int) strlen(buf) + (int) strlen(tmp) >= cCOLS - 1) { - strncat(buf, tmp, sizeof(buf) - strlen(buf) - 1); - STRCPY(tmp, buf); - trunc(tmp, buf, sizeof(buf), cCOLS - 1); - } else { - pos = cCOLS - 1 - (int) strlen(tmp); - for (i = strlen(buf); i < pos; i++) - buf[i] = ' '; - buf[i] = '\0'; - strncat(buf, tmp, sizeof(buf) - 1); - } + if ((int) strlen(buf) + (int) strlen(tmp) >= cCOLS - 1) { + strncat(buf, tmp, line_len - strlen(buf) - 1); + strcpy(tmp, buf); + strunc(tmp, buf, line_len, cCOLS - 1); + } else { + len = cCOLS - 1 - (int) strlen(tmp); + for (i = strlen(buf); i < (int) len; i++) + buf[i] = ' '; + buf[i] = '\0'; + strncat(buf, tmp, line_len - strlen(buf) - 1); + } } -#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) - if (wcslen(wbuf)) - wcstombs(buf, wbuf, sizeof(buf)); -#endif /* MULTIBYTE_ABLE && !NO_LOCALE */ - - convert_to_printable(strip_line(buf)); + convert_to_printable(buf); #ifdef HAVE_COLOR fcol(tinrc.col_from); #endif /* HAVE_COLOR */ - my_printf("%s%s%s", buf, cCRLF, cCRLF); + my_fputs(buf, stdout); + my_fputs(cCRLF, stdout); + my_fputs(cCRLF, stdout); + + /* clean up */ + free(line); + free(tmp); +#endif /* MULTIBYTE_ABLE && !NO_LOCALE */ + free(buf); #ifdef HAVE_COLOR fcol(tinrc.col_normal); @@ -1656,7 +1920,7 @@ process_search( switch (help_level) { case PAGE_LEVEL: - draw_page(CURR_GROUP.name, 0); + draw_page(curr_group->name, 0); break; case INFO_PAGER: @@ -1696,6 +1960,7 @@ toggle_raw( if (!pgart.rawl) { /* Already done this for this article? */ char *line; char *p; + int num_chars; long offset; j = 0; @@ -1704,10 +1969,9 @@ toggle_raw( offset = ftell(pgart.raw); while (NULL != (line = tin_fgets(pgart.raw, FALSE))) { - int num_chars; #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) int num_bytes; - t_bool is_illegal; + t_bool is_illegal = TRUE; wchar_t wline[LEN]; #endif /* MULTIBYTE_ABLE && !NO_LOCALE */ @@ -1720,7 +1984,6 @@ toggle_raw( } #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) - is_illegal = TRUE; if ((size_t) -1 != mbstowcs(wline, line, ARRAY_SIZE(wline) - 1)) { wline[ARRAY_SIZE(wline) - 1] = (wchar_t) '\0'; num_chars = wcswidth(wline, ARRAY_SIZE(wline) -1); @@ -1814,13 +2077,13 @@ static void process_url( void) { - char buf[LEN]; char *ptr; + char buf[LEN]; + char ubuf[LEN]; + char url[LEN]; int i; int offsets[6]; int offsets_size = ARRAY_SIZE(offsets); - char url[LEN]; - char ubuf[LEN]; /* * TODO: handle mailto: and news: (not NNTP) URLs internally diff -Nurp tin-1.7.1/src/post.c tin-1.7.2/src/post.c --- tin-1.7.1/src/post.c Sat Sep 13 16:45:49 2003 +++ tin-1.7.2/src/post.c Thu Oct 16 03:04:11 2003 @@ -3,7 +3,7 @@ * Module : post.c * Author : I. Lea * Created : 1991-04-01 - * Updated : 2003-09-13 + * Updated : 2003-10-15 * Notes : mail/post/replyto/followup/repost & cancel articles * * Copyright (c) 1991-2003 Iain Lea @@ -149,9 +149,10 @@ static t_bool address_in_list(const char static t_bool append_mail(const char *the_article, const char *addr, const char *the_mailbox); static t_bool backup_article(const char *the_article); static t_bool check_for_spamtrap(const char *addr); -static t_bool create_normal_article_headers(struct t_group *psGrp, const char *newsgroups, int art_type); +static t_bool create_normal_article_headers(struct t_group *group, const char *newsgroups, int art_type); static t_bool damaged_id(const char *id); static t_bool fetch_postponed_article(const char tmp_file[], char subject[], char newsgroups[]); +static t_bool insert_from_header(const char *infile); static t_bool is_crosspost(const char *xref); static t_bool must_include(const char *id); static t_bool repair_article(char *result, struct t_group *group); @@ -173,9 +174,6 @@ static void update_posted_info_file(cons #ifdef FORGERY static void make_path_header(char *line); #endif /* FORGERY */ -#ifndef M_AMIGA - static t_bool insert_from_header(const char *infile); -#endif /* !M_AMIGA */ #ifdef EVIL_INSIDE static const char *build_messageid(void); static char *radix32(unsigned long int num); @@ -1434,7 +1432,7 @@ setup_check_article_screen( static int post_loop( int type, /* type of posting */ - struct t_group *psGrp, + struct t_group *group, char ch, /* default prompt char */ const char *posting_msg,/* displayed just prior to article submission */ int art_type, /* news, mail etc. */ @@ -1457,16 +1455,16 @@ post_article_loop: * Code existed to recheck subject and restart editor, but * is not enabled */ - artchanged = FILE_CHANGED(article); + artchanged = file_mtime(article); if (!invoke_editor(article, offset)) goto post_article_postponed; ret_code = POSTED_REDRAW; /* This might be erroneous with posting postponed */ if (file_size(article) > 0L) { - if (artchanged == FILE_CHANGED(article)) + if (artchanged == file_mtime(article)) art_unchanged = TRUE; - while ((i = check_article_to_be_posted(article, art_type, &psGrp, art_unchanged)) == 1 && repair_article(&ch, psGrp)) + while ((i = check_article_to_be_posted(article, art_type, &group, art_unchanged)) == 1 && repair_article(&ch, group)) ; if (ch == iKeyPostEdit || ch == iKeyOptionMenu) break; @@ -1476,9 +1474,9 @@ post_article_loop: case iKeyQuit: case iKeyAbort: if (tinrc.unlink_article) { -#if 0 /* usefull */ +#if 0 /* usefull? */ if (tinrc.keep_dead_articles) - append_file(dead_articles, dead_article); + append_file(dead_articles, dead_article); #endif /* 0 */ unlink(article); } @@ -1486,14 +1484,14 @@ post_article_loop: return ret_code; case iKeyOptionMenu: - (void) change_config_file(psGrp); - while ((i = check_article_to_be_posted(article, art_type, &psGrp, art_unchanged) == 1) && repair_article(&ch, psGrp)) + (void) change_config_file(group); + while ((i = check_article_to_be_posted(article, art_type, &group, art_unchanged) == 1) && repair_article(&ch, group)) ; break; #ifdef HAVE_ISPELL case iKeyPostIspell: - invoke_ispell(article, psGrp); + invoke_ispell(article, group); ret_code = POSTED_REDRAW; /* not all versions did this */ break; #endif /* HAVE_ISPELL */ @@ -1512,10 +1510,10 @@ post_article_loop: /* Functions that didn't handle mail didn't do this */ if (art_type == GROUP_TYPE_NEWS) { - if (submit_news_file(article, psGrp, a_message_id)) + if (submit_news_file(article, group, a_message_id)) ret_code = POSTED_OK; } else { - if (submit_mail_file(article, psGrp)) /* mailing_list */ + if (submit_mail_file(article, group)) /* mailing_list */ ret_code = POSTED_OK; } @@ -1615,7 +1613,7 @@ post_article_done: if ((art_fp = fopen(article, "r")) == NULL) perror_message(_(txt_cannot_open), article); else { - curr_group = psGrp; + curr_group = group; parse_rfc822_headers(&header, art_fp, NULL); fclose(art_fp); } @@ -1637,8 +1635,8 @@ post_article_done: * 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 ((psGrp = group_find(header.newsgroups)) && (type != POST_POSTPONED || (type == POST_POSTPONED && !strchr(header.newsgroups, ',')))) { - quick_filter_select_posted_art(psGrp, header.subj, a_message_id); + 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); } @@ -1690,7 +1688,7 @@ post_article_done: * add Date:, remove empty headers */ add_headers(article, a_message_id); - if (!strfpath(posted_msgs_file, a_mailbox, sizeof(a_mailbox), psGrp)) + if (!strfpath(posted_msgs_file, a_mailbox, sizeof(a_mailbox), group)) STRCPY(a_mailbox, posted_msgs_file); if (!append_mail(article, userid, a_mailbox)) { /* TODO: error message */ @@ -1719,38 +1717,38 @@ check_moderated( int *art_type, const char *failmsg) { - char *group; + char *groupname; char newsgroups[HEADER_LEN]; - struct t_group *psGrp; - struct t_group *psretGrp = NULL; + struct t_group *group; + struct t_group *first_group = NULL; int vnum = 0, bnum = 0; /* Take copy - strtok() modifies its args */ STRCPY(newsgroups, groups); - group = strtok(newsgroups, ","); + groupname = strtok(newsgroups, ","); do { vnum++; /* number of newsgroups */ - if (!(psGrp = group_find(group))) { + if (!(group = group_find(groupname))) { bnum++; /* number of bogus groups */ continue; } - if (!psretGrp) /* Save ptr to the 1st group */ - psretGrp = psGrp; + if (!first_group) /* Save ptr to the 1st group */ + first_group = group; /* * Testing for !attribute here is a useful check for other brokenness * Generally only bogus groups should have no attributes */ - if (psGrp->bogus) { - error_message(_("%s is bogus"), group); /* TODO: -> lang.c */ + if (group->bogus) { + error_message(_("%s is bogus"), groupname); /* TODO: -> lang.c */ return NULL; } - if (psGrp->attribute->mailing_list != NULL) + if (group->attribute->mailing_list != NULL) *art_type = GROUP_TYPE_MAIL; if (!can_post && *art_type == GROUP_TYPE_NEWS) { @@ -1758,25 +1756,25 @@ check_moderated( return NULL; } - if (psGrp->moderated == 'x' || psGrp->moderated == 'n') { - error_message(_(txt_cannot_post_group), psGrp->name); + if (group->moderated == 'x' || group->moderated == 'n') { + error_message(_(txt_cannot_post_group), group->name); return NULL; } - if (psGrp->moderated == 'm') { - snprintf(mesg, sizeof(mesg), _(txt_group_is_moderated), group); + if (group->moderated == 'm') { + snprintf(mesg, sizeof(mesg), _(txt_group_is_moderated), groupname); if (prompt_yn(cLINES, mesg, TRUE) != 1) { /* Raw(FALSE); */ error_message(failmsg); return NULL; } } - } while ((group = strtok(NULL, ",")) != NULL); + } while ((groupname = strtok(NULL, ",")) != NULL); if (vnum > bnum) - return psretGrp; + return first_group; else { - error_message(_(txt_not_in_active_file), group); + error_message(_(txt_not_in_active_file), groupname); return NULL; } } @@ -1789,7 +1787,7 @@ check_moderated( */ static t_bool create_normal_article_headers( - struct t_group *psGrp, + struct t_group *group, const char *newsgroups, int art_type) { @@ -1798,7 +1796,7 @@ create_normal_article_headers( char tmp[HEADER_LEN]; /* Get subject for posting article - Limit the display if needed */ - trunc(tinrc.default_post_subject, tmp, sizeof(tmp), DISPLAY_SUBJECT_LEN); + strunc(tinrc.default_post_subject, tmp, sizeof(tmp), DISPLAY_SUBJECT_LEN); snprintf(mesg, sizeof(mesg), _(txt_post_subject), tmp); @@ -1812,7 +1810,7 @@ create_normal_article_headers( fchmod(fileno(fp), (mode_t) (S_IRUSR|S_IWUSR)); - get_from_name(from_name, psGrp); + get_from_name(from_name, group); #ifdef FORGERY make_path_header(tmp); msg_add_header("Path", tmp); @@ -1821,14 +1819,14 @@ create_normal_article_headers( msg_add_header("Subject", tinrc.default_post_subject); if (art_type == GROUP_TYPE_MAIL) - msg_add_header("To", psGrp->attribute->mailing_list); + msg_add_header("To", group->attribute->mailing_list); else { msg_add_header("Newsgroups", newsgroups); ADD_MSG_ID_HEADER(); } - if (psGrp->attribute->followup_to != NULL && art_type == GROUP_TYPE_NEWS) - msg_add_header("Followup-To", psGrp->attribute->followup_to); + 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", ""); @@ -1837,8 +1835,8 @@ create_normal_article_headers( if (*reply_to) msg_add_header("Reply-To", reply_to); - if (psGrp->attribute->organization != NULL) - msg_add_header("Organization", random_organization(psGrp->attribute->organization)); + if (group->attribute->organization != NULL) + msg_add_header("Organization", random_organization(group->attribute->organization)); if (*my_distribution && art_type == GROUP_TYPE_NEWS) msg_add_header("Distribution", my_distribution); @@ -1846,15 +1844,15 @@ create_normal_article_headers( msg_add_header("Summary", ""); msg_add_header("Keywords", ""); - msg_add_x_headers(psGrp->attribute->x_headers); + msg_add_x_headers(group->attribute->x_headers); start_line_offset = msg_write_headers(fp) + 1; fprintf(fp, "\n"); /* add a newline to keep vi from bitching */ msg_free_headers(); - start_line_offset += msg_add_x_body(fp, psGrp->attribute->x_body); + start_line_offset += msg_add_x_body(fp, group->attribute->x_body); - msg_write_signature(fp, FALSE, psGrp); + msg_write_signature(fp, FALSE, group); fclose(fp); cursoron(); return TRUE; @@ -1870,7 +1868,7 @@ quick_post_article( { char buf[HEADER_LEN]; int art_type = GROUP_TYPE_NEWS; - struct t_group *psGrp; + struct t_group *group; msg_init_headers(); ClearScreen(); @@ -1901,13 +1899,13 @@ quick_post_article( /* * Check/see if any of the newsgroups are not postable. */ - if ((psGrp = check_moderated(tinrc.default_post_newsgroups, &art_type, _(txt_exiting))) == NULL) + if ((group = check_moderated(tinrc.default_post_newsgroups, &art_type, _(txt_exiting))) == NULL) return; - if (!create_normal_article_headers(psGrp, tinrc.default_post_newsgroups, art_type)) + if (!create_normal_article_headers(group, tinrc.default_post_newsgroups, art_type)) return; - post_loop(POST_QUICK, psGrp, iKeyPostEdit, _(txt_posting), art_type, start_line_offset); + post_loop(POST_QUICK, group, iKeyPostEdit, _(txt_posting), art_type, start_line_offset); } @@ -1933,7 +1931,7 @@ post_postponed_article( if ((p = strchr(ng, ',')) != NULL) *p = '\0'; - snprintf(buf, sizeof(buf), _("Posting: %.*s ..."), (int) (cCOLS - 14), subject); /* TODO: -> lang.c */ + snprintf(buf, sizeof(buf), _("Posting: %.*s ..."), (int) (cCOLS - 14), subject); /* TODO: -> lang.c, use strunc() */ post_loop(POST_POSTPONED, group_find(ng), (ask ? iKeyPostEdit : iKeyPostPost3), buf, GROUP_TYPE_NEWS, 0); free(ng); return; @@ -2159,10 +2157,10 @@ postpone_article( */ t_bool post_article( - const char *group) + const char *groupname) { int art_type = GROUP_TYPE_NEWS; - struct t_group *psGrp; + struct t_group *group; t_bool redraw_screen = FALSE; msg_init_headers(); @@ -2170,13 +2168,13 @@ post_article( /* * Check that we can post to all the groups we want to */ - if ((psGrp = check_moderated(group, &art_type, "")) == NULL) + if ((group = check_moderated(groupname, &art_type, "")) == NULL) return redraw_screen; - if (!create_normal_article_headers(psGrp, group, art_type)) + if (!create_normal_article_headers(group, groupname, art_type)) return redraw_screen; - return (post_loop(POST_NORMAL, psGrp, iKeyPostEdit, _(txt_posting), art_type, start_line_offset) != POSTED_NONE); + return (post_loop(POST_NORMAL, group, iKeyPostEdit, _(txt_posting), art_type, start_line_offset) != POSTED_NONE); } @@ -2401,7 +2399,7 @@ join_references( int /* return code is currently ignored! */ post_response( - const char *group, + const char *groupname, int respnum, t_bool copy_text, t_bool with_headers, @@ -2415,7 +2413,7 @@ post_response( char initials[64]; int art_type = GROUP_TYPE_NEWS; int ret_code = POSTED_NONE; - struct t_group *psGrp; + struct t_group *group; struct t_header note_h = pgart.hdr; t_bool use_followup_to = TRUE; #ifdef FORGERY @@ -2453,9 +2451,9 @@ post_response( return ret_code; default: - return mail_to_author(group, respnum, copy_text, with_headers, FALSE); + return mail_to_author(groupname, respnum, copy_text, with_headers, FALSE); } - } else if (note_h.followup && strcmp(note_h.followup, group) != 0 + } 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]; @@ -2516,8 +2514,8 @@ post_response( fchmod(fileno(fp), (mode_t) (S_IRUSR|S_IWUSR)); - psGrp = group_find(group); - get_from_name(from_name, psGrp); + group = group_find(groupname); + get_from_name(from_name, group); #ifdef FORGERY make_path_header(line); msg_add_header("Path", line); @@ -2529,23 +2527,23 @@ post_response( msg_add_header("Subject", bigbuf); free(ptr); - if (psGrp && psGrp->attribute->x_comment_to && note_h.from) + if (group && group->attribute->x_comment_to && note_h.from) 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) msg_add_header("Followup-To", (strchr(note_h.followup, ',') != NULL) ? note_h.followup : ""); } else { - if (psGrp && psGrp->attribute->mailing_list) { - msg_add_header("To", psGrp->attribute->mailing_list); + if (group && group->attribute->mailing_list) { + msg_add_header("To", group->attribute->mailing_list); art_type = GROUP_TYPE_MAIL; } else { msg_add_header("Newsgroups", note_h.newsgroups); if (tinrc.prompt_followupto) msg_add_header("Followup-To", (strchr(note_h.newsgroups, ',') != NULL) ? note_h.newsgroups : ""); - if (psGrp && psGrp->attribute->followup_to != NULL) { - msg_add_header("Followup-To", psGrp->attribute->followup_to); + if (group && group->attribute->followup_to != NULL) { + msg_add_header("Followup-To", group->attribute->followup_to); } else { if ((ptr = strchr(note_h.newsgroups, ','))) msg_add_header("Followup-To", note_h.newsgroups); @@ -2562,8 +2560,8 @@ post_response( } else msg_add_header("References", note_h.messageid); - if (psGrp && psGrp->attribute->organization != NULL) - msg_add_header("Organization", random_organization(psGrp->attribute->organization)); + if (group && group->attribute->organization != NULL) + msg_add_header("Organization", random_organization(group->attribute->organization)); if (*reply_to) msg_add_header("Reply-To", reply_to); @@ -2576,17 +2574,17 @@ post_response( msg_add_header("Distribution", my_distribution); } - msg_add_x_headers(psGrp->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, psGrp->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(psGrp->name, respnum, buf, sizeof(buf), tinrc.xpost_quote_format)) + if (strfquote(group->name, respnum, buf, sizeof(buf), tinrc.xpost_quote_format)) fprintf(fp, "%s\n", buf); - } else if (strfquote(group, respnum, buf, sizeof(buf), (psGrp && psGrp->attribute->news_quote_format != NULL) ? psGrp->attribute->news_quote_format : tinrc.news_quote_format)) + } 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); start_line_offset++; @@ -2605,7 +2603,7 @@ post_response( fseek(pgart.raw, 0L, SEEK_SET); if (with_headers && raw_data) - copy_body(pgart.raw, fp, (psGrp ? psGrp->attribute->quote_chars : tinrc.quote_chars), initials, TRUE); + copy_body(pgart.raw, fp, (group ? group->attribute->quote_chars : tinrc.quote_chars), initials, TRUE); else { if (raw_data) { long offset = 0L; @@ -2618,7 +2616,7 @@ post_response( break; } fseek(pgart.raw, offset, SEEK_SET); - copy_body(pgart.raw, fp, (psGrp ? psGrp->attribute->quote_chars : tinrc.quote_chars), initials, TRUE); + copy_body(pgart.raw, fp, (group ? group->attribute->quote_chars : tinrc.quote_chars), initials, TRUE); } else { /* cooked art */ resize_article(FALSE, &pgart); if (with_headers) { @@ -2639,20 +2637,20 @@ post_response( fseek(pgart.cooked, pgart.cookl[i].offset, SEEK_SET); /* skip headers and header/body separator */ } - copy_body(pgart.cooked, fp, (psGrp ? psGrp->attribute->quote_chars : tinrc.quote_chars), initials, FALSE); + copy_body(pgart.cooked, fp, (group ? group->attribute->quote_chars : tinrc.quote_chars), initials, FALSE); } } } else /* !copy_text */ fprintf(fp, "\n"); /* add a newline to keep vi from bitching */ - msg_write_signature(fp, FALSE, psGrp); + msg_write_signature(fp, FALSE, group); fclose(fp); resize_article(TRUE, &pgart); /* rebreak long lines */ if (raw_data) /* we've been in raw mode, reenter it */ - toggle_raw(psGrp); + toggle_raw(group); - return (post_loop(POST_RESPONSE, psGrp, iKeyPostEdit, _(txt_posting), art_type, start_line_offset)); + return (post_loop(POST_RESPONSE, group, iKeyPostEdit, _(txt_posting), art_type, start_line_offset)); } @@ -2691,10 +2689,10 @@ create_mail_headers( char from_buf[HEADER_LEN]; char *from_address; - if (!selmenu.max) /* called from select.c without any groups? */ + if (curr_group && curr_group->attribute && curr_group->attribute->from && strlen(curr_group->attribute->from)) + from_address = curr_group->attribute->from; + else /* i.e. called from select.c without any groups */ from_address = tinrc.mail_address; - else - from_address = CURR_GROUP.attribute->from; if ((from_address == NULL) || !strlen(from_address)) { get_from_name(from_buf, (struct t_group *) 0); @@ -2725,6 +2723,9 @@ create_mail_headers( msg_add_header("Bcc", strlen(from_address) ? from_address : userid); } + if (curr_group && curr_group->attribute && curr_group->attribute->fcc && strlen(curr_group->attribute->fcc)) + msg_add_header("Fcc", curr_group->attribute->fcc); + if (*default_organization) msg_add_header("Organization", random_organization(default_organization)); @@ -2741,8 +2742,8 @@ create_mail_headers( msg_add_header("X-Newsgroups", extra_hdrs->newsgroups); } - if (selmenu.max && (CURR_GROUP.attribute->x_headers) != NULL) - msg_add_x_headers(CURR_GROUP.attribute->x_headers); + if (curr_group && curr_group->attribute && curr_group->attribute->x_headers && strlen(curr_group->attribute->x_headers)) + msg_add_x_headers(curr_group->attribute->x_headers); } start_line_offset = msg_write_headers(fp) + 1; msg_free_headers(); @@ -2779,13 +2780,13 @@ mail_loop( forever { switch (ch) { case iKeyPostEdit: - artchanged = FILE_CHANGED(filename); + artchanged = file_mtime(filename); if (!(invoke_editor(filename, start_line_offset))) return ret; ret = POSTED_REDRAW; - if (((artchanged == FILE_CHANGED(filename)) && (prompt_yn(cLINES, _(txt_prompt_unchanged_mail), TRUE) > 0)) || (file_size(filename) <= 0L)) { + if (((artchanged == file_mtime(filename)) && (prompt_yn(cLINES, _(txt_prompt_unchanged_mail), TRUE) > 0)) || (file_size(filename) <= 0L)) { clear_message(); return ret; } @@ -3492,7 +3493,7 @@ cancel_article( */ int repost_article( - const char *group, + const char *groupname, int respnum, t_bool supersede, t_openartinfo *artinfo) @@ -3506,7 +3507,7 @@ repost_article( char user_name[128]; int art_type = GROUP_TYPE_NEWS; int ret_code = POSTED_NONE; - struct t_group *psGrp; + struct t_group *group; struct t_header note_h = artinfo->hdr; t_bool force_command = FALSE; # ifdef FORGERY @@ -3523,7 +3524,7 @@ repost_article( /* * Check if any of the newsgroups are moderated. */ - if ((psGrp = check_moderated(group, &art_type, _(txt_art_not_posted))) == NULL) + if ((group = check_moderated(groupname, &art_type, _(txt_art_not_posted))) == NULL) return ret_code; if ((fp = fopen(article, "w")) == NULL) { @@ -3534,7 +3535,7 @@ repost_article( if (supersede) { get_user_info(user_name, full_name); - get_from_name(from_name, psGrp); + get_from_name(from_name, group); # ifndef FORGERY if (FromSameUser) # endif /* !FORGERY */ @@ -3580,13 +3581,13 @@ repost_article( } } else { /* !supersede */ get_user_info(user_name, full_name); - get_from_name(from_name, psGrp); + get_from_name(from_name, group); msg_add_header("From", from_name); if (*reply_to) msg_add_header("Reply-To", reply_to); } msg_add_header("Subject", note_h.subj); - msg_add_header("Newsgroups", group); + msg_add_header("Newsgroups", groupname); ADD_MSG_ID_HEADER(); if (note_h.references) { @@ -3594,8 +3595,8 @@ repost_article( msg_add_header("References", buf); } if (NotSuperseding) { - if (psGrp->attribute->organization != NULL) - msg_add_header("Organization", random_organization(psGrp->attribute->organization)); + if (group->attribute->organization != NULL) + msg_add_header("Organization", random_organization(group->attribute->organization)); else if (*default_organization) msg_add_header("Organization", random_organization(default_organization)); @@ -3611,7 +3612,7 @@ repost_article( * some ppl. like X-Headers: in reposts * X-Headers got lost on supersede, re-add */ - msg_add_x_headers(psGrp->attribute->x_headers); + msg_add_x_headers(group->attribute->x_headers); start_line_offset = msg_write_headers(fp) + 1; msg_free_headers(); @@ -3644,7 +3645,7 @@ repost_article( /* only append signature when NOT superseding own articles */ if (NotSuperseding && tinrc.signature_repost) - msg_write_signature(fp, FALSE, psGrp); + msg_write_signature(fp, FALSE, group); fclose(fp); @@ -3688,7 +3689,7 @@ repost_article( ch = prompt_slk_response(ch_default, &menukeymap.post_post, "%s", sized_message(buff, note_h.subj)); } - return (post_loop(POST_REPOST, psGrp, ch, (Superseding ? _(txt_superseding_art) : _(txt_repost_an_article)), art_type, start_line_offset)); + return (post_loop(POST_REPOST, group, ch, (Superseding ? _(txt_superseding_art) : _(txt_repost_an_article)), art_type, start_line_offset)); } @@ -3790,12 +3791,15 @@ msg_add_x_body( * Add the User-Agent header after the other headers * Strip duplicate newsgroups. Only write followup header if it differs * from the newsgroups headers. + * Remove Fcc header and return pointer to it. (Must be freed by + * invoking function.) */ -void +char * checknadd_headers( const char *infile) { FILE *fp_in, *fp_out; + char *fcc = NULL; char newsgroups[HEADER_LEN]; char line[HEADER_LEN]; char outfile[PATH_LEN]; @@ -3804,7 +3808,7 @@ checknadd_headers( newsgroups[0] = '\0'; if ((fp_in = fopen(infile, "r")) == NULL) - return; + return NULL; #ifdef VMS snprintf(outfile, sizeof(outfile), "%s-%d", infile, (int) process_id); @@ -3814,7 +3818,7 @@ checknadd_headers( if ((fp_out = fopen(outfile, "w")) == NULL) { fclose(fp_in); - return; + return NULL; } while (fgets(line, (int) sizeof(line), fp_in) != NULL) { @@ -3823,45 +3827,45 @@ checknadd_headers( inhdrs = FALSE; if (tinrc.advertising) { /* Add after other headers */ + char suffix[HEADER_LEN]; + + suffix[0] = '\0'; #ifdef HAVE_SYS_UTSNAME_H # ifdef _AIX - fprintf(fp_out, "User-Agent: %s/%s-%s (\"%s\") (%s) (%s/%s.%s)\n", - PRODUCT, VERSION, RELEASEDATE, RELEASENAME, OSNAME, + snprintf(suffix, sizeof(suffix), " (%s/%s.%s)", system_info.sysname, system_info.version, system_info.release); # else # ifdef SEIUX - fprintf(fp_out, "User-Agent: %s/%s-%s (\"%s\") (%s) (%s/%s)\n", - PRODUCT, VERSION, RELEASEDATE, RELEASENAME, OSNAME, + snprintf(suffix, sizeof(suffix), " (%s/%s)", system_info.version, system_info.release); # else - fprintf(fp_out, "User-Agent: %s/%s-%s (\"%s\") (%s) (%s/%s (%s))\n", - PRODUCT, VERSION, RELEASEDATE, RELEASENAME, OSNAME, + snprintf(suffix, sizeof(suffix), " (%s/%s (%s))", system_info.sysname, system_info.release, system_info.machine); # endif /* SEIUX */ # endif /* _AIX */ -#else - fprintf(fp_out, "User-Agent: %s/%s-%s (\"%s\") (%s)\n", - PRODUCT, VERSION, RELEASEDATE, RELEASENAME, OSNAME); #endif /* HAVE_SYS_UTSNAME_H */ + fprintf(fp_out, "User-Agent: %s/%s-%s (\"%s\") (%s)%s\n", + PRODUCT, VERSION, RELEASEDATE, RELEASENAME, OSNAME, suffix); } } else { char *ptr; if ((ptr = parse_header(line, "Newsgroups", FALSE, FALSE))) { strip_double_ngs(ptr); - strcpy(newsgroups, ptr); + STRCPY(newsgroups, ptr); snprintf(line, sizeof(line), "Newsgroups: %s\n", newsgroups); - } else { - if ((ptr = parse_header(line, "Followup-To", FALSE, FALSE))) { - strip_double_ngs(ptr); - /* - * Only write followup header if not blank or followups != newsgroups - */ - if (*ptr && strcasecmp(newsgroups, ptr)) - snprintf(line, sizeof(line), "Followup-To: %s\n", ptr); - else - *line = '\0'; - } + } else if ((ptr = parse_header(line, "Followup-To", FALSE, FALSE))) { + strip_double_ngs(ptr); + /* + * Only write followup header if not blank or followups != newsgroups + */ + if (*ptr && strcasecmp(newsgroups, ptr)) + snprintf(line, sizeof(line), "Followup-To: %s\n", ptr); + else + *line = '\0'; + } else if ((ptr = parse_header(line, "Fcc", FALSE, FALSE))) { + fcc = my_strdup(ptr); + *line = '\0'; /* don't write Fcc-Header */ } } } @@ -3870,10 +3874,10 @@ checknadd_headers( fclose(fp_out); fclose(fp_in); rename_file(outfile, infile); + return fcc; } -#ifndef M_AMIGA static t_bool insert_from_header( const char *infile) @@ -3966,7 +3970,6 @@ insert_from_header( } return FALSE; } -#endif /* !M_AMIGA */ /* @@ -4017,40 +4020,40 @@ reread_active_after_posting( void) { int i; - long lMinOld; - long lMaxOld; - struct t_group *psGrp; + long old_min; + long old_max; + struct t_group *group; t_bool modified = FALSE; if (reread_active_for_posted_arts) { reread_active_for_posted_arts = FALSE; for_each_group(i) { - if ((psGrp = &active[i])) { - if (psGrp->subscribed && psGrp->art_was_posted) { - psGrp->art_was_posted = FALSE; + if ((group = &active[i])) { + if (group->subscribed && group->art_was_posted) { + group->art_was_posted = FALSE; /* TODO: -> lang.c */ - wait_message(0, _("Rereading %s..."), psGrp->name); - lMinOld = psGrp->xmin; - lMaxOld = psGrp->xmax; - group_get_art_info(psGrp->spooldir, psGrp->name, psGrp->type, &psGrp->count, &psGrp->xmax, &psGrp->xmin); + wait_message(0, _("Rereading %s..."), group->name); + old_min = group->xmin; + old_max = group->xmax; + group_get_art_info(group->spooldir, group->name, group->type, &group->count, &group->xmax, &group->xmin); - if (psGrp->newsrc.num_unread > psGrp->count) { + if (group->newsrc.num_unread > group->count) { #ifdef DEBUG my_printf(cCRLF "Unread WRONG grp=[%s] unread=[%ld] count=[%ld]", - psGrp->name, psGrp->newsrc.num_unread, psGrp->count); + group->name, group->newsrc.num_unread, group->count); my_flush(); #endif /* DEBUG */ - psGrp->newsrc.num_unread = psGrp->count; + group->newsrc.num_unread = group->count; } - if (psGrp->xmin != lMinOld || psGrp->xmax != lMaxOld) { + 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]", - psGrp->name, lMinOld, lMaxOld, psGrp->xmin, psGrp->xmax); + group->name, old_min, old_max, group->xmin, group->xmax); my_flush(); #endif /* DEBUG */ - expand_bitmap(psGrp, 0); + expand_bitmap(group, 0); modified = TRUE; } clear_message(); @@ -4107,6 +4110,7 @@ submit_mail_file( struct t_group *group) { FILE *fp; + char *fcc = NULL; char buf[HEADER_LEN]; char mail_to[HEADER_LEN]; struct t_header hdr; @@ -4115,12 +4119,9 @@ submit_mail_file( char subject[HEADER_LEN]; #endif /* VMS */ - checknadd_headers(file); + fcc = checknadd_headers(file); -#ifndef M_AMIGA - if (insert_from_header(file)) -#endif /* !M_AMIGA */ - { + if (insert_from_header(file)) { if ((fp = fopen(file, "r"))) { parse_rfc822_headers(&hdr, fp, NULL); fclose(fp); @@ -4147,6 +4148,18 @@ submit_mail_file( error_message(_(txt_error_header_line_missing), "To"); } } + if (NULL != fcc) { + if (mailed && strlen(fcc)) { + char a_mailbox[PATH_LEN]; + + if (0 == strfpath(fcc, a_mailbox, sizeof(a_mailbox), group)) + STRCPY(a_mailbox, fcc); + if (!append_mail(file, userid, a_mailbox)) { + /* TODO: error handling */ + } + } + FreeIfNeeded(fcc); + } return mailed; } @@ -4454,7 +4467,7 @@ build_messageid( else return '\0'; - sprintf(buf, "<%sT", radix32(seqnum++)); + snprintf(buf, sizeof(buf), "<%sT", radix32(seqnum++)); strcat(buf, radix32(t)); strcat(buf, "I"); strcat(buf, radix32(process_id)); @@ -4610,6 +4623,7 @@ add_headers( inhdrs = FALSE; if (addmid) { char msgidbuf[HEADER_LEN]; + snprintf(msgidbuf, sizeof(msgidbuf), "Message-ID: %s\n", a_message_id); if (write(fd_out, msgidbuf, strlen(msgidbuf)) == (ssize_t) -1) /* abort on write errors */ { writesuccess = FALSE; diff -Nurp tin-1.7.1/src/prompt.c tin-1.7.2/src/prompt.c --- tin-1.7.1/src/prompt.c Sat Sep 13 16:46:25 2003 +++ tin-1.7.2/src/prompt.c Wed Oct 15 20:38:31 2003 @@ -60,7 +60,7 @@ prompt_num( clear_message(); - sprintf(mesg, "%c", ch); + snprintf(mesg, sizeof(mesg), "%c", ch); if ((p = tin_getline(prompt, TRUE, mesg, 0, FALSE, HIST_OTHER)) != NULL) { strcpy(mesg, p); @@ -365,12 +365,12 @@ prompt_option_num( show_menu_help(option_table[option].txt->help); MoveCursor(option_row(option), 0); fmt_option_prompt(prompt, sizeof(prompt) - 1, TRUE, option); - sprintf(&number[0], "%d", *(option_table[option].variable)); + snprintf(&number[0], sizeof(number), "%d", *(option_table[option].variable)); if ((p = tin_getline(prompt, 2, number, 0, FALSE, HIST_OTHER)) == NULL) return FALSE; - strcpy(number, p); + STRCPY(number, p); num = atoi(number); *(option_table[option].variable) = num; @@ -510,7 +510,7 @@ prompt_msgid( * Format a message such that it'll fit within the screen width * Useful for fitting long Subjects and newsgroup names into prompts * TODO: maybe add a '...' to the string to show it was truncated. - * You can use trunc() for it. + * You can use strunc() for it. */ char * sized_message( @@ -525,7 +525,7 @@ sized_message( want--; if (have > want) have = want; - sprintf(mesg, format, have, subject); + snprintf(mesg, sizeof(mesg), format, have, subject); return mesg; } diff -Nurp tin-1.7.1/src/read.c tin-1.7.2/src/read.c --- tin-1.7.1/src/read.c Sat Aug 23 01:58:41 2003 +++ tin-1.7.2/src/read.c Sun Oct 19 01:54:50 2003 @@ -3,7 +3,7 @@ * Module : read.c * Author : Jason Faultless * Created : 1997-04-10 - * Updated : 2003-05-07 + * Updated : 2003-09-19 * * Copyright (c) 1997-2003 Jason Faultless * All rights reserved. @@ -171,11 +171,6 @@ wait_for_input( } # endif /* !HAVE_SELECT */ -# ifdef M_AMIGA - return FALSE; -/* work in progress */ -/* return (WaitForChar(Input(), 0) == DOSTRUE) ? TRUE : FALSE; */ -# endif /* M_AMIGA */ /* * FIXME: insert !HAVE_SELECT code here - NB: we already have VMS specific * code at the top of this function diff -Nurp tin-1.7.1/src/refs.c tin-1.7.2/src/refs.c --- tin-1.7.1/src/refs.c Sat Aug 23 01:58:41 2003 +++ tin-1.7.2/src/refs.c Sun Oct 5 02:39:30 2003 @@ -3,7 +3,7 @@ * Module : refs.c * Author : Jason Faultless * Created : 1996-05-09 - * Updated : 2003-07-22 + * Updated : 2003-10-03 * Notes : Cacheing of message ids / References based threading * Credits : Richard Hodson * hash_msgid, free_msgid @@ -646,7 +646,7 @@ dump_msgid_threads( */ #define SKIP_ART(ptr) \ (ptr && (ptr->article == ART_UNAVAILABLE || \ - (arts[ptr->article].thread != ART_NORMAL || \ + (arts[ptr->article].thread != ART_UNTHREADED || \ (tinrc.kill_level == KILL_NOTHREAD && arts[ptr->article].killed)))) static struct t_msgid * diff -Nurp tin-1.7.1/src/regex.c tin-1.7.2/src/regex.c --- tin-1.7.1/src/regex.c Sat Aug 23 01:58:41 2003 +++ tin-1.7.2/src/regex.c Mon Oct 6 02:31:21 2003 @@ -64,7 +64,7 @@ match_regex( * Compile the expression internally. */ if ((re = pcre_compile(pattern, (icase ? PCRE_CASELESS : 0), &errmsg, &error, NULL)) == NULL) { - sprintf(mesg, _(txt_pcre_error_at), errmsg, error, pattern); + snprintf(mesg, sizeof(mesg), _(txt_pcre_error_at), errmsg, error, pattern); return FALSE; } @@ -88,7 +88,7 @@ match_regex( ret = TRUE; else { if (error != PCRE_ERROR_NOMATCH) - sprintf(mesg, _(txt_pcre_error_num), error); + snprintf(mesg, sizeof(mesg), _(txt_pcre_error_num), error); } free(re); diff -Nurp tin-1.7.1/src/rfc2046.c tin-1.7.2/src/rfc2046.c --- tin-1.7.1/src/rfc2046.c Tue Aug 26 14:18:38 2003 +++ tin-1.7.2/src/rfc2046.c Thu Sep 25 19:59:58 2003 @@ -3,7 +3,7 @@ * Module : rfc2046.c * Author : Jason Faultless * Created : 2000-02-18 - * Updated : 2003-08-26 + * Updated : 2003-09-24 * Notes : RFC 2046 MIME article parsing * * Copyright (c) 2000-2003 Jason Faultless @@ -1089,6 +1089,45 @@ error: TIN_FCLOSE(infile); art_close(artinfo); return ret; +} + + +/* + * Open a mail/news article using NNTP ARTICLE command + * or directly off local spool + * Return: + * A pointer to the open postprocessed file + * NULL pointer if article open fails in some way + */ +FILE * +open_art_fp( + struct t_group *group, + long art) +{ + FILE *art_fp = (FILE *) 0; + char buf[NNTP_STRLEN]; + +#ifdef NNTP_ABLE + if (read_news_via_nntp && group->type == GROUP_TYPE_NEWS) { + snprintf(buf, sizeof(buf), "ARTICLE %ld", art); + art_fp = nntp_command(buf, OK_ARTICLE, NULL, 0); + } else { +#endif /* NNTP_ABLE */ + 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); + snprintf(fbuf, sizeof(fbuf), "%ld", art); + joinpath(pbuf, buf, fbuf); + + art_fp = fopen(pbuf, "r"); +#ifdef NNTP_ABLE + } +#endif /* NNTP_ABLE */ + + return art_fp; } diff -Nurp tin-1.7.1/src/rfc2047.c tin-1.7.2/src/rfc2047.c --- tin-1.7.1/src/rfc2047.c Sat Aug 23 01:58:41 2003 +++ tin-1.7.2/src/rfc2047.c Tue Oct 7 07:11:37 2003 @@ -539,7 +539,7 @@ rfc1522_do_encode( if (contains_nonprintables(what, isstruct_head) || isbroken_within) { if (encoding == 'Q') { if (!quoting) { - sprintf(buf2, "=?%s?%c?", charset, encoding); + snprintf(buf2, sizeof(buf2), "=?%s?%c?", charset, encoding); ewsize = mystrcat(&t, buf2); if (break_long_line) { if (word_cnt == 2) { @@ -563,7 +563,7 @@ rfc1522_do_encode( if (is_EIGHT_BIT(what) || !isalnum((int)(unsigned char) *what)) #endif /* 0 */ { - sprintf(buf2, "=%2.2X", *EIGHT_BIT(what)); + snprintf(buf2, sizeof(buf2), "=%2.2X", *EIGHT_BIT(what)); *t++ = buf2[0]; *t++ = buf2[1]; *t++ = buf2[2]; @@ -608,7 +608,7 @@ rfc1522_do_encode( *t++ = '_'; ewsize++; } else { - sprintf(buf2, "=%2.2X", *EIGHT_BIT(what)); + snprintf(buf2, sizeof(buf2), "=%2.2X", *EIGHT_BIT(what)); *t++ = buf2[0]; *t++ = buf2[1]; *t++ = buf2[2]; @@ -626,7 +626,7 @@ rfc1522_do_encode( * contain_nonprintables used in outer if-clause */ while (*what && (!isbetween(*what, isstruct_head) || rightafter_ew)) { - sprintf(buf2, "=?%s?%c?", charset, encoding); + snprintf(buf2, sizeof(buf2), "=?%s?%c?", charset, encoding); ewsize = mystrcat(&t, buf2); if (word_cnt == 2) diff -Nurp tin-1.7.1/src/screen.c tin-1.7.2/src/screen.c --- tin-1.7.1/src/screen.c Sat Sep 13 16:46:34 2003 +++ tin-1.7.2/src/screen.c Sun Sep 21 14:57:05 2003 @@ -244,7 +244,7 @@ center_line( char *buf; buf = my_strdup(buffer); - trunc(buf, buffer, sizeof(buffer), cCOLS - 2); + strunc(buf, buffer, sizeof(buffer), cCOLS - 2); free(buf); } my_fputs(buffer, stdout); diff -Nurp tin-1.7.1/src/search.c tin-1.7.2/src/search.c --- tin-1.7.1/src/search.c Mon Sep 15 18:30:48 2003 +++ tin-1.7.2/src/search.c Mon Oct 6 02:31:50 2003 @@ -256,7 +256,7 @@ body_search( /* * Now search the body */ - sprintf(mesg, _(txt_searching_body), ++curr_cnt, total_cnt); + snprintf(mesg, sizeof(mesg), _(txt_searching_body), ++curr_cnt, total_cnt); show_progress(mesg, curr_cnt, total_cnt); while ((line = tin_fgets(artinfo.cooked, FALSE)) != NULL) { if (tinrc.wildcard) { diff -Nurp tin-1.7.1/src/select.c tin-1.7.2/src/select.c --- tin-1.7.1/src/select.c Wed Sep 3 17:22:15 2003 +++ tin-1.7.2/src/select.c Mon Oct 6 02:32:13 2003 @@ -756,7 +756,7 @@ choose_new_group( { int idx; - sprintf(mesg, _(txt_newsgroup), tinrc.default_goto_group); + snprintf(mesg, sizeof(mesg), _(txt_newsgroup), tinrc.default_goto_group); if (!(prompt_string_default(mesg, tinrc.default_goto_group, "", HIST_GOTO_GROUP))) return -1; diff -Nurp tin-1.7.1/src/sigfile.c tin-1.7.2/src/sigfile.c --- tin-1.7.1/src/sigfile.c Thu Aug 28 15:23:52 2003 +++ tin-1.7.2/src/sigfile.c Fri Sep 19 14:32:46 2003 @@ -3,7 +3,7 @@ * Module : sigfile.c * Author : M. Gleason & I. Lea * Created : 1992-10-17 - * Updated : 2003-03-14 + * Updated : 2003-09-19 * Notes : Generate random signature for posting/mailing etc. * * Copyright (c) 1992-2003 Mike Gleason @@ -41,11 +41,7 @@ #define MAXLOOPS 1000 -#ifndef M_AMIGA -# define CURRENTDIR "." -#else -# define CURRENTDIR "" -#endif /* !M_AMIGA */ +#define CURRENTDIR "." static char sigfile[PATH_LEN]; @@ -218,12 +214,7 @@ thrashdir( * consider all entries starting with "." non-entries */ cwd = my_malloc(PATH_LEN); -#ifndef M_AMIGA - if (numentries < 3 || cwd == NULL) -#else - if (numentries == 0 || cwd == NULL) -#endif /* !M_AMIGA */ - { + if (numentries < 3 || cwd == NULL) { CLOSEDIR(dirp); return -1; } diff -Nurp tin-1.7.1/src/signal.c tin-1.7.2/src/signal.c --- tin-1.7.1/src/signal.c Wed Aug 27 03:07:11 2003 +++ tin-1.7.2/src/signal.c Mon Sep 29 03:53:02 2003 @@ -3,7 +3,7 @@ * Module : signal.c * Author : I.Lea * Created : 1991-04-01 - * Updated : 2003-08-27 + * Updated : 2003-09-29 * Notes : signal handlers for different modes and window resizing * * Copyright (c) 1991-2003 Iain Lea @@ -347,12 +347,10 @@ signal_handler( switch (sig) { #ifdef SIGINT case SIGINT: -# if !defined(M_AMIGA) && !defined(__SASC) if (!batch_mode) { RESTORE_HANDLER(sig, signal_handler); return; } -# endif /* !M_AMIGA && !__SASC */ break; #endif /* SIGINT */ @@ -533,10 +531,6 @@ set_win_size( *num_cols = win.ws_col; } # else -# ifdef M_AMIGA - AmiGetWinSize(num_lines, num_cols); - (*num_lines)--; -# endif /* M_AMIGA */ # endif /* TIOCGWINSZ */ # endif /* TIOCGSIZE */ @@ -549,7 +543,6 @@ set_win_size( set_subj_from_size(*num_cols); /* FIXME: values do differ for different languages */ - RIGHT_POS = *num_cols - 20; MORE_POS = *num_cols - 15; set_noteslines(*num_lines); return (*num_lines != old_lines || *num_cols != old_cols); diff -Nurp tin-1.7.1/src/string.c tin-1.7.2/src/string.c --- tin-1.7.1/src/string.c Sat Sep 13 21:18:16 2003 +++ tin-1.7.2/src/string.c Thu Oct 9 17:07:23 2003 @@ -3,7 +3,7 @@ * Module : string.c * Author : Urs Janssen * Created : 1997-01-20 - * Updated : 2003-09-13 + * Updated : 2003-10-09 * Notes : * * Copyright (c) 1997-2003 Urs Janssen @@ -59,7 +59,7 @@ tin_ltoa( int len; int i = 0; - sprintf(buffer, "%ld", value); + snprintf(buffer, sizeof(buffer), "%ld", value); len = (int) strlen(buffer); while (len > digits) { @@ -74,7 +74,7 @@ tin_ltoa( buffer[digits - 1] = power[i]; buffer[digits] = '\0'; } else - sprintf(buffer, "%*ld", digits, value); + snprintf(buffer, sizeof(buffer), "%*ld", digits, value); return buffer; } @@ -546,7 +546,7 @@ sh_format( break; case 'd': - sprintf(temp, "%d", va_arg(ap, int)); + snprintf(temp, sizeof(temp), "%d", va_arg(ap, int)); src = temp; break; @@ -598,16 +598,6 @@ sh_format( #ifndef HAVE_STRERROR # ifdef HAVE_SYS_ERRLIST -# ifdef M_AMIGA -# ifndef sys_errlist - extern char *__sys_errlist[]; -# define sys_errlist __sys_errlist -# endif /* !sys_errlist */ -# else -# ifdef DECL_SYS_ERRLIST - extern char *sys_errlist[]; -# endif /* DECL_SYS_ERRLIST */ -# endif /* M_AMIGA */ extern int sys_nerr; # endif /* HAVE_SYS_ERRLIST */ char * @@ -620,7 +610,7 @@ my_strerror( if (n >= 0 && n < sys_nerr) return sys_errlist[n]; # endif /* HAVE_SYS_ERRLIST */ - sprintf(temp, "Errno: %d", n); + snprintf(temp, sizeof(temp), "Errno: %d", n); return temp; } #endif /* !HAVE_STRERROR */ @@ -700,7 +690,7 @@ wcspart( * The resulting string is stored in 'buf'. */ char * -trunc( +strunc( const char *message, char *buf, size_t buf_len, @@ -711,13 +701,13 @@ trunc( size_t mesg_len; mesg_len = mbstowcs(NULL, message, 0); - if (mesg_len != (size_t)(-1)) { + if (mesg_len != (size_t) (-1)) { wmessage = my_malloc(sizeof(wchar_t) * (mesg_len + 1)); wbuf = my_malloc(sizeof(wchar_t) * (mesg_len + 1)); - if (mbstowcs(wmessage, message, mesg_len + 1) != (size_t)(-1)) { - wtrunc(wmessage, wbuf, mesg_len + 1, len); - if (wcstombs(buf, wbuf, buf_len) != (size_t)(-1)) { + if (mbstowcs(wmessage, message, mesg_len + 1) != (size_t) (-1)) { + wstrunc(wmessage, wbuf, mesg_len + 1, len); + if (wcstombs(buf, wbuf, buf_len) != (size_t) (-1)) { buf[buf_len - 1] = '\0'; free(wbuf); @@ -733,7 +723,11 @@ trunc( /* something went wrong using wide-chars, default back to normal chars */ #endif /* MULTIBYTE_ABLE && !NO_LOCALE */ - snprintf(buf, buf_len, "%-.*s%s", len - 3, message, TRUNC_TAIL); + if ((int) strlen(message) <= len && len < (int) buf_len) + strcpy(buf, message); + else + snprintf(buf, buf_len, "%-.*s%s", len - 3, message, TRUNC_TAIL); + return buf; } @@ -745,9 +739,9 @@ trunc( /* #define USE_UTF8_HORIZONTAL_ELLIPSIS 1 */ #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) -/* the wide-char equivalent of trunc() */ +/* the wide-char equivalent of strunc() */ wchar_t * -wtrunc( +wstrunc( const wchar_t *wmessage, wchar_t *wbuf, size_t wbuf_len, @@ -781,8 +775,8 @@ wtrunc( size_t i; i = mbstowcs(tail, TRUNC_TAIL, ARRAY_SIZE(tail)); - tail[3] = (wchar_t)'\0'; - assert(i != (size_t)(-1)); + tail[3] = (wchar_t) '\0'; + assert(i != (size_t) (-1)); wcspart(wbuf, wtmp, len - 3, wbuf_len - 3, FALSE); wcscat(wbuf, tail); diff -Nurp tin-1.7.1/src/tags.c tin-1.7.2/src/tags.c --- tin-1.7.1/src/tags.c Wed Aug 27 04:28:17 2003 +++ tin-1.7.2/src/tags.c Mon Oct 6 02:32:42 2003 @@ -380,7 +380,7 @@ set_range( #if 0 error_message("Min=[%d] Max=[%d] Cur=[%d] DefRng=[%s]", min, max, curr, range); #endif /* 0 */ - sprintf(mesg, _(txt_enter_range), range); + snprintf(mesg, sizeof(mesg), _(txt_enter_range), range); if (!(prompt_string_default(mesg, range, _(txt_range_invalid), HIST_OTHER))) return FALSE; diff -Nurp tin-1.7.1/src/tcurses.c tin-1.7.2/src/tcurses.c --- tin-1.7.1/src/tcurses.c Sat Aug 23 01:58:41 2003 +++ tin-1.7.2/src/tcurses.c Fri Oct 17 19:00:06 2003 @@ -3,7 +3,7 @@ * Module : tcurses.c * Author : Thomas Dickey * Created : 1997-03-02 - * Updated : 2003-08-03 + * Updated : 2003-10-15 * Notes : This is a set of wrapper functions adapting the termcap * interface of tin to use SVr4 curses (e.g., ncurses). * @@ -512,7 +512,12 @@ ReadCh( again: # endif /* 0 */ allow_resize(TRUE); +# ifdef KEY_RESIZE + while ((ch = getch()) == KEY_RESIZE) + ; +# else ch = getch(); +# endif /* KEY_RESIZE */ allow_resize(FALSE); if (need_resize) { handle_resize((need_resize == cRedraw) ? TRUE : FALSE); @@ -548,7 +553,7 @@ ReadWch( wch = cmdReadWch(); else { allow_resize(TRUE); -# ifdef HAVE_NCURSESW +# ifdef HAVE_NCURSESW /* TODO: catch KEY_RESIZE */ res = get_wch(&wch); # else wch = (wint_t) getch(); @@ -675,7 +680,7 @@ my_fputs( } else fputs(str, fp); } else { - addstr((char *) str); + addstr(str); } } @@ -711,6 +716,34 @@ my_fputwc( } else addch('?'); + free(mbs); +# endif /* HAVE_NCURSESW */ + } +} + + +void +my_fputws( + const wchar_t *wstr, + FILE *fp) +{ + if (cmd_line) { + if (_inraw) { + while (*wstr) + my_fputwc(*wstr++, fp); + } else + fputws(wstr, fp); + } else { +# ifdef HAVE_NCURSESW + addwstr(wstr); +# else + char *mbs; + int len; + + len = wcstombs(NULL, wstr, 0) + 1; + mbs = my_malloc(len); + wcstombs(mbs, wstr, len); + addstr(mbs); free(mbs); # endif /* HAVE_NCURSESW */ } diff -Nurp tin-1.7.1/src/thread.c tin-1.7.2/src/thread.c --- tin-1.7.1/src/thread.c Wed Aug 27 04:28:33 2003 +++ tin-1.7.2/src/thread.c Thu Oct 9 17:07:34 2003 @@ -3,7 +3,7 @@ * Module : thread.c * Author : I. Lea * Created : 1991-04-01 - * Updated : 2003-08-10 + * Updated : 2003-10-09 * Notes : * * Copyright (c) 1991-2003 Iain Lea @@ -97,21 +97,31 @@ build_tline( int rest_of_line = cCOLS; int len_from, len_subj; struct t_msgid *ptr; -#ifdef USE_CURSES - char buff[BUFSIZ]; -#else - char *buff = screen[INDEX2TNUM(l)].col; -#endif /* USE_CURSES */ + char *buffer; #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) wchar_t wtmp[BUFSIZ], wtmp2[BUFSIZ]; char tmp[BUFSIZ]; #endif /* MULTIBYTE_ABLE && !NO_LOCALE */ +#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) + buffer = my_malloc(cCOLS * MB_CUR_MAX + 2); +# else + buffer = my_malloc(cCOLS + 2); +# endif /* MULTIBYTE_ABLE && !NO_LOCALE */ +#else + buffer = screen[INDEX2TNUM(l)].col; +#endif /* USE_CURSES */ + /* * Start with 2 spaces for -> * then index number of the message and whitespace (2+4+1 chars) */ - sprintf(buff, " %s ", tin_ltoa(l + 1, 4)); + sprintf(buffer, " %s ", tin_ltoa(l + 1, 4)); rest_of_line -= 7; /* @@ -119,9 +129,9 @@ build_tline( */ rest_of_line -= 3; if (art->tagged) - strcat(buff, tin_ltoa(art->tagged, 3)); + strcat(buffer, tin_ltoa(art->tagged, 3)); else { - strcat(buff, " "); + strcat(buffer, " "); if (art->inrange) { mark = tinrc.art_marked_inrange; } else if (art->status == ART_UNREAD) { @@ -136,10 +146,10 @@ build_tline( else mark = tinrc.art_marked_read; } - buff[MARK_OFFSET] = mark; /* insert mark */ + buffer[MARK_OFFSET] = mark; /* insert mark */ } - strcat(buff, " "); /* 2 more spaces */ + strcat(buffer, " "); /* 2 more spaces */ rest_of_line -= 2; /* @@ -147,26 +157,26 @@ build_tline( * (inside "[,]", 1+4[+1+6]+1+2 chars total) */ if (tinrc.show_info != SHOW_INFO_NOTHING) { /* add [ */ - strcat(buff, "["); + strcat(buffer, "["); rest_of_line--; } if (tinrc.show_info == SHOW_INFO_LINES || tinrc.show_info == SHOW_INFO_BOTH) { /* add lines */ - strcat(buff, ((art->line_count != -1) ? tin_ltoa(art->line_count, 4): " ?")); + strcat(buffer, ((art->line_count != -1) ? tin_ltoa(art->line_count, 4): " ?")); rest_of_line -= 4; } if (tinrc.show_info == SHOW_INFO_SCORE || tinrc.show_info == SHOW_INFO_BOTH) { if (tinrc.show_info == SHOW_INFO_BOTH) { /* insert a separator if show lines and score */ - strcat(buff, ","); + strcat(buffer, ","); rest_of_line--; } - strcat(buff, tin_ltoa(art->score, 6)); + strcat(buffer, tin_ltoa(art->score, 6)); rest_of_line -= 6; } if (tinrc.show_info != SHOW_INFO_NOTHING) { /* add closing ] and two spaces */ - strcat(buff, "] "); + strcat(buffer, "] "); rest_of_line -= 3; } @@ -178,12 +188,12 @@ build_tline( * Add the subject and author information if required */ if (show_subject) { - if (CURR_GROUP.attribute->show_author == SHOW_FROM_NONE) + if (curr_group->attribute->show_author == SHOW_FROM_NONE) len_from = 0; else { len_from = rest_of_line; - if (CURR_GROUP.attribute->show_author == SHOW_FROM_BOTH) + if (curr_group->attribute->show_author == SHOW_FROM_BOTH) len_from /= 2; /* if SHOW_FROM_BOTH use 50% for author info */ else len_from /= 3; /* otherwise use 33% for author info */ @@ -199,12 +209,12 @@ build_tline( * Insert tree-structure strings "`->", "+->", ... */ - make_prefix(art->refptr, buff + strlen(buff), len_subj); + make_prefix(art->refptr, buffer + strlen(buffer), len_subj); /* * Copy in the subject up to where the author (if any) starts */ - gap = cCOLS - strlen(buff) - len_from; /* gap = gap (no. of chars) between tree and author/border of window */ + gap = cCOLS - strlen(buffer) - len_from; /* gap = gap (no. of chars) between tree and author/border of window */ if (len_from) /* Leave gap before author */ gap -= 2; @@ -214,7 +224,8 @@ build_tline( * Hide subject if same as parent's. */ if (gap > 0) { - size_t len = strlen(buff); + size_t len = strlen(buffer); + for (ptr = art->refptr->parent; ptr && EXPIRED(ptr); ptr = ptr->parent) ; if (!(ptr && arts[ptr->article].subject == art->subject)) { @@ -223,17 +234,13 @@ build_tline( wtmp2[ARRAY_SIZE(wtmp2) - 1] = (wchar_t) '\0'; wcspart(wtmp, wtmp2, gap, ARRAY_SIZE(wtmp), TRUE); if (wcstombs(tmp, wtmp, sizeof(tmp) - 1) != (size_t) -1) -# ifdef USE_CURSES - strncat(buff, tmp, sizeof(buff) - len - 1); -# else - strncat(buff, tmp, cCOLS * MB_CUR_MAX - len - 1); -# endif /* USE_CURSES */ + strncat(buffer, tmp, cCOLS * MB_CUR_MAX - len - 1); } } #else - strncat(buff, art->subject, gap); + strncat(buffer, art->subject, gap); } - buff[len + gap] = '\0'; /* Just in case */ + buffer[len + gap] = '\0'; /* Just in case */ #endif /* MULTIBYTE_ABLE && !NO_LOCALE */ } @@ -242,17 +249,17 @@ build_tline( */ if (len_from) { #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) - if (mbstowcs(wtmp, buff, ARRAY_SIZE(wtmp) - 1) != (size_t) -1) { + if (mbstowcs(wtmp, buffer, ARRAY_SIZE(wtmp) - 1) != (size_t) -1) { wtmp[ARRAY_SIZE(wtmp) - 1] = (wchar_t) '\0'; fill = cCOLS - len_from - wcswidth(wtmp, ARRAY_SIZE(wtmp) - 1); } else #endif /* MULTIBYTE_ABLE && !NO_LOCALE */ - fill = cCOLS - len_from - strlen(buff); + fill = cCOLS - len_from - strlen(buffer); - gap = strlen(buff); + gap = strlen(buffer); for (i = 0; i < fill; i++) - buff[gap + i] = ' '; - buff[gap + fill] = '\0'; + buffer[gap + i] = ' '; + buffer[gap + fill] = '\0'; /* * Now add the author info at the end. This will be 0 terminated @@ -264,14 +271,10 @@ build_tline( wtmp2[ARRAY_SIZE(wtmp2) - 1] = (wchar_t) '\0'; wcspart(wtmp, wtmp2, len_from, ARRAY_SIZE(wtmp), TRUE); if (wcstombs(tmp, wtmp, sizeof(tmp) - 1) != (size_t) -1) -# ifdef USE_CURSES - strncat(buff, tmp, sizeof(buff) - strlen(buff) - 1); -# else - strncat(buff, tmp, cCOLS * MB_CUR_MAX - strlen(buff) - 1); -# endif /* USE_CURSES */ + strncat(buffer, tmp, cCOLS * MB_CUR_MAX - strlen(buffer) - 1); } #else - get_author(TRUE, art, buff + strlen(buff), len_from); + get_author(TRUE, art, buffer + strlen(buffer), len_from); #endif /* MULTIBYTE_ABLE && !NO_LOCALE */ } @@ -281,42 +284,42 @@ build_tline( if (mbstowcs(wtmp2, tmp, ARRAY_SIZE(wtmp2) - 1) != (size_t) -1) { wtmp2[ARRAY_SIZE(wtmp2) - 1] = (wchar_t) '\0'; - wcspart(wtmp, wtmp2, cCOLS - strlen(buff), ARRAY_SIZE(wtmp), TRUE); + wcspart(wtmp, wtmp2, cCOLS - strlen(buffer), ARRAY_SIZE(wtmp), TRUE); if (wcstombs(tmp, wtmp, sizeof(tmp) - 1) != (size_t) -1) -# ifdef USE_CURSES - strncat(buff, tmp, sizeof(buff) - strlen(buff) - 1); -# else - strncat(buff, tmp, cCOLS * MB_CUR_MAX - strlen(buff) - 1); -# endif /* USE_CURSES */ + strncat(buffer, tmp, cCOLS * MB_CUR_MAX - strlen(buffer) - 1); } #else - get_author(TRUE, art, buff + strlen(buff), cCOLS - strlen(buff)); + get_author(TRUE, art, buffer + strlen(buffer), cCOLS - strlen(buffer)); #endif /* MULTIBYTE_ABLE && !NO_LOCALE */ } /* protect display from non-displayable characters (e.g., form-feed) */ - convert_to_printable(buff); + convert_to_printable(buffer); if (!tinrc.strip_blanks) { /* * Pad to end of line so that inverse bar looks 'good' */ #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) - if (mbstowcs(wtmp, buff, ARRAY_SIZE(wtmp) - 1) != (size_t) -1) { + if (mbstowcs(wtmp, buffer, ARRAY_SIZE(wtmp) - 1) != (size_t) -1) { wtmp[ARRAY_SIZE(wtmp) - 1] = (wchar_t) '\0'; fill = cCOLS - wcswidth(wtmp, ARRAY_SIZE(wtmp) - 1); } else #endif /* MULTIBYTE_ABLE && !NO_LOCALE */ - fill = cCOLS - strlen(buff); + fill = cCOLS - strlen(buffer); - gap = strlen(buff); + gap = strlen(buffer); for (i = 0; i < fill; i++) - buff[gap + i] = ' '; + buffer[gap + i] = ' '; - buff[gap + fill] = '\0'; + buffer[gap + fill] = '\0'; } - WriteLine(INDEX2LNUM(l), buff); +#ifdef USE_CURSES + WriteLine(INDEX2LNUM(l), buffer); + + free(buffer); +#endif /* USE_CURSES */ } @@ -812,7 +815,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_arts == THREAD_REFS) || (curr_group->attribute->thread_arts == THREAD_BOTH)); if (show_subject) snprintf(mesg, sizeof(mesg), _(txt_stp_list_thread), grpmenu.curr + 1, grpmenu.max); @@ -1094,7 +1097,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_arts == 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++; @@ -1368,7 +1371,7 @@ thread_catchup( if (i != -1) { /* still unread arts in this thread */ snprintf(buf, sizeof(buf), _(txt_mark_thread_read), (ch == iKeyThreadCatchupNextUnread) ? _(txt_enter_next_thread) : ""); if ((!TINRC_CONFIRM_ACTION) || (pyn = prompt_yn(cLINES, buf, TRUE)) == 1) - thd_mark_read(&CURR_GROUP, base[thread_basenote]); + thd_mark_read(curr_group, base[thread_basenote]); } switch (ch) { @@ -1425,7 +1428,7 @@ enter_pager( int i; again: - switch ((i = show_page(&CURR_GROUP, art, &thdmenu.curr))) { + 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_RETSELECT: /* 'T' back to select menu */ diff -Nurp tin-1.7.1/src/tincfg.tbl tin-1.7.2/src/tincfg.tbl --- tin-1.7.1/src/tincfg.tbl Sat Aug 23 01:58:41 2003 +++ tin-1.7.2/src/tincfg.tbl Mon Sep 29 03:54:36 2003 @@ -2,7 +2,7 @@ ; Module : tincfg.tbl ; Author : Thomas E. Dickey ; Created : 1996-11-01 -; Updated : 2003-08-12 +; Updated : 2003-09-29 ; Notes : #defines and structs for config.c ; ; Copyright (c) 1996-2003 Thomas E. Dickey @@ -215,3 +215,4 @@ use_slrnface OPT_ON_OFF #endif url_handler OPT_STRING + date_format OPT_STRING diff -Nurp tin-1.7.1/src/xref.c tin-1.7.2/src/xref.c --- tin-1.7.1/src/xref.c Sat Aug 23 01:58:41 2003 +++ tin-1.7.2/src/xref.c Mon Oct 6 02:33:15 2003 @@ -3,7 +3,7 @@ * Module : xref.c * Author : I. Lea & H. Brugge * Created : 1993-07-01 - * Updated : 2003-08-16 + * Updated : 2003-09-29 * Notes : * * Copyright (c) 1993-2003 Iain Lea @@ -54,6 +54,33 @@ #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); + + +/* + * Open the NEWSLIBDIR/overview.fmt file locally or send LIST OVERVIEW.FMT + */ +static FILE * +open_overview_fmt_fp( + void) +{ + char line[NNTP_STRLEN]; + +#ifdef NNTP_ABLE + if (read_news_via_nntp && !read_saved_news) { + if (!xover_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 + } +#endif /* NNTP_ABLE */ +} /* @@ -146,10 +173,10 @@ art_mark_xref_read( struct t_article *art) { char *xref_ptr; - char *group; + char *groupname; char *ptr, c; long artnum; - struct t_group *psGrp; + struct t_group *group; #if defined(NNTP_ABLE) && defined(XHDR_XREF) /* xref_supported => xref info was already read in xover record */ @@ -175,7 +202,7 @@ art_mark_xref_read( while (*xref_ptr == ' ') xref_ptr++; - group = xref_ptr; + groupname = xref_ptr; while (*xref_ptr != ':' && *xref_ptr) xref_ptr++; @@ -192,35 +219,35 @@ art_mark_xref_read( c = *ptr; *ptr = '\0'; - psGrp = group_find(group); + group = group_find(groupname); #ifdef DEBUG if (debug == 3) { - sprintf(mesg, "LOOKUP Xref: [%s:%ld] active=[%s] num_unread=[%ld]", - group, artnum, - (psGrp ? psGrp->name : ""), - (psGrp ? psGrp->newsrc.num_unread : 0)); + snprintf(mesg, sizeof(mesg), "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(mesg); - debug_print_bitmap(psGrp, NULL); + debug_print_bitmap(group, NULL); # endif /* DEBUG_NEWSRC */ error_message(mesg); } #endif /* DEBUG */ - if (psGrp && psGrp->newsrc.xbitmap) { - if (artnum >= psGrp->newsrc.xmin && artnum <= psGrp->xmax) { - if (!((NTEST(psGrp->newsrc.xbitmap, artnum - psGrp->newsrc.xmin) == ART_READ) ? TRUE : FALSE)) { - NSET0(psGrp->newsrc.xbitmap, artnum - psGrp->newsrc.xmin); - if (psGrp->newsrc.num_unread > 0) - psGrp->newsrc.num_unread--; + if (group && group->newsrc.xbitmap) { + if (artnum >= group->newsrc.xmin && artnum <= group->xmax) { + if (!((NTEST(group->newsrc.xbitmap, artnum - group->newsrc.xmin) == ART_READ) ? TRUE : FALSE)) { + NSET0(group->newsrc.xbitmap, artnum - group->newsrc.xmin); + if (group->newsrc.num_unread > 0) + group->newsrc.num_unread--; #ifdef DEBUG if (debug == 3) { - sprintf(mesg, "FOUND!Xref: [%s:%ld] marked READ num_unread=[%ld]", - group, artnum, psGrp->newsrc.num_unread); + snprintf(mesg, sizeof(mesg), "FOUND!Xref: [%s:%ld] marked READ num_unread=[%ld]", + groupname, artnum, group->newsrc.num_unread); # ifdef DEBUG_NEWSRC debug_print_comment(mesg); - debug_print_bitmap(psGrp, NULL); + debug_print_bitmap(group, NULL); # endif /* DEBUG_NEWSRC */ wait_message(2, mesg); } diff -Nurp tin-1.7.1/tin.spec tin-1.7.2/tin.spec --- tin-1.7.1/tin.spec Sat Aug 23 01:59:00 2003 +++ tin-1.7.2/tin.spec Sun Sep 21 04:49:57 2003 @@ -1,10 +1,10 @@ Name: tin Summary: tin - an easy-to-use USENET news reader -Version: 1.6.0 +Version: 1.7.2 Release: 1 Copyright: BSD Group: Applications/News -Source: ftp://ftp.tin.org/pub/news/clients/tin/v1.6/%{name}-%{version}.tar.bz2 +Source: ftp://ftp.tin.org/pub/news/clients/tin/v1.7/%{name}-%{version}.tar.bz2 Buildroot: /var/tmp/%{name}-%{version}-%{release} Packager: Dirk Nimmich