Bugs
----
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
    - line which are exactly cCOLS wide cause a LF in the pager (ugly)
      and the LF is not counted note.lines

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 <urs@tin.org>]

o  '-s' cmd-line switch specifies the spooldir also in the tinrc.
   [Urs Janssen <urs@tin.org>]

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 <nimmich@uni-muenster.de>]

o  strfmailer() calls rfc1522_encode() for Subject/To even with
   use_mailreader_i=ON (not very useful as modern mail-readers
   also try to mime-encode these line which would lead to a double encoded
   subject (with inner encoding 'broken' due to escape_shell_meta() call
   in strfmailer())

o  external inews, ~/.signature and base64 encoding MUST 'fail'
   (article will be encoded, signature will be not!)
   -> issue a warning in that case (base64 + external inews)
   [Sven Paulus <sven@karlsruhe.org>]

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 <vlefevre@ens-lyon.fr>]
   (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 <stabro@almatel.net>]

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 machtes (already done, but used string is 'wrong'
     as it's still talking about tin-unoff)
   - 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) 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  reposting of a thread does not work

o  with --enable-forgery reposting of an thread reposts only the first
   article ('x' 't' 'r' <group> '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  Followup-To: line is not examined whether the mentioned group(s) are
   valid on this server.

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 <urs@tin.org>]

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 <mow@mow.physik.uni-bremen.de>]

o  word highlighting shouldn't be enabled in signatures, as '*'
   and '_' characters may be used for ASCII art (e.g. '___').
   [Vincent Lefevre <vlefevre@ens-lyon.fr>]

New features
------------
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()).

o  lock news/tinrc via flock, lockf, fcntl or dotfile-locking (depending
   on which mechanism is available)

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 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 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 <ftp://ftp.tin.org/pub/misc/>
     '?' backward search

o  Additions to the thread menu :
     'B' (body search)
     'D' (cancel article)
     'M' (option menu)
     'w' (post an 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  - remove global filter file (TIN_LIBDIR/filter) as you don't know which
     patter-matching-style the user has defined
   - 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 newsgroup (>=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 edit the Newsgroups:-line)

o  bring up a warning when trying to f'up into a binaries group
   (Warning, sending a followup to a binaries group is undesired, post it
   anyway? N/y)

o  posting to a binaries 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.

Internal Changes
----------------
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
   (mutt comes with one).

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
   (to 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)

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  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/)

Docs/online help
----------------
o  man page still needs work

o  error message when tin -uv and using xover is misleading

o  tin.defaults is 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 command: mark all articles older/newer than <date> 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  tin (sometimes?) overwrites the newsgroup-number and number of unread
   articles with spaces when turning on newsgroup descriptions with
   strip_blanks=OFF - the bugs seems to be related to the screen-width and
   does not show up on small screens, but in large xterms...
   (sounds like a calculation error with float -> int values [urs])
   [Karsten Weiss <knweiss@trick.informatik.uni-stuttgart.de> ]

o  sometimes tin truncates newsgroup-names after turning off newsgroup
   descriptions.
   [Urs Janssen <urs@akk.uni-karlsruhe.de>]

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
