NAME
       tin, cdtin, rtin, tind

SYNOPSIS tin/cdtin/rtin/tind [options] [newsgroups]

DESCRIPTION Tin is an easy to use full-screen Usenet News reader. It can read news locally (ie: /usr/spool/news) or remotely via a Network News Transport Protocol server (tin -r), or be built for use with NNTP only (rtin). Cdtin reads news both locally and archived via CD-ROM. Tin will use NOV (News OverView) style index files when available, if not the included indexing daemon tind may be built.

This revision of tin (tinx) is derived from V1.2 pl2 and contains many enhancements, which are described in this document, numerous bug fixes and extensive additional error checking and handling. It will not eat any of your files, nor become a runaway train if your terminal becomes disconnected from it (a common dial-up access problem). A complete revision history is available in tinx.doc which is included in the tinx distribution (see the AVAILABILITY section at the end of this man page).

Tin has five separate levels of operation: Spooldir Selection, Newsgroup Selection, Thread/Article Selection, Thread Indexing and Article Viewing. The 'h' (Help) command is context-sensitive and displays all commands available from any particular level when invoked from that level. Tin runs in the single character input mode - this means in general commands don't need to be terminated with a <CR>. The usual exception is when entering a string of characters (more than one) such that without a <CR> it wouldn't be possible to know where the end of it all actually is. Command characters are alphabetic case- sensitive. That is, 'h' is not the same command as 'H'.. Under Unix command arguments (such as a file name) are also case-sensitive.

On startup tin will display its progress in establishing a connection if using NNTP, including the name, IP address and port number of each server it tries and the greeting message when connecting, and in reading in data from the server or spool. Once running tin indexes the newsgroups found in $HOME/.newsrc. An arrow '->' or highlighted bar will point to the first newsgroup. Move to a particular group by using the terminal arrow keys (terminal dependent) or 'j' and 'k'. Use PgUp/PgDn (terminal dependent) or 'b' and <Space> to page up/down. Enter a newsgroup by pressing <CR> or the Right-Arrow key (terminal dependent) or by entering its index number (listed at the left side of its row on the screen). The <Tab> key advances to the next newsgroup with unread articles and enters it, then if pressed again advances to and opens the next unseen article, as long as any remain unread.

TABLE OF CONTENTS This tinx manual page is organized in the following sections, which may be directly accessed by searching for them by name.

FULL SCREEN DISPLAY FORMATS Operational details for the Selection Indices and the Article Viewer.

TIPS AND TRICKS Hints for using tin and solving common problems.

COMMON NAVIGATION KEYS Operation of the arrow and function keys, and some alphabetic key substitutes for them.

X WINDOW SYSTEM MOUSE BUTTONS Details of functional differences at tin's various levels of operation.

COMMON EDITING COMMANDS How to use tin's internal single-line editor when entering command character strings.

SPOOL DIRECTORY SELECTION COMMANDS Descriptions of all commands available from the Spool Directory Selection index.

NEWSGROUP SELECTION COMMANDS Descriptions of all commands available from the Newsgroup Selection index.

THREAD/ARTICLE SELECTION COMMANDS Descriptions of all commands available from the Thread and Article Selection indices.

THREAD INDEXING COMMANDS Descriptions of all commands available when in the individual Thread Indexing mode.

ARTICLE VIEWER COMMANDS Descriptions of all commands available from the Article Viewer.

SERVER AUTHENTICATION Describes the options available when one must log in to a news server before being given access to news on it.

ENVIRONMENTAL VARIABLES Lists all variables tin reads and includes details concerning their usage.

CONFIGURATION AND DATA FILES Lists all files tin creates and/or reads and includes details regarding their usage.

GLOBAL OPTIONS MENU Describes the operation of the globally accessable configuration menu, which allows the user to conveniently set some of tin's most frequently altered parameters.

ANSI COLOR SUPPORT Provides info regarding enabling and configuring ANSI color displays.

TINRC CONFIGURABLE VARIABLES Lists and describes the vast majority of tin's user settable operational parameters.

GROUP ATTRIBUTES Describes the use of a data file to individually set some attributes on a per-newsgroup basis.

AUTOMATIC KILL AND HOT-SELECTION Describes how to kill uninteresting articles and auto-select (mark as hot) others of particular interest.

POSTING ARTICLES Discussion of the various ways a news article may be posted.

CUSTOMIZING THE ARTICLE QUOTE STRING Details regarding creating the attribution strings used when including text from an article being followed up or when replying by email.

SIGNATURES Discussion of the various ways a signature may be appended to news articles and email letters.

MAILING, PIPING, PRINTING, REPOSTING AND SAVING ARTICLES Describes the available options when the need arises to move news articles elsewhere.

AUTOMATIC MAILING AND SAVING NEW NEWS Discusses options to gather up all new news articles and store them, perhaps while one is away for a while.

COMMAND LINE OPTIONS Descriptions of all the command line switches with which tin may be started.

NEWS ADMINISTRATION Describes a few options available to those installing tin.

INDEX FILES Discussion of the various article indexing options available when installing tin.

BUGS Lists all known bugs in this release of tinx.

HISTORY Describes the origin of this newsreader.

CREDITS Lists the author of the software that inspired tin.

AUTHOR Info about the author of tin.

MAINTAINER Info about the maintainer of tinx (this special version of tin).

AVAILABILITY Where to get the latest release of tinx.

COPYRIGHT NOTICE Includes tin's distribution and usage policies.

FULL SCREEN DISPLAY FORMATS Tin has five separate levels of operation: Spooldir Selection, Newsgroup Selection, Thread/Article Selection, Thread Indexing and Article Viewing. Use the 'h' (help) command to view a list of the commands available at any particular level. Help is context-sensitive and changes for each level. Tin defaults to displaying a four-line Help Mini-Menu at the bottom of each screen. This may be toggled off (and back on) via the 'H' command.

Spooldir Selection is presently only available in cdtin, in which one may select between the local (live) spool and as many other spool directories as are present on the CD-ROM currently in use.

At the Newsgroup Selection level the title bar at the top of the screen displays the name of the news server or spool to which you are connected, the total number of newsgroups listed for the mode (unseen only, all subscribed or all groups) in use and an R if the display is currently toggled to only groups having unseen articles (as may be done with the 'r' command):

Group Selection (nnrp03-std.news.primenet.com 78 R) h=help

If you receive new email while using tin you will be informed by a message appearing where the 'h=help' text is in the upper right corner of the screen. Otherwise the bottom line of the screen is the message area in which program status and errors are reported.

Items on selection screens are each given a unique index number which may be used to access them. These index numbers are always listed at the left edge of the display. Note well the index numbers are arbitrarily assigned and will change each time the display is updated if any groups are added to or removed from the selection index.

Thus each newsgroup listed has an index number, which is followed by an estimate of the number of articles in that group as yet unread by you. It's only an estimate because at this point only the difference between the highest and lowest article numbers minus what you have already seen is displayed and articles may have been canceled, superseded or become missing. This is followed by the newsgroup name and if descriptions are enabled (the 'd' command toggles them off and on) a short explanation of what it is intended to cover if there is one available for that group:

11 45 alt.railroad.steam Steam powered railroads 12 17 alt.startrek.books u 13 81 alt.happyclown u 14 21 alt.music.sloan Discussion of Canadian ->u 15 161 alt.games.shadow-warrior Discussion of 3DRealms

In the above a 'u' to the left of the index number denotes you are not presently subscribed to this newsgroup. Subscribed means tin will maintain a record of which news articles in the newsgroup you have read and the newsgroup will be listed in the subsets of all groups displayed for the unseen only and subscribed only modes. The '->' is the cursor and indicates in this example newsgroup #15 is currently selected. If your terminal supports inverse video this may be replaced with a highlighted bar (simply use the 'I' command) which will recover and use the two columns formerly eaten by the pointer. The starting column of the newsgroup descriptions may be defined via the groupname_max_length variable in $HOME/.tin/tinrc. As this is at best a trade-off (27 is a good compromise) and something will be truncated, the 'i' command may be used to dump the complete description of the currently selected newsgroup to the message area at the bottom of the screen:

Discussion of 3DRealms game, Shadow Warrior.

Once you've opened a newsgroup the Thread Selection level screen presents the individual threads (or Articles if in the unthreaded mode) in much the same way as the groups, above, are handled. The title bar at the top of the screen displays the name of the newsgroup currently open, the server or news spool on which it's being read, the number of threads (T) or articles (U) listed for the modes (unseen only or all articles, threaded or unthreaded) in use, an article count (A) if threading, the number of articles killed (K), marked as hot (H) and tagged (t), followed by an (R) if the display is currently toggled to unseen articles only (as may be done with the 'r' command):

primenet.announce (nnrp02-std.news 3T 3A 0K 0H 2t R) h=help

Each thread listed has an index number, which is followed by a '+' if there are articles in that thread as yet unread by you. If an article has been marked as hot this will be replaced by a '*' (in inverse video if you terminal supports it). This is followed by a count of the unseen articles or if in the show all mode a count of all articles in the thread, the subject and unless disabled (Show Author in tin's 'M' Global Options Menu) the author of the first article (base note) then present on the server or spool. The subject can extend through the author area using all available space when Show Author is set to None.

1 t+ phone_downtime (chk) Sun Jun 8 07:46:37 19 support@pri 2 t+ phone_downtime (chk) Sun Jun 8 07:55:07 19 support@pri -> 3 + 2 usr_machine_maint (chk) Sun Jun 8 10:01:59 support@pri

Here the 't' indicates at least one article in the thread has been tagged for possible processing of all so tagged with one single set of commands, and a count of one unseen is implied in the '+' itself thus counts are not displayed until two or more unread articles exist when in the display unseen articles only mode. In the show all mode the '+' indicates there is at least one unseen article present in the thread and the count displayed is the total of all articles present, both seen and unseen.

The 'u' command toggles between the threaded and unthreaded modes. If in the unthreaded mode each article is individually listed and the tag sequence (serial order in which an article was tagged) numbers replace the unseen counts:

primenet.announce (nnrp02-std.news 3U 0K 0H 2t R) h=help

1 t+ 1 phone_downtime (chk) Sun Jun 8 07:46:37 19 support@pri 2 t+ 2 phone_downtime (chk) Sun Jun 8 07:55:07 19 support@pri -> 3 + usr_machine_maint (chk) Sun Jun 8 10:01:59 support@pri

This is useful as multiple-part files transmitted in more than one news article must be tagged in proper sequence before decoding. NOTE WELL while all articles can be tagged only one multiple part uuencoded file can be processed at any one time.

Multiple part articles must be tagged in their correct sequential order to be properly decoded. When in the threaded mode the Thread Indexing ('l' command) is also useful to display tag sequence numbers:

Thread (Double Roasting) h=help

0 [ 37] I840COFFEE <[email protected]> 1 1+ [ 26] Colin Bigam <[email protected]> -> 2 2+ [ 31] Scott Reed, Green Coffee Buyer, QCM <pjs@pjscoff

Note here after the index numbers at the extreme left the tag sequence numbers appear to the left of the '+' unseen article marker. The numbers in brackets are the lengths in number of lines of text of each article.

At the Article Viewer level the initial page header presents these data:

<Date Posted> <Newsgroup> <Thread X of Y> <Num of Lines> <Subject> <Num of Responses in Thread> <Author> <Personal Name> at <Organization>

<Article Body>

If you have set your timezone (an operating system parameter) dates will be converted to your local time. In the unthreaded mode the number of responses on the second line becomes the article filename.

TIPS AND TRICKS Tin can be pretty much be navigated by using the four cursor keys. Left-Arrow goes up a level or will exit from the Newsgroup Selection level, Right-Arrow goes down a level until opening either the first unseen article or base note if none is new and then (at the Article Viewer level) will act like <Tab> until all unseen articles have been read except it will not then advance to the next group, Up-Arrow goes up a line (page at the Article Viewer level) and Down-Arrow goes down a line (page at the Article Viewer level).

The <Tab> key is also useful to quickly advance to and step through unseen articles. When everything is a newsgroup has been seen and you're returned to the group's article index if pressed again <Tab> will open the next newsgroup with unseen articles in it.

Many queries (ie: 'Mark everything as read? (y/n): y') within tin offer a default choice which is shown at the cursor position. By pressing <CR> the default value is taken.

Most prompts for input from you (ie: 'Post subject>') within tin can be aborted by pressing <ESC>.

The Unix shell style pattern matching used in places such as strings on which articles are killed is currently alphabetic case-sensitive. You may specify both cases, as in [Pp][Ss][Yy][Cc][Hh][Ii][Cc], for patterns when both are of interest. This example will match psychic, Psychic, PSYCHIC or any other case-specific version of it.

When reading in data (active file, .overview files, newsgroups file) via NNTP over a network the I/O is timed and the result to the nearest millisecond is displayed in the message area at the bottom of the display. This gives the user a means to assess network and server performance (timing is only to stuff data into a temp file). For example an active file of 25,000 groups is about 1MB in size and should over a 10mbps ethernet be read in under two seconds. The counter displayed while reading is tallying lines of text returned from the server.

The unseen article counts displayed are estimates - any one may be canceled or otherwise become missing. More accurate unseen data (at the cost of more time taken to obtain them) are available by using any text editor to set parse_listgroup=ON in $HOME/.tin/tinrc. This feature is currently only supported when reading news from an NNTP server.

When opening large newsgroups you may receive a status message saying a certain number of NOV (News OverView) records are being skipped. This occurs when the operating system data segment size is considered to be inadequate for the number of records to be read in. Currently 16,000 arts per 8MB of memory are allowed. This can only be an estimate, but experience has shown it to be pretty close to reality. On a typical 64MB system this permits 128,000 arts to be loaded. The only other choice is crashing when memory runs out..

Tin can dynamically change some of its options with the 'M' (for Global Options Menu) command, which is available at all levels except Thread Indexing. Any changes are written to $HOME/.tin/tinrc. This file also contains many other options which can only be changed by editing it. See the TINRC CONFIGURABLE VARIABLES section, below, for details.

Defining groupname_max_length=27 or so makes newsgroup descriptions fairly easy to read without taking too much off the average newsgroup name. You may also use the 'i' command to see the full description text of the currently selected newsgroup displayed in the message area at the bottom of the screen.

If you are using a slow (character-cell) terminal or using tin via a modem connection display speed can be enhanced by defining slow_speed_terminal=ON in $HOME/.tin/tinrc. This will strip any trailing blanks from the end of each line. Indices are normally space padded to [your_terminal_width-1] to support a full-screen inverted video cursor although it may still be used on trimmed indices.

Additionally, if tin is on the other end of a modem or sluggish network link from the server you'll find the '-n' and '-q' command line options worth investigating. These speed up operation at the expense of only processing groups already subscribed. Turning off the newsgroup descriptions with the 'd' command after tin is running also saves some time beginning the next time tin is started as it's one less file to load.

When reading news via NNTP and the server system is comprised of more than one host you may when connecting use Ctrl-C to force tin to onward to trying the next host in the list. This is convenient when one (or more) of the host servers are sluggish, hung or missing in action. The time out here if not otherwise interrupted is 60 seconds.

If you wish to read news on something other than your default server or spool you may issue the command:

tin -f new_newsrc -x new_server_name

Using the real names, of course. You may need to log in, if that's the case tin will prompt for it, or if you feel your system security is adequate you may place the identifying data in a disk file which will be recovered without any intervention by the user. See the SERVER AUTHENTICATION section, below, for details. Multiple servers are supported and command aliases may be used for easy access to as many different hosts as one would like.

Tin will prepend the $HOME path to new_newsrc so the file must reside either there or in a subdirectory under it. You may copy your existing .newsrc to new_newsrc and tin will delete any unavailable groups on the new server then the rest may be reset with tin's Ctrl-R command. You may also start as a new user by simply specifying a non-existent or invalid (no ':' or '!' in its first line) file. Tin will then create/overwrite it using the LIST SUBSCRIPTIONS command, or if that fails all newsgroups unless you've defined AUTOSUBSCRIBE. See the ENVIRONMENTAL VARIABLES section, below, for its usage. Backups (.oldnewsrc and the temp file .newnewsrc) remain with their original names in the $HOME/ directory and will contain data from which ever newsrc file is then or last was in use.

If you are using the pico text editor you'll find defining VISUAL='pico -t -w -z' a big help. Here, -t is the tool mode, which eliminates the yes/no query to save the file when exiting and the file name query as well, -w kills the wrap mode (so long header lines won't be broken) and -z allows Ctrl-Z to suspend the editor so you can do something else without exiting pico first when the need arises.

If you need to suspend tin with Ctrl-Z take care and be sure no I/O operation is still active before you do it. When tin is waiting for input it's quiescent (unless you see 'q' to quit in the status line in which case you'd just press 'q' first). You may use the 'v' command if you're not sure - when you see the version data type out you may safely suspend tin. There is as well a '!' shell escape command which of course has no possibility of interfering with a pending I/O operation.

Should you choose some other editor and see filenames with '+8' or some other number appended this means that editor does not support a cursor offset into the file on start-up. This may be easily disabled in tin by toggling the Editor Offset to OFF with the Global Options Menu accessed via the 'M' command (this is item #2).

Under Unix the default MAILER is usually sendmail. If you'd like something more than just a text editor for mailing operations within tin (ie: replying via 'r, R', mailing via 'm' and bug reports via 'R') you may define this environmental variable to elm, pine or any other mail user agent of your choice.

When tin is run in an X11 window it will resize itself each time the terminal window is resized. When not on an index the mouse buttons revert back to usual cut and paste of X11, but only after one click of any button. See the X WINDOW SYSTEM MOUSE BUTTONS section, below, for details.

When processing multiple articles results in more than one output file tin will append serial numbers to the file names, as in test.001, test.002, and so on. The number of leading zeros is based on the highest number to be used, so directory listings and such will easily keep all files in correct serial order. If you wish to move a set of these files to a host with a limited filename capacity (such as the typical personal computer) it would be wise not to save more files at any one time than the target system can accomodate (with a pc this would be 999 maximum due to the 8.3 name structure). Tin also supports the elm sytle option of using an equals sign for the first character of the file name (=filename) which will concatenate all the articles into one single file. Specifying only an equals '=' sign for the filename will create or append to a file of the same name as the currently selected newsgroup.

Tin will reread the active file at set intervals to show any newly arrived news. Default is 300 seconds and the controlling parameter is reread_active_file_secs in $HOME/.tin/tinrc.

Unsubscribing a newsgroup means a complete rewrite of the newsrc file, which tin does on a line by line basis. Unsubscribing from many groups can become a very serious performance issue as all this is done one group per pass through the file. It's much better to use the text editor of your choice on newsrc files.

If you wish to run this software on Netcom's interactive (shell) account hosts see tinz.doc, included in the tinx distribution.

The following newsgroups provide useful information concerning Usenet News and the facilities used to transport and read it:

news.answers Frequently Asked Questions (FAQs) news.software.b Transport agents like Cnews and INN news.software.misc News issues not covered elsewhere.. news.software.nntp Network News Transfer Protocol info news.software.readers User agents like nn, slrn, tin, trn

COMMON NAVIGATION KEYS This table lists the command keys common to moving through all five levels within tin:

ANSI/vt100 Other Terminals Beginning of Item(s) Home 1 (Ctrl-R or g in Article Viewer) End of Item(s) End $ (also G in Article Viewer) Page Up PgUp b or Ctrl-B or Ctrl-U Page Down PgDn <Space> or Ctrl-F or Ctrl-D Line Up Up-Arrow k (page in Article Viewer) Line Down Down-Arrow j (page in Article Viewer) Select Item Right-Arrow <CR> (Spool&Group Sel, Thread Idx) 1st Unseen/Base Note Right-Arrow <Tab>/<CR> (Article/Thread Select) Next Unseen Item Right-Arrow <Tab> (Article Viewer) Previous Level Left-Arrow q (Exit at Group Selection)

X WINDOW SYSTEM MOUSE BUTTONS If you are running the X Window System (X11) and the environmental variable TERM is defined as xterm then the mouse buttons may be used to select items from tin's various indices.

In the Spool Selection page, if the mouse pointer is before the spool indexing region the previous page is selected (just like 'b'). If the mouse pointer is after the spool indexing region the next page is selected (just like <Space>). If the mouse pointer is on a spool selection then:

Left Button moves the selection cursor to that spool.

Other Buttons move the selection cursor to that spool and open it, just like <CR>.

In the Newsgroup Selection page if the mouse pointer is before the groups indexing region the previous page is selected (just like 'b'). If the mouse pointer is after the groups indexing region the next page is selected (just like <Space>). If the mouse pointer is on a group then:

Left Button moves the selection cursor to that group.

Other Buttons move the selection cursor to that group and open it, just like <CR>.

In the Thread/Article Selection page if the mouse pointer is before the article indexing region the previous page is selected (just like 'b').

If the mouse pointer is after the article indexing region the next page is selected (just like <Space>). If the mouse pointer is on an article or thread then:

Left Button moves the selection cursor to that article or thread.

Center Button moves the selection cursor to that article or thread then opens next unread article from that index position, just like <Tab>.

Right Button moves the selection cursor to that article or thread and opens it, just like <CR>.

In the Thread Indexing page if the mouse pointer is before the article indexing region the previous page is selected (just like 'b'). If the mouse pointer is after the article indexing region the next page is selected (just like <Space>). If the mouse pointer is on an article then:

Left Button moves the selection cursor to that article.

Center Button moves the selection cursor to that article then opens next unread article from that index position, just like <Tab>.

Right Button moves the selection cursor to that article and opens it, just like <CR>.

In the Article Viewer and other menus and areas mouse button functionality reverts back to usual cut and paste of X11, but only after one click of any button.

COMMON EDITING COMMANDS An emacs style line-input function allows editing command input strings and a history list allows the easy reuse of previously entered strings. In the password entry mode history is disabled and a '*' will be echoed for each character input. This single-line editor is separate from any command history maintained by one's shell. Here commands are only cached in memory, they are not written out to a disk file and thus remain stored only for any one session with tin. The default list size is fifty entries and the following editing functions are available when composing an input string:

Ctrl-A, Ctrl-E Move the cursor to the beginning or the end of the line, respectively.

Ctrl-F, Ctrl-B Move the cursor forward or backward one word, respectively.

Ctrl-D Delete the character currently under the cursor, or send an <EOF> if no characters are in the input buffer.

Ctrl-H, <DEL> Delete the character to the left of the cursor.

Ctrl-K Delete characters from the current cursor position to the end of the line.

Ctrl-P, Ctrl-N Step through the command history list, previous and next, respectively. Disabled during password entry.

Ctrl-L, Ctrl-R Retype the current line.

<CR> Places the line on the history list if non-blank and not in the password entry mode, appends a newline to it and returns it to tin.

<ESC> Aborts the current editing operation, discarding the input text.

SPOOL DIRECTORY SELECTION COMMANDS 4 $ Select spool directory 4 in the index ($=select the last spool directory in the index).

Ctrl-L Redraw the screen.

<CR> Read news from the currently selected spool directory.

h On-line Help for all Spool Directory Selection commands.

H Toggle the display of a four line Help Mini-Menu at the bottom of the screen.

I Toggle the use of inverse video for highlighting and the selection cursor.

q Return to the previous level.

Q Quit tin.

R Mail a bug report or comment to the maintainer. This is the best way of getting bugs fixed and features added or changed.

v Show tin's version data in the message area at the bottom of the screen.

NEWSGROUP SELECTION COMMANDS 4 $ Select group 4 in the index ($=select the last group in the index).

Ctrl-K Delete the currently selected newsgroup from the newsrc file. Deleted groups are stored in $HOME/.delgroups and may be undeleted by using the 'Z' command.

Ctrl-L Redraw the screen.

Ctrl-R Reset the newsrc file removing all data regarding which articles have been seen. Useful when a news spool gets destroyed and article serial numbering data are lost on the news host, or when moving a list of subscribed newsgroups to a new news host system.

<CR> Open the currently selected newsgroup.

<Tab> Open the next (with respect to the current cursor position) group in the Newsgroup Selection index containing unread news. Once a newsgroup has been entered <Tab> then opens the next unseen article in it for viewing. When all articles in that newsgroup have been read and you're returned to the group's Thread/Article Selection index if pressed again <Tab> opens the next group with unseen articles in it. At the end of the Newsgroup Selection index this check wraps around to the beginning and continues from there until everything has been read.

a Toggles between an ANSI-Color or a monochrome display.

c Mark all articles in the currently selected newsgroup as having been read then go to the next group in the Newsgroup Selection index. If Confirm Command in the 'M' Global Options Menu is ON confirmation will be requested before the update is actually done, at which time it may be declined if desired. After reaching the end of the index this wraps around to the to the first group in the list.

C Mark all articles in the currently selected newsgroup as having been read then go to the next group with unseen articles in the Newsgroup Selection index. If Confirm Command in the 'M' Global Options Menu is ON confirmation will be requested before the update is actually done, at which time it may be declined if desired. After reaching the end of the index this wraps around to the beginning and continues checking upward from there.

d Toggle the display to show just the newsgroup names or the newsgroup names along with their descriptions.

e Display the number of newsgroups that are currently empty (having no articles in them).

E Display the number of newsgroups that are currently completely virgin (never had even one article posted to them).

g Select a newsgroup from those currently indexed by entering its name.

h On-line Help for all Newsgroup Selection commands.

H Toggle the display of a four line Help Mini-Menu at the bottom of the screen.

i Display the full text of the currently selected newsgroup's description in the message area at the bottom of the screen.

I Toggle the use of inverse video for highlighting and the selection cursor.

l List and allow selection of the available spool directories. This feature requires a special library to be linked with tin to create cdtin which can then read news from an active news feed and also from multiple CD-ROMs.

m Move the currently selected newsgroup's position within the Newsgroup Selection index by supplying the desired new index number. Entering '1' moves it to the first displayed group, '8' the eighth group, etc. '$' may be used to move to the the last group listed in the index. These choices must be made when displaying all subscribed newsgroups, tin will inform you if you need to toggle to that mode first.

M Invokes a configuration menu for some of tin's options (for more information see the GLOBAL OPTIONS MENU section, below).

n Go to the next newsgroup containing unread news and open it.

N Go to the next newsgroup containing unread news but do not open it.

q Q Quit tin.

r Toggle the display of all subscribed groups or just the subscribed groups currently containing unread articles. This command has no effect if the newsgroups were specified on and read in from the command line when tin was started.

R Mail a bug report or comment to the maintainer. This is the best way of getting bugs fixed and features added or changed.

s Subscribe to the currently selected newsgroup.

S Subscribe to all the newsgroups that match a user specified pattern.

u Unsubscribe from the currently selected newsgroup.

U Unsubscribe from all the newsgroups that match a user specified pattern.

v Show tin's version data in the message area at the bottom of the screen.

w Post an article to the currently selected newsgroup.

W Display a history of message traffic generated by the user. Dates, destinations and subjects are shown, up to the last 200 events.

y Toggles between yanking in all newsgroups (including all unsubscribed groups) from $LIBDIR/active (that are not in the newsrc file) and only displaying subscribed newsgroups.

Y Reread the news active file to see if any new news has arrived since tin was started or the last time the active file was read.

z Mark all articles in the currently selected newsgroup as unread.

Z Undelete a newsgroup previously deleted from the newsrc file with the 'Ctrl-K' command.

! Shell escape. If you don't wish to execute the default (last) command you may enter a new command or press <ESC> to just spawn a new shell. When done enter exit on the spawned shell command line to return to tin.

/ Search for a newsgroup by its name, forward through the index from the current selection cursor position.

? Search for a newsgroup by its name, backward through the index from the current selection cursor position.

THREAD/ARTICLE SELECTION COMMANDS 4 $ Select article 4 in the index ($=select the last article in the index).

Ctrl-K Kill or mark as hot (auto-select) the currently selected article. For more information see the AUTOMATIC KILL AND HOT-SELECTION section, below.

Ctrl-L Redraw the screen.

<CR> Read the currently selected article.

<Tab> Open the next unread article in the currently selected newsgroup or if there is none remaining go to the next newsgroup containing unread articles. When the end of the Newsgroup Selection index is reached this wraps around to the beginning and continues checking from there until everything has been read.

a Search for an author, forward through the index from the current selection cursor position.

A Search for an author, backward through the index from the current selection cursor position.

B Search article bodies for the specified text string, forward from the current selection cursor position only. This command has no backward counterpart.

c Mark all articles in the currently selected newsgroup as having been read then go to the next group in the Newsgroup Selection index. If Confirm Command in the 'M' Global Options Menu is ON confirmation will be requested before the update is actually done, at which time it may be declined if desired. After reaching the end of the index this wraps around to the to the first group in the list.

C Mark all articles in the currently selected newsgroup as having been read then go to the next group with unseen articles in the Newsgroup Selection index. If Confirm Command in the 'M' Global Options Menu is ON confirmation will be requested before the update is actually done, at which time it may be declined if desired. After reaching the end of the index this wraps around to the beginning and continues checking upward from there.

d Toggle the index display to show just article subjects or subjects and authors.

e Select an article to read by its numeric file name. Tin must first be in its show all articles mode (as opposed to unseen only) as otherwise the full group index (and thus all articles) is unavailable for this command. Once invoked display of article file names at the Article Viewer level is also enabled, after which it may only be disabled via the 'i' command within the Article Viewer.

g Open another newsgroup by entering its name.

h On-line Help for all Thread/Article Selection commands.

H Toggle the display of a four line Help Mini-Menu at the bottom of the screen.

I Toggle the use of inverse video for highlighting and the selection cursor.

K Mark the current article or thread as read and advance to next unread article or thread.

l Enter the Thread Indexing mode, listing the author of each response in the current thread. Most useful for checking tag sequence numbers which are individually displayed in this mode.

m Mail the currently selected article, thread, auto-selected (hot) articles, articles matching a pattern or tagged articles to someone.

M Invokes a configuration menu for some of tin's options (for more information see the GLOBAL OPTIONS MENU section, below).

n Go to the next newsgroup in the list of those currently indexed.

N Go to the next unread article in the newsgroup currently open.

o Output the currently selected article, thread, auto-selected (hot) articles, articles matching a specified pattern or tagged articles to the printer.

p Go to the previous newsgroup in the list of those currently indexed.

P Go to the previous (with respect to the selection cursor index position) unread article in the currently open newsgroup.

q Return to the previous level.

Q Quit tin.

r Toggle the indexing display between unseen articles only and all articles in the currently selected newsgroup.

R Mail a bug report or comment to the maintainer. This is the best way of getting bugs fixed and features added or changed.

s Save the currently selected article, thread, auto-selected (hot) articles, articles matching a pattern or tagged articles to a file, files or a mailbox. A mailbox file is the result of concatenating multiple input items to one single output file and is specified by entering a leading equals sign when prompted for a filename: '=filename'. Tin supports the following forms of pathname expansion:

~/News /usr/iain/News ~abc/News /usr/abc/News $VAR/News /env/var/News

And these which include a filename:

= /usr/iain/Mail/group.name =filename /usr/iain/Mail/filename +filename /usr/iain/News/group.name/filename

t Tag or untag (toggles) the currently selected article or thread (only unseen articles in a thread if in the show only unread mode, otherwise all of it) for mailing 'm', piping '|', printing 'o', saving 's' or reposting 'x'. Tags are reset when exiting a newsgroup, so they must be used prior to that. Tags are preserved though operations on them for the convenience of doing more than one thing with the same set of articles. NOTE WELL while all articles in a group can be tagged only one multiple part uuencoded file can be processed at any one time and multiple part articles must be tagged in their correct sequential order to be properly decoded. When you are done with the current set of tagged items or wish to start over use the 'U' command to untag everything.

T Tag everything (all articles) as currently indexed in the currently selected newsgroup. If displaying only unread items then only as yet unseen articles will be tagged.

u Toggle the display to index all articles as unthreaded or threaded.

U Untag all tagged articles in the currently selected newsgroup. Exiting the group also untags everything.

v Show tin's version data in the message area at the bottom of the screen.

w Post an article to the currently selected newsgroup.

W Display a history of message traffic generated by the user. Dates, destinations and subjects are shown, up to the last 200 events.

x Repost the already posted and currently selected article, thread, auto-selected (hot) articles, articles matching a pattern or tagged articles to another newsgroup or groups. Useful for reposting from global to local newsgroups.

X Mark all unread articles that have not been selected as read, recalculate the indexing data to reflect the changes and put the index cursor on the first thread to begin reading. Pressing 'X' again will toggle back to what you had before. See the '~' command to clear the toggled data.

z Mark the currently selected article as unread.

Z Mark the currently selected thread as unread.

! Shell escape. If you don't wish to execute the default (last) command you may enter a new command or press <ESC> to just spawn a new shell. When done enter exit on the spawned shell command line to return to tin.

/ Search forward from the current selection cursor position for the specified text string in the news article subjects.

? Search backward from the current selection cursor position for the specified text string in the news article subjects.

- Go to the last read news article, the one you were on just before where you are now. Must be in the same newsgroup and since you last opened the group.

| Pipe the currently selected article, thread, auto-selected (hot) articles, articles matching a pattern or tagged articles into an external command.

* Mark the currently selected thread as hot (auto-selected), for later processing.

. Toggle the auto-selections (marked as hot) in the currently selected thread. If there is at least one unread article, but not all unread articles, in the thread that is marked as hot (auto-selected), then all unread articles become auto- selected (marked as hot).

@ Reverse all selections and markers on all articles in the currently selected newsgroup.

~ Undo all selections and markers on all articles in the currently selected newsgroup. This clears the stored data that are toggled with the 'X' command. Thus after first invoking 'X' the '~' command may then be used to reset articles such that one may iteratively whittle away uninteresting threads.

+ Refresh (recalculate) the killed and auto-selection (marked as hot) data for the currently selected newsgroup's index.

; For each thread in the currently selected newsgroup, if it at least one unread article is selected then all unread articles become selected. This is useful for auto-selection on the author's name when the reader wants to see the entire thread.

= Prompts for a pattern after which all threads with subjects matching the pattern will be auto-selected (marked as hot). A pattern of "*" will match all subjects and <CR> will use the previously entered pattern if one exists. Matching is not alphabetic case-sensitive.

THREAD INDEXING COMMANDS 0 Select the base article in the currently indexed thread.

4 $ Select article 4 in the currently indexed thread ($=select the last article in the currently indexed thread).

Ctrl-L Redraw the screen.

<CR> Read the article currently selected in the thread index.

<Tab> Open the next unread article in the currently indexed thread or if there is none remaining go to the next thread or newsgroup containing an unread article. When the end of the Newsgroup Selection index is reached this wraps around to the beginning and continues checking from there until everything has been read.

c Mark all articles in the currently indexed thread as having been read and return to the previous level. If Confirm Command ('M' Global Options Menu) is ON confirmation will be requested before the update is actually done, at which time it may be declined if desired.

d Toggle the index display to show just the article subjects or subjects and authors. This function is only operational when not threading (sorting) articles by subject.

h On-line Help for all Thread Indexing commands.

H Toggle the display of a four line Help Mini-Menu at the bottom of the screen.

I Toggle the use of inverse video for highlighting and the selection cursor.

K Mark all articles in the currently indexed thread as having been read and return to the previous level.

q Return to the previous level.

Q Quit tin.

R Mail a bug report or comment to the maintainer. This is the best way of getting bugs fixed and features added or changed.

t Tag or untag (toggles) the currently selected article for mailing 'm', piping '|', printing 'o', saving 's' or reposting 'x'. Tags are reset when exiting a newsgroup, so they must be used prior to that. Tags are preserved though operations on them for the convenience of doing more than one thing with the same set of articles. NOTE WELL while all articles in a group can be tagged only one multiple part uuencoded file can be processed at any one time and multiple part articles must be tagged in their correct sequential order to be properly decoded. When you are done with the current set of tagged items or wish to start over use the 'U' command to untag everything.

U Untag all tagged articles in the currently selected newsgroup. Exiting the newsgroup also untags everything.

v Show tin's version data in the message area at the bottom of the screen.

z Mark the article currently selected in the thread index as unread.

Z Mark all articles in the currently indexed thread as unread.

* Mark the article currently selected in the thread index as hot (auto-selected), for later processing.

. Toggle the auto-selection (hot-mark) of the currently selected article in the thread index.

@ Reverse all auto-selections (hot-marks) on all articles in the currently indexed thread.

~ Undo all auto-selections (hot-marks) on the currently indexed thread.

ARTICLE VIEWER COMMANDS 0 Read the base article in the currently selected thread.

4 Read response 4 in the currently selected thread.

$ Display the last page of the article currently being read.

Ctrl-H Show all of the currently selected article's headers.

Ctrl-K Kill or mark as hot (auto-select) the current article. For more information see the AUTOMATIC KILL AND HOT-SELECTION section of this man page).

Ctrl-L Redraw the current page of the article being viewed.

Ctrl-R Redisplay first page of the article currently being viewed.

<CR> Go to next base article in the currently selected newsgroup.

<Tab> Open the next unread article in the currently selected newsgroup or if there is none remaining go to the next newsgroup containing unread articles. When the end of the Newsgroup Selection index is reached this wraps around to the beginning and continues checking from there until everything has been read.

a Search for an author, forward through the currently selected newsgroup from the currently open article's index position in it.

A Search for an author, backward through the currently selected newsgroup from the currently open article's index position in it.

B Search article bodies in the currently selected newsgroup for the specified text string, forward from the currently open article's index position in the group only.

c Mark all articles in the currently selected newsgroup as having been read then go to the next group in the Newsgroup Selection index. If Confirm Command in the 'M' Global Options Menu is ON confirmation will be requested before the update is actually done, at which time it may be declined if desired. After reaching the end of the newsgroups index this wraps around to the to the first group in the list.

C Mark all articles in the currently selected newsgroup as having been read then go to the next group with unseen articles in the Newsgroup Selection index. If Confirm Command in the 'M' Global Options Menu is ON confirmation will be requested before the update is actually done, at which time it may be declined if desired. After reaching the end of the newsgroups index this wraps around to the first group in the list and continues checking for unseen articles upward from there.

d Toggle rot-13 decoding for the article currently being viewed. Ctrl-X or % may also be used.

D Send a message to cancel (delete) the currently selected news article. It must have been posted by the same user and the name string including the email address and personal name (full_name) must match exactly. Cancel messages are stored and may be seen in the control.cancel newsgroup.

Some percentage of news sites ignore at least some (if not all) cancel messages. The cancel message is as well propogated by the same mechanism as the original article, thus the article will remain available at any particular site at least until the cancel message has propogated to it. From this it's easy to understand why it's best to think and be sure before posting an article.

e Select an article to read by its numeric file name. Tin must first be in its show all articles mode (as opposed to unseen only) as otherwise the full group index (and thus all articles) is unavailable for this command. Once invoked display of article file names at the Article Viewer level is also enabled, after which it may only be disabled via the 'i' command within the Article Viewer.

f Post a followup to the currently selected news article, including a copy of its text.

F Post a followup to the currently selected news article without including its text.

g Go to the first page of the currently selected article.

G Go to the last page of the currently selected article.

h On-line Help for all Article Viewer commands.

H Toggle the display of a four line Help Mini-Menu at the bottom of the screen.

i Toggles display of article file names at the left side of the message area at the bottom of the screen. Automatically enabled by the 'e' (select an article by its numeric filename) command from the Thread Indexing and Article Viewer levels, after which it must be manually disabled with this command. 'i' may also be used independently if desired.

I Toggle the use of inverse video for highlighting and the selection cursor.

k Mark the currently selected article as read and advance to the next unread article in the same newsgroup, if any remain.

K Mark the currently selected thread as read and advance to the next thread with an unread article in it in the same newsgroup, if any remain.

m Mail the currently selected article, thread, auto-selected (hot) articles, articles matching a pattern or tagged articles to someone.

M Invokes a configuration menu for some of tin's options (for more information see the GLOBAL OPTIONS MENU section, below).

n Go to the next article in the currently selected newsgroup.

N Go to the next unread article in the currently selected newsgroup.

o Output the currently selected article, thread, auto-selected (hot) articles, articles matching a specified pattern or tagged articles to the printer.

p Go to the previous article in the currently selected newsgroup.

P Go to the previous (with respect to the current article's index position) unread article in the currently selected newsgroup.

q Return to the previous level.

Q Quit tin.

r Reply through mail to the author of the currently selected article with a copy of the article included.

R Reply through mail to the author of the currently selected article without including any text from the article.

s Save the currently selected article, thread, auto-selected (hot) articles, articles matching a pattern or tagged articles to a file, files or a mailbox. A mailbox file is the result of concatenating multiple input items to one single output file and is specified by entering a leading equals sign when prompted for a filename: '=filename'. Tin supports the following forms of pathname expansion:

~/News /usr/iain/News ~abc/News /usr/abc/News $VAR/News /env/var/News

And these which include a filename:

= /usr/iain/Mail/group.name =filename /usr/iain/Mail/filename +filename /usr/iain/News/group.name/filename

t Tag or untag (toggles) the currently selected article for mailing 'm', piping '|', printing 'o', saving 's' or reposting 'x'. Tags are reset when exiting a newsgroup, so they must be used prior to that. Tags are preserved though operations on them for the convenience of doing more than one thing with the same set of articles. NOTE WELL while all articles in a group can be tagged only one multiple part uuencoded file can be processed at any one time and multiple part articles must be tagged in their correct sequential order to be properly decoded. When you are done with the current set of tagged items or wish to start over use the 'U' command to untag everything.

T Return to Newsgroup Selection level.

U Untag all tagged articles in the currently selected newsgroup.

v Show tin's version data in the message area at the bottom of the screen.

w Post an article to the currently selected newsgroup.

W Display a history of message traffic generated by the user. Dates, destinations and subjects are shown, up to the last 200 events.

x Repost the already posted and currently open article, thread, auto-selected (hot) articles, articles matching a pattern or tagged articles to another newsgroup or groups. Useful for reposting from global to local newsgroups.

z Mark the currently selected article as unread.

/ Search forward for text in the currently open article's body only, from your current position in it.

! Shell escape. If you don't wish to execute the default (last) command you may enter a new command or press <ESC> to just spawn a new shell. When done enter exit on the spawned shell command line to return to tin.

- Go to the last read news article, the one you were on just before where you are now. Must be in the same newsgroup and since you last opened the group.

| Pipe current article, thread, auto-selected (hot) articles, articles matching a pattern or tagged articles into an external command.

< Go to the first article in the currently selected thread.

> Go to the last article in the currently selected thread.

SERVER AUTHENTICATION Tin supports the basic form of the AUTHINFO authentication scheme. Its SIMPLE and GENERIC extensions are not supported.

If the NNTP news server you are using requires authentication you may use data stored in $HOME/.newsauth. Entries may be of the form 'nntpserver password' or 'nntpserver username password' if the user name is not the same as on the host executing tin. Multiple entries are supported, the correct one will be selected by server name. The server name is not case-sensitive but the username and password may be. NOTE WELL passwords here are stored in the clear, and the user name is the one used to log in to the host in use, not whatever may have been set via TINX_USER.

If there is no entry in $HOME/.newsauth for the server in use tin will prompt for a username and/or password as requested by the server. You may enter your login name on the host executing tin (shown in the prompt) by simply pressing <CR>. In all cases (automatic or manual) tin will display the server's response to the user logging in, and if successful cache the login data for automatic reuse during the remainder of that particular session.

ENVIRONMENTAL VARIABLES Tin reads these environmental variables and uses the data contained in them as described below.

AUTOSUBSCRIBE Tin interprets this variable similarly to rn. It contains a list of patterns delimited by commas and possibly prefixed with exclamation points. A new group is checked against this list and if it matches tin subscribes the user to the group without further query. An exclamation point '!' negates the meaning of a match and can be used to cancel certain matches. Defining AUTOSUBSCRIBE=comp.os.unix.*,talk.*,!talk.politics.* for example will automatically subscribe the user to all new groups in the comp.os.unix hierarchy and all talk groups other than talk.politics groups, which will be queried for subscription as usual.

AUTOUNSUBSCRIBE Tin interprets this variable similarly to rn. It's handled like AUTOSUBSCRIBE except matching groups are unsubscribed without further query. AUTOUNSUBSCRIBE=alt.flame.*,u*,!uk.* automatically unsubscribes the user from all new alt.flame groups and all groups starting with u (university groups) other than UK groups, which will be queried for subscription as usual.

ADD_ADDRESS This can contain an address to append to the return address when replying directly through mail to somebody whose mail address is not directly recognized by the local host. For example, say the return address is user@bigvax, but bigvax is not recognized by your host, so therefore the mail will not reach user. But the host littevax is known to recognize your host and bigvax, so if ADD_ADDRESS is set (ie: 'setenv ADD_ADDRESS @littevax' for csh or 'set ADD_ADDRESS @littevax' and 'export ADD_ADDRESS' for sh) the address user@bigvax@littlevax will be used and the mail will reach user@bigvax. This variable has precedence over the file $HOME/.tin/add_address that may also contain an address.

BUG_ADDRESS If the 'R' command bug report mail address is not correct this variable should be set to the correct mail address. This variable has precedence over the file $HOME/.tin/bug_address that may also contain a mail address. Note well this version of tin (tinx) is fully supported and the maintainer will accept and act on any bug report received.

DISTRIBUTION Set the article 'Distribution: ' header field to the contents of the variable instead of the system default.

MAILER This variable has precedence over the default mailer that is used in all mailing operations within tin (ie: replying via 'r, R', mailing via 'm' and bug reports via 'R'). You may define this to elm, pine or any other mail user agent of your choice. The default under Unix is usually just your text editor and sendmail.

NAME Sets the user's full_name (personal name), if undefined whatever has been set by chfn will be used.

NNTPSERVER This is the name of the news system from which it is desired to read news via NNTP. Tin supports multiple servers on a round robin and displays the name of the actual machine to which it connects. If undefined the name found in the file /etc/nntpserver will be used, or if nothing is there tin defaults to the value specified in the makefile, which is compiled into the executable image. NNTPSERVER may be, and usually is, defined on a site-wide basis.

NNTP_INEWS_DOMAIN This is OBSELETE and has been replaced by TINX_FQDN. See next entry for details.

NNTP_INEWS_GATEWAY This is OBSELETE and has been replaced by TINX_FQDN. Note well that in tinx NNTP_INEWS_DOMAIN is unused and NNTP_INEWS_GATEWAY is redirected to TINX_FQDN. Thus while anything remains possible what you _should_ be doing here is using only the TINX_* environmental variables. And oddly enough, despite the names NNTP_INEWS_* these two have nothing whatsoever to do with inews or posting articles, all this is strictly about how to properly configure the user's email address only, period.

ORGANIZATION Set the article 'Organization: ' header field to the contents of the variable instead of the system default. This variable has precedence over the file $HOME/.tin/organization that may also contain an organization string. If reading news on an Apollo DomainOS machine the environmental variable NEWSORG has to be used instead of ORGANIZATION.

REPLYTO Set the article 'Reply-To: ' header field to the return address specified by the variable. This is useful if the machine is not registered in the UUCP mail maps or if you wish to receive replies at a different machine. This variable has precedence over the file $HOME/.tin/replyto that may also contain a return address.

TERM Tin requires a full-screen terminal for its operation. The vt100 is one common example of such a terminal.

TINRC Define this variable if you want to specify command line options that tin should be started with to save typing them each time it is started. The contents of the environmental variable are prepended to the command line options before it is parsed allowing an option specified on the command line to override the same option specified in the environment.

TINX_FQDN This defines everything to the right of the '@' in the user's email address. If this is not done most likely the hostname will be included what tin uses, which in general is not a good thing. If there is more than one host this makes canceling articles possible ONLY from the same host on which the original article was posted. This can also make delivery of email more complicated than need be, particularly when one wished to unsubscribe from a mailing list.. TINX_FQDN may be defined on a site-wide basis in /etc/profile or by any individual user. If it is undefined $LIBDIR/sitename, $LIBDIR/mailname, gethostbyname() and uname() will be tried in that order.

TINX_PATH Replaces the user's name in the path. May be used site-wide to say 'not-for-mail' or individually as required.

TINX_USER Sets the user's name, that is everything to the left of the '@' in the user's email address. If undefined the login name on the host executing tin will be used.

TIN_ACTIVEFILE Define this variable if you want to override the $LIBDIR/active path that was compiled into the tin binary via the makefile.

TIN_HOMEDIR Define this variable if you do not want tin's working directory to be $HOME/.tin. (ie: if you want all tin's private files in /tmp/.tin you would define TINDIR as /tmp.

TIN_INDEXDIR Define this variable if you do not want the .index directory in $HOME/.tin/.index. (ie: if you want all tin's index files in /tmp/.index you would define TIN_INDEXDIR as /tmp.

TIN_LIBDIR Define this variable if you want to override the LIBDIR path that was compiled into the tin binary via the makefile.

TIN_NOVROOTDIR Define this variable if you want to override the NOVROOTDIR path that was compiled into the tin binary via the makefile.

TIN_SPOOLDIR Define this variable if you want to override the SPOOLDIR path that was compiled into the tin binary via the makefile.

VISUAL This variable has precedence over the default editor (ie: vi) that is used in all editing operations within tin (ie: posting via 'w', replying via 'r, R', following up via 'f, F' and bug reporting via 'R').

CONFIGURATION AND DATA FILES Tin uses these disk files and the data contained in them as shown below.

/etc/nntpserver This may be used to define the NNTPSERVER tin will use on a site-side basis. Use of the environmental variable of the same name is faster.

/etc/organization This may be used to define the ORGANIZATION tin will use on a site-side basis. Use of the environmental variable of the same name is faster.

$HOME/.article File used to post a news article. If unlink_article=OFF in $HOME/.tin/tinrc .article will not be deleted or overwritten until the next posting command is invoked.

$HOME/.bugreport File used to mail a bug report. If unlink_letter=OFF in $HOME/.tin/tinrc .bugreport will not be deleted or overwritten until the next bug report is initiated.

$HOME/.cancel File used to cancel a news article. If unlink_article=OFF in $HOME/.tin/tinrc .cancel will not be deleted or overwritten until the next time cancel ('D' command) is invoked.

$HOME/.delgroups File used to store newsgroups deleted from the newsrc file by the 'Ctrl-K' command so the 'Z' undelete command can restore them.

$HOME/.letter File used to email a letter. If unlink_letter=OFF in $HOME/.tin/tinrc .letter will not be deleted or overwritten until the next mailing command is invoked.

$HOME/.newnewsrc When updating seen article maps data are first written to .newnewsrc then after that has successfully been completed it is renamed to the newsrc file currently in use.

$HOME/.newsrc Contains a list of subscribed newsgroups and which articles in them have been seen which tin uses by default. Optional newsrc files used with the '-f' command line option are also created in the $HOME directory unless an additional subdirectory path is included in the command line file specification.

$HOME/.newsauth Place entries of 'nntpserver password' pairs for NNTP servers that require authentication, or 'nntpserver username password' if the user name required for the server is not the same as on the host executing tin. Multiple entries are supported, the correct one will be selected by server name. NOTE WELL passwords here are stored in the clear, and the default user name is the one used to log in to the host in use, not whatever may have been set via TINX_USER.

$HOME/.oldnewsrc Each time tin is started it makes a backup copy of the newsrc file then in use into .oldnewsrc. This backup then remains untouched until the next time tin is started, so if any problem occurs during a session one may easily recover to as things were before the trouble occured.

$HOME/.Sig Signature path (for random sigs) or file which is will be used in both news articles and email letters. See the SIGNATURES section, below, for details regarding randomly selected sigs.

$HOME/.sigfixed Specify a fixed signature part to be prepended to each randomly selected signature. Useful for one's name, address, etc.

$HOME/.signature Signature file used only for email letters, with the expectation the news posting host will read this in for news articles.

$HOME/dead.article If for some reason a news article can not be posted tin will place a copy of it in this file, which will then remain untouched until the next posting failure occurs, at which time it will be overwritten.

$HOME/Mail/ Default save directory for mail related operations. May be modified with the Mail Directory option (#17) of the Global Options Menu available via the 'M' command.

$HOME/News/ Default save directory for news related operations. May be modified with the News Directory option (#16) of the Global Options Menu available via the 'M' command.

$HOME/.tin/ This is tin's default configuration and data directory under Unix. The environmental variable TIN_HOMEDIR may be defined to redirect this to the location of your choice.

$HOME/.tin/.index/ Newsgroup index files directory.

$HOME/.tin/.mailidx/ Mailgroup index files directory.

$HOME/.tin/active When reading news via a local spool directory tin keeps a backup copy of the active file here.

$HOME/.tin/active.mail Active file of users mailgroups.

$HOME/.tin/active.times Last update timestamps for each group, used by the tind indexing daemon only.

$HOME/.tin/add_address Address to add to when replying by mail. Most useful to UUCP sites. See the listing for the environmental variable of the same name, above, regarding details of its operation. Also note using envorinmental variables is faster than opening and reading files.

$HOME/.tin/attributes Contains user specified group attributes. See the GROUP ATTRIBUTES section, below, for details and usage.

$HOME/.tin/bug_address Address for reporting bugs, if you don't wish to use the default. Before changing this be aware the maintainer who is the default will respond to any bug reported. Use of the environmental variable of the same name is faster.

$HOME/.tin/kill Article kill and auto-selection data file, fully commented by tin.

$HOME/.tin/log Log of saved or mailed news articles, which log is mailed to the user of tin initiating the -M or -S operation.

$HOME/.tin/newattributes When updating group attributes data are first written to newattributes then after that has successfully been completed it is renamed to attributes.

$HOME/.tin/newtinrc When updating tinrc data are first written to newtinrc then after that has successfully been completed it is renamed to tinrc.

$HOME/.tin/organization String to replace the default (usually site-wide) ORGANIZATION. Use of the environmental variable of the same name is faster.

$HOME/.tin/posted History of message traffic generated by the user. This file is limited to 200 lines maximum (about 15kb) so it can't grow into a monster on its own.

$HOME/.tin/replyto Email address to use in the 'Reply-To: ' mail header. Use of the REPLYTO environmental variable is faster.

$HOME/.tin/spooldir_alias/ When reading news from multiple spools a separate subdirectory will be created for each one.

$HOME/.tin/spooldir_alias/.newnewsrc When reading news from multiple spools a separate .newnewsrc backup file will be used for each spool.

$HOME/.tin/spooldir_alias/.newsrc When reading news from multiple spools a separate .newsrc data file will be maintained for each spool.

$HOME/.tin/tinrc Stores all options set via the 'M' command and many others configurable only by editing this file. See the TINRC CONFIGURABLE VARIABLES section, below, for complete and detailed documentation.

$LIBDIR/active The news active file, listing all newsgroups and the lowest and highest article numbers in each of them.

$LIBDIR/mailname After first checking TINX_FQDN and $LIBDIR/sitename for a fully qualified domain name tin looks here, then if neither file exists gethostbyname() is called.

$LIBDIR/motd News message of the day file.

$LIBDIR/newsgroups Short descriptions for all newsgroups.

$LIBDIR/organization Specify an organization on a site-wide basis.

$LIBDIR/overview.fmt If present indicates the NOV (News OverView) system of article indexing is available (which tin will then use), also lists exact NOV structure in use.

$LIBDIR/sitename Fully qualified domain name, may be used if TINX_FQDN isn't defined. If this and $LIBDIR/mailname don't exist gethostbyname() is called.

$LIBDIR/subscriptions List of newsgroups to which first-time users will be subscribed.

$TMPDIR/.tin_log Logs all image activations of tin (in other words, by all users of it on a particular host machine). This may be disabled by defining DONT_LOG_USER when compiling tin.

$TMPDIR/.subrc.XXXXX Used when repositioning a newsgroup in the newsrc file. Contains all subscribed newsgroups. XXXXX is the owning process ID.

$TMPDIR/.unsubrc.XXXXX Used when repositioning a newsgroup in the newsrc file. Contains all unsubscribed newsgroups. XXXXX is the owning process ID.

$TMPDIR/tin_nntpNXXXXX Data read in over a network are buffered here. XXXXX is the owning process ID and N will be 0 for the first file, a for the second if the first still exists, and so forth.

$TMPDIR/tin.userid.LCK This is a lock file used to prevent more than one indexing process from doing the same thing at the same time. userid is the login name of the owning process.

GLOBAL OPTIONS MENU This menu is accessed by pressing 'M' at all levels except Thread Indexing and allows the user to customize the behavior of tin. The options are saved to the file $HOME/.tin/tinrc. After selecting an item by its index number use <Space> to toggle to the required option and <CR> to set it. When done use 'q' or <ESC> to quit if you decide not to save what you've just changed, or any other key to save and exit back to reading news.

Auto Save Automatically save articles or threads by 'Archive-name: ' line in article header, and post process them if Process Type is not set to 'None'.

Catchup On Quit If ON all groups opened during the current session will be marked as all articles in them have been seen upon exiting tin. If Confirm Command (below) is ON confirmation will be requested before the update is actually done, at which time it may be declined if desired.

Confirm Command If OFF allow certain commands (ie: 'c' to catchup) that normally require user confirmation to be executed immediately.

Draw Arrow If ON allow groups/articles to be selected by an arrow '->' cursor otherwise a highlighted bar is used for selection.

Editor Offset Set ON if the text editor used with tin has the capability of positioning the cursor on a specified line offset within a file at start-up.

Goto 1st Unread This allows the cursor to be placed on the first unread instead of the last unread (with respect to the sorting scheme currently in use) article upon entering a newsgroup with unread news.

Mail Directory The directory where articles/threads are to be saved in mailbox format. Default is $HOME/Mail. A mailbox file is the result of concatenating multiple input items to one single output file. This feature is mainly for use with the Elm mail user agent, and allows the user to save articles, threads or groups simply by specifying '=' as the first character of the output filename.

Mark Saved Read Allows saved articles or threads to be automatically marked as read.

Print Header Allows all headers or only the 'Subject: ' and 'From: ' fields to be output when printing articles.

Printer The printer program with options that is to be used to print articles. Default is lpr for BSD machines and lp for SysV machines.

Process Type This specifies the default type of post processing to perform on saved articles. <ESC> here restores the previous selection and returns to the main options menu. The following types of processing are supported:

--None --Unpacking of multi-part shell archives --Unpacking of multi-part uuencoded files --Unpacking of multi-part uuencoded files, producing a zoo archive and listing its contents --Unpacking of multi-part uuencoded files producing a zoo archive and extracting its contents --Unpacking of multi-part uuencoded files producing a zip archive and listing its contents --Unpacking of multi-part uuencoded files producing a zip archive and extracting its contents --Unpacking of multi-part uuencoded files producing a lha archive and listing its contents (AmigaDOS version only) --Unpacking of multi-part uuencoded files producing a lha archive and extracting its contents (AmigaDOS version only)

The default type is None.

Save Directory The directory where news articles and threads are saved. Default is $HOME/News.

Scroll Full Page If ON scrolling of group/article indices will be a full page at a time, otherwise half a page at a time.

Show Author If 'None' only the subject will be displayed, if 'Addr' the subject and the author's email address are displayed, 'Name' shows the author's personal name (full_name) instead and 'Both' includes everything. <ESC> here restores the previous selection and returns to the main options menu. This parameter may only be modified from the Group Selection level as otherwise the index to be altered is already open.

Show Description If ON show a short descriptive text for each displayed newsgroup. The text used is taken from the $LIBDIR/newsgroups file.

Show Only Unread If ON show only new/unread articles, otherwise show all articles. This parameter may only be modified from the Group Selection level as otherwise the index to be altered is already open. Tin's 'r' command easily toggles between these modes within an open newsgroup index.

Sort Articles By This specifies how articles should be sorted. <ESC> here restores the previous selection and returns to the main options menu. The following sort types are supported:

--Don't sort articles, index in filename order only --Sort articles by Subject ascending or descending --Sort articles by Author (From) ascending or descending --Sort articles by Date ascending or descending

The default sort is by Date ascending. This parameter may only be modified from the Group Selection level as otherwise the index to be altered is already open.

Thread Articles If ON articles will be threaded in all groups (default), otherwise article indices will be unthreaded. Threading or unthreading on a per group basis is possible by setting the group attribute variable 'thread_arts' ON or OFF in the file $HOME/.tin/attributes. May not be modified from the Article Viewer level as the index to be changed is then in use.

ANSI COLOR SUPPORT Rudimentary support for ANSI-Color terminals is available. See the TINRC CONFIGURABLE VARIABLES section, below, starting at the 'use_color' parameter for as much information about color displays as currently exists. Color operation may be toggled on and off via the 'a' command from the Newsgroup Selection level.

TINRC CONFIGURABLE VARIABLES The following options are user configurable by editing $HOME/.tin/tinrc directly. Some of these are accessable via the 'M' Global Options Menu however all are listed here. Note that several other defaults are stored at the end of tinrc and these are set automatically as tin is used thus they need no specific attention from the user.

auto_cc If ON automatically put your email address in the 'Cc: ' field when mailing an article. Default is OFF.

auto_save If ON articles or threads with an 'Archive-name: ' in their mail headers will be automatically saved with the archive name and part/patch number.

batch_save If set ON articles/threads will be saved in batch mode when save -S or mail -M is specified on the command line. Default is OFF.

beginner_level If set ON a Mini-Menu of the most useful commands will be displayed at the bottom of the screen for each level. Default is ON. Tin's 'H' command toggles this menu off and on.

catchup_read_groups If ON all groups opened during the current session will be marked as all articles in them have been seen upon exiting tin. Default is OFF. If confirm_action (below) is ON confirmation will be requested before the update is actually done, at which time it may be declined if desired.

check_for_new_mail Set to OFF to skip testing for new mail every time the screen is cleared, which is useful on hosts where nfs performance is poor. Default is ON.

confirm_action If ON confirm certain commands, such as catching up or overwriting a file, with a yes/no prompt before executing. Default is ON.

default_editor_format The format string used to create the editor start command with parameters. Default is '%E +%N %F' where:

%E = Editor %F = File Name %N = Cursor Line Number Offset

default_savedir The directory where articles and threads are saved as files. Default is ~/News.

default_maildir The directory where articles and threads are saved in mailbox format. Default is ~/Mail, this may be modified with the -m switch when invoking tin.

default_printer The print program with parameters or device used to print from within tin. Default is operating system dependent.

default_sigfile The path that specifies the signature file to use when posting, following up or replying to an article. If the path is a directory then the signature will be randomly selected from files that are in the specified directory. Default is $HOME/.Sig.

display_reading_prompt The prompt 'Reading...' will be displayed when reading an article from a NNTP server to provide feedback to the user. Default is ON.

draw_arrow If ON use '->' for a selection cursor, otherwise use a highlighted bar. Default is OFF.

force_screen_redraw Specifies whether a screen redraw should always be done after certain external commands. Default is OFF.

full_page_scroll If ON scroll full page of at a time, otherwise half a page. Default in ON.

groupname_max_length Limits the maximum length of the newsgroups names displayed so more of the newsgroup description can be displayed. Default is 132.

hot_art_mark The character used to show that an article or thread is auto- selected (marked as hot). Default is '*' and it is displayed in inverse video on terminals that support it.

kill_level If 0 killed articles are simply marked as being read, if 1 killed articles are hidden and never seen. Default is 1.

inverse_okay If ON use inverse video for page headers at different levels. Default is ON.

mail_quote_format Format of the attribution line when responding to an article by mail. Format effectors available are:

%A = Author's Email Address %D = Article's Date %F = Author's Name + Email Address (%N <%A>) %G = Newsgroup's Name %M = Article's Message-ID %N = Author's Name

The default string is "Hi -\n\nIn %G you wrote:\n" where "\n" is a newline. See the CUSTOMIZING THE ARTICLE QUOTE STRING section, below, for details.

mark_saved_read If ON mark articles that are saved to files, printed, etc. as having been read even if they have not been seen with tin's Article Viewer. Default is ON.

news_quote_format Format of the attribution line when following up an article. Format effectors available are:

%A = Author's Email Address %D = Article's Date %F = Author's Name + Email Address (%N <%A>) %G = Newsgroup's Name %M = Article's Message-ID %N = Author's Name

The default string is "%F writes:\n" where "\n" is a newline. See the CUSTOMIZING THE ARTICLE QUOTE STRING section, below, for details.

parse_listgroup If ON use the LISTGROUP command to discover missing articles and use those data to not mistake them as unseen. Currently supported only when reading news via NNTP. Default is OFF.

pos_first_unread If ON when opening a group place the selection cursor on the first unread article, otherwise go to the last unread article. Default is ON.

post_process_type Type of post processing to perform after saving articles. Available options are:

0 = None 1 = Unshar 2 = Uudecode 3 = Uudecode & List Zoo 4 = Uudecode & Extract Zoo 5 = Uudecode & List Zip 6 = Uudecode & Extract Zip

Default is 0, None.

print_header If ON include all headers when feeding articles to the printer, otherwise just the 'Subject: ' and 'From: ' lines. Default is OFF.

quote_chars The character used in quoting included text to article followups and mail replys. The character '_' represents a blank character and is replaced with a ' ' (space, ASCII 32.) when read. The default string is ':_'.

reread_active_file_secs The news active file is reread at regular intervals to show if any new news has arrived. Default is 300 seconds (5 minutes).

return_art_mark The character used to show that an article will return. That is it has been seen then marked as unseen. Default is '-'.

save_to_mmdf_mailbox Allows articles to be saved to a MMDF style mailbox instead of mbox format. Default is OFF unless reading news on SCO Unix which uses MMDF by default.

show_author When listing authors in indicies display:

0 = Nothing, use display space to extend Subjects 1 = Email Address only 2 = Full Name only 3 = Email Address + Full Name

Default is 2, Full Name only.

show_description If ON show group description text after newsgroup name at the Newsgroup Selection level. Default is ON.

show_last_line_prev_page The last line of the previous page will be displayed as the first line of next page. Default is OFF.

show_only_unread If ON show only new (unread) articles, otherwise show all. Default is ON.

show_only_unread_groups If ON show only subscribed to groups that contain unread articles. Default is OFF.

slow_speed_terminal Strips any trailing blanks from the end of each line (indices are normally padded out to your_terminal_width - 1 to support the inverted video cursor) thereby speeding up the display when reading on a slow terminal or via a modem conection. Default is OFF.

sort_article_type When indexing news articles and threads sort them by:

0 = Unsorted, index in filename order 1 = Subject descending 2 = Subject ascending 3 = From descending 4 = From ascending 5 = Date descending 6 = Date ascending

Default is 6, Date ascending.

start_editor_offset If ON editor will be started with cursor offset into the file by tin such that it is already at the most convenient place to start, otherwise the cursor will be positioned on the first line. Default is ON for Unix, OFF elsewhere.

tab_after_X_selection If enabled will automatically go to the first unread article after having selected all hot articles and threads with the 'X' command at Thread Selection level. Default is OFF.

tab_goto_next_unread If enabled pressing <Tab> at the Article Viewer level will go to the next unread article immediately instead of first paging through the current one. Default is ON.

thread_articles If ON all newsgroups will be threaded when opened. Default is ON.

tinz If ON emulate Netcom's tin in numeric selection of groups and threads in that the cursor will be placed in the index entry but the item won't be opened, tin will then stop and await another command.

unlink_article If ON remove ~/.article or ~/.cancel after posting. Default is OFF. Note the same filename is reused for the next article or cancelation so any file recovery must be done prior to that.

unlink_letter If ON remove ~/.letter or ~/.bugreport after sending. Default is OFF. Note the same filename is reused for the next letter or bug report so any file recovery must be done prior to that.

unread_art_mark The character used to show that an article has not been read. Default is '+'.

use_builtin_inews Allows the builtin NNTP inews to be enabled or disabled. Default is ON (enabled).

use_color If ON display using ANSI colors. Default is OFF. To set colors use the following numeric codes:

0 = Black 1 = Red 2 = Green 3 = Brown 4 = Blue 5 = Pink 6 = Cyan 7 = White

These color codes are only for use in the foreground:

8 = Gray 9 = Light Red 10 = Light Green 11 = Yellow 12 = Light Blue 13 = Light Pink 14 = Light Cyan 15 = Light White

col_back Standard background color. Default is 0 (Black).

col_footlines Color of message area at bottom of screen, including the Help Mini-Menu when it is enabled. Default is 7 (White).

col_fromline Color of the text identifying the author. Default is 2 (Green).

col_headerlines Color of header lines in an article. Default is 9 (Light Red).

col_highlight1 First class of word highlighting, delimiting character is '*'. Default is 14 (Light Cyan).

col_highlight2 Second class of word highlighting, delimiting character is '/'. Default is 5 (Pink).

col_highlight3 Third class of word highlighting, delimiting character is '_'. Default is 2 (Green).

col_newslines Color of unquoted text in news articles. Default is 6 (Cyan).

col_norm Standard foreground display color. Default is 7 (White).

col_quotelines Color of quoted text in news articles. Default is 11 (Yellow).

col_replayto Color of response number data at the right end of the second row of the Article Viewer. Default is 13 (Light Pink).

col_select Background color for the inverse video mode. Default is 4 (Blue).

col_subject Color of news article subjects. Default is 7 (White).

farbe13 Color of the 'h=Help' and new mail announcement at the upper right corner of the display. Default is 8 (Gray).

use_keypad If ON enable keypad scrolling keys on terminals which support them. Default is OFF. To use this function HAVE_KEYPAD must be defined when tin is compiled.

use_mime_viewer If ON use an external MIME veiwer (default is metamail) to display encoded articles. Default is OFF.

x_no_archive If ON insert an 'X-No-Archive: Yes' header when posting a news article. Default is OFF.

GROUP ATTRIBUTES Tin allows certain attributes to be set on a per group basis. These group attributes are read from the file $HOME/.tin/attributes. At present you will have to modify this file with your editor to make any changes or additons. The following sample entry lists all the group attributes which are available:

newsgroup=alt.sources auto_save=ON batch_save=OFF delete_tmp_files=ON followup_to=alt.sources.d maildir=/usr/iain/Mail/sources organization=Wacky Bits Inc. post_proc_type=1 printer=/usr/local/bin/a2ps -nn | /bin/lpr savedir=/usr/iain/News/alt.sources show_author=1 show_only_unread=OFF sigfile=/usr/iain/.funny_sig sort_art_type=5 thread_arts=ON

Note that the 'newsgroup=group.name' line must preceed any attributes specified for that group, and that parameter strings containing embedded white space (blanks, spaces) need not be quoted when used in this file.

All attributes are set to reasonable defaults (see the TINRC CONFIGURABLE VARIABLES section, above, for those not listed below) so you only have to specify the attribute(s) that you actually want to change.

All toggle attributes are set by specifying ON or OFF.

The post_proc_type attribute is specified by a number from the following range:

0 = None 1 = Unshar 2 = Uudecode 3 = Uudecode & List Zoo 4 = Uudecode & Extract Zoo 5 = Uudecode & List Zip 6 = Uudecode & Extract Zip

Default is 0, None. If running under AmigaDOS the zoo options are replaced by their corresponding lha archiver options.

The show_author attribute is specified by a number from the following range:

0 = Nothing, use display space to extend Subjects 1 = Email Address only 2 = Full Name only 3 = Email Address + Full Name

Default is 2, Full Name only.

The sort_art_type attribute is specified by a number from the following range:

0 = Unsorted, index in filename order 1 = Subject descending 2 = Subject ascending 3 = From descending 4 = From ascending 5 = Date descending 6 = Date ascending

Default is 6, Date ascending.

AUTOMATIC KILL AND HOT-SELECTION If there is a subject or author which you find either very interesting or completely uninteresting you can easily instruct tin to Auto-Select or Kill articles with specific subjects or from specific authors. These instructions are stored in a kill file. This option is invoked by pressing 'Ctrl-K' at the Thread/Article Selection and Article Viewer levels and also supports a manually entered pattern from the user. The kill scope can be limited to the current newsgroup or apply to all groups. <ESC> may be used at any time to abandon the entry and return to the 'pre-Ctrl-K' state.

When manually entering or editing a string remember tin does shell- style pattern matching for the ?, \, [, ] and * metacharacters unless they are quoted, as in \?, \\, \[, \] and \*. \ is an escape character used to prefix the other metacharacters such that their literal value only is taken for matching. Unquoted metacharacters are the most common cause of 'errors' as matches will be made as shown below _and_ malformed patterns such as "foo[a-" could cause a segmentation violation in the match function (INN's wildmat.c). This quoting requirement only concerns the user's manual entry from the keyboard of said chars, tinx will quote metacharacters when reading them in as text from a news article's headers.

The ?, \, [, ] and * metacharacters are expanded as shown:

* any string at all ab* any string starting with ab *ab any string ending with ab *ab* any string containing ab (article text extract default) ab*cd any string starting with ab, ending with cd, incl. abcd ab*cd* any string that begins with ab and contains cd ? any one-character string a?b any three-char string starting with a, ending with b a?? any three-char string starting with a [1234]* any string starting with 1, 2, 3 or 4 *[zZ] any string ending with z or Z ab[346] any of the strings ab3, ab4 or ab6 *[0-9]* any string containing at least one digit [A-Z]* any string starting with an upper case letter *[03-6] any string ending with 0, 3, 4, 5 or 6 *[13-57] any string ending with 1, 3, 4, 5 or 7 \\ a literal \ \? a literal ? \* a literal * \[ a literal [ \] a literal ]

Matching is currently alphabetic case-sensitive and 8-bit clean. One may specify both cases, as in [Pp][Ss][Yy][Cc][Hh][Ii][Cc], for patterns when both are significant. This example will hit on psychic, Psychic, PSYCHIC or any other case-specific version of it.

Once the entry is completed one may q)uit and not save the kill description, e)dit the kill file (which first saves the current entry being created then positions the editor cursor on the first line of it such that its removal is made easy by simply deleting from there to the end of the file), or just s)ave the kill description and return to reading news. After killing or auto-selecting the user will be returned to a newly calculated index, positioned as close to the location prior to killing the now gone item as is possible.

The kill file default is $HOME/.tin/kill and is fully commented. NOTE WELL all the actual data lines of each entry must remain contiguous (next to each other) - there may be no intervening comments! The actual group name is included in the comments to make editing as easy as possible. Unfortunately the hashing routine currently used by tin is not very effective at uniquely identifying newsgroups, so - if you see more than one group where you expected only one, well - that's how it's being interpreted when killing articles too. Changing the groupname hashing involves dealing with thousands of existing kill files, so that is reserved for some future time..

On starting tin the users kill file $HOME/.tin/kill is read and on entering a newsgroup any kill or auto-select descriptions are applied. Articles that match a kill description are, if kill_level (in $HOME/.tin/kill) is 0, simply marked as being read and if 1 they are hidden and never seen. Articles that match an auto-select description are marked with a '*' (in inverse video if the terminal supports it) when listed in the indices. Auto-selections may be added, removed and modified manually by various commands tin provides once a newsgroup has been opened. These changes remain until the newsgroup is exited at which time all manual operations are cleared. Permanent changes require modifying or updating the data stored in the kill file itself.

POSTING ARTICLES Tin allows posting of articles, followups to already posted articles and replying direct through mail to the author of an article.

Use the 'w' command to post an article to a newsgroup. After entering the post subject the default editor (ie: vi) or the editor specified by the VISUAL environmental variable will be started and the article can be entered. To cross-post articles (to more than one newsgroup) simply add a comma and the name of the newsgroup(s) to the end of the 'Newsgroups: ' line at the beginning of the article. Note that NO spaces are permitted between newsgroup names, and excessive cross- posting is not a good thing to do. After saving and exiting the editor you will be shown any possible problems or fatal errors in your article and asked if you wish to q)uit posting the article, e)dit the article again (fixing any problems or errors if need be) or if there are no fatal errors p)ost the article to the specified newsgroup(s).

Use the 'W' command to display a history of your message traffic. The dates, destinations and subjects are displayed. This is limited to the last 200 events so the $HOME/.tin/posted file will be self-maintaining and thus can't grow into a disk space eating monster on its own.

Use the 'f' or 'F' commands to post a followup article to an already posted article. 'f' copies the text of the original article into the editor. The editing procedure is the same as when posting an article with the 'w' command. After saving and exiting the editor you are asked if you wish to q)uit posting the article, e)dit the article again or p)ost the article to the net.

Use the 'r' or 'R' command to reply directly through mail to the author of an already posted article. 'r' copies the text of the original article into the editor. The editing procedure is the same as when posting an article with the 'w' command. After saving and exiting the editor you are asked if you wish to q)uit sending the letter, e)dit the letter again or s)end the letter.

For your convenience tin presents all articles headers (including the 'From: ' header) for editing during article or email message composition. If any header exceeds 512 bytes in length or if the overall article size exceeds 63kb you will be warned (64kb may be a barrier so this allows for headers added downstream) you will be warned propagation will be degraded and given a chance to edit before posting. If any header exceeds 1032 bytes in length your article will be rejected until it's either fixed or composition is abandoned.

Once posted an article may only be deleted by sending another message to cancel it with the 'D' command. This requires having the article to be canceled open with the Article Viewer and it must have been posted by the same user. The name string including the email address and personal name (full_name) must match exactly. Cancel messages are stored and may be seen in the control.cancel newsgroup.

Some percentage of news sites ignore at least some (if not all) cancel messages. The cancel message is as well propogated by the same mechanism as the original article, thus the article will remain available at any particular site at least until the cancel message has propogated to it. From this it's easy to understand why it's best to think and be sure before posting an article.

CUSTOMIZING THE ARTICLE QUOTE STRING When posting a followup to an article or replying direct to the author of an article via email the text of the article can be quoted. The beginning of the quoted text can contain information about the quoted article (ie: Author and Message-ID of the article). To allow for different situations certain information from the article can be used in the quoted string. The following format effectors are expanded if found in the tinrc variables 'mail_quote_format' or 'news_quote_format':

%A Author's Email Address %D Article's Date %F Author's Name + Email Address (%N <%A>) %G Newsgroup's Name %M Article's Message-ID %N Author's Personal Name (full_name)

To demonstrate the usage of these format effectors:

mail_quote_format="On %D in %G you wrote:" news_quote_format="In %M %F wrote:"

Would be expanded as shown in these examples:

On 21 Jul 1992 09:45:51 -0400 in alt.sources you wrote: In <[email protected]> Iain Lea ([email protected]) wrote:

When extracting the author's email address if a 'Reply-To: ' address has been provided tinx will use that. If no personal name is included there the one in the 'From: ' address will be used, and if none is available there the user name in the email address will be subsituted for it.

Common practice is to include the 'Message-ID: ' field in these strings, however it must be mentioned for news articles it is already included in the 'References: ' field and tinx adds an 'In-reply-to: ' header to letters including it and the article's date.

If you wish to include newlines in your format strings that must be done using the C language escape character style of notation, ie: \n, as the actual newline character (Ctrl-J) would be taken as the end of the string when it's read in. Other control characters such as <Tab> are not as troublesome but are still best specified using the same notation, ie:

\a Bell (Ctrl-G, Standard C only) \b Backspace (Ctrl-H) \f Form Feed (Ctrl-L) \n Newline (Ctrl-J, Line Feed) \r Return (Ctrl-M) \t Tab (Ctrl-I) \v Vert Tab (Ctrl-K) \\ Backslash \' Apostrophe \" Double Quote \<CR> Line Continuation \nnn Octal Character Value \xhh Hexadecimal Char Value (Standard C only)

SIGNATURES Tin will recognize a signature in either $HOME/.signature or $HOME/.Sig. If $HOME/.Sig exists the sig text in it will be pulled into the editor for both posting and mailing commands. If not and $HOME/.signature exists the sig text in it will be pulled into the editor for mail commands only, on the expectation the news posting host itself will append $HOME/.signature.

Note that when using $HOME/.Sig if $HOME/.signature also exists the news posting host may still append it as well, resulting in two sigs in the same one article.

The following is an example of a $HOME/.Sig file:

NAMES Iain Lea [email protected] SNAIL Bruecken Strasse 12, 8500 Nuernberg 90, Germany PHONE +49-911-331963 (home) +49-911-3089-407 (work)

Tin also has the capability to randomly select signatures, and on a per newsgroup basis if so desired. This is implimented by specifying the default sigfile or the group attribute sigfile as a directory, not a file. If for example the sigfile path is /usr/iain/.Sig and .Sig is a directory then tin will randomly select a signature from amongst all files that are in the directory .Sig. Use one random signature item per numbered file. File names should begin with 0, then 1, 2, ..., up to the [total_number-1] of files used. The random file name is modulus the total number of files in the directory thus they should be sequentially numbered for optimum distrubution, although tin will dig around a bit if the first try does not succeed. A random signature can contain a fixed text part in the file $HOME/.sigfixed which is then followed by the randomly selected sig text. This may be used to include your name, address, and other pertinent data.

MAILING, PIPING, PRINTING, REPOSTING AND SAVING ARTICLES The command interface to mail 'm', pipe '|', print 'o', repost 'x' and save 's' articles is the same for ease of use.

The initial command will ask you to select which of an a)rticle, t)hread, h)ot (auto-selected), r)egex pattern or T)agged set of articles you wish to mail, pipe, print, repost or save.

Tagged articles must have already been tagged with the 't' or 'T' commands. NOTE WELL while all articles can be tagged only one multiple part uuencoded file can be processed at any one time. Multiple part articles must be tagged in their correct sequential order to be properly decoded. All tagged articles can be untagged at once with the 'U' (untag) command, or 't' toggles between tagged and untagged. 'T' from the Article/Thread Selection level tags everything then currently indexed, which would be only the currently unread articles if then in the show unread only ('r' command toggles on/off) mode. 't' also tracks the unread only mode, should only certain threads be of interest, or may be used to untag a few uninteresting threads after tagging everything.

When you are done with the current set of tagged items or wish to start over use the 'U' command to untag everything. Tags are preserved though operations on them for the convenience of doing more than one thing with the same set of articles.

If regex pattern matching is chosen you will be prompted to enter a regular expression (ie: to match all articles subject lines containing 'net News' you must enter '*net News*', sans the quote characters, of course). All articles in the newsgroup that match the entered expression will be tagged.

Tin supports the following forms of pathname expansion:

~/News /usr/iain/News ~abc/News /usr/abc/News $VAR/News /env/var/News

And these which include a filename:

= /usr/iain/Mail/group.name =filename /usr/iain/Mail/filename +filename /usr/iain/News/group.name/filename

To save articles to a mailbox with the name of the current newsgroup (ie: alt.sources) enter '=' when asked for the save filename, or use '=mailbox_name' to specify a name as well. A mailbox file is the result of concatenating multiple input items to one single output file.

To save articles in <newsgroup_name>/<filename> format enter '+filename'. The + creates a directory using the newsgroup name if needed and then places the file in it.

To be sure, the above are examples only - you must use the actual path (if needed, or prepend as shown above) and file names you wish to create.

When saving articles you can specify whether the saved files should be post processed (ie: unshar shell archive, uudecode multiple parts, etc). A default process type can be set by the 'Process Type' option in the 'M' Global Options Menu. If you are post-processing and the scheme in use provides an embedded file name that name will be used for the output file.

When tagging multiple part files in many separate news articles you may find it convenient to use the unthreaded mode, sorting on the subject.

When processing multiple articles results in more than one output file tin will append serial numbers to the file names, as in test.001, test.002, and so on. The number of leading zeros is based on the highest number to be used, so directory listings and such will easily keep all files in correct serial order. If you wish to move a set of these files to a host with a limited filename capacity (such as the typical personal computer) it would be wise not to save more files at any one time than the target system can accomodate (with a pc this would be 999 maximum due to the 8.3 name structure). Tin also supports the elm sytle option of using an equals sign for the first character of the file name (=filename) which will concatenate all the articles into one single file.

AUTOMATIC MAILING AND SAVING NEW NEWS Tin allows new (unread) news articles to be mailed (-M option) or saved (-S option) in batch mode for later reading. Useful when going on holiday and you don't want to return and find that expire has removed a whole load of unread articles. Best to run from crontab everyday while away, after which you will be mailed a report of which articles were mailed/saved from which newsgroups and the total number of articles mailed/saved.

Articles are saved in a private news structure under your savedir directory (default is $HOME/News). Be careful of using this option if you read a lot of groups because you could overflow your filesystem. If you only want to save a few groups it would be best to backup your full $HOME/.newsrc and create a new one that only contains the newsgroups you want to mail or save. Saved news could be read later by tin -R, if and when this option is ever implimented. It is currently _NOT_ available.

tin -M iain -c -f newsrc.mail mail iain unread articles in the newgroups specified in the file newsrc.mail

tin -S -c -f newsrc.save save unread articles in the newgroups specified in the file newsrc.save

tin -R NOT IMPLIMENTED: read articles saved by tin -S

COMMAND LINE OPTIONS Exactly which command line switches are present in any particular version of tin depends on which options were selected at the time the executable image was compiled. To deterime what these might be you may run the image with the '-h' switch and it will type out a list of all those it has available.

-c Create or update index files for every newsgroup in $HOME/.newsrc or the newsrc file specified by -f option, then mark all articles as read.

-D Specify a debug mode -Dn where n=1 for NNTP only logging and n=2 for logging all debug info. Debug files written to /tmp are ARTS, ACTIVE, BASE and NNTP. Debugging requires tin be explicity built with DEBUG defined. See the INSTALL file for details.

-f file Use the specified newsrc file of subscribed newsgroups in place of $HOME/.newsrc. Tin will prepend the $HOME path so the file must reside either there or in a subdirectory under it. You may copy your existing .newsrc to the new newsrc file and tin will delete any groups unavailable on a new spool or server, then the rest may be reset with tin's Ctrl-R command. You may also start as a new user by simply specifying any non-existent or invalid (no ':' or '!' in its first line) file. Tin will then create/overwrite it using the LIST SUBSCRIPTIONS command, or if that fails all newsgroups unless you've defined AUTOSUBSCRIBE. See the ENVIRONMENTAL VARIABLES section, below, for its usage. Backups (.oldnewsrc and the temp file .newnewsrc) remain with their original names in the $HOME/ directory and will contain data from which ever newsrc file is then or last was in use.

In the tind indexing daemon version -f is used to specify an alternate news active path and file name.

-h Lists the available command line options. These vary depending on which were selected when building tin.

-H Brief intro to tin shown when RCDIR or newsrc must be created (first use or no prior subscription data).

-I dir Directory in which to store newsgroup index files when doing local indexing. Default is $HOME/.tin/.index.

-m dir Save mailbox files to the specified directory. Default is $HOME/Mail. A mailbox file is more than one news article concatenated into a single file and is created by prefixing the supplied file name with an equals '=' sign.

-M user Mail unread articles to the specified user for later reading. For more information see the AUTOMATIC MAILING AND SAVING NEW NEWS section, below.

-n Only load and index active newsgroups that are subscribed in the user's newsrc. This allows a noticeable speedup when connecting via a slow line. Note well this precludes checking for any new newsgroups and also does not recover the moderated status of any newsgroup thus tin can not advise you of same (although operation and posting is otherwise unaffected). Some NNTP news servers do NOT respond rapidly to the GROUP command for large newsgroups.

-p program Specify a printer or print program with options which tin will use to redirect output. Overrides any printer specified in $HOME/.tin/attributes.

-P Purge the newsgroup index files of articles that no longer exist. Care should be taken when using this command as it stats each and every article in each group that is accessed. On a low speed connection this can have an undesirable effect and it also beats the hell out of your filesystem.

-q Quick start without checking for new newsgroups. Setting aside the time it takes to accept or decline new groups quick here concerns the time it takes to determine what's new on a local spool as opposed to how fast the typical NNTP server responds to the NEWGROUPS command, which is usually faster.

-r Read news remotely from the NNTP server specified in the -x command line option, the environmental variable NNTPSERVER, the file /etc/nntpserver or the default compiled into tin. Forced on when tin is built for NNTP_ONLY news reading.

-R Read news saved by the -S option. NOTE WELL: The -R option is not yet implemented.

-s dir Save news articles to the specified directory. Default is $HOME/News.

-S Save unread articles for later reading by -R option. For more information see the AUTOMATIC MAILING AND SAVING NEW NEWS section, below. NOTE WELL the -R option is as yet unimplimented.

-u Create or update index files for every group in $HOME/.newsrc or the newsrc file specified via the -f option. This option is disabled if tin retreives its index files via a NNTP server.

-U Start tin in the background to update index files while reading news in the foreground. This option is disabled if tin retrieves its index files via a NNTP server.

-v Enables the verbose mode for the -c -M -S -u and -Z (batch) options.

-V Display tin's version and patch level, and compile date and time if available, then exit.

-w Quick mode to post a news article and then exit.

-x host Specify an alternate NNTPSERVER from which to read news.

-X port Specify an alternate NNTP_TCP_PORT for the NNTPSERVER. Default is 119.

-z Only start tin if there is any new (unread) news, then position the cursor on the first group with unread news. Useful in a login file.

-Z Check if there is any new (unread) news and exit with appropriate status. If -v option is specified the number of unread articles in each group is displayed. An exit code of 0 indicates no news, 1 that an error occurred and 2 that new/unread news exists. Useful for writing scripts.

The index daemon version, tind, only supports the -f, -h, -I, -v, -x and -X options.

NEWS ADMINISTRATION Tin is a Usenet News User Agent containing the following features to support automatic maintenance of the news system and its users:

When a user starts tin it is possible to inform them of any important changes/information concerning the news system by displaying a message of the day (motd) file. The motd file should be created in your news lib directory (ie: /usr/lib/news/motd) and should have file permissions set to 0644. The motd file will only be displayed if its contents is newer than the last time the user started tin. If reading news via NNTP the XMOTD patch will have to be installed on your server.

A user starting tin for the first time can be automatically subscribed to a list of newsgroups that are deemed appropriate by the news administrator. The subscriptions file should be created in your news lib directory (ie: /usr/lib/news/subscriptions) and should have file permissions set to 0644. If reading news via NNTP you may need to apply the LIST SUBSCRIPTIONS patch to your server.

If the XUSER patch has been applied to your NNTP server you will be able to log the username and machine to your NNTP logfile for usage statistics. Otherwise tin maintains these data in /tmp/.tin_log.

INDEX FILES The best method for indexing is the News Overview (NOV) scheme that is presently run on many news servers. See the FAQ regularly posted to the news.software.* hierarchy for details about its installation and operation. This version of tin will automatically detect and use NOV data either from an NNTP server or a local news spool.

Failing that, in order to keep track of threads, tin can maintain an index for each newsgroup. There are several methods by which these index files can be created and updated.

The simplest method is that each user creates/updates their own index files which are stored in $HOME/.tin/.index. This has the advantage that any user can compile and install tin, but the disadvantage is that each user is going to be creating duplicate files and using precious disk space. A good way to keep these index files updated is by 'tin -U' which will update them in the background while you are reading news in the foreground.

You can also update index files via the system batcher cron with its '-u' option:

30 6 * * * /usr/local/bin/tin -u

A slightly better method is to install tin setuid news and have all index files created and updated in the news spool directory (ie: /usr/spool/news/.index). This has the advantage that there will only be one copy of the index files on each machine on your network, but the disadvantage is that you will have tin running setuid news.

A yet better method is to install the tind index file updating daemon and have it create and update index files for all groups in your active file at regular intervals in the news spool directory (ie: /usr/spool/news/.index). This has the advantage that there will only be one copy of the index files on each machine on your network and tin must not be setuid news, but the disadvantage is that you will have to have news permissions to install tind and root permissions to install an entry in the cron batcher system to have tind regularly update index files.

The best method is to install the tind index file updating daemon on your NNTP server and have it create and update index files for all groups in your active file at regular intervals in the news spool directory (ie: /usr/spool/news/.index). This has the advantage that there will only be one copy of the index files on the NNTP server for the whole of your network, but the disadvantage is that you will have to install the NNTP server patches to allow tin to retreive index file from your server and and you must install an entry in the cron batcher system to have tind regularly update index files.

Entering a group the first time tends to be slow because the index file must be built from scratch unless the tind update daemon is being used. To alleviate the slowness start tin to create all index files for the groups you subscribe to with 'tin -u -v' and go out for coffee. Subsequent readings of a group will cause incremental updating of the index file.

If reading news remotely and locally updating index files operation will be somewhat slower because the articles must be retreived from the NNTP server.

BUGS Any bug found should be reported by the 'R' (mail a bug report) command. This version of tin (tinx) is fully supported and the maintainer will accept and act on any bug report received. Currently known bugs:

Tin currently builds the array used to mark news articles as seen based on counts in the active file or group commands. Articles received and read after the last active file or groups update (and thus not included in the reported range of articles) can not be marked as seen until after the next active file or groups update.

Tin's '-n' switch doesn't catch and thus users can't be warned regarding moderated status of newsgroups, as it never reads the active file.

The current kill file groupname hash routine is VERY weak. The single group option appears to match any group where everything to the right of the last dot '.' in the name is the same, ie: *.misc, *.general, and so forth.

Malformed patterns such as "foo[a-" could cause a segmentation violation in the matching function (INN's wildmat.c) called by the kill and auto-select functions, among other things.

Unsubscribing a newsgroup means a complete rewrite of the newsrc file, which tin does on a line by line basis. Unsubscribing from many groups can become a very serious performance issue as all this is done one group per pass through the file. It's much better to use the text editor of your choice for this.

HISTORY Based on the tass newsreader that was developed by Rich Skrenta and posted to alt.sources in March 1991. Tass was itself heavily influenced by NOTES which was developed at the University of Illinois by Ray Essick and Rob Kolstad in 1982.

The name 'tin' is derived from Threaded Internet Newsreader, although this version of tin actually only sorts articles, it does not thread by references.

Tinx is tin v1.2 pl2 with many bugs fixed, several performance enhancements and extensive error checking and handling added to it.

CREDITS Rich Skrenta Author of tass v3.2 which this newsreader used as its base.

AUTHOR Iain Lea Author of tin v1.2 pl2 from whence this work began.

MAINTAINER Billy Y.. Maintainer of this version: tinx v1.2 PL9o

AVAILABILITY The latest revision is available from:

ftp.vnet.net:/pub/users/billy ftp.primenet.com:/users/b/billy

COPYRIGHT NOTICE Copyright 1991-93 by Iain Lea & Rich Skrenta You may freely copy or redistribute this software, so long as there is no profit made from its use, sale trade or reproduction. You may not change this copy- right notice, and it must be included in any copy made

Copyright 1994,1995,1996,1997,1998,1999 Billy Y..

Check out the Unix Man pages Manuals
Hosted by www.Geocities.ws

1