"Fossies" - the Fresh Open Source Software Archive

Member "tin-2.6.1/doc/TODO" (22 Dec 2021, 46465 Bytes) of package /linux/misc/tin-2.6.1.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.6.0_vs_2.6.1.

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