1This file will aquaint you with the user-visible changes in trn 3.x. 2 3If you're upgrading from trn 2.x see the discussion of the -a option, 4the 't' command (newsgroup selection level), and the 'T' command 5(article level & in kill files) for slight incompatibilities between 6trn 2.5 and trn 3.0. 7 8Changes from trn 3.5 to trn 3.6: 9 10 o Added support for slow network connections by: (1) making use 11 of the LIST ACTIVE <group.name> extension (if available), 12 (2) beginning to display the received article as it is received 13 from nntp, and (3) making the Pnews (posting) script query the 14 group info more efficiently. 15 o Changed nntplist's command-line syntax slightly so that it is 16 more orthoganal and so that it can pass an argument to LIST 17 ACTIVE or LIST NEWSGROUPS. ** If you use nntplist in your own 18 scripts you'll need to switch them over to using the -o (output) 19 option. ** 20 o Added the Ctrl-E command to display the end of the current article. 21 o Enhanced the ':' command to operate on non selected thread/articles 22 (use ::cmd) or to operateon just the current thread (use :.cmd or 23 ::.cmd). 24 o Added a 't' modifier for the search command to start the search 25 at the top of the group. E.g.: /subject string/t:+ 26 The default for searches in the selector has always been the top 27 of the group, so this only affects the command while reading 28 articles. 29 o Improved the catchup command to allow you to specify an 30 article count to leave unread in the group. 31 o Added a new sort order for the article selector -- by 'n'umber. 32 o Enhanced the %( arg = regex ? : ) syntax to allow a % expansion 33 in the regex portion of the comparison. 34 o Enhanced xref code to not go sub-optimal on C news's single-group 35 xref lines. 36 o Added support for generic authentification (available in the 37 reference NNTP 1.5.12 and INN 1.5). 38 o Fixed an elusive crash bug that would not let some people run 39 trn from cron. 40 o Other misc. bug fixes. 41 42Changes from trn 3.4.1 to trn 3.5: 43 44 o Enhanced the -p option to allow you to select how you'd like 45 your postings to be selected. The default (which works the same 46 as before) is -p (select your posting and its replies). Also 47 available is -p+ (select all postings in the thread) and -pp 48 (select the *parent* article and its replies). 49 o Added the forward (^F) command to forward an article via mail. 50 o Improved the tab command (skip cited text) to skip empty lines 51 and choose the quotation character more intelligently. 52 o You can now junk an article in just the current group via 53 a search command using 'x'. E.g. /subject/:x 54 o Included some code from Olaf Titz <uknf@rz.uni-karlsruhe.de> 55 that allows you to tell trn to transform high-bit characters 56 into their 7-bit ascii equivilents. See the _C command and 57 the -Q option. 58 o Added the back-scroll command: 'B'. 59 o Added the -J<n> option to allow you to join truncated subjects 60 into a common thread. The default for -J is 30 chars, not counting 61 the Re: portion. I have the lines "&-J27" and "X&+J" in my Babylon 62 5 kill file to join all the Genie posts that get truncated into the 63 proper thread. 64 o Added the -K option to keep a group static (no new articles) while 65 you read it. Useful for people who have a really slow kill file 66 for a group -- use "&-K" and "X&+K" in such a kill file to make 67 only that group stop growing until you exit the group and re-enter. 68 o Added optional mouse support in an xterm window. 69 o Added a new intrp (%q) to get the value of the last quoted input 70 (%"). Useful for using elm for forwarding articles as it needs 71 the answer to the question "To?" on the command line: 72 -EFORWARDPOSTER="elm -i %h -s '%'[subject]' %q" 73 (though you may wish to redefine the FORWARDHEADER variable too). 74 o Fixed bugs in the handling of thread kills in partially-threaded 75 groups (Tj now works even if the -a option wasn't specified) and 76 and in the handling of the subject-kill command (Aj). 77 o New files, HINTS.TRN is like HINTS but in a better format. 78 (I renamed it to avoid conflicts with the directory "hints"). 79 o Portability enhancements to Configure and the support scripts. 80 o Some fairly major and minor bugs fixed. 81 82Changes from trn 3.3 to trn 3.4.1: 83 84 o Made the kill-file handling more consistent in how it 85 deals with the THRU line. It now only ignores the THRU 86 line for all selection commands. You can turn off this 87 exception (and thus make all commands obey the THRU line) 88 by turning off the -k option (using +k). You can also 89 specify the 'I' modifier or the 'N' modifier to killfile 90 searches to have them either ignore or not-ignore the 91 THRU line, respectively. 92 o Changed the %'s interp to not supply the leading and 93 trailing single quotes to make it more useful. 94 o The NNTP trn attempts to reconnect to the news server 95 after it times out. If it is successful, trn continues. 96 o The command /subj/M no longer assumes you meant /subj/r:M. 97 o Automatically-generated killfile commands (e.g. the 'K' 98 command) now escape a '/' that occurs in the subject string. 99 o The _+ command (select whole thread) now starts reading 100 the thread from the first unread article. 101 o The -p self-matching code was improved to match a user's 102 name more exactly so that people with short login names 103 don't get improper matches. 104 o Pnews was enhanced to deal with Followup-To: poster better 105 when you choose to post anyway -- it now puts the user's 106 address into the Cc: header and automatically corrects the 107 Newsgroups: line. 108 o Pnews returns to the prompt after an inews error instead of 109 aborting. You can still choose to 'a'bort, if you like. 110 o Speller now passes the ispell_options from Configure to 111 spell, and Configure has been enhanced to prompt you for 112 the options if either ispell or (new!) vspell can't be 113 found. 114 o Added the file Policy.sh.SH that puts your policy choices 115 from the config.sh file into hints/Policy.sh. This allows 116 you to use the Policy.sh file to prime the Configure choices 117 on multiple machines or in the mthreads package without 118 machine-specific selections getting in the way. 119 o Upgraded Configure to the latest metaconfig release. 120 o Fixed some MIME bugs and made the handling a little smarter. 121 o Nested comment warnings removed from various include files. 122 o Fixed several crash bugs and several nusiance bugs, including: 123 * the problem with the NNTP trn mangling the date of 124 new news groups (which caused either groups to get missed 125 or groups to be re-offered). 126 * the problem with the NNTP trn that caused it to think 127 certain lines that begin with a '.' are the end of the 128 list marker and quit when it got confused. 129 * and lots more... 130 131Changes from trn 3.2 to trn 3.3: 132 133 o Newsetup now looks for NEWSLIB/subscriptions for a default list 134 of groups to subscribe the user to. If the file doesn't exist 135 the NNTP version will attempt to grab it via the LIST SUBSCRIPTIONS 136 command (available in INN and some nntp patches). 137 [HINT: if you want your subscription file to default to all 138 groups in the active file, link your subscription file to your 139 active file -- trn will strip the info past the first space 140 when it processes the .newsrc.] 141 o The file newsnews will now default to a simple version update 142 message instead of a welcome-to trn message (which is now provided 143 by the newsetup file when creating a new .newsrc for a user). 144 I still encourage you to install your own custom newsnews 145 when trn is updated (and trn still doesn't install newsnews 146 automatically -- you have to make this decision for your self). 147 o Redirected and disabled groups (marked by '=' or 'x' in the active 148 file) are now handled better, allowing you to read any remaining 149 articles after a group gets redirected or disabled and warning you 150 to either start using the new group name or that the group will 151 not be receiving any new news. 152 o Mime support is now prompted for in Configure and your system's 153 display/store commands are remembered. We also handle a continued 154 Content-Type header correctly now. 155 o The tick (') interp modifier will generate a tick-quoted string 156 with all ticks inside the string quoted. For example, %'s might 157 generate (INCLUDING the "'"s) 'Ticks aren\'t a problem.' 158 o If the environment variable FAST_PNEWS == y Pnews skips the "Are 159 you sure?" question and the "include file" prompt. You can put 160 -EFAST_PNEWS=y in the global INIT file, if you so desire. 161 o Various bug fixes. 162 163Changes from trn 3.1 to trn 3.2: 164 165 o Configure and the include file structure has been improved to 166 install easier on more systems. 167 o Fixed some non-portable test statements in Pnews. 168 o Added the -Z option to allow you to turn on/off support for the 169 two different database formats (-Zt, -Zo, -Zot, or +Z). 170 o Configure now allows you set the default database support to 171 thread files, overview files, both or none. 172 o Trn and its support scripts handle ~/dirs in the newslib or 173 rnlib better. 174 o Various bug fixes. 175 176Changes from trn 3.0 to trn 3.1: 177 178 o Added a new header-searching syntax: /string/Hheader:cmd. 179 This allows you to match a string on any header that trn 180 knows about and is faster on the NNTP side than full-header 181 matching. Example: /: .../Hlines:j would junk all postings 182 longer than 99 lines. 183 o Two new commands can be put into a group's kill file: *j 184 (kill all articles from THRU to the end of the group) and *X 185 (kill all unselected articles from THRU to the end of the group). 186 o Pnews (using artcheck) now checks the active file as well as 187 the newsgroups file for each group on the Newsgroups line. This 188 lets you know whenever you specify a group that doesn't exist. 189 Also, the NNTP version has been fixed to provide full checking. 190 o Pnews/Rnmail have been modified to allow you to type either upper 191 or lower case for the response letters, and use "sp*ell" in addition 192 to "c*heck" for the spelling checker ("s*end" is unchanged). 193 o Pnews/Rnmail each have a pre-edit signature appending option. 194 If you use the file DOTDIR/.news_sig INSTEAD of .signature Pnews 195 will append your signature before you edit the file. Rnmail uses 196 the file DOTDIR/.mail_sig. Note also that the names may be 197 customized with the environment variables NEWSSIGNATURE and 198 MAILSIGNATURE, if desired (allowing a per-group signature). 199 o Added the modifiers '>' and ')' to interpreted strings. For 200 example: %>f gives you the address only on the From line, 201 while %)f gives you the real name portion. 202 o Added the 'O' command (newsgroup level) that works just like 'o' 203 except that it does not visit empty groups. 204 o The killfile is fully saved before manual editing with Ctrl-K 205 (message-id commands used to be saved only on exit from the group). 206 o The screen is now refreshed when the window size changes. 207 o Trn now makes use of stdlib.h, unistd.h (if available) and does a 208 more intelligent inclusion of time.h & sys/time.h (as needed). 209 o Trn doesn't loop through the current thread if unread articles 210 still exist in it. Also fixed various problems with '>' & 'P'. 211 o The 'D' command in the selector no longer jumps back to the top. 212 o The NNTP version has a different new-article aquisition strategy. 213 Your nntp server must send up-to-date information in response to 214 the GROUP command (INN's nnrpd does) for a group to expand while 215 you're in it. Also, you can now set the minimum time for trn to 216 wait (see -z) before it refetches the active file at the end of 217 the newsgroups. The default is 5 minutes. 218 o Optional metamail support pauses between the headers and the 219 metamail-interpreted article. Also, the 'v' command displays the 220 raw article without metamail processing. 221 o Numerous portability changes and bug fixes. 222 223Changes from trn 2.5 to trn 3.0: 224 225 o Trn is now capable of reading more news database formats. It 226 currently supports news overview (.overview files), mthreads 227 (.thread files), and direct threading of the articles. The 228 NNTP version supports the XTHREAD and XOVER NNTP extensions. 229 If you compile trn with support for both formats it will figure 230 out which groups (or which server) has which type of data and 231 act accordingly. 232 o Mthreads is now a separate package from trn since not everyone 233 will need to use it. Look for it in the same place you found 234 trn. 235 o Trn attempts to build some useful default macros for your 236 terminal's arrow keys. On the article level they move around 237 in the thread; in the selector they change pages (left/right) 238 and switch selections (up/down); on the newsgroup level they 239 move by group (up/down) and enter a group (right). If you 240 don't like this, turn it off with the +A option. 241 o There's a new search scope -- the from line. For example: 242 use /author/f+ to search for and select 'author's articles. 243 o The thread selector has been extended to be a subject and 244 article selector. Use the 'S'et selector command to change 245 modes or use '=' to toggle between the article selector and 246 the subject/thread selector (whichever was last in use). 247 o The selector can now be sorted in a variety of ways: by date, 248 subject, author, article count (in the subject/thread selector), 249 or a combination of subject and date (in the article selector). 250 The default is date order of the oldest unread article in a thread. 251 Use the 'O'rder command to pick a new one or use 'R' to reverse 252 the sort. See also the "-O<mode><order>" option to set your 253 favorite mode and order. You can even put a "&-Oas" command (for 254 example) into a group's kill file to set a per-group default. 255 o The selector allows you to exclude all the non-selected articles 256 from the display (i.e. narrow it) -- use 'E' to toggle this mode. 257 o The selector has two new selection commands: '*' is used to select 258 (or deselect) the current item and all other items with the same 259 subject (useful in the article selector); '#' is used to make an 260 overriding selection that immediately reads the current item 261 ignoring all other selections. 262 o You can now type 'M' in the selector to mark the current item's 263 articles as read-but-returning and press 'Y' to yank back and 264 select these articles before exiting the group. 265 o Selections via searches are article-oriented (/subj/+) or 266 thread-/subject-oriented (/subj/++). The article selector's 267 default command is "+", while the thread/subject selector's is 268 "++". In other words doing a "/subj" search with no specified 269 command selects whatever type of object you're looking at in the 270 selector. 271 o If you specify the "-p" option, your postings and any replies to 272 them are auto-selected whenever trn encounters them. 273 o The '+' command in a non-threaded group visits the subject selector. 274 You can also use "_a", "_s", "_t" or "_T" to force the article, 275 subject, thread, or thread-but-I'll-settle-for-subject selector. 276 o The selector displays subjects/threads that are partially-selected 277 with a '*'. Fully-selected items are marked with a '+', as before. 278 Use the article selector (possibly with 'E'xclusive set) to see 279 which articles are selected in a partially-selected group (or just 280 read them). 281 o The selector remembers which subjects you selected (and didn't kill) 282 and marks any newly-arriving articles in these subjects as selected 283 until you exit the group. 284 o The medium display mode of the thread selector has been improved 285 to make it more readable. 286 o The selector will leave out the middle portion of a subject that is 287 too long to display the last two words of the subject. If you don't 288 like this, use the -u option to leave them unbroken. 289 o 'T'hread KILL commands now use message-ids to either junk 290 or select articles. The 'T' command has been extended to be 291 more flexible on the article level and has been added to the 292 selector. 293 o Another new command 'A'dds selection or kill commands to the KILL 294 file, and works from both the article level and the selector. 295 o The tree display has been updated to display unread-but-not- 296 selected articles as <x>. Other unread articles are still [x], 297 while read articles still display as (x). 298 o Trn can enter a group without thread information available and 299 thread it in the background while you read. Articles that have 300 references that may or may not exist show up as "(?)". If you 301 visit an article like this and wait there, the screen will update 302 when we know for sure one way or the other (after processing more 303 of the group). 304 o The -a option is used to tell trn to thread all of the 305 articles on entry to the group. If you don't specify this 306 option a group may have a few (or many) articles that get 307 threaded in the background and won't show up on the tree 308 display until trn processes them. 309 o Pressing "_+" on the article level will select the entire thread 310 associated with the current article -- useful if you've selected 311 individual articles and wish to read the rest of the discussion. 312 Use "_-" to deselect the current thread. 313 o The commands _N and _P move to the next and previous article 314 in numberical (arrival) order (article level). Thus, you can 315 use the command "._P" on the newsgroup level to start reading 316 a group from the very last article to arrive. 317 o The 't' command on the newsgroup level now turns OFF reading a 318 group with threads (this setting is stored in the .newsrc file, 319 so it is remembered from session to session). Trn 2.x used this 320 to force threading to be turned ON, but it wasn't usually needed 321 for normal operation. To temporarily turn threads on once inside 322 a non-threaded group, use the 't' or "_t" commands (article level) 323 or the "St" command (selector). 324 o Trn now checks for the environment variable TRNMACRO on startup 325 (which defaults to DOTDIR/.trnmac) before checking for the usual 326 RNMACRO (DOTDIR/.rnmac) file. If you're running trn in its rn- 327 compatible mode, only RNMACRO is tried. 328 o The threaded and non-threaded data in a group has been unified, 329 resulting in more cached information on the non-threaded side 330 (such as the from line) and more efficient handling of missing 331 articles, just to name two benefits. 332 o The newsgroup information is freed when we enter a new group, 333 not when we exit the current group. This means that if you 334 quit out of a group (even accidentally), you can go back in 335 and everything is still there except the selections, which 336 get cleared on group exit. 337 o KILL file processing will now ignore the THRU line as much as 338 possible without slowing down the handling of KILL files. 339 If you have really slow searches (header or article searches) 340 or you use trn without a database it will use the THRU line 341 to only search an article one time (as it would in rn). This 342 means that if you have subject-oriented selection commands you 343 don't have to worry about missing articles if you don't read all 344 of them the first time you enter a group after they arrive. This 345 also means that you won't have to edit your local kill file to 346 remove the THRU line to force a re-scan -- this is now unnecessary. 347 o Header parsing is now done in-memory, making threading and 348 caching of articles much faster. This especially helps out 349 NNTP users because trn used to write a tmp file for every 350 header parse. 351 o Several new mode letters (accessed by %m in macros) were added. 352 The most significant are 'f' for the end (Finis) of the newsgroup 353 selection level (instead of 'n') and 'e' for the end of the article 354 reading level (instead of 'a'). 355 o A new % modifier has been introduced: "%:FMTx". This allows you 356 to apply a printf-style column format to a regular %x expansion. 357 For example, %:-50.50s would left-justify the subject into 50 358 characters, exactly. 359 o The -f option will make trn go a little faster by getting rid of the 360 delay/prompt after kill file processing, printing the "skipping 361 article" message, and printing the "Depositing KILL command" message. 362 This is the default if -t (terse) is specified, but can be overriden 363 by specifying +f after the -t option. 364 o A new option for the gadget-conscious (-B) displays a spinner when 365 trn is processing articles in the background. 366 o Added the -G option to make the newsgroup 'g'o command look for 367 near matches (for those typing mistakes). 368 o New newsgroups that are left unsubscribed are not appended to the 369 .newsrc unless you use the -I option or you're running an NNTP 370 version that does not use the NEWGROUPS code. 371 o Support for metamail's mime handling is now built into the code -- 372 see the METAMAIL define in common.h. 373 o Pnews does more checking of your article before posting, has a 374 spelling-check option, and allows the Cc: header to be used to 375 send mail while posting the article. 376 377Changes from trn 1.0.3 to trn 2.5: 378 379 o Added the '(' and ')' commands (article level) to move to an 380 article's previous/next sibling, including "cousin" siblings. 381 o The 'A'bandon command (newsgroup level) forgets all changes to the 382 current newsgroup since you first started trn. 383 o The thread selector now allows you type type 'c'/'y' to catchup 384 the group without chasing cross-references. 385 o Added 'z' and 'Z' commands (article level) supersede the current 386 article ('Z' also including the original text). 387 o The g command (newsgroup level) will go to a newsgroup by number 388 where the the number corresponds to that shown in the 'L'ist 389 command. 390 o Added the "-o" option to use the old method of junking articles in 391 the thread commands (they didn't chase cross-references in trn 1.x) 392 o Added the "-b" option to read articles in a breadth-first descent 393 of the article tree. You can specify this command at runtime to 394 switch from breadth-first (type "&-b") to depth-first ("&+b). 395 o Added the "-j" option to tell trn to pass control characters through 396 the pager unharmed. 397