Bugs ---- o --with-ncurses --enable-curses (ncurses 4.2-3.4 (Debian-Potato-Version), debian 2.1, glibc2.0.7, 2.2.13ac3 kernel) colors all subjects of hot articles in the same color as the hot-mark, after scrolling over them with the invers video bar the subject geht's to right color. [Stephan Seitz 19991115] [initial screen setup somewhat broken? urs] o --with-ncurses --enable-curses has several display problems: - if use_color is set: - '^G' (pgp-check article output is grabbled) - warning/error messges upon posting are not displayed o searching in the pager is broken; it doesn't actually search the first page. o using libuu for decoding articles breaks post_process_types=3 and post_process_command (fix this and join post_process_types/post_process_command (i.e provide a script which handles all post_process_types) and kick non-libuu code afterwards) o in batch mode (i.e. -S) ~/.tin/attributes is not evaluated, thus batch_save etc. is broken. scope=* batch_save=OFF scope=foo.bar batch_save=ON 'tin -S' saves all groups, not only foo.bar [Urs Janssen ] o '-s' cmd-line switch specifies the spooldir also in the tinrc. [Urs Janssen ] o multiple calls of '/' are 'corrupting' the previous page-pointer page-up jumps 'near' the last page before the search (should we remember the previous page here (if so, we must hit the exact position again, IMHO this is useful) or just go up one page? [Dirk Nimmich ] o Defaults values etc. changed during quick_post_article() aren't saved due to the no_write logic in main.c o a problem concerning .tin/posted: when I post a postponed followup, a 'w' is written to the file instead of a 'f'. If there's a "References:" header, the article should be regarded as a followup. [Vincent Lefevre ] (970919 - partial solution by checking for "Re: " in subject -sp) o with use_builtin_inews=ON && default_sigfile=~/.tin/sig && a existing ~/.signature ~/.signature is used instead of ~/.tin/sig (does not happen if a sigfile is specified via attributes i.e. scope=*.test sigfile=--none [urs]) [Stan Brooks ] o commas in real-name might cause problems in mail-replys -> rewrite To: before mailing to old-style notation user@dom.in (real-name) o fix tinrc-update from old (tin1.2pl2) versions (sometime causes crashes) o fix check_upgrade() (config.c) - check if TINRC_VERSION is 'older' (mismatch and not newer) as in the config file, give a warning and the possibillity to quit without saving config file - check if TINRC_VERSION is 'newer' (already done) and give a warning o add version number to other config-files (i.e. attributes, filter, tin.defaults) and do the same checks as for TINRC_VERSION/tinrc o sender-patch If reverse-lookup for Sender: 'fails' put it in the 'real name' part of the Sender:-line nobody@akk.uni-karlsruhe.de (RFC 1413 reverse-lookup not verified) If user ads Sender:-line rename it to X-Unverifiable-Sender and ad a Sender:-line o 'K' is still a bit inconsistent - in the group and thread menu it marks current item read & jumps to the next unread item. - in the article pager (page.c) it marks the whole current thread as read and jumps to the next unread article. o In cases where a tinrc variable is stored in group->attributes (ie on a per-group basis) then changes in the config menu won't always have an effect. This is because the Option-Menu in {group,page}.c doesn't reread the attributes, whereas select.c does. It might be better to fix the problem properly in config.c by flashing changes to all groups using default attributes. o with --enable-forgery reposting of an thread reposts only the first article ('x' 't' 'r' 'p') o if no INEWSDIR is given INEWSDIR is set to NEWSLIBDIR which is not always true (Linux) ... search $NEWSLIBDIR, /usr/bin/,... in that case. o if external inews could not be found posting fails but no dead.article is saved :( fall-back to build_in_inews would be good if running NNTP_ONLY o sort Followup-To:/Newsgroups: after stripping doubled newsgroups and before checking if they are identical, if so, strip Followup-To: and use unsorted but stripped Newsgroups:-line only o if save marked_hot_article fails with cannot create file the post-process query comes up - stupid! [ the post-process query is done b4 the file save -> rewrite feed.c ] o When tagging/auto-selecting files to be saved and decoded, if a tagged article is expired from the server (WHY do they show up? they are expired! (cnews only?)), it is untouched, and remains marked as unread. o According to 026) in CHANGES, some of the config files can be trashed on a bad write (except .newsrc/tinrc/attributes) o remove built in path of external commands (metamail, ispell, ...) [for metamail/ispell $METAMAIL/$ISPELL could be used to override systempath and progname] o when enabling the 'cc/bcc on every message that is sent', and then mailing a message to myself, tin will print the message "Mailing to ... gary gary". a nice touch would be if tin checks the mail_to line, and doesn't add the user's name twice. yes, sendmail removes the duplicate ... but it'd be better if tin caught this case first. Pager Problems -------------- o ctrl-h doesn't turn off "Skip multipart/alternative parts" [Urs Janssen ] o if a colored signature wraps over a page-break, the coloring gets lost o full_page_scroll=OFF is not implemented in page.c (article viewer) and config.c (option 'M'enu) [ in page.c it is meaningless anyway; half/full page scroll only relates to cursor positioning, not page scrolling. The pager has no cursor ] o keyboard 'end' does not always scroll to the end. Sometimes there are a few lines missing. [Mark-Oliver Wolter ] o word highlighting shouldn't be enabled in signatures, as '*' and '_' characters may be used for ASCII art (e.g. '___'). [Vincent Lefevre ] New features ------------ o add 'make unproto' o add IPv6 support (add portocoll independent wrappers which use IPv6 (functions) whenever possible). there are two small problems with the minimalistic IPv6 support which is currently in tin: when getaddrinfo() is used to get the name/ip of the newsserver it always uses DNS (gethostbyname()/gethostbyaddr() checked /etc/hosts first) and getaddrinfo() seems to have a (huge) delay in some cases. o add shortcut(s) to repeat last command (i.e. search again) o add unicode/UTF-8 support o add Message-ID param to quick_filter_select_posted_art() and update_posted_info_file() so we could log the Message-ID in the filter and posting history file if we know it (see inews.c. submit_inews(), and post.c). o lock news/tinrc via flock or lockf or fcntl (one tin) and dotfile-locking (multiple tins running). o add cmd-line/tinrc-switch to fetch only headers of unread articles; in that case, make 'r' reading the rest of the articles [-G is a start] allow setting a per group limit via attributes o use (include (basic) librarie source tin tin) libuu (uudeview) for uudecoding (http://www.informatik.uni-frankfurt.de/~fp/uudeview/) o Add a trunc() function or something similar for shortening long strings like a group name to a fixed length ending in ... (like center_line does) for embedding into status messages. Maybe somehow merge with sized_message(), then you can use message(txt, trunc(group, 20)) etc. o check if server supports 'LIST MOTD' (i.e. INN 2.0) and display it on startup. o if using "-n" commandline switch you can't subscribe to newsgroups not present in your newsrc - a simple check against the server [i.e. GROUP $newsgroup] would help - and if the server understands LIST NEWSGROUPS pattern or XGTITLE pattern we could also fetch the description without loosing "-n" speed improvements; if the server understands LIST ACTIVE pattern we could also get group attribute (moderated, etc.)] o if using mailreader_i add In-Reply-To: header and rename Newsgroups: to X-Newsgroups (RFC 822 doesn't define a Newsgroups:-header) [might be impossible] o allow changing From: in mail-replys o item_by_item_etiquette_warnings [compile-time?] (i.e. enable x-posts without f'up waring, disable long-sig warning) o Menu/tinrc/attributes entry for TeX2ISO_Conversion=ON/OFF [toggle via '"'] 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. o add check/support for gpg o MIME-pgp support according to RFC2015 o add RFC1468/1922 support o add feature save selected/tagged files sequentially to the same file (like it's currently done when prepending filename with '=') o add counter to post-processing commands (processing file x of y) o add feature Cc: o add feature show_new_newsgroups_since o add feature goto using the 'G' key use a general purpose routine for locating regex's in articles Use this to goto: URL's Message-ID's Could also be used to better detect (or act upon) : Quoted text uuencode header lines etc... o Additions to the pager: check for urlview during configure and if found add 'U' feed page to urlview '?' backward search o Additions to the thread menu : 'M' (option menu) 'D' (cancel article) 'r' (reply to) /* not 'R' cause it conflicts with mail_bugreport */ '' r ought to be toggle show all/show only unread 'f' (post a followup) keys to goto previous/next thread o Add to the 'M'enu: DEFAULT_MAILER o Add to the POST_INFO-level: '?','/' search 'h' help-screen o Add a commandline switch that prints out all values of cpp-symbols etc. o Reorganize tinrc into related sections for easier editing e.g., Display, Posting etc. o A system-wide tinrc configuration file, the $HOME/.tin/tinrc need only store the differences from this. A key code to reset to the system defaults Maybe a file which could be used to force settings (eg inews & mailer) (tin.defaults [--with-defaults-dir] is a start) o - think about removing global attributes files (TIN_LIBDIR/attributes) - move global files (TIN_LIBDIR/tinrc, TIN_LIBDIR/attributes) to TIN_DEFAULTS_DIR o bring up a warning if Subject: starts with 'Re:' but article has no References: o bring up a warning if References: are present but Subject: doesn't start with 'Re:' or doesn't contain '(was: '. o if Newsgroups:-line has groups in it which are not present in the users active file ask the user if he wants to strip these groups from the newsgroups-line (N/y) do the same for Followup-to: o bring up a warning on a long Newsgroups: (>=5) line and force the user to confirm every single group he wants to post (or redirect followups to) in. (N/y) rewrite NGLIMIT handling (post.c) (not just truncate Newsgroups:-line after the NGLIMITth newsgroup - or if we do so - give an extra warning to the user and give the the chance to reedit the Newsgroups:-line) o bring up a warning when trying to f'up into a binary group (Warning, sending a followup to a binary group is undesired, post it anyway? N/y) o posting to a binarie group should warn if no followup is set to another group/poster (you have not set a target for a possible discussion on your post, would you like to go on anyway? N/y) o when posting to a group containing uppercase-letters: bring up a warning: "Newsgroup-names should be all lowercase, correct it? (Y/n)" (g)oto group is case sensitive also newsgroup names in the command-line are case sensitive better would be: check if they exist and if not ask if you would like to convert newsgroup name to lowercase [son_of_1036] NOTE: Possibly newsgroup names should have been case-insensitive, but all existing software treats them as case-sensitive. (RFC 977 [rrr] claims that they are case-insensitive in NNTP, but exist- ing implementations are believed to ignore this.) The simplest solution is just to ban use of upper- case letters, since no widespread newsgroup name uses them anyway; this avoids any possibility of confusion. o when From: only contains "First-name Last-name" tin strips the space misc.c:parse_from() ?? o Bounce duplicate Message-ID's when the headers are read. This will make the threading code happier too. o Enhance -w to take newsgroup name as argument and use vGrpGetArtInfo() to allow posting to groups other than those in newsrc. o Merge the selection code with the range code. Having two similar methods of picking articles with similar goals is wasteful. Internal Changes ---------------- o check where PRODUCT should be used instead of tin_progname and/or "tin" o kick Hungarian notation o kick ~/.tin/headers, ~/.tin/attributs exists o use XGTITLE (if available) if -n cmd-line flag is present (see open.c) o check where snprintf() would be useful and if system has one (tin 1.5.0 comes with a snprintf() fallback). o clean-up INDEX_DAEMON code add configure option for it (or remove the tind-code (IMHO it's no longer needed)) o change all system()/popen() calls to fork() and exec() calls [close security holes] o compile-time option: generate own MSGIDs on host with a proper FQDN (EVIL_INSIDE) add a _-_ to the local part of the MSGID on a subject-change; keep MSGIDs of own articles in ~/.tin/posted to be able to detect f'ups to own postings o add to autoconf; determine which network libraries are needed; eradicate platform/compiler ifdefs 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 check where int/long/... should be replaced by size_t/uid_t/mode_t/off_t/... o add check for sizeof char, short, int, long, ... make sure that the code works even with 'uncommon' values (i.e. char = 1 byte with 32 bit) o join Makefile and makefile (not entirely possible) update makefile[.in] o move all strings to lang.c o cleanup (=rewrite) post.c/inews.c/header.c/page.c o cleanup main.c/init_selfinfo() ('strace -e trace=file tin' and you know what I mean) o is art->inthread really needed, surely art->thread contains enough information o remove annoying casts to (t_hashnode *)aptr in {art,refs}.c o fix 5th arg to mail_to_someone() in post.c (lcc (Linux) and tcc -Xc (Linux) both refuse to compile post.c) o check where tin_done() should be called instead of using exit() o check where STRCPY() should be used o check code with lclint (http://www.sds.lcs.mit.edu/lclint/), ccmalloc (http://iseran.ira.uka.de/~armin/ccmalloc/) and MSS (http://hem1.passagen.se/blizzar/mss/) Docs/online help ---------------- o man page still needs work o error message when tin -uv and using xover is misleading o tin.defaults is still not mentioned in manpage/INSTALL Not yet classified ------------------ o we might need a quote_percent(string) function and should check all wait_message() etc.pp. calls with user defined strings... o 'B'ody search doesn't jump to the match in the article (IMHO this is confusing inside the pager (at least if the hit is in the current article), but ok at any other level). o strip Xref:-header if saving news in batch mode (-S)? o tin in batchmode dumps core if getting a SIGINT, useful? o 'u'nsubscribe/'s'ubscribe are inconsistent - bug or feature? 's' subscribes you to the current group and does _not_ skip to the next group (annoying when subscribing to multiple groups, but useful when subscribing to a single group right before reading it) 'u' unsubsribes you form the current group and skips to the next group. o what is with the conflicting settings? should we disallow those, or leave it to the user to realise that i.e. strip_blanks=ON && inverse_okay=ON looks ugly? o what is with DEBUG_NEWSRC_FIXME (not DEBUG_NEWSRC) in newsrc.c? o what is with NEW_HASH_METHOD in list.c? o repost ('x') ignores ~/.tin/headers & ~/.tin/attributes - bug or feature?! o forged cancelling via Supersedes:/Also-Control:/Control:-header is possible if it is supplied by hand (buildin_inews) o f'uping with 'F' to a article which has Followup-To: poster set an then use 'm' quotes the text, but it should not! (mail_to_someone has no copy_text switch) o f'uping with '^W' (include headers) to an article which has Followup-To: poster set does not include headers when using 'm' (mail to poster) o when last articles in a newsgroup were cancelled, it shows that there are new articles in that group, even if entered that group in a session before o article save with auto_save=ON & Archive-name: doesn't not work correctly o shows up cross-postings multiple times even if read once before getting a resync/reread active/newsrc-file o numbering of Hot articles is wrong after (post)processing them (6T 0A 0K -5H R) o think about group numbering in "only unread" display mode (using different numbers in show all/show only unread leads to some problems, f.e. group moving) o mailers other than sendmail (f.e. elm) and use_mailreader_i=OFF may lead to 'duplicated'-headers and multiple signatures o mail_bugreport() with other mailers than sendmail and use_mailreader_i=ON ignores start_line_offset Filtering enhancements ---------------------- o add used filter-type to filter-file or filter-rule or use different filter files for wildmat/regexp o add command: mark all articles older/newer than as read (useful when subscribing to a new group with high-traffic...) o fix kill/hot mechanism so that it is possible to match articles on arbitrary headers o don't strip "Re: " out of the subject before applying the filter on it o cleanup xref-filter (xref_score is no longer needed with score). o allow any given amount of days in default_filter_days not only {1, 2, 4} * 28 days o allow expiring filter entrys n-days after the last time they matched Fixed already?: ---------------- o if you compile debug.c with -O3 on IRIX (5.3) & native-compiler tin won't compile at all... - use -O2 for debug.c!! o tin crashes if compiled without default-newsserver and unset $NNTPSERVER ??? o if postings fails tin rereads the article numbers for the group you tried to post in to sync with your new article which does not exist, useless! o Colors are not reset when tin is suspended with ^Z (signal.c) Other tty characteristics (eg echo) are not reset after a fatal signal o looks like DEFAULT_EDITOR (fall-back if neither $EDITOR nor $VISUAL is set) is missing for SCO