"Fossies" - the Fresh Open Source Software Archive

Member "tin-2.4.3/doc/TODO" (6 Dec 2018, 47473 Bytes) of package /linux/misc/tin-2.4.3.tar.xz:


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.2_vs_2.4.3.

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