"Fossies" - the Fresh Open Source Software Archive

Member "tin-2.4.1/doc/TODO" (21 Dec 2016, 46733 Bytes) of package /linux/misc/tin-2.4.1.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "TODO": 2.4.0_vs_2.4.1.

    1 Items which are showstoppers for the next major release are marked with '!'
    2 in front of them (feel free to up/downgrade and/or add bugs, this file is
    3 not read only ,-).
    4 
    5 Bugs
    6 ----
    7 o  replying via email to an article with
    8    From: =?us-ascii?q?<a@example.com>,?= <b@example.org>
    9    will result in
   10    To: <a@example.com>, <b@example.org>
   11    [20141230 Urs Janssen <urs@tin.org>]
   12 
   13 o  get_respcode() doesn't handle the 401 response code. as we have to
   14    evaluate the response text as well we have to fix every
   15    nntp_command(..., NULL, 0) call.
   16    [20100429 Urs Janssen <urs@tin.org>]
   17 
   18 o  col_response is a misnomer as the counter doesn't count responses
   19    anymore (except on the very first article). The man-page is outdated too.
   20    [20080826 Urs Janssen <urs@tin.org>]
   21 
   22 o  'T'ag all parts of multipart message doesn't work (it never did)
   23    with thread_arts 4 (multipart) or 5 (percentage)
   24    [20080606 Urs Janssen <urs@tin.org>]
   25 
   26 o  cLINES < MIN_LINES_ON_TERMINAL || cCOLS < MIN_COLUMNS_ON_TERMINAL
   27    isn't checked on startup
   28    [20071210 Urs Janssen <urs@tin.org>]
   29 
   30 o  unexpected multiline responses confuse tin, e.g.:
   31    | 240 Article posted =?ISO-8859-1?Q?=3C=3D=3Fiso=2D8859=2D1=3Fq=3F=3F=3D87r7k8na?=
   32    |   =?ISO-8859-1?Q?vt=2Efsf=40urs=2Did=2Etest=2Eka=2Enu=3E?=
   33    (the servers response should be a single line (INN 2.2))
   34    [20050207 Urs Janssen <urs@tin.org>]
   35 
   36 o  better integrate saving of MIME/non-MIME articles when not using libuu.
   37    MIME sections are saved by the 's'ave operations, uuencoded sections
   38    are saved as part of the postprocess backend
   39    [mostly done]
   40    [Jason Faultless <jason@altarstone.com>]
   41 
   42 o  batch mode has several bugs
   43    - -Z and giving a cmd-line group the cmd-line group is not displayed in
   44      the statistics nor taken into account for the 'any unread news' status.
   45    - -vc could be more verbose (like -vcZ is)
   46    - -o currently is not a 'batch_mode' option
   47    [Urs Janssen <urs@tin.org>]
   48 
   49 o  add version number to other config-files (e.g. tin.defaults)
   50    and do the same checks as for TINRC_VERSION/tinrc. for the
   51    filter and attributes file store the charset the file is written in
   52    (e.g. ISO-8859-x vs. unicode) and for the filter file the filter method
   53    used (wildmat or regexp (or TRE))
   54    [Urs Janssen <urs@tin.org>]
   55 
   56 o  overview file caching code is over-complex
   57    - cache the original overview info instead of rebuilding it from
   58      the processed (decoded etc.) data, no matter if it's broken (e.g.
   59      contains raw 8 bit data) as we have to deal with that anyway. if there
   60      are no original overviews, cache the original data from the postings
   61      headers (after unfolding and tab removal).
   62    - Add docs to explain how to create system-wide overviews
   63 
   64 o  iso2asc conversion is missing for 'internal' strings (e.g. 'M'enu)
   65    [20020319 Urs Janssen <urs@tin.org>]
   66 
   67 o  comments in attributes get lost (we need to do something like we do for
   68    the filter file)
   69    [20080425 Urs Janssen <urs@tin.org>]
   70 
   71 o  if tin is falling back to HEAD/NEXT ([X]OVER not working) it doesn't honor
   72    tinrc.getart_limit
   73    [20090112 Urs Janssen <urs@tin.org>]
   74 
   75 o  the keys GroupToggleSubjDisplay and ThreadToggleSubjDisplay are misnamed,
   76    as they toggle the display of the sender address, not the subject.
   77    [20130839 Urs Janssen <urs@tin.org>]
   78 
   79 Pager Problems
   80 --------------
   81 
   82 Posting Problems
   83 ----------------
   84 o  8bit chars in some headers are RFC-2047-encoded where this is not allowed
   85    according to usefor (Newsgrous, Distribution, ...) - do_rfc15211522_encode()
   86    simply encodes all headers no matter if any of them must not be encoded
   87    (see parse_rfc822_headers()).
   88    [20090112 Urs Janssen <urs@tin.org>]
   89 
   90 o  the mime encoder may create two adjacent encoed words in the same line
   91    e.g.       Subject: =?UTF-8?B?4oKs4oKs4oKs?= =?UTF-8?B?IOKCrOKCrOKCrA==?=
   92    instead of Subject: =?UTF-8?B?4oKs4oKs4oKsIOKCrOKCrOKCrA==?=
   93    [20140513 Urs Janssen <urs@tin.org>]
   94 
   95 o  remove Message-IDs with 8bit chars in them when they occur in
   96    Message-ID or References header
   97    [done for References in replies/followups, Urs]
   98 
   99 o  keep RFC 6532 in mind as parts of it will sooner or later make it into
  100    NNTP (sic!).
  101    [20120220 Urs Janssen <urs@tin.org>]
  102 
  103 o  repost ('x') ignores ~/.tin/attributes - bug or feature?!
  104    [IMHO a bug as settings like mailing_list are essential, Urs]
  105 
  106 o  forged cancelling via Supersedes:/Also-Control:/Control:-header is possible
  107    if it is supplied by hand (inews_prog=--internal)
  108 
  109 o  when last articles in a newsgroup were cancelled, it shows that there are
  110    new articles in that group (except when using -n cmd-line flag)
  111 
  112 o  mailers other than sendmail (f.e. elm) and use_mailreader_i=OFF may lead
  113    to 'duplicated'-headers and multiple signatures
  114 
  115 New features
  116 ------------
  117 o  add second pipe command when piping multiple articles to use one
  118    pipe per article (currently it is one pipe for all). ':' could be
  119    used as key (only in use at the pager where this feature doesn't make
  120    sense).
  121    [20160412 Urs Janssen <urs@tin.org>]
  122 
  123 o  allow abort piping multiple articles, ESC/'z' just aborts the current
  124    one
  125    [20160409 Urs Janssen <urs@tin.org>]
  126 
  127 o  add per scope getart_limit via attributes
  128    [20131114 Urs Janssen <urs@tin.org>]
  129 
  130 o  add support for %A (Address), %C (Firstname), %N (Fullname) to
  131    group_format and thread_format
  132    (what about "conflicting" settings for show_author and %[ACIN]?)
  133    [20130925 Urs Janssen <urs@tin.org>]
  134 
  135 o  add a key to "drop" pending data from the server (either by
  136    disconnet/reconnect (fast but reconnect may fail due to rate limit or ...)
  137    or via calling drain_buffer() (might be slow if there is much pending
  138    data)) so one doesn't have to quit and restart tin if the client/server
  139    communication get's desynced (i.e by reading an article which has a non
  140    dotstuffed lone . in it or the like)
  141    [20130615 Urs Janssen <urs@tin.org>]
  142 
  143 o  x_body currently doesn't allow cmd. execution via ! like x_headers
  144    [20110912 Urs Janssen <urs@tin.org>]
  145 
  146 o  add nntp_default_server to tin.defaults to override compile time setting.
  147    if given strings starts with / or ~ the value is taken from the referenced
  148    file, if it starts with $ it is read from the referenced variable.
  149    [20101118 Urs Janssen <urs@tin.org>]
  150 
  151 o  the old space_goto_next_article=ON && space_goto_next_unread=OFF is not
  152    possible with the new goto_next_unread rc-var, we need something like
  153    an additional goto_next_read rc-var
  154    [20101101 Urs Janssen <urs@tin.org>]
  155 
  156 o  add DEFAULT_SIGDASHES_REGEX and related 'M'enu-entry for signature
  157    detection in cook.c
  158    [20080925 Urs Janssen <urs@tin.org>]
  159 
  160 o  give an error message if append_mail() fails (grep TODO post.c)
  161    [20080423 Urs Janssen <urs@tin.org>]
  162 
  163 o  allow remapping of the 'z' abort-key (lynx style) in wait_for_input().
  164 
  165 o  add user defined screen layout at different levels (e.g. posting
  166    history screen)
  167    (done for selection, group and thread level)
  168    [20041025 Urs Janssen <urs@tin.org>]
  169 
  170 o  add TLS (RFC 4642), NNTPS support
  171    (<http://www.gnu.org/software/gnutls/>, <http://www.openssl.org/>
  172     might be useful (but unfortunately we use fputs()/fgets() instead of
  173     read()/write() - BIO_*() may be useful);
  174     "stunnel -c -d 1119 -r news.example.org:563; tin -g localhost -p 1119"
  175     can be used for NNTPS)
  176    [20031210 Urs Janssen <urs@tin.org>]
  177 
  178 o  add more AUTHINFO SASL (RFC 4643, RFC 5802) support (DIGEST-MD5,
  179    EXTERNAL, ...) and a fallback if no libgsasl is found (e.g cyrus-sasl
  180    or a handrolled version for at least PLAIN)
  181    [20080316 Urs Janssen <urs@tin.org>]
  182 
  183 o  add XZVER (and XZHDR) support (zlib compressed yyencoded overview data)
  184    <http://helpdesk.astraweb.com/index.php?_m=news&_a=viewnews&newsid=9>
  185 
  186 o  make 'GNKSA'-parser RFC5322/USEFOR compliant and fix bugs
  187    (e.g. "<~$!~( )@( )example.com>" causes "illegal character in RHS", but
  188    the address is valid)
  189 
  190 o  the TLD checking in the 'GNKSA'-parser needs some rework, keeping the
  191    list of valid TLDs up to date is more or less impossible with the ~1400
  192    pending new TLDs
  193    [20131024 Urs Janssen <urs@tin.org>]
  194 
  195 o  add In-Reply-To threading for mailgroups
  196    [20030518 Urs Janssen <urs@tin.org>]
  197 
  198 o  make auto'S'ave also work for inrange groups
  199    (unfortunately 'S' at select level is used for something else)
  200    [20030508 Urs Janssen <urs@tin.org>]
  201 
  202 o  turn ask_for_metamail into $MM_NOASK support (see metamail(1))
  203    [20030314 Urs Janssen <urs@tin.org>]
  204 
  205 o  fetch overview data in chunks (e.g. 100 arts/chunk) to allow
  206    faster read interruption.
  207    [20020326 Dirk Nimmich <nimmich@muenster.de>]
  208 
  209 o  add bold-italic, bold-underline, italic-underline, bold-italic-underline
  210    word highlightings.
  211    [20020721 Urs Janssen <urs@tin.org>]
  212 
  213 o  allow bold, underline, italic, ... as colour substitution for
  214    monochrome terminals (map green=underline, italic=yellow)
  215    (see also
  216    <nntp://news.tin.org/20020416202232.A4575@bloatware.reston01.va.comcast.net>)
  217    [20030218 Serge Matveev <sm@cl.spb.ru>]
  218 
  219 o  hierarchical 'M'enu, e.g. put all art_marked_*into a 'submenu',
  220    restructure/sort 'M'enu items, some disply-options (render BiDi) are
  221    currently under expert options, some options in display options are
  222    navigation options (catchup thread, use mouse, ...)
  223    [20020322 Urs Janssen <urs@tin.org>]
  224 
  225 o  add a postponed 'browser' (store postponed arts in MH or maildir
  226    format to make things easier?)
  227    [20020305 Dirk Nimmich <nimmich@muenster.de>]
  228 
  229 o  add postpone option for mail-actions;
  230    reusing p'o'stponed articles in mailing_list groups doesn't work
  231    (possible fix: store Newsgroups (and other info) via msg_add_header()
  232     (to overwrite any old values) in X-Tin-Postponed:-header and remove it
  233     before posting.)
  234    [20010623 Urs Janssen <urs@tin.org>]
  235 
  236 o  should the postponed 'file' (and posted messages 'file') be in
  237    mailbox_format (even if that's a one file/message format, thus
  238    the 'file' actually needs to be a directory?).
  239 
  240 o  add maildir/maildir++ support (besides MBOX{O,RD} and MMDF},
  241    MH (not only reading but also writing), mailstore, BABYL, Kendra (MMDF
  242    like with 20*CTRL-A as sep.), MBX and MIX (indexed MBOX from UW-IMAP)
  243    and add man-pages for the various formats.
  244    (see <http://www.ifi.uio.no/~larsi/notes/BABYL> for BABYL,
  245     <http://www.qmail.org/man/man5/maildir.html> for maildir,
  246     <http://www.qmail.org/man/man5/mbox.html> for MBOXCL and MBOXCL2,
  247     <http://www.washington.edu/imap/listarch/2000/msg00363.html> for MBX,
  248     <http://www.washington.edu/imap/documentation/mixfmt.txt.html for MIX)
  249    [20020215 Urs Janssen <urs@tin.org>]
  250 
  251 o  add $LOCKEXT support
  252    [20030611 Urs Janssen <urs@tin.org>]
  253 
  254 o  add xxencode (<http://www.ctan.org/tex-archive/tools/xxcode/xxdecode.c>),
  255    base224 (<http://b-news.sf.net/>), xBin <http://www.xbin.org/> and
  256    yenc (hide/decode-)support (see <http://nerv.cx/liyang/software/yydecode/>
  257    for readable code, ignore the crap on <http://www.yenc.org/>). also
  258    check <http://www.exit109.com/~jeremy/news/binaries/> which might
  259    replace yenc etc.pp. some day.
  260    [20020216 Urs Janssen <urs@tin.org>]
  261 
  262 o  add "Face:" (incompatible "X-Face:"-replacement) support?
  263    [20040107 Urs Janssen <urs@tin.org>]
  264 
  265 o  turn CA_ERROR_SPACE_IN_NEWSGROUPS, CA_ERROR_NEWLINE_IN_NEWSGROUPS,
  266    CA_ERROR_SPACE_IN_FOLLOWUP_TO, CA_ERROR_NEWLINE_IN_FOLLOWUP_TO into
  267    CA_WARNING_s (see draft-ietf-usefor-article-06.txt 5.5) and mark them
  268    for removal in the future.
  269    [define FOLLOW_USEFOR_DRAFT to turn the mentioned errors into
  270     warnings. 20011226 Urs Janssen <urs@tin.org>]
  271 
  272 o  check FOLLOW_USEFOR_DRAFT code against RFC 5536
  273    [20120221 Urs Janssen <urs@tin.org>]
  274 
  275 o  support "Suggested Minimal Digest Format"
  276    <ftp://rtfm.mit.edu/pub/usenet/news.answers/faqs/minimal-digest-format>
  277 
  278 o  add new threading method: thread by reference, but split threads on
  279    subject change
  280    [Urs Janssen <urs@tin.org>]
  281 
  282 o  rewrite thread-method selection that users can easily combine different
  283    threading methods (THREAD_SUBJ + THREAD_MULTI || THREAD_REFS +
  284    THREAD_MULTI || ...) - see also note in art.c
  285    [20011117 Urs Janssen <urs@tin.org>]
  286 
  287 o  add counter to post-processing commands (processing file x of y)
  288    (Is post-processing really that slow? [Jason Faultless
  289    <jason@altarstone.com>] no but if you post-process more than a
  290    handful of files it would be useful [Urs Janssen <urs@tin.org>])
  291 
  292 o  add key to toggle article and thread sorting preferences on the fly
  293    (like 'u' for threading)
  294 
  295 o  check if servers high mark is lower than the one in users newsrc, if so
  296    issue a warning and allow the luser to reset the highmark in the newsrc
  297    to the servers 'l'ow or the servers 'h'igh mark or 'i'gnore it.
  298 
  299 o  check if the articles Subject/From in the pager matches (minus
  300    whitespaces) the one on the overview file (if available) - if not
  301    issue a warning that the servers overviews seem to be broken. trust
  302    the headers, not overviews. (see note in rfc2046.c)
  303    do the same with the article numbers in the (cached) overview
  304    data (we already do this, but currently this will lead to article "loss").
  305    if they are higher than the server's high-mark don't trust them (and
  306    discard the locally cached data).
  307 
  308 o  attributes (still) needs some work; See doc/config-anomalies.
  309    [20030303 Dirk Nimmich <nimmich@muenster.de>]
  310 
  311 o  add IPv6 support
  312    (add protocol independent wrappers which use IPv6 (functions)
  313     whenever possible).
  314    there are two small problems with the minimalistic IPv6 support which is
  315    currently in tin: when getaddrinfo() is used to get the name/ip of the
  316    newsserver it always uses DNS (gethostbyname()/gethostbyaddr() checked
  317    /etc/hosts first) and getaddrinfo() seems to have a (huge) delay in some
  318    cases. use getipnodebyname()/getipnodebyaddr() (if available) instead.
  319    check for gethostbyaddr_r()/gethostbyname_r() and use them instead
  320    of gethostbyaddr()/gethostbyname() if available.
  321 
  322 o  add cmd-line/tinrc-switch to fetch only headers of unread articles;
  323    in that case, make 'r' reading the rest of the articles
  324    [-G is a start]
  325    allow setting a per group limit via attributes
  326 
  327 o  check if server supports 'LIST MODERATORS' and/or 'LIST DISTRIB.PATS' and
  328    if it does parse the output so it can be shown to the user. (e.g. when
  329    posting to a moderated group, show the moderators mail-address, but still
  330    leave the mailing to the server; if the group has limited distribution
  331    inform the user, ...)
  332 
  333 o  if using "-n" commandline switch you can't subscribe to newsgroups not
  334    present in your newsrc - a simple check against the server
  335    (e.g. GROUP $newsgroup or if !NNTP try to stat the dir) would help.
  336    if the server understands "LIST ACTIVE grp" we could also get the group's
  337    attribute (moderated, etc.) and with "LIST NEWSGROUPS grp" it's
  338    description.
  339 
  340 o  item_by_item_etiquette_warnings [compile-time?]
  341    (e.g. enable x-posts without f'up warning, disable long-sig warning)
  342 
  343 o  don't prefix posted_articles_file with maildir if posted_articles_file
  344    has an absolute path (after expanding ~).
  345    [20130627 Urs Janssen <urs@tin.org>]
  346 
  347 o  posted_articles_file is not available in attributes
  348    [20130628 Urs Janssen <urs@tin.org>]
  349 
  350 o  unify Fcc and posted_articles_file
  351    [20031012 Dirk Nimmich <nimmich@muenster.de>]
  352 
  353 o  MIME-pgp support according to RFC 2015, RFC 3156 - (should be easy now)
  354    and/or in the format that used by signcontrol/pgpverify (see also
  355    tinews.pl)
  356    As MIME-pgp verification needs the undecoded mime-part with its headers
  357    storing the raw-offset of each part in the article would be very helpful.
  358 
  359 o  pgpverify invocation with a single key instead of '|''a''pgpverify' or a
  360    buildin pgpverify solution.
  361 
  362 o  pgp-{6,7} support
  363 
  364 o  add check for GPGME (<http://www.gnupg.org/related_software/gpgme/>) and if
  365    found use it for pgp actions.
  366 
  367 o  add feature Cc:
  368 
  369 o  add feature show_new_newsgroups_since
  370 
  371 o  add new key which taggs articles based on a prompted regex, could be used
  372    for GROUP_MARK_THREAD_READ,PAGE_MARK_THREAD_READ,THREAD_MARK_ARTICLE_READ
  373    and/or something like GROUP_SELECT_THREAD/THREAD_SELECT_ARTICLE which
  374    works on tagged arts (the later might be useful in conjnction with
  375    GROUP_MARK_UNSELECTED_ARTICLES_READ)
  376    [20051110 Urs Janssen <urs@tin.org>]
  377 
  378 o  Additions to the thread menu:
  379      ']'  (GLOBAL_QUICK_FILTER_KILL)
  380      '['  (GLOBAL_QUICK_FILTER_SELECT)
  381      'r'  (reply to) /* not 'R' cause it conflicts with mail_bugreport */
  382      ''   r should be toggle show all/show only unread
  383      'f'  (post a followup) (maybe also 'F', '^W', ...)
  384      'N'  (next unread article)
  385      'P'  (previous unread article)
  386      'T'  (tag all parts of current multipart-message in order)
  387      'V'  (View/pipe/save multimedia attachments)
  388      'X'  (mark all unread articles that have not been selected as read)
  389      ';'  (mark unread arts as hot if >= 1 art in thread is hot)
  390      '+'  (mark thread as hot)
  391      '='  (mark pattern as hot)
  392      '@'  (toggle selections)
  393      'Y'  (check for new articles in thread)
  394      '%'  (toggle rot13 encoding of screen content)
  395      'x'  (repost)
  396      'e'  (edit mailgroup article)
  397      keys to go to previous/next thread
  398 
  399 o  Additions to the group menu:
  400      'V'  (View/pipe/save multimedia attachments)
  401      'Y'  (check for new articles in group)
  402      '%'  (toggle rot13 encoding of screen content)
  403 
  404 o  Additions to the select menu:
  405      '%'  (toggle rot13 encoding of screen content)
  406      key to toggle groupname abbreviation
  407 
  408 o  Add to the 'M'enu:
  409      'R'  (GLOBAL_BUGREPORT)
  410      '&'  (GLOBAL_TOGGLE_COLOR)
  411      and maybe a way to change built in path like DEFAULT_MAILER, PATH_PGP, ...
  412 
  413 o  Add to the attachment menu ('V'):
  414      'F'  post followup to current article, not including current attachment
  415      'R'  reply through mail to author, not including current attachment
  416           or
  417      'R'  (GLOBAL_BUGREPORT)
  418      'f'  post followup to current article, including current (or tagged)
  419           attachment(s)
  420      'm'  mail attachment
  421      'o'  print attachment
  422      'r'  reply through mail to author, including current attachment
  423      't'  tag attachments for '|', 'p', 's', 'm' (done for 's')
  424      '#'  tag range of attachments (n-m)
  425      'x'  repost current attachment to another group
  426      '%'  (toggle rot13 encoding of screen content)
  427      '&'  (GLOBAL_TOGGLE_COLOR)
  428 
  429 o  Add a commandline switch (-V) that prints out all values of cpp-symbols
  430    etc. [partly done, but should be cleaned up]
  431 
  432 o  Reorganize tinrc into related sections for easier editing
  433    e.g., Display, Posting etc.
  434 
  435 o  A system-wide tinrc configuration file (to hold some defaults).
  436    [done: /etc/tin/tinrc] A key code to reset to the system defaults.
  437    Maybe a second file which could be used to force settings (eg
  438    inews & mailer) (tin.defaults [--with-defaults-dir] is a start)
  439 
  440 o  when From: only contains "First-name Last-name" tin strips the
  441    Last-name in group/thread/page-level
  442    [20020319 Urs Janssen <urs@tin.org>]
  443 
  444 o  Bounce duplicate Message-ID's when the headers are read. This will
  445    make the threading code happier too.
  446    Make read_overview() more forgiving of errors. If the article # is okay,
  447    then there is no reason to completely hide the article
  448    [Jason Faultless <jason@altarstone.com>]
  449 
  450 o  Merge the selection code with the range code. Having two similar methods
  451    of picking articles with similar goals is wasteful.
  452    [Jason Faultless <jason@altarstone.com>]
  453 
  454 o  add check for liblzma/libbzip2/zlib (>=1.1.4)/[mini]lzo, lzlib, liblz4,
  455    liblrzip, ...
  456    (<http://tukaani.org/xz/>, <http://sources.redhat.com/bzip2/>,
  457     <http://www.gzip.org/zlib/>, <http://www.oberhumer.com/opensource/lzo/>,
  458     <http://lzip.nongnu.org/lzlib.html>, <http://code.google.com/p/lz4/>,
  459     <http://freecode.com/projects/long-range-zip>) and add an option to
  460    write/read *zipped local overviews.
  461    the libs might also be used for post-processing articles.
  462 
  463 o  rewrite/cleanup all the debugging code, the output in /tmp is messy; the
  464    on screen output either slows down things dramatically or is unreadable;
  465    split DEBUG_MISC?
  466    [Urs Janssen <urs@tin.org>]
  467 
  468 o  replace gettimeofday() with clock_gettime() if available in parsdate.y
  469    as POSIX.1-2008 marks gettimeofday() as obsolete.
  470    [20110910 Urs Janssen <urs@tin.org>]
  471 
  472 o  Add 'M'enu option to define chars for utf8_graphics.
  473 
  474 Posting enhancements
  475 --------------------
  476 o  sort Followup-To:/Newsgroups: after stripping doubled newsgroups and
  477    before checking if they are identical, if so, strip Followup-To: and
  478    use unsorted but stripped Newsgroups:-line only
  479    ulBuildArgv() would be good for this
  480 
  481 o  if Newsgroups:-line has groups in it which are not present in the users
  482    active file ask the user if he wants to strip these groups from the
  483    newsgroups-line (N/y)
  484    do the same for Followup-To:
  485 
  486 o  check if any valid groups are in the Followup-To:-line and if not inform
  487    the user and use Newsgroups: instead (at the start of post_response())
  488 
  489 o  bring up a warning on a long Newsgroups: (>=5) line and
  490    force the user to confirm every single group he wants to post (or
  491    redirect followups to) in. (N/y)
  492 
  493 o  bring up a warning when trying to f'up into a binary group
  494    (use a regexp to detect binary groups e.g.:
  495     (?:\.binae?r|de\.alt\.dateien\.))
  496    (Warning, sending a followup to a binary group is undesired, post it
  497     anyway? N/y)
  498    [Urs Janssen <urs@tin.org>]
  499 
  500 o  posting to a binary group should warn if no followup is set to another
  501    group/poster (you have not set a target for a possible discussion on your
  502    post, would you like to go on anyway? N/y)
  503    [Urs Janssen <urs@tin.org>]
  504 
  505 o  when posting to a group containing uppercase-letters: bring up a
  506    warning: "Newsgroup-names should be all lowercase, correct it? (Y/n)"
  507 
  508 o  Enhance -n to take newsgroup name as argument and use group_get_art_info()
  509    to allow posting to groups other than those in newsrc.
  510 
  511 o  add config option for (external) viewer to show postings stored in
  512    keep_posted_articles_file
  513    [20021003 Michael Gerhards <HM-Gerhards@uni.de>]
  514 
  515 Filtering enhancements
  516 ----------------------
  517 o  add xref filter to the filter-menu
  518 
  519 o  add spamassassin interface when ever adding body filters
  520 
  521 o  add used filter-type to filter file or filter rule or use different
  522    filter files for wildmat/regexp
  523 
  524 o  add command: mark all articles older/newer than <date> (or <days>) as
  525    read (useful when subscribing to a new group with high-traffic...)
  526 
  527 o  fix kill/hot mechanism so that it is possible to match articles on
  528    arbitrary headers
  529 
  530 o  don't strip "Re: " out of the subject before applying the filter on it
  531 
  532 o  allow any given amount of days in default_filter_days not only
  533    {1, 2, 4} * 28 days
  534 
  535 o  allow expiring filter entrys n-days after the last time they matched
  536 
  537 o  add command to generate filter rules for all currently tagged articles
  538 
  539 o  allow editing of the strings presented in the kill-Menu for
  540    "Kill Subject", "Kill From", "Kill Msg-Id" without having to edit
  541    the full filter-file
  542    [20120201 Urs Janssen <urs@tin.org>]
  543 
  544 o  allow to abort the filter loop with iKeyAbort when entering a (large)
  545    group
  546    [20160211 Urs Janssen <urs@tin.org>]
  547 
  548 Pager enhancements
  549 ------------------
  550 o  add 'autoview' (spawn external viewer) 'autohide' (don't even show info
  551    about that part) for different content-types
  552 
  553 o  integrate multi-part tagging with regular tagging, eg.
  554    "This article appears to have multi-parts, try and find them (y/n)?"
  555 
  556 o  add Content-Language (RFC 3282) analysis
  557 
  558 o  suppress hide_uue=2 checking unless first line in an article or following
  559    a blank line
  560 
  561 o  add missing mailcap (RFC 1524) features (%n, %F, copiousoutput, print, ...)
  562    [20111205 Urs Janssen <urs@tin.org>]
  563 
  564 Internal Changes
  565 ----------------
  566 o  in ENABLE_NLS case replace PLURAL() macro with proper use of
  567    ngettext(3) (if found by configure) to support languages with
  568    more than one plural form.
  569    [20150113 Urs Janssen <urs@tin.org>]
  570 
  571 o  rename disable_gnksa_domain_check to enable_gnksa_domain_check and
  572    invert logic now the default changed
  573    [20131119 Urs Janssen <urs@tin.org>]
  574 
  575 o  %s/%S in quote_char should replaced by %I in misc.c:copy_body() and
  576    config.c:rc_update() to be consistent.
  577    [20131003 Urs Janssen <urs@tin.org>]
  578 
  579 o  curses.c:input_pending() and curses.c:get_arrow_key() have
  580    #ifdef HAVE_SELECT and a code path for the case when we don't have
  581    select(2), but read.c:wait_for_input() has no code path for the
  582    !HAVE_SELECT case. we should add a !HAVE_SELECT case there (or at
  583    least have adjusted messages in txt_reading_article and txt_group)
  584    [20110506 Urs Janssen <urs@tin.org>]
  585 
  586 o  ditch MAX_MSG_HEADERS (post.c)
  587    [20110212 Urs Janssen <urs@tin.org>]
  588 
  589 o  always display (also) the servers error response string to the user,
  590    currently tin sometimes gives generic messages (e.g. when authentication
  591    fails), but the servers response may include additional infos (like
  592    bandwidth exceeded)
  593    [20101230 Urs Janssen <urs@tin.org>]
  594 
  595 o  rewrite mini-help, remove the long strings and generate them dynamicly
  596    one help text for each key makes translations more easy and uniq and can
  597    use the available space on the screen much better if not running on 80
  598    columns.
  599    [20100326 Urs Janssen <urs@tin.org>]
  600 
  601 o  rewrite auth.c
  602    - turn t_bool authinfo_user, authinfo_sasl, authinfo_state into
  603      enum authinfo { NONE = 0, USER = 1, SASL = 2 }
  604 
  605 o  fix aclocal.m4:CF_FUNC_SYSTEM and/or misc.c:invoke_cmd() that
  606    --enable-broken-system-fix/IGNORE_SYSTEM_STATUS isn't needed anymore.
  607    [20090520 Urs Janssen <urs@tin.org>]
  608 
  609 o  tinrc.confirm_choice should be written/read as int, not string as users
  610    who edit the tinrc manually can't know the exact strings required.
  611    unfortunately rc_update() can't handle type changes (rc_update should
  612    also get the split version number as arg so we can do specific
  613    changes).
  614    [20081112 Urs Janssen <urs@tin.org>]
  615 
  616 o  use read()/write() instead of fputs()/fgets() on socket
  617 
  618 o  move several (server related) files into the per-server dir
  619    e.g.:
  620       ${TIN_INDEX_NEWSDIR-"${TIN_HOMEDIR-"$HOME"}/.tin"}/.news${NNTPSERVER+"-$NNTPSERVER"}/
  621    should be
  622       ${TIN_INDEX_NEWSDIR-"${TIN_HOMEDIR-"$HOME"}/.tin"}${NNTPSERVER+"/$NNTPSERVER"}/.news/
  623    [20050807 Urs Janssen <urs@tin.org>]
  624 
  625 o  upgrade configure-script to >= autoconf-2.61
  626    [20050728 Urs Janssen <urs@tin.org>]
  627 
  628 o  remove untranslatable constructs like txt_prefix_*
  629    [20050413 Urs Janssen <urs@tin.org>]
  630 
  631 o  keys which could be renamed/merged:
  632    - 'l' GroupListThd, PageListThd
  633    - 'm' GroupMail, PageMail, PostMail, ThreadMail
  634    - 'D' GroupCancel, PageCancel, ThreadCancel
  635    - 'N' GroupNextUnreadArt, PageNextUnreadArt, (SelectNextUnreadGrp)
  636    - 'S' GroupAutoSave, PageAutoSave, ThreadAutoSave
  637    - 'P' GroupPrevUnreadArt, PagePrevUnreadArt
  638    - '@' GroupReverseSel, ThreadReverseSel
  639    - '~' GroupUndoSel, ThreadUndoSel
  640    [20050408 Urs Janssen <urs@tin.org>]
  641 
  642 o  read_overview() calls eat_re() which strips the "Re: " out of the
  643    subject. the modified subject is used for batch_mode opperatios (-N/-M)
  644    which might not be what ppl. expect and eat_re() is the only function
  645    which needs the 'regex' overhead in batch_mode... (see also the note
  646    about "Re: "strpping at "Filtering enhancements").
  647    [20050225 Urs Janssen <urs@tin.org>]
  648 
  649 o  use new_nntp_command() instead of nntp_command() in the rest of the
  650    code (where useful; if we do a global change, rename it to
  651    nntp_command()). see check_extensions() for a sample usage.
  652    [20050211 Urs Janssen <urs@tin.org>]
  653 
  654 o  replace various occurrence of "US-ASCII" by DEFAULT(_MIME)_CHARSET
  655    and define that to "US-ASCII" (to make 'updates' easier).
  656    [20040929 Urs Janssen <urs@tin.org>]
  657 
  658 o  get rid of CURR_GROUP, use t_group instead
  659    create a global t_group *CURR_GROUP instead of the current macro
  660    reduce dependencies on my_group[] & selmenu outside of select.c
  661    [20030501 Urs Janssen <urs@tin.org>]
  662 
  663 o  clean up $AUTOSUBSCRIBE code (the NNTP code path is a mess)
  664    [20030412 Urs Janssen <urs@tin.org>]
  665 
  666 o  check where joinpath() should be used (e.g. grep for TMPDIR in the source)
  667    [Urs Janssen <urs@tin.org>]
  668 
  669 o  make configure look for strrstr() in libpub & publib.h
  670    [Urs Janssen <urs@tin.org>]
  671 
  672 o  reorder several structs to avoid padding (see gcc -Wpadded)
  673    [Urs Janssen <urs@tin.org>]
  674 
  675 o  what type is base[]? (long, see memory.c:init_alloc()~102)
  676    There is a lot of confusion internally over how it is used
  677    compare setup_hard_base() with find_base() etc..
  678    [Jason Faultless <jason@altarstone.com>]
  679 
  680 o  check where PRODUCT should be used instead of tin_progname and/or "tin"
  681    [Urs Janssen <urs@tin.org>]
  682 
  683 o  check where NEWSRC_FILE should be used in lang.c instead of "newsrc"
  684 
  685 o  kick Hungarian notation
  686    [Urs Janssen <urs@tin.org>]
  687 
  688 o  check where iKeyAbort should be used instead of ESC (etc.pp.)
  689    (AFAICS all fixed except prompt.c and read.c/'z')
  690    [Urs Janssen <urs@tin.org>]
  691 
  692 o  close potential security holes:
  693    - remove fixed length buffers (find_nov_file(), print_from(),
  694      quote_space_to_dash(), escape_shell_meta(), backup_article(),
  695      build_messageid(), get_secret(), get_host_name(), get_domain_name(),
  696      get_fqdn(), get_user_name(), get_full_name(), build_sender(), ...)
  697    - change all system()/popen() calls to fork() and exec() calls
  698    - check where we should use snprintf() instead of sprintf()
  699    - check where we should use strncat() instead of strcat()
  700    - check where we should use strncpy() instead of strcpy()
  701    - check possible races with access()/link()/rename()/stat()/
  702                                unlink()/chdir()/fopen()/fstat()/open()/
  703                                opendir()/t_open()/tmpfile()
  704    - check getenv() results before using it
  705    - check where my_strncpy() or STRCPY() should be used
  706    [Urs Janssen <urs@tin.org>]
  707 
  708 o  add to autoconf:
  709    - eradicate platform/compiler ifdefs
  710 
  711 o  clean up architecture independent files, rename several defines,
  712    remove useless doubled defines
  713 
  714 o  split tin.h/proto.h for better dependencies in Makefile
  715 
  716 o  check where int/long/... should be replaced by size_t, uid_t, mode_t,
  717    off_t, ...
  718    [Urs Janssen <urs@tin.org>]
  719 
  720 o  add check for sizeof char, short, int, long, ...
  721    make sure that the code works even with 'uncommon' values
  722    (e.g. char = 1 byte with 32 bit)
  723 
  724 o  cleanup post.c
  725 
  726 o  check code with Splint (LCLint) <http://www.splint.org/>,
  727    valgrind (<http://valgrind.org/>), cppcheck
  728    (<http://cppcheck.wiki.sourceforge.net/>), AdLint
  729    (<http://adlint.sourceforge.net/>), clang-analyzer
  730    (<http://clang-analyzer.llvm.org/>), Coverity
  731    (<https://scan.coverity.com/projects/993>), infer
  732    (<http://fbinfer.com/>) and zzuf
  733    (<http://caca.zoy.org/wiki/zzuf>)
  734 
  735 o  rewrite the tag code so that arts[].tagged becomes index in arts[]
  736    of next tagged article. num_of_tagged_arts becomes index of first
  737    tagged art. Traversing tagged arts becomes much easier & faster.
  738    [Jason Faultless <jason@altarstone.com>]
  739 
  740 o  strip Xref:-header if saving news in batch mode (-S)?
  741    [Urs Janssen <urs@tin.org>]
  742 
  743 o  what is with NEW_HASH_METHOD in list.c?
  744 
  745 o  rewrite code to use INEWS_PATH instead of INEWSDIR
  746    [20021007 Urs Janssen <urs@tin.org>
  747 
  748 o  remove built in path of external commands (metamail, ispell, ...)
  749    [for ispell $ISPELL can be used to override systempath and progname]
  750 
  751 o  add configure-switch for DISABLE_PIPELINING
  752    [20090612 Urs Janssen <urs@tin.org>]
  753 
  754 o  mask inline PGP SIGNATURE/KEY BLOCK like we do for uu-sections
  755    [20090722 Urs Janssen <urs@tin.org>]
  756 
  757 o  some non fixed width strings could be formatted nicer (warp on last space
  758    before cCOLS), e.g. txt_warn_downgrade
  759    [20110325 Urs Janssen <urs@tin.org>]
  760 
  761 Unicode
  762 -------
  763 o  add UTF-8 (unicode) support (RFC 2279)
  764    (see <http://www.cl.cam.ac.uk/~mgk25/unicode.html>)
  765    if we ever want to add UTF-7 (RFC 2152) (posting) support (I don't
  766    think this is needed) we have to encode it ourself (as iconv()
  767    might encode <, @, > which leads to illegal headers) or split
  768    headers into "encoding part" and "rest" ...
  769    [local_charset <-> UTF-8 which needs iconv() is added;
  770     20010830 urs@tin.org]
  771 
  772 o  make select/group/thread/page-level multibyte "safe". they all use
  773    strlen(), strncpy(), strncat(), snprintf() to build the screen - but
  774    in a multibyte environment (e.g. mm_local_charset=UTF-8) this is a
  775    fault. [mostly done for ncursesw]
  776 
  777 o  make mm_network_charset an "option_list" to avoid junk input or
  778    undesired (UTF-1, UTF-7, UTF-16*, UTF-32*, UCS-2, UCS-4, ...) encodings.
  779    add configure check for the hardcoded charsets (try iconv_open(x,
  780    us-ascii) on each...) and disable those not available.
  781    (think about more network charsets (GB2312, GB18030, Shift_JIS,
  782     ISO-8859-6[-{I,E}], ISO-8859-8[-{I,E}], ISO-8859-11, VISCII, VIQR;
  783     check whether KOI8-RU is still used/valid))
  784    [done except configure check 20010907 urs@tin.org]
  785 
  786 o  make mm_network_charset an user configurable item list
  787    ("US-ASCII:ISO-8859-1:ISO-8859-9:ISO-8859-15:UTF-8",
  788     "US-ASCII:ISO 8859-5:KOI8-R:UTF-8",
  789     "EUC-CN:ISO-2022-CN:ISO-2022-CN-EXT:Big5:UTF-8", whatever)
  790    and try all given charsets in order till the one is found which matches
  791    best (i.e. can display most (all) of the chars in the article).
  792    [20050805 <urs@tin.org>]
  793 
  794 o  add IDNA 2003 (RFC 3490ff.) and IDNA 2008 (RFC 5890ff.) support,
  795    (<http://www.gnu.org/software/libidn/> IDNA 2003,
  796     <http://jprs.co.jp/idn/index-e.html> IDNA 2008,
  797     <http://site.icu-project.org/> IDNA (uidna_IDNToUnicode()
  798      and/or with ICU >=4.6 uidna_nameToUnicode(uidna_openUTS46)),
  799     <http://www.gnu.org/s/libidn/#libidn2> IDNA 2008)
  800    (added minimalistic IDNA decoding support if a recent libidn is found, urs)
  801    [20030917 Urs Janssen <urs@tin.org>]
  802 
  803 o  add normalization
  804    (via <http://oss.software.ibm.com/icu/> or
  805    <http://www.gnu.org/software/libidn/> or
  806    <http://www.gnu.org/software/libunistring/>)
  807    (done for search strings only, missing for "threading" by subject etc. pp.)
  808    [20031209 Michael Bienia <michael@vorlon.ping.de>]
  809 
  810 o  check for wcsftime() and if found use it instead of strftime() (at
  811    least in page.c).
  812    [20130129 Urs Janssen <urs@tin.org>]
  813 
  814 o  avoid uidna_IDNToUnicode() if linked against ICU >=4.6
  815    [20161221 Urs Janssen <urs@tin.org>]
  816 
  817 Docs/online help
  818 ----------------
  819 o  the documentation of PageFollowupQuoteHeaders (^W) and
  820    PageReplyQuoteHeaders (^E) is wrong as not all headers but just those
  821    visible via news_headers_to_display (or all if raw mode is on
  822    (PageToggleHeaders (^H)) are included.
  823    [20100911 Urs Janssen <urs@tin.org>]
  824 
  825 o  the online help of GroupMarkUnselArtRead 'X' is unclear as it doesn't
  826    say that the article are marked read
  827    [20090814 Urs Janssen <urs@tin.org>]
  828 
  829 o  document the different singnals/actions (e.g. SIGUSR2 writes newsrc)
  830    [20080209 Urs Janssen <urs@tin.org>]
  831 
  832 o  exit staus documentation in the man page isn't correct, we have more
  833    exit codes than just 0/1 (and 2 in the -Z case).
  834    [20080320 Urs Janssen <urs@tin.org>]
  835 
  836 o  review the danish, swedish, turkish, russian and kinyarwanda translations
  837    (da.po, sv.po, tr.po, ru.po, rw.po); add/finish man-page translation(s).
  838 
  839 o  add installation guide (in html)
  840 
  841 o  add cross-compilation hints
  842    	CC="crosscc" LD="crossld" AR="crossar" RANLIB=":" MAKE="crossmake" \
  843    	./configure --with-build-cc=gcc --with-build-cpp=cpp \
  844    	--target=cross-traget-tripple --without-x # usual configure flags
  845 
  846 o  better document keymap feature
  847 
  848 o  man page always needs work and proof reading
  849    e.g. 'U', 'V' in pager need better documentation, random organization
  850    feature isn't documented at all.
  851 
  852 o  tin.defaults could use more documentation in man page (tin.5)
  853 
  854 o  replace "\\" by "\e" in man pages (portable?)
  855 
  856 o  integrate doc/auth.txt into tin.1 man page
  857 
  858 o  document %G of strfpath() in man page
  859 
  860 Not yet classified
  861 ------------------
  862 o  abort HEAD/NEXT loop on 5xx responses to HEAD? (see
  863    art.c:open_art_header())
  864    [20161011 Urs Janssen <urs@tin.org>]
  865 
  866 o  follow $LC_COLLATE (e.g. add strxfrm() to subj_comp_*/from_comp_*)?
  867    [20160421 Urs Janssen <urs@tin.org>]
  868 
  869 o  IDNA decode news_headers_to_display?
  870    [20160227 Urs Janssen <urs@tin.org>]
  871 
  872 o  sometimes we convert the supplied server name to lowercaes (for cached
  873    overviews) and sometimes we don't (nrctbl.c code and -g arg). Thus
  874    -g Foo.bAr.eXample may result in file not found
  875    for entries like '*       ~/.tin/.newsrcs/${NNTPSERVER-localhost}'
  876    even there is a ~/.tin/.newsrcs/foo.bar.example file.
  877    Should we always lowercase $NNTPSERVER / -g? (but still allow
  878    upper/camelcase for -f or a fixed filename in newsrctable).
  879    [20160225 Urs Janssen <urs@tin.org>]
  880 
  881 o  add %M (Message-ID) and %X (article number) to strfpath()?
  882    [20160225 Urs Janssen <urs@tin.org>]
  883 
  884 o  add "host:port" notation support for -g as shortcut for -p port -g host
  885    [20160222 Urs Janssen <urs@tin.org>]
  886 
  887 o  allow "begin-base64"/"====\n" as start/end marker for UUE-blocks besides
  888    the traditional "begin"/"end\n"?
  889    [20151204 Urs Janssen <urs@tin.org>]
  890 
  891 o  cache_overview_files also affects $TIN_INDEX_MAILDIR and $TIN_INDEX_SAVEDIR
  892    overviews, is this desired?
  893    [20151112 Urs Janssen <urs@tin.org>]
  894 
  895 o  articles without a Message-ID are skipped as the code currently depends
  896    on Message-IDs, but they might show up in mailgroups - assign a pseudo
  897    Message-ID to them?
  898    [20151111 Urs Janssen <urs@tin.org>]
  899 
  900 o  create missing dir(s) in path to newsrc, right now get_newsrcname()
  901    usually comes up with
  902    "No permissions to go into /home/$USER/.tin/${NNTPSERVER}"
  903    if one uses something like
  904    *  ~/.tin/${NNTPSERVER-localhost}/.newsrc
  905    in newsrctable
  906    [20150121 Urs Janssen <urs@tin.org>]
  907 
  908 o  make --with-defaults-dir= default to $sysconfdir/tin
  909    (=/usr/local/etc/tin)?
  910    [20110809 Urs Janssen <urs@tin.org>]
  911 
  912 o  Supersedes (and repost) don't reuse the Reply-To: header of the original
  913    article
  914    [20110808 Urs Janssen <urs@tin.org>]
  915 
  916 o  what about !us-ascii chars in username/password when using
  917    AUTHINFO USER/PASS? Currently they are sent as is, RFC 3977 says
  918    "The character set for all NNTP commands is UTF-8", RFC 4643 doesn't
  919    mention any special handling.
  920    [20101104 Urs Janssen <urs@tin.org>]
  921 
  922 o  what is or was HIST_HELP_SEARCH good for? And what about cHelp?
  923    [20101008 Urs Janssen <urs@tin.org>]
  924 
  925 o  charset conversion fails when converting articles from multibyte charsets
  926    with 0 bytes (UCS2, UCS4, UTF-16[[LB]E], UTF-32[[LB]E], ...), currently
  927    we just skip over such parts instead of handling them properly
  928    [20100905 Urs Janssen <urs@tin.org>]
  929 
  930 o  add "COMPRESS DEFLATE" support once it's official? this would require a
  931    rewrite of the code which reads data from the network (which should be
  932    done anyway for TLS) as we must handle null-bytes in the stream.
  933    <https://tools.ietf.org/id/draft-murchison-nntp-compress-06.txt>
  934    [20100122 Urs Janssen <urs@tin.org>]
  935 
  936 o  the documentation suggests that novrootdir/$TIN_NOVROOTDIR defaults to
  937    spooldir/$TIN_SPOOLDIR if unset, which is not exactly what happens as
  938    this default is set at configure/compile time, not at runtime, so
  939    setting $TIN_SPOOLDIR to something different than the default will not
  940    automatically adjust $TIN_NOVROOTDIR at runtime. we should either
  941    fix the documentation or the behaviour.
  942    [20100103 Urs Janssen <urs@tin.org>]
  943 
  944 o  FOLLOW_USEFOR_DRAFT is a minomer as RFC 5536 is released
  945    [20091225 Urs Janssen <urs@tin.org>]
  946 
  947 o  un/subscribe_pattern() is very slow on servers with a huge active file
  948    [20091223 Urs Janssen <urs@tin.org>]
  949 
  950 o  replace wildmat.c with uwildmat.c
  951    <http://inn.eyrie.org/trac/browser/trunk/lib/uwildmat.c>? It knows poison
  952    patterns and can handle UTF-8 strings
  953    [20091223 Urs Janssen <urs@tin.org>]
  954 
  955 o  support $XDG_CONFIG_HOME[S] / $XDG_DATA_HOME[S] / $XDG_RUNTIME_DIR /
  956    $XDG_CACHE_HOME (eg. for cached NEWSGROUPS_FILE)
  957    <http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html>
  958    [20081010 Urs Janssen <urs@tin.org>]
  959 
  960 o  add //IGNORE iconv-option like //TRANSLIT?
  961    [20080824 Urs Janssen <urs@tin.org>]
  962 
  963 o  what about REDIRECT_OUTPUT? shouldn't we better add this to DEFAULT_PRINTER
  964    so ppl. can override it via the 'M'enu? and shouldn't DEFAULT_PRINTER be
  965    detected via configure?
  966    [20080625 Urs Janssen <urs@tin.org>]
  967 
  968 o  create debug output in
  969    ${TIN_HOMEDIR-"$HOME"}/.tin"}${NNTPSERVER+"/$NNTPSERVER"}
  970    instead of in $TMPDIR (as it may contain username and password,
  971    access restrictions in $TMPDIR are a bad idea as other users
  972    need to be able to overwrite the file)
  973    [20080211 Urs Janssen <urs@tin.org>]
  974 
  975 o  -M/-N report is malied to userid, should we use tinrc.mail_address
  976    instead?
  977 
  978 o  tin uses the first sig-isolator as recent one, USEFOR says it should
  979    use the last. There is no consensus that tin should follow this USEFOR
  980    requirement.
  981 
  982 o  'K' is still a bit inconsistent:
  983    - in the group and thread menu it marks current item read & jumps to the
  984      next unread item.
  985    - in the article pager (page.c) it marks the rest of the current thread
  986      read and jumps to the next unread article. should we let 'K' behave
  987      like <TAB> in the pager?
  988 
  989 o  rename prompt_followupto (to prompt_extra_headres) and make it an option
  990    list like {"Followup-To"; "Summary"; "Keywords";
  991    "Followup-To & Summary"; "Followup-To & Keywords";
  992    "Summary & Keywords"; "Followup-To, Summary & Keywords"} or make it a
  993    user-definable text field like news_headers_to_display? or leave this
  994    entirely to the user - he could tweak attributes accrodingly.
  995    [20060503 Urs Janssen <urs@tin.org>]
  996 
  997 o  in several places only the latest keybinding is shown in prompts
  998     (e.g. "q=quit, e=edit, i=ispell, g=pgp, M=menu, w=post, o=postpone: w"
  999      with "PostPost	p	y	w" in keymaps)
 1000    should we try to show them all?
 1001    [20050718 Urs Janssen <urs@tin.org>]
 1002 
 1003 o  add PGP_INCLUDE_KEY to pgp_mail_keys?
 1004    [20050426 Urs Janssen <urs@tin.org>]
 1005 
 1006 o  there is no command to undo a range ('#') selection
 1007 
 1008 o  'article loss' reported in
 1009    <nntp://news.tin.org/20020915165856.GA1541@martinkl.dialup.fu-berlin.de>
 1010 
 1011 o  should 'tin -z foo.bar' only start up if there is any unread news in
 1012    foo.bar?
 1013    [20040325 Urs Janssen <urs@tin.org>]
 1014 
 1015 o  trn and perls Net::NNTP::Auth use ~/.nntpauth (format is
 1016    "^server\s+user\s+password"), shall we also try ~/.nntpauth if we can't
 1017    find a matching entry in ~/.newsauth? and should we look for
 1018    ${TIN_HOMEDIR:-"$HOME"}/.tin/.newsauth if ~/.newsauth is not found?
 1019    [20040128 Urs Janssen <urs@tin.org>]
 1020 
 1021 o  allow a different port on newsauth and or newsrctable (server:port [...])?
 1022    if we do, what's the precedence? -p, newsauth, newsrctable, $NNTPORT, 119?
 1023    [20140504 Urs Janssen <urs@tin.org>]
 1024 
 1025 o  what todo if in a CTE: x-uue the CD: filename differs from the one given
 1026    in the begin line? IMHO we should use the one from the begin line for
 1027    saving and in the overview in the pager.
 1028    [urs@tin.org]
 1029 
 1030 o  inverse_okay's Menu description isn't accurate (invers is also used for
 1031    URL highlighting). mono_mark* do allow "Reverse video" even if
 1032    inverse_okay=FALSE.
 1033 
 1034 o  --disable-inverse-video seems to be ignored - do we still need it?
 1035 
 1036 o  move tinrc.defaults for certain comands to a pre-filled .inputhistory?
 1037    (if so, also move last_search there)
 1038    [Jason Faultless]
 1039 
 1040 o  what about -a cmd-line flag? is this really needed? IMHO this can be
 1041    dropped, '&' can be used for runtime color toggling.
 1042    [20021106 Urs Janssen <urs@tin.org>]
 1043 
 1044 o  commas in real-name might cause problems in mail-replys
 1045    From: Last, First <user@accou.nt> (which is illegal) leads to
 1046    To: Last, First<user@accou.nt> which is last@localhost,user@accou.nt
 1047    should we try to fix things and quote the realname part?
 1048    [20021007 Urs Janssen <urs@tin.org>]
 1049 
 1050 o  setting TIN_HOMEDIR to a non-existent dir gives a "Filesystem full"
 1051    error-message (but doesn't abort) instead of creating the dir. bug?
 1052    feature? if the later we should give a more exact error-message.
 1053    [20011112 Urs Janssen <urs@tin.org>]
 1054 
 1055 o  check_article_to_be_posted() needs a cleanup!
 1056    (avoid setup_check_article_screen(&init);StartInverse();EndInverse();
 1057     overhead)
 1058    [20010629 Urs Janssen <urs@tin.org>]
 1059 
 1060 o  update gettext stuff to > gettext-0.12.1
 1061 
 1062 o  and pcre2 support (new API)
 1063    <http://www.pcre.org/current/doc/html/>
 1064 
 1065 o  clean up included pcre stuff and update to >= pcre-8.39
 1066 
 1067 o  shows up cross-postings multiple times even if read once before getting
 1068    a resync/reread active/newsrc-file
 1069 
 1070 o  think about group numbering in "only unread" display mode
 1071    (using different numbers in show all/show only unread leads to some
 1072     problems, f.e. group moving)
 1073 
 1074 o  doesn't handle symlinks for .oldnewsrc
 1075    (see <20021003021508.GA28021@akk10.akk.uni-karlsruhe.de> for details, urs.
 1076     if we're going to 'fix' this we must be careful to avoid symlink
 1077     attacks (<http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-1999-1091>)
 1078    [20020627 Jeff Sheinberg <jeffsh@erols.com>]
 1079 
 1080 o  missing newsrc file and connecting to a server without groups leads to the
 1081    question "Try and save newsrc file again? (Y/n)" but a newsrc file doesn't
 1082    get written. Same may occur on quitting if newsrc file had been removed
 1083    while tin was running. Useful? Should write_newsrc() try to create a newsrc
 1084    file if it is missing instead of just leaving?
 1085    [20061102 Dirk Nimmich <nimmich@muenster.de>]
 1086 
 1087 o  cache mailbox_name in misc.c/mail_check()?
 1088 
 1089 o  configure checks for fdopen(3) and defines HAVE_FDOPEN if found, but we
 1090    don't have any code guared with that macro nor any fallback code if not
 1091    found.
 1092 
 1093 o  re add innlib support? (the old one was dropped as the lib has retired
 1094    all (which were not that many) features we used and our code didn't
 1095    use the innlibs code where ever it was possible (and useful).
 1096    [20080211 Urs Janssen <urs@tin.org>]
 1097 
 1098 o  add check for libarchive <https://code.google.com/p/libarchive/>
 1099    and use for post-processing?
 1100    [20111225 Urs Janssen <urs@tin.org>]
 1101 
 1102 o  add check for liblockfile and/or liblock and use if found?
 1103 
 1104 o  add check for heapsort(3) in libbsd? <http://libbsd.freedesktop.org/wiki/>
 1105    [20130305 Urs Janssen <urs@tin.org>]
 1106 
 1107 o  add jump to selected article from DisplayPostHist (’W’)
 1108    [20120220 Urs Janssen <urs@tin.org>]
 1109 
 1110 o  add check for libtre and offer TRE as matching method for "wildcard"?
 1111    <http://laurikari.net/tre/about/>, <https://github.com/laurikari/tre/>
 1112    [20130706 Urs Janssen <urs@tin.org>]
 1113 
 1114 o  eval $NEWSHOST if $NNTPSERVER is unset (like Net::NNTP(3perl))
 1115    [20141225 Urs Janssen <urs@tin.org>]