"Fossies" - the Fresh Open Source Software Archive

Member "tin-2.4.5/doc/TODO" (17 Dec 2020, 45851 Bytes) of package /linux/misc/tin-2.4.5.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.4_vs_2.4.5.

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