home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / pine430.zip / tech-notes.txt < prev   
Text File  |  2000-10-24  |  432KB  |  8,078 lines

  1.  
  2.                              Pine Technical Notes
  3.                                        
  4.    Version 4.30, October 2000
  5.    
  6.    _Pine_ and _Pico_ are trademarks of the University of Washington.
  7.    No commercial use of these trademarks may be made without prior
  8.    written permission of the University of Washington.
  9.    Pine, Pico and Pilot Copyright 1989-2000 University of Washington.
  10.    Additional legal notices are at the web URL
  11.    http://www.washington.edu/pine/legal.
  12.    
  13. Table of Contents
  14.  
  15.   Introduction
  16.   
  17.      * Design Goals
  18.      * Pine Components
  19.        
  20.   Background Details
  21.   
  22.      * Domain Names
  23.      * RFC 822 Compliance
  24.      * SMTP and Sendmail
  25.      * Internet Message Access Protocol (IMAP)
  26.      * Multipurpose Internet Mail Extensions (MIME)
  27.      * Folder Collections
  28.        
  29.   Building and Installation
  30.   
  31.      * Compile-time Options
  32.      * Including LDAP Functionality
  33.      * Including Kerberos 5 Functionality
  34.      * Pine Compile-time Options
  35.      * Pico Compile-time Options
  36.      * OS Dependent Compile-time Settings
  37.      * IMAPd Compile-time Options
  38.      * Building the Pine Programs
  39.      * Installing Pine and Pico on UNIX Platforms
  40.      * Installing PC-Pine
  41.      * Installing IMAPd
  42.      * Support Files and Environment Variables: UNIX Pine
  43.      * Support Files, Environment Variables, and Registry Values: PC-Pine
  44.        
  45.   Command Line Arguments
  46.   
  47.      * Pine
  48.      * Pico
  49.      * Pilot
  50.        
  51.   Configuration and Preferences
  52.   
  53.      * Pine Configuration
  54.      * General Configuration Variables
  55.      * Configuration Features
  56.      * Hidden Config Variables and Features
  57.      * Retired Variables
  58.      * Tokens for Index and Replying
  59.      * Conditional Inclusion of Text for Reply-Leadin, Signatures, and
  60.        Templates
  61.      * Per Server Directory Configuration
  62.      * Color Configuration
  63.      * Index Line Color Configuration
  64.      * Role Configuration
  65.      * Filtering Configuration
  66.      * Scoring Configuration
  67.      * Patterns
  68.        
  69.     Configuration Notes
  70.           + Pine in Function Key Mode
  71.           + Domain Settings
  72.           + Syntax for Collections
  73.           + Syntax for Remote Folders
  74.           + Sorting a Folder
  75.           + Alternate Editor
  76.           + Signatures and Signature Placement
  77.           + Feature List Variable
  78.           + Configuration Inheritance
  79.           + SMTP Servers
  80.           + MIME.Types file
  81.           + Color Details
  82.           + Additional Notes on PC-Pine
  83.        
  84.   Behind the Scenes
  85.   
  86.      * Address Books
  87.      * Remote Configuration
  88.      * Checkpointing
  89.      * Debug Files
  90.      * Filters
  91.      * Folder Formats and Name Extensions
  92.      * Folder Locking
  93.      * INBOX and Special Folders
  94.      * Internal Help Files
  95.      * International Character Sets
  96.      * Interrupted and Postponed Messages
  97.      * Message Status
  98.      * MIME: Reading a Message
  99.      * MIME: Sending a Message
  100.      * New Mail Notification
  101.      * NFS
  102.      * Printers and Printing
  103.      * Save and Export
  104.      * Sent Mail
  105.      * Spell Checker
  106.      * Terminal Emulation and Key Mapping
  107.        
  108.   Notes for Porting and Modification
  109.   
  110.      * Porting Pine to Other Platforms
  111.      * Test Checklist
  112.  
  113.                                  Introduction
  114.                                        
  115. Design Goals
  116.  
  117.    Throughout _Pine_ development, we have had to strike a balance between
  118.    the need to include features which advanced users require and the need
  119.    to keep things simple for beginning users. To strike this balance, we
  120.    have tried to adhere to these design principles:
  121.    
  122.           - The model presented to the user has to be simple and clear.
  123.           Underlying system operation is hidden as much as possible.
  124.           - It's better to have a few easily understood commands that can
  125.           be repeated than to have some more sophisticated command that
  126.           will do the job all at once.
  127.           - Whenever the user has to select a command, file name,
  128.           address, etc., the user should be given (or can get) a menu
  129.           from which to make the selection. Menus need to be complete,
  130.           small, organized and well thought out.
  131.           - _Pine_ must provide immediate feedback for the user with each
  132.           operation.
  133.           - _Pine_ must be very tolerant of user errors. Any time a user
  134.           is about to perform an irreversible act (send a message,
  135.           expunge messages from a folder), _Pine_ should ask for
  136.           confirmation.
  137.           - Users should be able to learn by exploration without fear of
  138.           doing anything wrong. This is an important feature so the user
  139.           can get started quickly without reading any manuals and so
  140.           fewer manuals are required.
  141.           - The core set of _Pine_ functions should be kept to a minimum
  142.           so new users don't feel "lost" in seemingly extraneous commands
  143.           and concepts.
  144.           
  145.    Just as there were goals relating to the look and feel of _Pine_,
  146.    there were equally important goals having to do with _Pine_'s
  147.    structure-the things that users never see but still rely on every time
  148.    they use _Pine_. While _Pine_ can be used as a stand-alone mail user
  149.    agent, one of its strongest assets is its use of the Internet Message
  150.    Access Protocol (IMAP) for accessing remote email folders. In
  151.    addition, _Pine_ was one of the first programs to support the
  152.    Multipurpose Internet Mail Extensions (MIME) specification. With MIME,
  153.    _Pine_ users can reliably send any binary file to any other person on
  154.    the Internet who uses a MIME compliant email program.
  155.    
  156.    The decision to use IMAP and MIME reflects the importance of
  157.    interoperability, standardization and robustness in _Pine_. As you
  158.    work with _Pine_ more, you will see other features which reflect the
  159.    same values. For example, _Pine_ enforces strict compliance with RFC
  160.    822, implements a strong mail folder locking mechanism and verifies a
  161.    process before overwriting any files (e.g. addressbook, expunging
  162.    messages).
  163.    
  164. Pine Components
  165.  
  166.    If you have picked up the _Pine_ distribution, then you already know
  167.    that _Pine_ comes in a few different pieces. They are:
  168.    
  169.    _Pine_
  170.           The main code from which the _Pine_ program is compiled.
  171.    _Pico_
  172.           _Pico_ is the name for the _Pine_ composer. The _Pico_ code is
  173.           used in two ways: (1) it is compiled on its own to be a
  174.           stand-alone editor and, (2) it is compiled as a library for
  175.           _Pine_ to support composition of messages within _Pine_. _Pico_
  176.           is _Pine_'s internal editor invoked when users need to fill in
  177.           header lines or type the text of an email message.
  178.    _Imap_
  179.           An API for IMAP. Includes the C-Client library, which is
  180.           compiled into _Pine_, and the IMAP server _IMAPd_. C-Client
  181.           implements the IMAP protocol and also negotiates all access
  182.           between _Pine_ and the mail folders it operates on, even if the
  183.           folders are local. The C-Client routines are used for email
  184.           folder parsing and interpreting MIME messages. _IMAPd_ is a
  185.           separate server that handles IMAP connections from any
  186.           IMAP-compliant email program. When _Pine_ accesses a remote
  187.           mailbox, the _Pine_ program is the IMAP client and the _IMAPd_
  188.           program is the IMAP server.
  189.  
  190.                               Background Details
  191.                                        
  192. Domain Names
  193.  
  194.    Domain names are used to uniquely name each host on the Internet. A
  195.    domain name has a number of parts separated by periods. Each label
  196.    represents a level in the hierarchy. An example of a name is:
  197.    
  198.      olive.cac.washington.edu
  199.      
  200.    In this domain name the top-level label is _edu_, indicating it is at
  201.    an educational institution, the second-level label is _washington_,
  202.    indicating the University of Washington. _cac_ is a specific
  203.    department within the University of Washington, and _olive_ is the
  204.    host name. The top-level names are assigned by Internet organizations,
  205.    and other names are assigned at the appropriate level. The Domain Name
  206.    Service, DNS, is the distributed database used to look up these names.
  207.    
  208.    _Pine_ relies on domain names in multiple places. A domain name is
  209.    embedded into the message-id line generated for each piece of email. A
  210.    domain name is needed to contact an IMAP server to get access to
  211.    remote INBOXes and folders. Most importantly, domain names are needed
  212.    to construct the From: line of your outgoing messages so that people
  213.    on the Internet will be able to get email back to you.
  214.    
  215.    On UNIX systems, you can set the domain via the user-domain variable
  216.    in the _Pine_ configuration file, or rely on the file /etc/hosts which
  217.    usually sets the name of the local host. While _Pine_ can often
  218.    deliver email without the domain name being properly configured, it is
  219.    best to have this set correctly. Problems can usually be solved by
  220.    adjusting the system's entry in the /etc/hosts file. The
  221.    fully-qualified name should be listed before any abbreviations.
  222.    
  223.      128.95.112.99 olive.cac.washington.edu olive
  224.      
  225.    is preferred over
  226.    
  227.      128.95.112.99 olive olive.cac.washington.edu
  228.      
  229.    On PCs, the task of configuring the domain name is a bit different.
  230.    Often times, PCs do not have domain names-they have _IP addresses_. IP
  231.    addresses are the numbers which uniquely identify a computer on the
  232.    network. The way you configure your IP address depends on the
  233.    networking software which you use on the PC. You can refer to the
  234.    documentation which came with your networking software or see the PC
  235.    specific installation notes for help configuring the IP address with
  236.    your network software.
  237.    
  238.    With PCs, it is vital that users set the variable user-domain in the
  239.    _Pine_ configuration file (PINERC).
  240.    
  241.    Details on configuring _Pine_ with correct domain names can be found
  242.    in the Domain Settings section of this document.
  243.      _________________________________________________________________
  244.    
  245. RFC 822 Compliance
  246.  
  247.    _Pine_ tries to adhere to RFC 822 a little more strongly than some
  248.    other mailers and uses the _"full name <address>"_ format rather than
  249.    the older _"address (full name)"_ format. The intent of the standard
  250.    is that parentheses should only be for comments. _Pine_ displays and
  251.    generates the newer format, but will parse the old format and attempt
  252.    to turn it into the new one.
  253.    
  254.    As far as outgoing email is concerned, _Pine_ fully-qualifies
  255.    addresses whenever possible. They are even displayed in
  256.    fully-qualified form on the terminal as the user composes a message.
  257.    This makes addresses more clear and gives a hint to the user that the
  258.    network extends beyond the local organization. _Pine_ implements
  259.    fully-qualified domain names by tacking on the local domain to all
  260.    unqualified addresses which a user types in. Any address which does
  261.    not contain an "@" is considered unqualified.
  262.    
  263.    The newer format for addresses allows for spaces and special
  264.    characters in the full name of an address. For this reason, commas are
  265.    required to separate addresses. If any special characters as defined
  266.    in RFC 822 appear in the full name, quotes are required around the
  267.    address. _Pine_ will insert the quotes automatically. The common cases
  268.    where this happens are with periods after initials and parentheses.
  269.    
  270.    Because _Pine_ fully complies with RFC 822, it is sometimes difficult
  271.    to use non-Internet address formats such as UUCP's host!user or
  272.    DECNet's USER::HOST with _Pine_. People who run _Pine_ on these
  273.    systems have made local modifications to _Pine_ or to the mail
  274.    transport agent (e.g. sendmail) to make things work for them.
  275.    
  276.    _Pine_ expects dates to be in the standard RFC 822 format which is
  277.    something like:
  278.         [www, ] dd mmm yy hh:mm[:ss] [timezone]
  279.  
  280.    It will attempt to parse dates that are not in this format. When an
  281.    unparsable date is encountered it is displayed as _xxx xx_ when shown
  282.    in the FOLDER INDEX screen.
  283.      _________________________________________________________________
  284.    
  285. SMTP and Sendmail
  286.  
  287.    _Pine_ is a _user agent_ not a _message transfer agent._ In plain
  288.    English, that means _Pine_ does not know how to interact with other
  289.    computers on the Internet to deliver or receive email. What _Pine_
  290.    does know how to do is help users read, organize and create email. The
  291.    "dirty work" of delivering and accepting email is handled by other
  292.    programs.
  293.    
  294.    All outgoing email is delivered to a mail transfer program or to an
  295.    SMTP server. The most common mail transfer program is sendmail.
  296.    
  297.    Pine 3.91 and earlier:
  298.           When _Pine_ on a UNIX computer uses the local sendmail, it
  299.           first writes the message to a temporary file in /tmp. Then
  300.           _Pine_ runs a shell in the background that runs sendmail on the
  301.           temporary file and then removes it. This is done with a shell
  302.           in the background so the user doesn't have to wait for sendmail
  303.           to finish. By default, sendmail is invoked with the -t flag to
  304.           cause it to read and parse the header to determine the
  305.           recipients; the -oem flag to cause errors to be mailed back;
  306.           and the -oi flag to ignore dots in incoming messages. Systems
  307.           administrators can choose to configure _Pine_ to use a
  308.           different mail transfer program or even sendmail with different
  309.           flags. See the section on UNIX Pine Compile-time Options for
  310.           more details on this.
  311.           
  312.           _Pine_ can also operate as an SMTP client. SMTP stands for
  313.           _Simple Mail Transfer Protocol_; it specifies the rules by
  314.           which computers on the Internet pass email to one another. In
  315.           this case, _Pine_ passes outgoing email messages to a
  316.           designated SMTP server instead of to a mail transfer program on
  317.           the local machine. A program on the server then takes care of
  318.           delivering the message. To make _Pine_ operate as an SMTP
  319.           client, the smtp-server variable must be set to the IP address
  320.           or host name of the SMTP server within your organization. This
  321.           variable accepts a comma separated list of servers, so you can
  322.           specify multiple SMTP servers. _PC-Pine_ only runs as an SMTP
  323.           client.
  324.           
  325.    Pine 3.92 and later:
  326.           The selection of which MTA to use depends on the settings of
  327.           sendmail-path, smtp-server, and compile-time options. The first
  328.           MTA specified in the following list is used:
  329.           
  330.          1. _sendmail-path_ in /usr/local/lib/pine.conf.fixed
  331.          2. _smtp-server_ in /usr/local/pine.conf.fixed
  332.          3. _sendmail-path_ specified on the command line.
  333.          4. _smtp-server_ specified on the command line.
  334.          5. _sendmail-path_ in the user's .pinerc file.
  335.          6. _smtp-server_ in the user's .pinerc file.
  336.          7. _sendmail-path_ in /usr/local/lib/pine.conf
  337.          8. _smtp-server_ in /usr/local/pine.conf
  338.          9. DF_SENDMAIL_PATH defined at compile time.
  339.         10. SENDMAIL and SENDMAILFLAGS defined at compile time.
  340.             
  341.           If the _sendmail-path_ form is used, a child process is forked,
  342.           and the specified command is executed with the message passed
  343.           on standard input. Standard output is then passed back and
  344.           displayed for the user. _NOTE: The program MUST read the
  345.           message to be posted on standard input, AND operate in the
  346.           style of sendmail's "-t" option. _
  347.           
  348.           If an _smtp-server_ is specified, a connection to the server is
  349.           opened. If the message contains 8-bit text, ESMTP 8BITMIME
  350.           negotiation is attempted. The message is then sent using SMTP
  351.           commands.
  352.           
  353.           If none of the above are set, the default sendmail program is
  354.           invoked with the "-bs -odb -oem" flags, ESMTP negotiation is
  355.           attempted, and the message is sent.
  356.      _________________________________________________________________
  357.    
  358. Internet Message Access Protocol (IMAP)
  359.  
  360.    IMAP is a remote access protocol for message stores. _Pine_ uses IMAP
  361.    to get at messages and folders which reside on remote machines. With
  362.    IMAP, all messages are kept on the server. An IMAP client (such as
  363.    _Pine_) can request specific messages, headers, message structures,
  364.    etc. The client can also issue commands which delete messages from
  365.    folders on the server. IMAP's closest kin is POP, the Post Office
  366.    Protocol, which works by transferring an entire mailbox to the client
  367.    where all the mail is kept. For a comparison of IMAP and POP, see the
  368.    paper "Comparing Two Approaches to Remote Mailbox Access: IMAP vs.
  369.    POP" by Terry Gray. A more detailed exploration of message access may
  370.    be found in the paper " Message Access Paradigms and Protocols." These
  371.    papers may be found in the /mail directory of the anonymous FTP server
  372.    at ftp.cac.washington.edu.
  373.    
  374.    IMAP Features:
  375.      * Allows access to mail folders from more than one client computer.
  376.      * Works well over low-bandwidth lines because information is sent in
  377.        small pieces as needed by the user. For example, only header
  378.        information is sent to build index lists, and if someone sends a
  379.        2MB audio file via MIME, you can choose when (or if) you want to
  380.        get that part of the message.
  381.      * Email can be delivered and stored on a well-maintained and
  382.        reliable server which is "always-up".
  383.      * Folders can be accessed and manipulated from anywhere on the
  384.        Internet.
  385.      * Users can get to messages stored in different folders within the
  386.        same _Pine_ session.
  387.      * Allows use of IMAP server for searching and parsing.
  388.      * The latest revision of IMAP (IMAP4) also provides for disconnected
  389.        operation, including resynchronization of message state between
  390.        mail servers and message caches on clients. _Pine_ does not yet
  391.        support this capability, however.
  392.        
  393.    IMAP2 is defined in RFC 1176. IMAP4rev1, the revision to IMAP2, is
  394.    described in RFC 2060. Further information about IMAP may be obtained
  395.    from the University of Washington's IMAP Information Center on the
  396.    World Wide Web.
  397.    
  398.    _Pine_ 4.00 is an IMAP4rev1 client.
  399.      _________________________________________________________________
  400.    
  401. Multipurpose Internet Mail Extensions (MIME)
  402.  
  403.    MIME is a way of encoding a multipart message structure into a
  404.    standard Internet email message. The parts may be nested and may be of
  405.    seven different types: Text, Audio, Image, Video, Message, Application
  406.    and Multipart (nested). The MIME specification allows email programs
  407.    such as _Pine_ to reliably and simply exchange binary data (images,
  408.    spreadsheets, etc.). MIME includes support for international character
  409.    sets, tagging each part of a message with the character set it is
  410.    written in, and providing 7-bit encoding of 8-bit character sets. It
  411.    also provides a simple rich text format for marking text as bold,
  412.    underlined, and so on. There is a mechanism for splitting messages
  413.    into multiple parts and reassembling them at the receiving end.
  414.    
  415.    The MIME standard was officially published in June of 1992 as RFC 1341
  416.    and subsequently revised in RFC 2045 when it became a full Internet
  417.    Standard. _Pine_ 3.0 was one of the first email programs to Implement
  418.    MIME. Now, there are dozens of commercial and freely available
  419.    MIME-capable email programs. In addition, MIME is being added to
  420.    newsreaders so MIME messages can be posted and read in USENET
  421.    newsgroups.
  422.    
  423.    The MIME standard also includes support for non-ASCII text in message
  424.    headers through the extensions described in RFC 1342 and subsequently
  425.    revised in RFC 2047. Support for RFC 2047 was added in _Pine_ 3.92.
  426.    
  427.    An actual MIME message looks something like this:
  428. Date: Tue, 12 Mar 1996 15:39:35 -0800 (PST)
  429. From: David L Miller <dlm@cac.washington.edu>
  430. To: David L Miller <dlm@cac.washington.edu>
  431. Subject: =?iso-8859-1?Q?Test_MIME_message_with_RFC-1522_headers_=28=E1?=    =?i
  432. so-8859-1?Q?=E2=E3=29?=
  433. Message-Id: <Pine.ULT.3.92.960312150851.21583I-101000@shiva2.cac.washington.edu
  434. >
  435. Mime-Version: 1.0
  436. Content-Type: MULTIPART/MIXED; BOUNDARY="0-1737669234-826673975=:21583"
  437. Content-Id: <Pine.ULT.3.92.960312153928.21583O@shiva2.cac.washington.edu>
  438.  
  439.   This message is in MIME format.  The first part should be readable text,
  440.   while the remaining parts are likely unreadable without MIME-aware tools.
  441.   Send mail to mime@docserver.cac.washington.edu for more info.
  442.  
  443. --0-1737669234-826673975=:21583
  444. Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
  445. Content-ID: <Pine.ULT.3.92.960312153104.21583L@shiva2.cac.washington.edu>
  446.  
  447. The text of the message would go here. It is readable if
  448. one doesn't mind wading around a little bit of the MIME
  449. formatting. After this is a binary file in base 64
  450. encoding.
  451.  
  452. |\ |  |\/|  David L. Miller    dlm@cac.washington.edu  (206) 685-6240
  453. |/ |_ |  |  Software Engineer, Pine Development Team   (206) 685-4045 (FAX)
  454. University of Washington, Networks & Distributed Computing, JE-20
  455. 4545 15th Ave NE, Seattle WA 98105, USA
  456.  
  457. --0-1737669234-826673975=:21583
  458. Content-Type: APPLICATION/ZIP; NAME="test.zip"
  459. Content-Transfer-Encoding: BASE64
  460. Content-ID: <Pine.ULT.3.92.960312153638.21583N@shiva2.cac.washington.edu>
  461. Content-Description: Test Attachment
  462.  
  463. UEsDBBQAAAAIAGh8bCBbZKT4ygIAAHgFAAAEAAAAdGVzdIVUX2vbMBB/16c4
  464. 9rSBNyjsYX1UHSUROLInycv2qNhKI5ZYxlLa5dvvpDRLw6CFgJF09/t3Rxo3
  465. WDBDD43rPJjJQpxMbw9m+h3AbyHuLLSDe7JTcPGUbtYm7NzwGP3wBYQnnT8c
  466. 7NQ5s4djsC8t4QbmYE6wsfjpLTy7uPPHCOPk/ATPk4vRDmS008GF4PzwPich
  467. zY3m4LfxOQlPNy4GcEO3P/a2h2j/xGyp9ONpco+7CHf33+4/393ff4XNibzL
  468. c1UVfXJXQIdIBRx877b4TYy9C3Fym2NEyzsX/pNDet8dD3aIJiagLbo2wwnG
  469. 4zT6cK66ZLK1NhH9J4tcZQEy7OxkNyd4nMwQbV9glP7JZb87E3O32fgnm7We
  470. XQ8+us4SM47WTCkgMPt9enc2ZAW5c+Pj7o32l0IXXk/r8pSRE3A4jqOfIqqF
  471. G+PFlSdRDOaQduXNESTwtDcYfJ8191gWXUjYmOJ43Oxdh11JTzRuSPcY37+B
  472. vNqmf0O5RB1G27mt64rLCp4X8pW1L6BvxunCeYHNk3F7s9lb+GAwyvAhOyNE
  473. Lxm0gv9gUnH9C+o5rKlacrHQtYAZV2VF+UoBrSp8kJIKzZkqgP1sJFMKagl8
  474. 1VSczQqy5noJki2onIGuQS+5AlXPNfaxArgoq3aGwJDq6lZDxVdcU82RKMG/
  475. 4JArTVKzYrJc4pE+8CoJpGIGc65FIp8jO4WGSs3LtqISmlY2tUKyVMUFETWw
  476. H0xoUMvE8KbXB4aC6EPFzrDiF6iGlZxWBeFixiUrdXJb1kKx7y2C4hPM6Iou
  477. WI4hdVyO6yXVqkZqiXmottLJ9lzWK1LVKttqk8oZ1TS1NrJGS5jqeslQI0aK
  478. ieCvzNlgNZJqiccCc5WafLxmKdii4gsmSvYpISkteamzkRwXJiG5SoUpcERK
  479. 8xIE8QQ7o+eh5WAUy1qYRP8rioip/maI+OfyF1BLAQIUAxQAAAAIAGh8bCBb
  480. ZKT4ygIAAHgFAAAEAAAAAAAAAAEAAACkgQAAAAB0ZXN0UEsFBgAAAAABAAEA
  481. MgAAAOwCAAAAAA==
  482. --0-1737669234-826673975=:21583--
  483.  
  484.    For details about _Pine_'s implementation of MIME, see the two MIME
  485.    sections "MIME: Reading a Message" and "MIME: Sending a Message" later
  486.    in this document.
  487.      _________________________________________________________________
  488.    
  489. Folder Collections
  490.  
  491.    Folder Collections are _Pine_'s way of dealing with more than a single
  492.    group of folders. With advent of _PC-Pine_ and the development of
  493.    tools within IMAP to better manage remote folders, the time was ripe
  494.    to provide a mechanism for defining a group of remote folders.
  495.    _PC-Pine_ forced the issue in that many potential _PC-Pine_ users
  496.    would be migrating from UNIX _Pine_ in a time-sharing environment and,
  497.    thus, would have some investment in their archived messages on that
  498.    host.
  499.    
  500.    For a more complete description of Folder Collections, see the section
  501.    on "Syntax for Collections."
  502.    
  503.    The _Pine_ distribution is designed to require as little configuration
  504.    and effort at compile time as possible. Still, there are some _Pine_
  505.    behaviors which are set at the time you compile _Pine_. For each of
  506.    these, there is a reasonable (our opinion) default built into the
  507.    code, so most systems administrators will have no need for these
  508.    steps.
  509.  
  510.                            Building and Installation
  511.                                        
  512. Compile-time Options
  513.  
  514.    The files you may need to modify are ./{pico,pine}/makefile.xxx,
  515.    ./{pico,pine}/osdep/os-xxx.h, and possibly
  516.    ./{pico,pine}/osdep/os-xxx.ic, where _xxx_ is the 3-letter code for
  517.    your platform. You can give the command build help to see the list of
  518.    ports incorporated into _Pine_ and their associated 3-letter codes.
  519.    The files ./{pico,pine}/makefile.xxx are where you would set compiler
  520.    options. By default, _Pine_ will be compiled with debugging on,
  521.    optimization and profiling off. Note that if you compile with DEBUG
  522.    off, then _Pine_ will not create its normal debug files, no matter how
  523.    the debug-level and debug command line flag are set.
  524.    
  525.    Some of these can only be set when you compile. Others, however, can
  526.    be overridden by command-line flags to _Pine_ or settings in _Pine_'s
  527.    user or system configuration files. Some of the options which can be
  528.    set when compiling:
  529.    
  530.   Including LDAP Functionality
  531.   
  532.    In order to build _Pine_ with LDAP functionality included you need to
  533.    supply the LDAP library and include files. _Pine_ has been
  534.    successfully built with OpenLDAP 2.0.x, OpenLDAP 1.x, the University
  535.    of Michigan LDAP library (ldap-3.3), and with the Netscape Directory
  536.    SDK 1.0 LDAP library.
  537.    
  538.    Set up a symlink called ldap in the top-level pine directory (the
  539.    directory where the _Pine_ build script is located). The build script
  540.    will call contrib/ldap-setup to help if figure out how to use the LDAP
  541.    libraries. It expects to find directories ldap, ldap/include,
  542.    ldap/libraries, and file ldap/include/ldap.h.
  543.    
  544.    There are at least two slightly different styles of LDAP libraries.
  545.    One style uses two libraries, libldap and liblber, the other uses just
  546.    libldap. The script is not very smart, but it attempts to figure out
  547.    which of these two cases is being used. Modify the script to fit your
  548.    situation if you need to.
  549.    
  550.    When using OpenLDAP as the library (or the older University of
  551.    Michigan libary), set up the symlink so that it points to the base of
  552.    the ldap source tree. The ldap-setup script looks for the directory
  553.    ldap/libraries/liblber and the libraries ldap/libraries/libldap.a and
  554.    ldap/libraries/liblber.a.
  555.    
  556.    To use the Netscape Directory SDK library, make a directory called
  557.    ldap in the top-level pine directory (where the _Pine_ build script is
  558.    located). That directory should contain two subdirectories, include
  559.    and libraries. The include directory is where you should put the
  560.    include files from the Netscape SDK. The libraries directory is where
  561.    you should put the library, libldap.a.
  562.    
  563.    The build script will run the script contrib/ldap-setup if you have
  564.    created an ldap symlink or directory. It tries to figure out if the
  565.    setup is the Univ. of Michigan code or not. If it is Univ. of Michigan
  566.    ldap-3.3 or the library from mozilla.org, then it will link against
  567.    both libldap.a and liblber.a. If it isn't, it will link against only
  568.    libldap.a. You may find you have to do some tweaking to get this to
  569.    work with the libraries you are using. If you find that a change to
  570.    contrib/ldap-setup works for you, you might think about sending that
  571.    to us for inclusion in the next _Pine_ release.
  572.    
  573.    _Pine_ uses LDAPv2 protocol. When using LDAPv3 protocol, the results
  574.    are returned in the utf8 character set. _Pine_ is not yet ready to
  575.    deal with that, so it tells the server to use the LDAPv2 protocol.
  576.    
  577.   Including Kerberos 5 Functionality
  578.   
  579.    In order to build _Pine_ with Kerberos functionality included you
  580.    should place a symlink called krb5 to the directory where your
  581.    Kerberos5 include files and libraries are located. That is,
  582.    krb5/include and krb5/lib should exist. Place the symlink in the
  583.    top-level pine directory (where the _Pine_ build script is located).
  584.    See the comments in the script contrib/krb5-setup if you have trouble.
  585.    
  586.   Pine Compile-time Options
  587.   
  588.    USE_QUOTAS
  589.           Determines whether quotas are checked on startup. Default is to
  590.           not check the quota.
  591.    ALLOW_CHANGING_FROM
  592.           This is now a hidden runtime feature called
  593.           allow-changing-from. Even with this feature turned on, users
  594.           still have to include _From_ in their default-composer-hdrs or
  595.           customized-hdrs in order to be able to edit the From line.
  596.           Beginning with version 4.10, a user may also change their From
  597.           address by using Roles.
  598.           A system administrator may disallow editing of the From line by
  599.           putting the feature _no-allow-changing-from_ in the system-wide
  600.           _fixed_ configuration file. The paranoid system administrator
  601.           can compile in this behavior by defining
  602.           _NEVER_ALLOW_CHANGING_FROM_ in ./pine/osdep/os-xxx.h.
  603.    DEFAULT_DEBUG
  604.           Sets the level of debugging output created in _Pine_'s debug
  605.           files. Default is level 2. The command-line flag -d may also be
  606.           used to change the debug level. For example, -dverbose=7.
  607.    NUMDEBUGFILES
  608.           Sets the number of debug files kept per user. Default is 4. The
  609.           command-line flag -d may also be used to change this. For
  610.           example, -dverbose=3,numfiles=2.
  611.    BACKGROUND_POST
  612.           Define this if you want to allow users to turn on the feature
  613.           that enables sending to take place in a fork()'d child. This
  614.           may reduce the time on the user's wall clock it takes to post
  615.           mail. NOTE: You'll also have to make sure the appropriate
  616.           ./pine/osdep/postreap.* file is included in the
  617.           ./pine/osdep/os-xxx.ic file for your system.
  618.    NEW_MAIL_TIME
  619.           Interval between new-mail checks. Default is 150 seconds. This
  620.           is obsolete. This should be set in a configuration file by
  621.           setting the variable mail-check-interval.
  622.    OVERLAP
  623.           Number of lines overlap when user views the next page of a
  624.           message. Default is 2 lines. This is obsolete. This should be
  625.           set in a configuration file by setting the variable
  626.           viewer-overlap.
  627.    PASSFILE
  628.           _WARNING!_ Turning this on is very dangerous and should
  629.           probably not be done, except on single user systems! For
  630.           _PC-Pine_, this is turned on by default and set to the filename
  631.           PINE.PWD. You may enable it for Unix systems by defining
  632.           PASSFILE to be a filename which will be located in the same
  633.           directory as the pinerc file, usually the home directory.
  634.           The file is used to save passwords from one session to the
  635.           next. Even if you define PASSFILE when you compile _Pine_,
  636.           password saving will not be enabled by default, but requires
  637.           the existence of the file (the name of which is the value of
  638.           PASSFILE). Even with the existence of this file, the user must
  639.           still acknowledge a prompt before the password is saved to the
  640.           file. If _Pine_ is configured to access several different IMAP
  641.           servers, each password entered will be kept (associated with
  642.           the corresponding host name) in memory during the current
  643.           session, and optionally, in the PASSFILE file for use in
  644.           subsequent sessions.
  645.           _WARNING_! Use this feature with caution! It effectively makes
  646.           the user's mail no more secure than the physical security of
  647.           the machine running _Pine_. What's more, while the password is
  648.           cloaked by a mild (some might say, feeble) encryption scheme,
  649.           it is nonetheless sitting in a file on the disk and subject to
  650.           cracking by anyone with access to it. _BEWARE_!
  651.    SENDMAIL
  652.    SENDMAILFLAGS
  653.           Sets the name and flags for the local program that will be
  654.           called to handle outgoing email. Default is /usr/lib/sendmail
  655.           -oi -oem -t. See the SMTP and Sendmail section for more
  656.           details.
  657.    SYSTEM_PINERC
  658.           The name of the file which holds _Pine_ configuration
  659.           information for all users on the system. Default on UNIX
  660.           systems is /usr/local/lib/pine.conf.
  661.    SYSTEM_PINERC_FIXED
  662.           The name of the file which holds the same type of information
  663.           as for SYSTEM_PINERC, but only for variables that the
  664.           administrator wants to keep fixed. That is, users are not
  665.           allowed to change variables that are specified in the FIXED
  666.           file. Default on UNIX systems is
  667.           /usr/local/lib/pine.conf.fixed.
  668.           
  669.    There are a couple of more obscure options which are in the source
  670.    code because a few people have asked for them or because we changed
  671.    our minds about them being a good idea in general.
  672.    ENCODE_FROMS
  673.           Use Quoted-printable encoding so that From's at the beginning
  674.           of lines don't end up being escaped by >'s. Most people seem to
  675.           dislike the Q-P encoding more than the > escapes so this is off
  676.           by default. Once everyone has MIME mail readers, we'll turn
  677.           this on by default.
  678.    NO_KEYBOARD_LOCK
  679.           Disable the keyboard locking function in the main menu.
  680.           Keyboard locking is enabled by default. An easier way to turn
  681.           off Keyboard locking is to add the feature
  682.           disable-keyboard-lock-cmd to the feature list variable in the
  683.           global pine.conf or pine.conf.fixed file.
  684.           
  685.   Pico Compile-time Options
  686.   
  687.    There is really only one option settable specifically for _Pico_. It
  688.    is for the UNIX _Pico_ versions only. The file that may need some
  689.    changing is ./pico/osdep/os_xxx.h.. Whatever is set will effect the
  690.    behavior of the _Pico_ stand-alone program as well as the composer
  691.    within _Pine_.
  692.    SPELLER
  693.           Names the program called to do "normal" spell-checking. This
  694.           can be set in a configuration file instead by setting the
  695.           speller configuration variable.
  696.           
  697.   OS Dependent Compile-time Settings
  698.   
  699.    Most of _Pine_'s (and _Pico_'s) operating system dependent behaviors
  700.    are set in the files ./pico/osdep/os-xxx.h and ./pico/osdep/os-xxx.ic.
  701.    The flags in the makefiles are also system dependent. See the comments
  702.    in ./pico/osdep/os-xxx.h for more details. One that may come up is:
  703.    USE_TERMINFO
  704.    USE_TERMCAP
  705.           Instructs _Pine_ to use the terminfo (or termcap) database.
  706.           Default varies by system. This has been moved from
  707.           ./pine/osdep/os-xxx.h to ./pico/osdep/os-xxx.h. If you change
  708.           this you will also have to change the file
  709.           ./pico/osdep/os-xxx.ic so that it includes the file term.inf
  710.           instead of term.cap (or vice versa) and you will probably have
  711.           to change the libraries included by the makefiles
  712.           ./{pico,pine}/makefile-xxx. Hopefully, it is already set
  713.           correctly for each system.
  714.           
  715.   IMAPd Compile-time Options
  716.   
  717.    There are no options or settings required for the version of IMAPd
  718.    distributed with _Pine_. If you need to be doing more complex
  719.    modifications to IMAP, then you should pick up the IMAP development
  720.    package and work with that code. The developer's version of IMAP is
  721.    available for anonymous ftp from ftp.cac.washington.edu in the
  722.    directory mail. The file is called imap.tar.Z.
  723.      _________________________________________________________________
  724.    
  725. Building the Pine Programs
  726.  
  727.    You may have already compiled _Pine_ and tried it out. If so, great!
  728.    If not, you should be able to do it without too much trouble by
  729.    following these step-by-step instructions:
  730.    
  731.     1. Figure out what platform you're building for. You can give the
  732.        command build help or look at the list in ./doc/pine-ports to see
  733.        the list of ports incorporated into _Pine_. What you need is the
  734.        three letter code for the platform. Some examples are a41 for the
  735.        AIX 4.1 operating system, os4 for Digital Unix 4.0, and lnx for
  736.        Linux. There are sometimes several variants for a single operating
  737.        system (different compilers, shadow passwords or not, etc.) so
  738.        look through the whole list in ./doc/pine-ports for the one you
  739.        want. If your platform is not in the list of ports, then you might
  740.        have some work ahead of you. First, check the file doc/pine-ports
  741.        to see if there are others working on a port for your platform or
  742.        to see if the port is included in the contrib section of the
  743.        source code. Ports in the contrib directory were contributed by
  744.        _Pine_ administrators from around the world, but the _Pine_
  745.        development team has not been able to test the code. Some of these
  746.        ports are very old and are based on old versions of _Pine_. If
  747.        _Pine_ has not yet been ported to your platform at all, read the
  748.        section on Porting Pine in this document.
  749.     2. Make sure you're in the root of the _Pine_ source. When you type
  750.        ls you should see the following files and directories (or
  751.        something close to it):
  752.         README  build   doc     makefile        pine
  753.         bin     contrib imap    pico
  754.     3. Make sure you're getting a clean start by giving the command
  755.        ./build clean. This should take only a few seconds to run.
  756.     4. Give the command ./build _xxx_ where _xxx_ is the three letter
  757.        code you picked in step 1. The compiler should grind away for a
  758.        few minutes.
  759.     5. When the compilation is complete the sizes of the four binaries
  760.        built (pine, mtest, imapd, pico) will be displayed. The actual
  761.        binaries are in the various source directories. In addition, the
  762.        bin directory contains a link to each program compiled. You can
  763.        just copy them out of bin or try them from there.
  764.        
  765.    The build command can be given some options which it passes on to the
  766.    subordinate makes. Some that may be useful are EXTRACFLAGS, OPTIMIZE,
  767.    DEBUG, EXTRALIBES, and EXTRALDFLAGS. Build is more closely integrated
  768.    with the _Pico_ and _Pine_ makefiles than it is with the _c-client_
  769.    makefile, so you may find that some things don't work correctly there.
  770.    
  771.    Here are some examples of options you may want to pass to build. This
  772.    will turn off the debugging files that _Pine_ produces, while leaving
  773.    the symbol table information. We believe a better way to do this is to
  774.    have an alias for pine which executes pine -d0 instead. This turns off
  775.    debugging at runtime while preserving the possibility of using the
  776.    debugging if a problem turns up.
  777.                 DEBUG=-g
  778.  
  779.    To also leave out the symbol table information you could pass:
  780.                 DEBUG=
  781.  
  782.    It should be ok to move string constants into a read-only area. We
  783.    don't think there are any instances where _Pine_ modifies a string
  784.    constant. So you could pass a flag to your compiler that tells it to
  785.    do this. This could cause several hundred K of strings to be moved
  786.    from the data area of the program into the text area of the program,
  787.    and that should allow that text to be shared among all instances of
  788.    _Pine_. To do this, for example, with the AIX _a41_ port, you could
  789.    pass this to build:
  790.                 EXTRACFLAGS=-qro
  791.      _________________________________________________________________
  792.    
  793. Installing Pine and Pico on UNIX Platforms
  794.  
  795.    Installing _Pine_ and _Pico_ is remarkably simple. You take the
  796.    program files which you have just transferred or built and you move
  797.    them to the correct directory on your system. Most often the binaries
  798.    go in /usr/local/bin though sometimes they are placed in /usr/bin. All
  799.    the help text is compiled into _Pine_ so there are no _required_
  800.    auxiliary files.
  801.    
  802.    There are, however, three optional auxiliary files:
  803.    /usr/local/lib/pine.info, /usr/local/lib/pine.conf, and
  804.    /usr/local/lib/pine.conf.fixed. The file pine.info contains text on
  805.    how to get further help on the local system. It is part of the help
  806.    text for the main menu and should probably refer to the local help
  807.    desk or the system administrator. If this file doesn't exist a generic
  808.    version which suggests ``talking to the computer support staff at your
  809.    site'' is shown. The file pine.conf is used to set system-wide default
  810.    configurations for _Pine_. The file pine.conf.fixed is also used to
  811.    set system-wide default configurations for _Pine_. The difference
  812.    between these two files is that configuration variables set in the
  813.    pine.conf.fixed file may not normally be over-ridden by a user. See
  814.    the section on Pine Configuration later in this document for details
  815.    about the pine.conf and pine.conf.fixed files.
  816.      _________________________________________________________________
  817.    
  818. Installing PC-Pine
  819.  
  820.    Beginning with the _Pine_ 3.90 release, there is a _PC-Pine_ version
  821.    that runs under windows using the Winsock network interface. For those
  822.    who still need to run the DOS version of _PC-Pine_, there are versions
  823.    for four different TCP/IP network stacks: FTP Inc's PC/TCP, Novell's
  824.    LAN Workplace for DOS, Sun's PC/NFS, and WATTCP for packet drivers.
  825.    _PC-Pine_ needs to be able to interact closely with the stack loaded
  826.    on your PC. Most of the time, this occurs automatically. However,
  827.    there are certain modifications that need be made.
  828.    
  829.    LAN Workplace for DOS Version 4.1
  830.           Set the environment variable _EXCELAN_ in the PC's
  831.           _AUTOEXEC.BAT_ file. This provides the necessary links so that
  832.           LAN Workplace for DOS 4.1 can translate domain names to IP
  833.           numbers correctly. It is needed because _Pine_ was developed
  834.           for LAN Workplace 4.0 and this particular variable is treated
  835.           differently in 4.1 than in 4.0. The _EXCELAN_ variable must
  836.           point to the directory in which LAN Workplace is installed.
  837.    PC/TCP versions before 2.2
  838.           You need a file called _PCTCP.INI_ which contains a
  839.           bare-minimum 2-line description of the PC's configuration. It
  840.           looks like this:
  841.                 [pctcp ifcust 0]
  842.                 ip-address=_xx.xx.xx.xx_
  843.           Where _xx.xx.xx.xx_ is the IP address of the PC. _Pine_ also
  844.           requires an environment variable, _PCTCP,_ which points to this
  845.           file. For example:
  846.                 set PCTCP=C:\PINE\PCTCP.INI
  847.    Packet Drivers
  848.           _Pine_ needs to be made aware of the PC's network configuration
  849.           file. Simply edit the file WATTCP.CFG included in the _Pine_
  850.           distribution. The file includes 5 configuration
  851.           settings--IP-address, gateway, netmask, nameserver(s) and
  852.           domainslist. If you have a network configuration file for NCSA
  853.           Telnet then WATTCP.CFG is just a pared down version of the
  854.           CONFIG.TEL file you already made. Take a look at CONFIG.TEL to
  855.           find the correct settings for WATTCP.CFG. Once the
  856.           configuration file is made, the DOS environment variable
  857.           WATTCP.CFG needs to point at it. For example:
  858.                 set WATTCP.CFG=C:\PINE
  859.           
  860.    In addition to networking software issues, you might need to worry
  861.    about setting the time zone. _PC-Pine_ includes the time zone as part
  862.    of outgoing email. There is a generic way for PC applications to get
  863.    the time zone, but, because _PC-Pine_ is one of a very few
  864.    applications which requires this information, time zone might not be
  865.    previously configured.
  866.    
  867.    The trick is to add an environment variable, _TZ_, to your PC's
  868.    AUTOEXEC.BAT file. The format for the _TZ_ environment variable is as
  869.    follows:
  870.         ZZZ[+H]H[:MM:SSTTT]
  871.  
  872.    First is the 3-letter code for your standard time, then a "+" or a "-"
  873.    for direction of offset from GMT, then the amount of offset (hours,
  874.    minutes, seconds) and finally the 3-letter code for your summer- or
  875.    daylight savings time. Everything in [] brackets is optional.
  876.    
  877.    The default time zone is "PST-8PDT" (U.S. Pacific Time).
  878.    Coincidentally, Microsoft is headquartered in that time zone.
  879.    
  880.    As an example, people in the Eastern part of the US should add this
  881.    line to their AUTOEXEC.BAT files:
  882.    
  883.         TZ=EST-5EDT
  884.      _________________________________________________________________
  885.    
  886. Installing IMAPd
  887.  
  888.    When the _Pine_ distribution is built on a UNIX system, the IMAP
  889.    server binary, imapd, is compiled. Installing imapd requires placing
  890.    the binary in the appropriate directory, usually /usr/etc, and adding
  891.    entries to /etc/services and /etc/inetd.conf or their counterparts.
  892.    The following line is appropriate for /etc/services:
  893.   imap         143/tcp         # Mail transfer
  894.  
  895.    and the next line is appropriate for /etc/inetd.conf:
  896.   imap  stream  tcp     nowait  root    /usr/etc/imapd imapd
  897.  
  898.    The /etc/inetd.conf file entry may vary on different versions of UNIX.
  899.    Some have a slightly different set of fields. Also the pathname in
  900.    /etc/inetd.conf must match the path where imapd is installed.
  901.    
  902.    With this configuration, the IMAP server runs without
  903.    pre-authentication. Each new IMAP connection requires a correct
  904.    username and password. IMAP can also be run with pre-authentication
  905.    based on the standard _rsh_ mechanism. To enable this, the user
  906.    account on the IMAP server must contain a valid file which grants
  907.    access to the client machine. Enabling _rimap_ authentication is done
  908.    by creating a link called /etc/rimapd to imapd. Basically, what is
  909.    happening is that _Pine_ is taking advantage of the ability that rsh
  910.    has to use privileged TCP ports so it doesn't have to run in
  911.    privileged mode. If the rimap authentication fails it will drop back
  912.    to plain password authentication.
  913.    
  914.    _PC-Pine_ cannot take advantage of _rimap_ authentication. Also, if
  915.    your system uses a distributed configuration database, like NIS,
  916.    Yellow Pages or Netinfo, be sure that appropriate steps are taken to
  917.    ensure the above mentioned information is updated.
  918.      _________________________________________________________________
  919.    
  920. Support Files and Environment Variables: UNIX Pine
  921.  
  922.    This section lists the various files which _Pine_ uses which are not
  923.    email folders. All of these are the default names of files, they may
  924.    vary based on _Pine_'s configuration.
  925.    /usr/local/lib/pine.conf
  926.           Pine's global configuration file.
  927.    /usr/local/lib/pine.conf.fixed
  928.           Non-overridable global configuration file.
  929.    /usr/local/lib/pine.info
  930.           Local pointer to system administrator.
  931.    ~/.pinerc
  932.           Personal configuration file for each user.
  933.    ~/.pinercex
  934.           Personal exceptions configuration file for each user.
  935.    ~/.addressbook
  936.           Personal addressbook
  937.    ~/.addressbook.lu
  938.           Personal address book lookup file (index file to speed up
  939.           lookups).
  940.    ~/.newsrc
  941.           Personal USENET subscription list. This is shared with other
  942.           newsreading programs.
  943.    ~/.pine-debugX
  944.           The files created for debugging _Pine_ problems. By default,
  945.           there are 4 .pine-debug files kept at any time.
  946.    ~/.signature
  947.           A signature file which will be included in all outgoing email
  948.           messages.
  949.    ~/.pine-interrupted-mail
  950.           The text of a message which was interrupted by some unexpected
  951.           error which _Pine_ detected.
  952.    ~/mail/postponed-msgs
  953.           A folder of messages which the user chose to postpone.
  954.    /etc/mailcap
  955.           System-wide mail capabilities file. Only used if $MAILCAPS not
  956.           set.
  957.    ~/.mailcap
  958.           Personal mail capabilities file. Combines with system-wide
  959.           mailcap. Only used if $MAILCAPS not set.
  960.           
  961.    The location of the following support files may be controlled by
  962.    variables in the personal or global _Pine_ configuration file:
  963.    signature, addressbook and its index file, postponed messages, and
  964.    newsrc.
  965.    
  966.    Unix _Pine_ uses the following environment variables:
  967.    TERM
  968.           Tells _Pine_ what kind of terminal is being used.
  969.    DISPLAY
  970.           Determines if _Pine_ will try to display IMAGE attachments.
  971.    SHELL
  972.           If not set, default is /bin/sh
  973.    MAILCAPS
  974.           A semicolon delimited list of path names to mailcap files.
  975.      _________________________________________________________________
  976.    
  977. Support Files, Environment Variables, and Registry Settings: PC-Pine
  978.  
  979.    This section lists the various files which _PC-Pine_ uses which are
  980.    not normal mail folders. All of these are the default names of files,
  981.    they may vary based on _Pine_'s configuration.
  982.    
  983.    <PINE.EXE directory>\PINE.HLP
  984.           File containing _Pine_'s internal help text.
  985.    <PINE.EXE directory>\PINE.NDX
  986.           Index of _Pine_'s help text used by _PC-Pine_ to locate
  987.           entries.
  988.    $PINERC or <PineRC registry value> or $HOME\PINE\PINERC or <PINE.EXE
  989.           dir>\PINERC
  990.           Path to (required) personal configuration file.
  991.    $PINERCEX or $HOME\PINE\PINERCEX or <PINE.EXE dir>\PINERCEX
  992.           Path to personal exceptions configuration file.
  993.    $PINECONF
  994.           Path of optional global configuration file.
  995.    <PINERC directory>\ADDRBOOK
  996.           Personal addressbook
  997.    <PINERC directory>\ADDRBOOK.LU
  998.           Personal address book lookup file (index file to speed up
  999.           lookups).
  1000.    <PINERC directory>\PINE.SIG
  1001.           A signature file which will be included in all outgoing email
  1002.           messages.
  1003.    <PINERC directory>\PINE.PWD
  1004.           A file containing encrypted password for remote mail server.
  1005.    <PINERC directory>\PINEDEBG.TXT
  1006.           Location of _Pine_ debug file.
  1007.    <PINERC directory>\MAILCAP and/or <PINE.EXE dir>\MAILCAP
  1008.           These paths are only used if $MAILCAPS not set.
  1009.    $HOME\NEWSRC or <PINERC directory>\NEWSRC
  1010.           Personal USENET subscription list. This may be shared with
  1011.           other newsreading programs.
  1012.    $HOME\MAIL\INTRUPTD
  1013.           The text of a message which was interrupted by some unexpected
  1014.           error which _Pine_ detected.
  1015.    $HOME\MAIL\POSTPOND
  1016.           A folder of messages which the user chose to postpone.
  1017.           
  1018.    Registry Values:
  1019.    HKEY_LOCAL_MACHINE\Software\University of Washington\PC-Pine\4.0
  1020.           _Pinedir_: The directory that contains the _Pine_ executable.
  1021.           _PineEXE_: The name of the _Pine_ executable (most commonly
  1022.           "pine.exe").
  1023.    HKEY_CURRENT_USER\Software\University of Washington\PC-Pine\4.0
  1024.           _PineRC_: The path that points to the default pinerc to use.
  1025.    HKEY_LOCAL_MACHINE\Software\Clients\Mail\PC-Pine
  1026.           _DLLPath_: The path that points to _Pine_'s pmapi32.dll.
  1027.    HKLM\Software\Clients\Mail\PC-Pine\shell\open\command
  1028.           _(Default)_: When set as the default mailer, this is the
  1029.           command that is run by external programs.
  1030.    HKLM\Software\Clients\Mail\PC-Pine\Protocols\Mailto\DefaultIcon
  1031.           _(Default)_: This points to the icon to display in relation to
  1032.           _Pine_'s mailto URL rendering.
  1033.    HKLM\Software\Clients\Mail\PC-Pine\Protocols\Mailto\shell\open\command
  1034.           _(Default)_: This value is the command that gets run by
  1035.           external programs when a mailto URL is run with _PC-Pine_ set
  1036.           as the default mailer.
  1037.    HKLM\Software\Clients\News\PC-Pine\shell\open\command
  1038.           _(Default)_: When set as the default newsreader, this is the
  1039.           command that is run by external programs.
  1040.    HKLM\Software\Clients\News\PC-Pine\Protocols\news\DefaultIcon
  1041.           _(Default)_: This points to the icon to display in relation to
  1042.           _Pine_'s news URL rendering.
  1043.    HKLM\Software\Clients\News\PC-Pine\Protocols\news\shell\open\command
  1044.           _(Default)_: This value is the command that gets run by
  1045.           external programs when a news URL is run with _PC-Pine_ set as
  1046.           the default newsreader.
  1047.    HKLM\Software\Clients\News\PC-Pine\Protocols\nntp\DefaultIcon
  1048.           _(Default)_: This points to the icon to display in relation to
  1049.           _Pine_'s nntp URL rendering.
  1050.    HKLM\Software\Clients\News\PC-Pine\Protocols\nntp\shell\open\command
  1051.           _(Default)_: This value is the command that gets run by
  1052.           external programs when a nntp URL is run with _PC-Pine_ set as
  1053.           the default newsreader.
  1054.           
  1055.    _PC-Pine_'s help text and help text index file are expected to reside
  1056.    in the same directory as the PINE.EXE executable, as they are
  1057.    essentially extensions of the executable. The personal configuration
  1058.    file may be in the same directory as the executable, or if that is
  1059.    inconvenient because the executable is on a shared or read-only drive,
  1060.    then it can be in a file named by the $PINERC environment variable, or
  1061.    in $HOME\PINE\PINERC, where if not set, $HOME defaults to the root of
  1062.    the current working drive.
  1063.    
  1064.    Most of the other support files key off of the location of the PINERC
  1065.    file. However, in the case of the NEWSRC file, the path $HOME\NEWSRC
  1066.    is checked first. Also, the postponed messages and interrupted message
  1067.    folders are placed in the default folder collection, normally in the
  1068.    directory $HOME\MAIL.
  1069.    
  1070.    The location of the following support files may be controlled by
  1071.    variables in the personal or global _Pine_ configuration file:
  1072.    signature, addressbook (and its index file), postponed messages, and
  1073.    newsrc.
  1074.    
  1075.    _PC-Pine_ uses the following environment variables:
  1076.    PINERC
  1077.           Overrides default path to pinerc file.
  1078.    PINERCEX
  1079.           Overrides default path to personal exceptions configuration
  1080.           file.
  1081.    PINECONF
  1082.           Optional path to global _Pine_ config file.
  1083.    HOME
  1084.           If not set, _Pine_ uses the root of the current drive, e.g. C:
  1085.    TMP or TEMP
  1086.           Specifies location of temporary storage area
  1087.    COMSPEC
  1088.           Specifies shell for external commands.
  1089.    MAILCAPS
  1090.           A semicolon delimited list of path names to mailcap files.
  1091.  
  1092.                             Command Line Arguments
  1093.                                        
  1094. Pine
  1095.  
  1096.    _Pine_ and _PC-Pine_ can accept quite a few command-line arguments.
  1097.    Many of these arguments overlap with variables in the _Pine_
  1098.    configuration file. If there is a difference, then a flag set in the
  1099.    command line takes precedence. Both _Pine_ and _PC-Pine_ expect
  1100.    command line arguments (other than addresses) to be preceded by the
  1101.    "-" (dash) as normally used by UNIX programs.
  1102.    
  1103.    _[addresses]_
  1104.           Send-to: If you give _Pine_ an argument or arguments which do
  1105.           not begin with a dash, _Pine_ treats them as email addresses.
  1106.           _Pine_ will startup in the composer with a message started to
  1107.           the addresses specified. Once the message is sent, the _Pine_
  1108.           session closes. Standard input redirection is allowed. Separate
  1109.           multiple addresses with a space between them. Addresses are
  1110.           placed in the "To" field only.
  1111.    < _file_
  1112.           _Pine_ will startup in the composer with _file_ read into the
  1113.           body of the message. Once the message is sent, the _Pine_
  1114.           session closes.
  1115.    -attach _file_
  1116.           Go directly into composer with given file attached.
  1117.    -attachlist _file-list_
  1118.           Go directly into composer with given files attached. This must
  1119.           be the last option on the command line.
  1120.    -attach_and_delete _file_
  1121.           Go directly into composer with given file attached, delete when
  1122.           finished.
  1123.    -aux _local_directory_
  1124.           _PC-Pine_ only. When using a remote configuration (-p
  1125.           <remote_config>) this tells _PC-Pine_ the local directory to
  1126.           use for storing auxiliary files, like debug files, address
  1127.           books, and signature files.
  1128.    -bail
  1129.           If the personal configuration file doesn't already exist, exit.
  1130.           This might be useful if the configuration file is accessed
  1131.           using some remote filesystem protocol. If the remote mount is
  1132.           missing this will cause _Pine_ to quit instead of creating a
  1133.           new pinerc.
  1134.    -c _n_
  1135.           When used with the -f option, apply the _n_th context. This is
  1136.           used when there are multiple folder collections (contexts) and
  1137.           you want to open a folder not in the primary collection.
  1138.    -conf
  1139.           Configuration: Prints a sample system configuration file to the
  1140.           screen or standard output. To generate an initial system
  1141.           configuration file, execute
  1142.                 pine -conf > /usr/local/lib/pine.conf
  1143.           To generate a system configuration file using settings from an
  1144.           old system configuration file, execute
  1145.                 pine -P old-pine.conf -conf > /usr/local/lib/pine.conf
  1146.           A system configuration file is not required.
  1147.    -copy_abook _<local_abook_file> <remote_abook_folder>_
  1148.           Copy an address book file to a remote address book folder. If
  1149.           the remote folder doesn't exist, it will be created. If it
  1150.           exists but the first message in the folder isn't a remote
  1151.           address book header message, the copy will be aborted. This
  1152.           flag will not usually be used by a user. Instead, the user will
  1153.           create a remote address book from within _Pine_ and copy
  1154.           entries from the local address book by using aggregate Save in
  1155.           the address book screen.
  1156.    -copy_pinerc _<local_pinerc_file> <remote_pinerc_folder>_
  1157.           Copy a pinerc configuration file to a remote pinerc folder. If
  1158.           the remote folder doesn't exist, it will be created. If it
  1159.           exists but the first message in the folder isn't a remote
  1160.           pinerc header message, the copy will be aborted. This flag may
  1161.           be useful to users who already have a local pinerc file and
  1162.           would like to convert it to a remote pinerc folder and use that
  1163.           instead. This gives a way to bootstrap that conversion without
  1164.           having to manually reset all of the variables in the remote
  1165.           pinerc folder.
  1166.    -create_lu _addrbook sort-order_
  1167.           Create auxiliary LookUp (index) file for _addrbook_ and sort
  1168.           _addrbook_ in _sort-order_, which may be _dont-sort_,
  1169.           _nickname_, _fullname_, _nickname-with-lists-last_, or
  1170.           _fullname-with-lists-last_. Only useful when creating global or
  1171.           shared address books. See Address Book Lookup File for more
  1172.           information, especially the warning about copying the address
  1173.           book after creating the lookup file.
  1174.    -d _debug-level_
  1175.           Debug Level: Sets the level of debugging information written by
  1176.           _Pine_. _debug-level_ can be set to any integer 0-9. A debug
  1177.           level of 0 turns off debugging for the session. (Actually there
  1178.           are some levels higher than 9, but you probably don't want to
  1179.           see them.)
  1180.    -d _keywords_
  1181.           You may use a more detailed version of the debugging flag to
  1182.           set the debug level in separate parts of _Pine_. The
  1183.           possibilities are flush, timestamp, imap=0..4, numfiles=0..31,
  1184.           and verbose=0..9. _Flush_ causes debugging information to be
  1185.           flushed immediately to the debug file as it is written.
  1186.           _Verbose_ is the general debugging verbosity level. _Timestamp_
  1187.           causes timestamps to be added to the debug file, which is
  1188.           useful when you are trying to figure out what is responsible
  1189.           for delays. _Numfiles_ sets the number of debug files saved.
  1190.           _Imap_ sets the debug level for the debugging statements
  1191.           related to the conversation with the IMAP server, and more
  1192.           generally, for the debugging related to _Pine_'s interaction
  1193.           with the C-Client library.
  1194.    -f _folder_
  1195.           Startup folder: _Pine_ will open this folder in place of the
  1196.           standard INBOX.
  1197.    -F _file_
  1198.           Open named text file for viewing and forwarding.
  1199.    -h
  1200.           Help: Prints the list of available command-line arguments to
  1201.           the screen.
  1202.    -i
  1203.           _Pine_ will start up in the FOLDER INDEX screen instead of the
  1204.           MAIN MENU.
  1205.           Configuration equivalent: _initial-keystroke-list=i_.
  1206.    -I _a,b,c,..._
  1207.           Initial Keystrokes: _Pine_ will execute this comma-separated
  1208.           sequence of commands upon startup. This allows users to get
  1209.           _Pine_ to start in any of its menus/screens. You cannot include
  1210.           any input to the composer in the initial keystrokes. The key
  1211.           <Return> is represented by a ``CR'' in the keystroke list; the
  1212.           spacebar is designated by the letters ``SPACE''. Control keys
  1213.           are two character sequences beginning with ``^'', such as
  1214.           ``^I''. A tab character is ``TAB''. Function keys are ``F1'' -
  1215.           ``F12'' and the arrow keys are ``UP'', ``DOWN'', ``LEFT'', and
  1216.           ``RIGHT''. A restriction is that you can't mix function keys
  1217.           and character keys in this list even though you can, in some
  1218.           cases, mix them when running _Pine_. A user can always use only
  1219.           _character_ keys in the startup list even if he or she is using
  1220.           _function_ keys normally, or vice versa. If an element in this
  1221.           list is a string of characters surrounded by double quotes (")
  1222.           then it will be expanded into the individual characters in the
  1223.           string, excluding the double quotes.
  1224.           Configuration equivalent: _initial-keystroke-list_
  1225.    -k
  1226.           Function-Key Mode: When invoked in this way, _Pine_ expects the
  1227.           input of commands to be function-keys. Otherwise, commands are
  1228.           linked to the regular character keys.
  1229.           Configuration equivalent: _use-function-keys_ included in
  1230.           _feature-list_.
  1231.    -n _n_
  1232.           Message-Number: When specified, _Pine_ starts up in the FOLDER
  1233.           INDEX screen with the current message being the specified
  1234.           message number.
  1235.    -o _folder_
  1236.           Opens the INBOX (or a folder specified via the -f argument)
  1237.           ReadOnly.
  1238.    -p _pinerc_
  1239.           Uses the named file as the personal configuration file instead
  1240.           of _~/.pinerc_ or the default PINERC search sequence _PC-Pine_
  1241.           uses. Pinerc may be either a local file or a remote
  1242.           configuration folder.
  1243.    -P _pinerc_
  1244.           Uses the named file as the system wide configuration file
  1245.           instead of _/usr/local/lib/pine.conf_ on UNIX, or nothing on
  1246.           _PC-Pine_. Pinerc may be either a local file or a remote
  1247.           configuration folder.
  1248.    -pinerc _file_
  1249.           Output fresh pinerc configuration to _file_, preserving the
  1250.           settings of variables that the user has made. Use _file_ set to
  1251.           ``-'' to make output go to standard out.
  1252.    -r
  1253.           Restricted Mode: For UNIX _Pine_ only. _Pine_ in restricted
  1254.           mode can only send email to itself. Save and export are
  1255.           limited.
  1256.    -registry _cmd_
  1257.           For _PC-Pine_ only, this option affects the values of _Pine_'s
  1258.           registry entries. Possible values for _cmd_ are set, clear, and
  1259.           dump. _Set_ will always reset _Pine_'s registry entries
  1260.           according to its current settings. _Clear_ will clear the
  1261.           registry values. _Dump_ will display the values of current
  1262.           registry settings. Note that the dump command is currently
  1263.           disabled. Without the -registry option, _PC-Pine_ will write
  1264.           values into the registry only if there currently aren't any
  1265.           values set.
  1266.    -sort _key_
  1267.           Sort-Key: Specifies the order messages will be displayed in for
  1268.           the FOLDER INDEX screen. _Key_ can have the following values:
  1269.           arrival, date, subject, orderedsubj, thread, from, size, score,
  1270.           to, cc, arrival/reverse, date/reverse, subject/reverse,
  1271.           orderedsubj/reverse, thread/reverse, from/reverse,
  1272.           size/reverse, score/reverse, to/reverse, and cc/reverse. The
  1273.           default value is "arrival". The _key_ value reverse is
  1274.           equivalent to arrival/reverse.
  1275.           Configuration equivalent: _sort-key_.
  1276.    -url _url_
  1277.           Open the given URL.
  1278.    -v
  1279.           Version: Print version information to the screen.
  1280.    -x _exceptions_config_
  1281.           Configuration settings in the exceptions config override your
  1282.           normal default settings. _Exceptions_config_ may be either a
  1283.           local file or a remote pinerc folder.
  1284.    -z
  1285.           Enable Suspend: When run with this flag, the key sequence
  1286.           ctrl-z will suspend the _Pine_ session.
  1287.           Configuration equivalent: _enable-suspend_ included in
  1288.           _feature-list_.
  1289.    -_option_=_value_
  1290.           Assign _value_ to the config option _option_. For example,
  1291.           _-signature-file=sig1_ or _-feature-list=signature-at-bottom_.
  1292.           (Note: feature-list values are additive and features may be
  1293.           preceded with no- to turn them off).
  1294.           
  1295. Pico
  1296.  
  1297.    The following command line options are supported in _Pico_:
  1298.    
  1299.    +_n_
  1300.           Causes _Pico_ to be started with the cursor located _n_ lines
  1301.           into the file. (Note: no space between "+" sign and number)
  1302.           
  1303.    -a
  1304.           Display all files and directories, including those beginning
  1305.           with a period (.).
  1306.           
  1307.    -b
  1308.           Enable the option to Replace text matches found using the
  1309.           "Where is" command.
  1310.           
  1311.    -d
  1312.           Rebind the "delete" key so the character the cursor is on is
  1313.           rubbed out rather than the character to its left.
  1314.           
  1315.    -e
  1316.           Enable file name completion.
  1317.           
  1318.    -f
  1319.           Use function keys for commands. _This option supported only in
  1320.           conjunction with UW Enhanced NCSA telnet._
  1321.           
  1322.    -g
  1323.           Enable "Show Cursor" mode in file browser. Cause cursor to be
  1324.           positioned before the current selection rather than placed at
  1325.           the lower left of the display.
  1326.           
  1327.    -k
  1328.           Causes "Cut Text" command to remove characters from the cursor
  1329.           position to the end of the line rather than remove the entire
  1330.           line.
  1331.           
  1332.    -m
  1333.           Enable mouse functionality. This only works when _Pico_ is run
  1334.           from within an X Window System "xterm" window.
  1335.           
  1336.    -n_n_
  1337.           The -n_n_ option enables new mail notification. The _n_
  1338.           argument is optional, and specifies how often, in seconds, your
  1339.           mailbox is checked for new mail. For example, -n60 causes _Pico_
  1340.           to check for new mail once every minute. The default interval
  1341.           is 180 seconds, while the minimum allowed is 30. (Note: no
  1342.           space between "n" and the number)
  1343.           
  1344.    -o _dir_
  1345.           Sets operating directory. Only files within this directory are
  1346.           accessible. Likewise, the file browser is limited to the
  1347.           specified directory subtree.
  1348.           
  1349.    -q
  1350.           TermdefWins. Termcap or terminfo escape sequences are used in
  1351.           preference to default escape sequences.
  1352.           
  1353.    -r_n_
  1354.           Sets column used to limit the "Justify" command's right margin.
  1355.           
  1356.    -t
  1357.           Enable "tool" mode. Intended for when _Pico_ is used as the
  1358.           editor within other tools (e.g., Elm, Pnews). _Pico_ will not
  1359.           prompt for save on exit, and will not rename the buffer during
  1360.           the "Write Out" command.
  1361.           
  1362.    -v
  1363.           View the file only, disallowing any editing.
  1364.           
  1365.    -w
  1366.           Disable word wrap (thus allow editing of long lines).
  1367.           
  1368.           _Note: Pico will break any lines over 255 characters when
  1369.           reading a file, regardless of word wrapping._
  1370.           
  1371.    -x
  1372.           Disable keymenu at the bottom of the screen.
  1373.           
  1374.    -z
  1375.           Enable ^Z suspension of _Pico_.
  1376.           
  1377. Pilot
  1378.  
  1379.    The following command line options are supported in _Pilot_:
  1380.    
  1381.    -a
  1382.           Display all files including those beginning with a period (.).
  1383.           
  1384.    -f
  1385.           Use function keys for commands. _This option supported only in
  1386.           conjunction with UW Enhanced NCSA telnet._
  1387.           
  1388.    -g
  1389.           Enable "Show Cursor" mode. Cause cursor to be positioned before
  1390.           the current selection rather than placed at the lower left of
  1391.           the display.
  1392.           
  1393.    -m
  1394.           Enable mouse functionality. This only works when _Pilot_ is run
  1395.           from within an X Window System "xterm" window.
  1396.           
  1397.    -n_n_
  1398.           The -n_n_ option enables new mail notification. The _n_
  1399.           argument is optional, and specifies how often, in seconds, your
  1400.           mailbox is checked for new mail. For example, -n60 causes
  1401.           _Pilot_ to check for new mail once every minute. The default
  1402.           interval is 180 seconds, while the minimum allowed is 30.
  1403.           (Note: no space between "n" and the number)
  1404.           
  1405.    -o _dir_
  1406.           Sets operating directory. Only files within the specified
  1407.           directory are accessible and browsing is limited to the
  1408.           specified directory subtree.
  1409.           
  1410.    -v
  1411.           Enable single vertical column display.
  1412.           
  1413.    -x
  1414.           Disable keymenu at the bottom of the screen.
  1415.           
  1416.    -z
  1417.           Enable ^Z suspension of _Pilot_.
  1418.  
  1419.                          Configuration and Preferences
  1420.                                        
  1421. Pine Configuration
  1422.  
  1423.    There is very little in _Pine_ which _requires_ compile-time
  1424.    configuration. In most cases, the compiled-in preferences will suit
  1425.    users and administrators just fine. When running _Pine_ on a UNIX
  1426.    system, the default built-in configuration can be changed by setting
  1427.    variables in the system configuration files, /usr/local/lib/pine.conf
  1428.    or /usr/local/lib/pine.conf.fixed. (Actually, these files are whatever
  1429.    the definitions for SYSTEM_PINERC and SYSTEM_PINERC_FIXED in
  1430.    pine/osdep/os-xxx.h are set to.) The location of the pine.conf file
  1431.    can be changed with the -P command line argument. Both _Pine_ and
  1432.    _PC-Pine_ also use personal (user-based) configuration files. On UNIX
  1433.    machines, the personal configuration file is the file ~/.pinerc. For
  1434.    _PC-Pine_ systems, the personal configuration file is in $PINERC or
  1435.    <PineRC registry value> or $HOME\PINE\PINERC or <PINE.EXE dir>\PINERC.
  1436.    Or the personal configuration file can be specified with the -p
  1437.    command line argument.
  1438.    
  1439.    After the personal configuration, _Pine_ may optionally use a personal
  1440.    exceptions configuration file which is specified with the command line
  1441.    option "-x exceptions_config". "Exceptions_config" may be either a
  1442.    local file or a remote configuration folder. For Unix _Pine_, if you
  1443.    don't have a "-x" command line option, _Pine_ will look for the file
  1444.    ".pinercex" in the same local directory that the regular config file
  1445.    is located in. If the regular config file is remote then Unix _Pine_
  1446.    looks in the home directory for ".pinercex".
  1447.    
  1448.    For _PC-Pine_, if you don't have a "-x" command line option, _PC-Pine_
  1449.    will use the value of the environment variable $PINERCEX. If that is
  1450.    not set, _PC-Pine_ will look for the local file "PINERCEX" in the same
  1451.    local directory that the regular config file is located in. If the
  1452.    regular config file is remote then _PC-Pine_ looks in the local
  1453.    directory specfied by the "-aux local_directory" command line
  1454.    argument, or the directory $HOME\PINE, or in <PINE.EXE directory>.
  1455.    
  1456.    The syntax of a non-list configuration variable is this:
  1457.    
  1458.      <variable> = <value>
  1459.      
  1460.    If the value is absent then the variable is unset. To set a variable
  1461.    to the empty value the syntax is "". This is equivalent to an absent
  1462.    value except that it overrides any system-wide value that may be set.
  1463.    Quotes may be used around any value. All values are strings and end at
  1464.    the end of the line or the closing quote. Leading and trailing space
  1465.    is ignored unless it is included in the quotes. There is one variable,
  1466.    _use-only-domain-name_, for which the only appropriate values are _yes_
  1467.    and _no_. That's because it is a variable from the early days of _Pine_
  1468.    before features existed.
  1469.    
  1470.    There is also a second type of variable, lists. A list is a
  1471.    comma-separated list of values. The syntax for a list is:
  1472.    
  1473.      <variable> = <value> [, <value> , ... ]
  1474.      
  1475.    A list can be continued on subsequent lines by beginning the line with
  1476.    white-space. Both the per-user and global configuration files may
  1477.    contain comments which are lines beginning with a #.
  1478.    
  1479.    For UNIX _Pine_, there are five ways in which each variable can be
  1480.    set. In decreasing order of precedence they are:
  1481.     1. the system-wide _fixed_ configuration file
  1482.     2. a command line argument
  1483.     3. the personal exceptions file
  1484.     4. the personal configuration file
  1485.     5. the system-wide configuration file.
  1486.        
  1487.    If the variable is not set in any of those places, there is a default
  1488.    setting in the source code.
  1489.    
  1490.    So, system-wide fixed settings always take precedence over command
  1491.    line flags, which take precedence over per-user exception settings,
  1492.    which take precedence over per-user settings, which take precedence
  1493.    over system-wide configuration settings. _PC-Pine_ has the same list,
  1494.    except that it does not use a system-wide _fixed_ configuration file.
  1495.    This can be modified slightly by using inheritance, which is covered
  1496.    below.
  1497.    
  1498.    You may get a sample/fresh copy of the system configuration file by
  1499.    running _Pine -conf._ The result will be printed on the standard
  1500.    output with short comments describing each variable. (The online help
  1501.    in the Setup screens provides longer comments.) If you need to fix
  1502.    some of the configuration variables, you would use the same template
  1503.    for the fixed configuration file as for the regular system-wide
  1504.    configuration file. (If it isn't clear, the purpose of the fixed
  1505.    configuration file is to allow system administrators to restrict the
  1506.    configurability of _Pine_. It is by no means a bullet-proof method.)
  1507.    _Pine_ will automatically create the personal configuration file the
  1508.    first time it is run, so there is no need to generate a sample. _Pine_
  1509.    reads and writes the personal configuration file occasionally during
  1510.    normal operation. Users will not normally look at their personal
  1511.    configuration file, but will use the Setup screens from within _Pine_
  1512.    to set the values in this file. If a user does add additional comments
  1513.    to the personal configuration file they will be retained.
  1514.    
  1515.    References to environment variables may be included in the _Pine_
  1516.    configuration files. The format is $variable or ${variable}. The
  1517.    character ~ will be expanded to the $HOME environment variable.
  1518.    
  1519.    When environment variables are used for _Pine_ settings which take
  1520.    lists, you must have an environment variable set for each member of
  1521.    the list. That is, _Pine_ won't properly recognize an environment
  1522.    variable which is set equal to a comma-delimited list. It is OK to
  1523.    reference unset environment variables in the _Pine_ configuration
  1524.    file, which will expand to nothing.
  1525.    
  1526.   Remote and Local Configuration
  1527.   
  1528.    Beginning with _Pine_ 4.30 there are two types of storage for
  1529.    configuration information. _Local_ configuration files are used by
  1530.    default. These are just regular files on the UNIX system or on the PC.
  1531.    This is the only kind of configuration storage _Pine_ used prior to
  1532.    4.30. _Remote_ configuration folders are stored on an IMAP server. The
  1533.    advantage of using a remote configuration is that the same information
  1534.    may be accessed from multiple platforms. For example, if you use one
  1535.    computer at work and another at home, the same configuration could be
  1536.    used from both places. A configuration change from one place would be
  1537.    seen in both places. Technical information about remote configuration
  1538.    is in Remote Configuration.
  1539.    
  1540.   Generic and Exceptional Configuration
  1541.   
  1542.    If you use _Pine_ from more than one platform it may be convenient to
  1543.    split your configuration information into two pieces, a generic piece
  1544.    and exceptions which apply to a particular platform. For example,
  1545.    suppose you use _Pine_ from home and from work. Most of your
  1546.    configuration settings are probably the same in both locations, so
  1547.    those settings belong in the generic settings configuration. However,
  1548.    you may use a different SMTP server and INBOX from home than you do
  1549.    from work. The "smtp-server" and "inbox-path" variables could be part
  1550.    of your exceptional configuration so that they could be different in
  1551.    the two places.
  1552.    
  1553.    Beginning with _Pine_ 4.30 you can use the command line option "-x
  1554.    config" to split your configuration into generic and exceptional
  1555.    pieces. Config may be either local or remote.
  1556.    
  1557.    For most people, splitting the configuration information into two
  1558.    pieces is only going to be useful if the generic information is
  1559.    accessed remotely. If you already have a local pinerc file with
  1560.    settings you like you may find that the command
  1561.    Setup/RemoteConfigSetup will be useful in helping you convert to a
  1562.    remote configuration. The command line flag copy_pinerc may also be
  1563.    useful.
  1564.    
  1565.   Configuration Inheritance
  1566.   
  1567.    Configuration inheritance is a power user feature. It is confusing and
  1568.    not completely supported by the configuration user interface.
  1569.    
  1570.    For configuration variables which are lists, like "smtp-server" or
  1571.    "incoming-folders", the inheritance mechanism makes it possible to
  1572.    _combine_ the values of options from different configuration locations
  1573.    instead of _replacing_ the value. Configuration Inheritance has more
  1574.    information about how inheritance is used.
  1575.      _________________________________________________________________
  1576.    
  1577. General Configuration Variables
  1578.  
  1579.    The following is a list of all _Pine_ configuration variables, in
  1580.    alphabetical order. Note that not all variables apply to all versions
  1581.    of _Pine_ and that some variables are only applicable in a system
  1582.    configuration file and some are only applicable in a personal
  1583.    configuration file. These are configuration _variables_. Configuration
  1584.    Features are in a separate section.
  1585.    
  1586.    _addrbook-sort-rule_
  1587.           This variable sets up the default address book sorting.
  1588.           Currently, _Pine_ will accept the values _dont-sort_,
  1589.           _fullname-with-lists-last_, _fullname_,
  1590.           _nickname-with-lists-last_, and _nickname_. The default is to
  1591.           sort by fullname with lists last.
  1592.    _address-book_
  1593.           A list of personal address books. Each entry in the list is an
  1594.           optional nickname followed by a pathname or file name relative
  1595.           to the home directory. The nickname is separated from the rest
  1596.           of the line with whitespace. Instead of a local pathname or
  1597.           file name, a remote folder name can be given. This causes the
  1598.           address book to be a Remote address book. Remote folder syntax
  1599.           is discussed in Syntax for Remote Folders. This list of address
  1600.           books will be combined with the global-address-book list to
  1601.           arrive at the complete set of address books.
  1602.    _addressbook-formats_
  1603.           This option specifies the format that address books are
  1604.           displayed in. By default, address books are displayed with the
  1605.           nicknames in the first column, the fullnames in the second
  1606.           column, and addresses in the third column. The system figures
  1607.           out reasonable defaults for the widths of the columns. An
  1608.           address book may be given a different format by listing special
  1609.           tokens in the order you want them to display. The possible
  1610.           tokens are NICKNAME, FULLNAME, ADDRESS, FCC, and COMMENT. More
  1611.           details are included in the online help for this variable.
  1612.    _alt-addresses_
  1613.           This option provides a place for you to list alternate email
  1614.           addresses you may have. If set, the option affects the behavior
  1615.           of the _Reply_ command and the _+_ symbol in the "Folder
  1616.           Index", which denotes that a message has been addressed
  1617.           specifically to you.
  1618.           With respect to _Reply_, the _Reply to All_ option will exclude
  1619.           addresses listed here.
  1620.    _bugs-additional-data_
  1621.           System-wide configuration files only. Program/Script used by
  1622.           _Report Bug_ command. Output from the program/script is
  1623.           captured and attached to the bug report.
  1624.    _bugs-fullname_, _bugs-address_, _local-fullname_, _local-address_,
  1625.           _suggest-fullname_, and _suggest-address_
  1626.           System-wide configuration files only. These are used by the bug
  1627.           report commands which can be accessed from some of the Help
  1628.           screens.
  1629.    _character-set_
  1630.           This sets the character set used by the terminal. Currently
  1631.           appropriate values are _US-ASCII_, _ISO-8859-1_ through
  1632.           _ISO-8859-9_ and _ISO-2022-JP_. See the section on
  1633.           International Character Sets for more details. The default is
  1634.           _US-ASCII_.
  1635.    _color-style_
  1636.           UNIX _Pine_ only (color is automatically on with _PC-Pine_). If
  1637.           the terminal or terminal emulator you are using is capable of
  1638.           displaying colors, this variable controls whether or not color
  1639.           will be used in _Pine_. If you turn color on and things are set
  1640.           up correctly, you should see color appear on the screen
  1641.           immmediately. Modern terminal emulators are usually capable of
  1642.           displaying colors.
  1643.           This variable may be set to any of the following values:
  1644.           
  1645.         no-color
  1646.                 Don't use color.
  1647.                 
  1648.         use-termdef
  1649.                 In order to decide if your terminal is capable of color,
  1650.                 _Pine_ looks in the terminal capabilities database,
  1651.                 TERMINFO or TERMCAP, depending on how _Pine_ was
  1652.                 compiled. This is a good option to choose if you switch
  1653.                 between a color and a non-color terminal with the same
  1654.                 _Pine_ configuration. _Pine_ will know to use color on
  1655.                 the color terminal because it is described in the termcap
  1656.                 entry, and _Pine_ will know to use black and white on the
  1657.                 non-color terminal. Color Details has more information
  1658.                 about configuring a termcap entry for color. This is
  1659.                 usually something a system administrator does.
  1660.                 
  1661.         force-ansi-8color
  1662.                 Because setting up a termcap entry is confusing and
  1663.                 because the terminal capabilities database is often not
  1664.                 correctly configured for color, this choice and the next
  1665.                 may be easier for you to use. If your terminal emulator
  1666.                 responds to ANSI color escape sequences, which many do,
  1667.                 this option will cause _Pine_ to believe your terminal
  1668.                 will respond to the escape sequences which produce eight
  1669.                 different foreground and background colors. The escape
  1670.                 sequences used to set the foreground colors are
  1671.                 
  1672.                           ESC [ 3 <color_number> m
  1673.                                       
  1674.                 where the color_number is an ASCII digit between 0 and 7.
  1675.                 The numbers 0 through 7 should correspond to the colors
  1676.                 black, red, green, yellow, blue, magenta, cyan, and
  1677.                 white. Some terminal emulators use a pre-ANSI scheme
  1678.                 which swaps the colors blue and red and the colors yellow
  1679.                 and cyan. This will cause the default colors to be
  1680.                 different, but other than that things should work fine.
  1681.                 The escape sequences used to set the background colors
  1682.                 are the same as for the foreground colors except a "4"
  1683.                 replaces the "3".
  1684.                 
  1685.         force-ansi-16color
  1686.                 Many terminal emulators know about the same eight colors
  1687.                 above plus eight more. This option attempts to use all 16
  1688.                 colors. The same escape sequences as for the eight-color
  1689.                 terminal are used for the first eight colors. The escape
  1690.                 sequences used to set foreground colors 8-15 are the same
  1691.                 as for 0-7 except the "3" is replaced with a "9". The
  1692.                 background color sequences for colors 8-15 are the same
  1693.                 as for 0-7 except the "4" is replaced with "10". You can
  1694.                 tell if the 16 colors are working by turning on this
  1695.                 option and then going into one of the color configuration
  1696.                 screens, for example, the configuration screen for Normal
  1697.                 Color. If you see 16 different colors to select from,
  1698.                 it's working.
  1699.                 
  1700.           The normal default is "no-color".
  1701.           Once you've turned on color you may set the colors of many
  1702.           objects on the screen individually. The Color Configuration
  1703.           section has more information, or you may just try it by running
  1704.           the "Setup" command and typing "K" for Kolor to enter the color
  1705.           configuration screen (Kolor instead of Color because C means
  1706.           Config). Most categories of color which _Pine_ supports are
  1707.           configurable there. Index line color is configured separately.
  1708.    _composer-wrap-column_
  1709.           This option specifies an aspect of _Pine_'s Composer. This
  1710.           gives the maximum width that auto-wrapped lines will have. It's
  1711.           also the maximum width of lines justified using the ^J Justify
  1712.           command. The normal default is _74_. The largest allowed
  1713.           setting is normally _80_ in order to prevent very long lines
  1714.           from being sent in outgoing mail. When the mail is actually
  1715.           sent, trailing spaces will be stripped off of each line.
  1716.    _customized-hdrs_
  1717.           Add these custom headers when composing. Also possible to add
  1718.           default values to these custom headers or to any of the
  1719.           standard headers. This is a list variable. Each entry in the
  1720.           list is a header name (the actual header name that will appear
  1721.           in the message) followed by an optional colon and value. For
  1722.           example, if a Reply-to header was needed because it was
  1723.           different from the From address, that could be accomplished
  1724.           with:
  1725.           
  1726.      customized-hdrs=Reply-to: fred_flintstone@bedrock.net
  1727.           Leaving the optional value out allows the user to fill it in
  1728.           when composing a message. If it isn't filled in, it won't be
  1729.           included in the message.
  1730.    _default-composer-hdrs_
  1731.           Show only these headers (by default) when composing a message.
  1732.           This list may include headers defined in the _customized-hdrs_
  1733.           list.
  1734.    _default-fcc_
  1735.           The name of the folder to which all outgoing mail goes is set
  1736.           here. The compiled-in default is _sent-mail_ (UNIX) or
  1737.           _sentmail_ (PC). It can be set to "" (two double quotes with
  1738.           nothing between them) to turn off saving copies of outgoing
  1739.           mail. If _default-fcc_ is a relative file name, then it is
  1740.           relative to your default collection for saves (see
  1741.           folder-collections).
  1742.    _default-saved-msg-folder_
  1743.           This option determines the default folder name for _Saves_...
  1744.           If this is not a path name, it will be in the default
  1745.           collection for saves. Any valid folder specification, local or
  1746.           IMAP, is allowed. This default folder only applies when the
  1747.           saved-msg-name-rule doesn't override it. Unix _Pine_ default is
  1748.           normally _saved-messages_ in the default folder collection.
  1749.           _PC-Pine_ default is _SAVEMAIL_ (normally stored as
  1750.           _SAVEMAIL.MTX_).
  1751.    _disable-these-drivers_
  1752.           This variable is a list of mail drivers which will be disabled.
  1753.           The candidates for disabling are listed below. There may be
  1754.           more in the future if you compile _Pine_ with a newer version
  1755.           of the c-client library.
  1756.           + mbox
  1757.           + mbx
  1758.           + mh
  1759.           + mmdf
  1760.           + mtx
  1761.           + mx
  1762.           + news
  1763.           + phile
  1764.           + tenex
  1765.           + unix
  1766.           The _mbox_ driver enables the following behavior: if there is a
  1767.           file called mbox in your home directory, and if that file is
  1768.           either empty or in Unix mailbox format, then every time you
  1769.           open _INBOX_ the _mbox_ driver will automatically transfer mail
  1770.           from the system mail spool directory into the mbox file and
  1771.           delete it from the spool directory. If you disable the _mbox_
  1772.           driver, this will not happen.
  1773.           It is not recommended to disable the driver which supports the
  1774.           system default mailbox format. On most non-SCO systems, that
  1775.           driver is the _unix_ driver. On most SCO systems, it is the
  1776.           _mmdf_ driver. The system default driver may be configured to
  1777.           something else on your system; check with your system manager
  1778.           for additional information.
  1779.           It is most likely not very useful for you to disable any of the
  1780.           drivers other than possibly _mbox_. You could disable some of
  1781.           the others if you know for certain that you don't need them but
  1782.           the performance gain in doing so is very modest.
  1783.    _display-filters_
  1784.           This option defines a list of text-filtering commands (programs
  1785.           or scripts) that may be used to filter text portions of
  1786.           received messages prior to their use (e.g., presentation in the
  1787.           "Message Text" display screen). For security reasons, the full
  1788.           path name of the filter command must be specified.
  1789.           The command is executed and the message is piped into its
  1790.           standard input. The standard output of the command is read back
  1791.           by _Pine_. The __TMPFILE__ token (see below) overrides this
  1792.           default behavior.
  1793.           The filter's use is based on the configured _trigger_ string.
  1794.           The format of a filter definition is:
  1795.           
  1796.                       <trigger> <command> <arguments>
  1797.           You can specify as many filters as you wish, separating them
  1798.           with a comma. Each filter can have only one trigger and
  1799.           command. Thus, two trigger strings which invoke the same
  1800.           command require separate filter specifications.
  1801.           The _trigger_ is simply text that, if found in the message,
  1802.           will invoke the associated command. If the trigger contains any
  1803.           space characters, it must be placed within quotes. Likewise,
  1804.           should you wish a filter to be invoked unconditionally, define
  1805.           the trigger as the null string, "" (two consecutive
  1806.           double-quote characters). If the trigger string is found
  1807.           anywhere in the text of the message the filter is invoked.
  1808.           Placing the trigger text within the tokens defined below
  1809.           changes where within the text the trigger must be before
  1810.           considering it a match.
  1811.           Trigger Modifying Tokens:
  1812.           
  1813.         __CHARSET(string)__
  1814.                 This token tells _Pine_ to invoke the supplied command if
  1815.                 the text is in a character set matching string (e.g.,
  1816.                 ISO-8859-2 or ISO-2022-JP).
  1817.                 
  1818.         __LEADING(string)__
  1819.                 This token tells _Pine_ to invoke the supplied command if
  1820.                 the enclosed string is found to be the first
  1821.                 non-whitespace text.
  1822.                 NOTE: Quotes are necessary if string contains the space
  1823.                 character.
  1824.                 
  1825.         __BEGINNING(string)__
  1826.                 This token tells _Pine_ to invoke the supplied command if
  1827.                 the enclosed string is found at the beginning of any line
  1828.                 in the text.
  1829.                 NOTE: Quotes are necessary if string contains the space
  1830.                 character.
  1831.                 
  1832.           The "command" and "arguments" portion is simply the command
  1833.           line to be invoked if the trigger string is found. Below are
  1834.           tokens that _Pine_ will recognize and replace with special
  1835.           values when the command is actually invoked.
  1836.           Command Modifying Tokens:
  1837.           
  1838.         __TMPFILE__
  1839.                 When the command is executed, this token is replaced with
  1840.                 the path and name of the temporary file containing the
  1841.                 text to be filtered. _Pine_ expects the filter to replace
  1842.                 this data with the filter's result. NOTE: Use of this
  1843.                 token implies that the text to be filtered is not piped
  1844.                 into standard input of the executed command and its
  1845.                 standard output is ignored. _Pine_ restores the tty modes
  1846.                 before invoking the filter in case the filter interacts
  1847.                 with the user via its own standard input and output.
  1848.                 
  1849.         __RESULTFILE__
  1850.                 When the command is executed, this token is replaced with
  1851.                 the path and name of a temporary file intended to contain
  1852.                 a status message from the filter. _Pine_ displays this in
  1853.                 the message status field.
  1854.                 
  1855.         __DATAFILE__
  1856.                 When the command is executed, this token is replaced with
  1857.                 the path and name of a temporary file that _Pine_ creates
  1858.                 once per session and deletes upon exit. The file is
  1859.                 intended to be used by the filter to store state
  1860.                 information between instances of the filter.
  1861.                 
  1862.         __PREPENDKEY__
  1863.                 When the command is executed, this token indicates that a
  1864.                 random number will be passed down the input stream before
  1865.                 the message text. This number could be used as a session
  1866.                 key. It does not appear as a command-line argument. It is
  1867.                 sent in this way to improve security. The number is
  1868.                 unique to the current _Pine_ session and is only
  1869.                 generated once per session.
  1870.                 
  1871.           Performance caveat/considerations:
  1872.           Testing for the trigger and invoking the filter doesn't come
  1873.           for free. There is overhead associated with searching for the
  1874.           trigger string, testing for the filter's existence and actually
  1875.           piping the text through the filter. The impact can be reduced
  1876.           if the Trigger Modifying Tokens above are employed.
  1877.           Limitation:
  1878.           If Header Colors are being used, the sequences of bytes which
  1879.           indicate color changes will be contained in the text which is
  1880.           passed to the display-filter. If this causes problems you'll
  1881.           need to turn off Header Colors. The thirteen bytes which
  1882.           indicate a color change are the character \377 followed by \010
  1883.           for a foreground color or \011 for a background color. Then
  1884.           comes eleven characters of RGB data which looks something like
  1885.           255,  0,255, depending on the particular color, of course.
  1886.    _download-command_
  1887.           This option affects the behavior of the _Export_ command. It
  1888.           specifies a Unix program name, and any necessary command line
  1889.           arguments, that _Pine_ can use to transfer the exported message
  1890.           to your personal computer's disk.
  1891.    _download-command-prefix_
  1892.           This option is used in conjunction with the _download-command_
  1893.           option. It defines text to be written to the terminal emulator
  1894.           (via standard output) immediately prior to starting the
  1895.           download command. This is useful for integrated serial line
  1896.           file transfer agents that permit command passing (e.g.,
  1897.           Kermit's APC method).
  1898.    _editor_
  1899.           UNIX _Pine_ only. Sets the name of the alternate editor for
  1900.           composing mail (message text only, not headers). It will be
  1901.           invoked with the "^_" command or it will be invoked
  1902.           automatically if the enable-alternate-editor-implicitly feature
  1903.           is set.
  1904.    _empty-header-message_
  1905.           When sending, if all of the To, Cc, and Newsgroups fields are
  1906.           empty, _Pine_ will put a special address in the To line. The
  1907.           default value is "Undisclosed recipients: ;". The reason for
  1908.           this is to avoid embarrassment caused by some Internet mail
  1909.           transfer software that interprets a "missing" To: header as an
  1910.           error and replaces it with an Apparently-to: header that may
  1911.           contain the addresses you entered on the Bcc: line, defeating
  1912.           the purpose of the Bcc. You may change the part of this message
  1913.           that comes before the ": ;" by setting the
  1914.           _empty-header-message_ variable to something else.
  1915.    _fcc-name-rule_
  1916.           Determines default folder name for fcc when composing.
  1917.           Currently, _Pine_ will accept the values _default-fcc_,
  1918.           _by-recipient_, or _last-fcc-used_. If set to _default-fcc_,
  1919.           then _Pine_ will use the value defined in the default-fcc
  1920.           variable (which itself has a default) for the Fcc header field.
  1921.           If set to _by-recipient_, then _Pine_ will use the name of the
  1922.           recipient as a folder name for the fcc. The relevant recipient
  1923.           is the first address in the To field. If set to
  1924.           "last-fcc-used", then _Pine_ will offer to Fcc to whatever
  1925.           folder you used previously. In all cases, the field can still
  1926.           be edited after it is initially assigned. If the fcc field in
  1927.           the address book is set for the first To address, that value
  1928.           over-rides any value derived from this rule.
  1929.    _feature-list_
  1930.           This is a list of the many features (options) which may be
  1931.           turned on or off. There is a separate section titled
  1932.           Configuration Features which explains each of the features.
  1933.           There is some additional explanation about the _feature-list_
  1934.           variable itself in Feature List Variable.
  1935.    _file-directory_
  1936.           _PC-Pine_ only. This value affects the Composer's "^J Attach"
  1937.           command, the Attachment Index Screen's "S Save" command, and
  1938.           the Message Index's "E Export" command.
  1939.           Normally, when a filename is supplied that lacks a leading
  1940.           "path" component, _Pine_ assumes the file exists in the user's
  1941.           home directory. Under Windows operating systems, this
  1942.           definition isn't always clear. This feature allows you to
  1943.           explictly set where _Pine_ should look for files without a
  1944.           leading path.
  1945.           NOTE: this feature's value is ignored if either use-current-dir
  1946.           feature is set or the PINERC has a value for the operating-dir
  1947.           variable.
  1948.    _folder-collections_
  1949.           This is a list of one or more collections where saved mail is
  1950.           stored. See the sections describing folder collections and
  1951.           collection syntax for more information. The first collection in
  1952.           this list is the default collection for _Save_s, including
  1953.           default-fcc's.
  1954.    _folder-extension_
  1955.           _PC-Pine_ only. File extension used for local folder names.
  1956.           This is .MTX by default.
  1957.    _folder-sort-rule_
  1958.           This option controls the order in which folder list entries
  1959.           will be presented in the FOLDER LIST screen. Choose one of the
  1960.           following:
  1961.           
  1962.         _Alphabetical_
  1963.                 sort by alphabetical name independent of type
  1964.                 
  1965.         _Alpha-with-dirs-last_
  1966.                 sort by alphabetical name grouping directory entries to
  1967.                 the end of the list
  1968.                 
  1969.         _Alpha-with-dirs-first_
  1970.                 sort by alphabetical name grouping directory entries to
  1971.                 the start of the list
  1972.                 
  1973.           The normal default is _Alphabetical_.
  1974.    _font-name_
  1975.           Winsock version of _PC-Pine_ only.
  1976.    _font-size_
  1977.           Winsock version of _PC-Pine_ only.
  1978.    _font-style_
  1979.           Winsock version of _PC-Pine_ only.
  1980.    _forced-abook-entry_
  1981.           System-wide _Pine_ configuration files only. Force these
  1982.           address book entries into all writable personal address books.
  1983.           This is a list variable. Each item in the list has the form:
  1984.           
  1985.      Nickname | Fullname | Address
  1986.           with optional whitespace in all the obvious places.
  1987.    _form-letter-folder_
  1988.           A Form Letter Folder is a mail folder that is intended to
  1989.           contain messages that you have composed and that are intended
  1990.           to be sent in their original form repeatedly.
  1991.           Setting this variable will alter _Pine_'s usual behavior when
  1992.           you execute the Compose command. Normally, _Pine_ offers a
  1993.           chance to continue a postponed or interrupted message should
  1994.           one or the other exist. When this variable is set to a folder
  1995.           name that exists, _Pine_ will also offer the chance to select a
  1996.           message from the folder to insert into the composer, much like
  1997.           when continuing a postponed message. The difference, however,
  1998.           is that _Pine_ will not automatically delete the selected
  1999.           message from the Form Letter Folder.
  2000.           Setting this variable will also affect _Pine_'s behavior when
  2001.           you Postpone a message from the composer. Normally, _Pine_
  2002.           simply stashes the message away in your Postponed-Folder.
  2003.           Regardless of the specified folder's existence, _Pine_ will ask
  2004.           which folder you intend the message to be stored in. Choose the
  2005.           "F" option to store the message in your Form Letter Folder.
  2006.           This is the most common way to add a message to the folder.
  2007.           Another method of adding messages to the folder is via the
  2008.           _Pine_ composer's Fcc: field. If you are sending a message that
  2009.           you expect to send in the same form again, you can enter the
  2010.           Form Letter Folder's name in this field. _Pine_, as usual, will
  2011.           copy the message as it's sent. Note, when you later select this
  2012.           message from your Form Letter Folder, it will have the same
  2013.           recipients as the original message.
  2014.           To delete a message from the Form Letter Folder, you can either
  2015.           select the folder from a suitable FOLDER LIST screen, or use
  2016.           the Delete command in the MESSAGE INDEX offered when selecting
  2017.           from the folder as part of the Compose command. You can delete
  2018.           a Form Letter Folder just as any other folder from a suitable
  2019.           FOLDER LIST screen.
  2020.           You may find that the Roles facility introduced in _Pine_ 4.10
  2021.           can be used to replace the Form Letter Folder.
  2022.    _global-address-book_
  2023.           A list of shared address books. Each entry in the list is an
  2024.           optional nickname followed by a pathname or file name relative
  2025.           to the home directory. A SPACE character separates the nickname
  2026.           from the rest of the line. Instead of a local pathname or file
  2027.           name, a remote folder name can be given. This causes the
  2028.           address book to be a Remote address book. Remote folder syntax
  2029.           is discussed in Syntax for Remote Folders. This list will be
  2030.           added to the address-book list to arrive at the complete set of
  2031.           address books. Global address books are defined to be ReadOnly.
  2032.    _goto-default-rule_
  2033.           This value affects _Pine_'s behavior when using the _Goto_
  2034.           command. There are five possible values for this option:
  2035.           
  2036.         _folder-in-first-collection_
  2037.                 _Pine_ will offer the most recently visited folder in the
  2038.                 default collection found in the "Collection List" screen
  2039.                 as the default.
  2040.                 
  2041.         _inbox-or-folder-in-first-collection_
  2042.                 If the current folder is _INBOX_, _Pine_ will offer the
  2043.                 most recently visited folder in the default collection
  2044.                 found in the "Collection List" screen. If the current
  2045.                 folder is other than _INBOX_, _INBOX_ is offered as the
  2046.                 default.
  2047.                 
  2048.         _inbox-or-folder-in-recent-collection_
  2049.                 This is _Pine_'s default behavior. If the current folder
  2050.                 is _INBOX_, _Pine_ will offer the last open folder as the
  2051.                 default. If the current folder is other than _INBOX_,
  2052.                 _INBOX_ is offered as the default.
  2053.                 
  2054.         _first-collection-with-inbox-default_
  2055.                 Instead of offering the most recently visited folder in
  2056.                 the default collection, the default collection is offered
  2057.                 but with _INBOX_ as the default folder. If you type in a
  2058.                 folder name it will be in the default collection. If you
  2059.                 simply accept the default, however, your _INBOX_ will be
  2060.                 opened.
  2061.                 
  2062.         _most-recent-folder_
  2063.                 The last accepted value simply causes the most recently
  2064.                 opened folder to be offered as the default regardless of
  2065.                 the currently opened folder.
  2066.                 
  2067.           NOTE: The default while a newsgroup is open remains the same;
  2068.           the last open newsgroup.
  2069.    _image-viewer_
  2070.           This variable names the program to call for displaying parts of
  2071.           a MIME message that are of type IMAGE. If your system supports
  2072.           the _mailcap_ system, you don't need to set this variable.
  2073.    _inbox-path_
  2074.           This specifies the name of the folder to use for the _INBOX_.
  2075.           By default this is unset and the system's default is used. The
  2076.           most common reason for setting this is to open an IMAP mailbox
  2077.           for the _INBOX_. For example, _{imap5.u.example.edu}inbox_ will
  2078.           open the user's standard _INBOX_ on the mail server, _imap5_.
  2079.    _incoming-archive-folders_
  2080.           This is like read-message-folder, only more general. This is a
  2081.           list of folder pairs, with the first separated from the second
  2082.           in the pair by a space. The first folder in a pair is the
  2083.           folder you want to archive, and the second folder is the folder
  2084.           that read messages from the first should be moved to. Depending
  2085.           on how you define the auto-move-read-msgs feature, you may or
  2086.           may not be asked when you leave the first folder if you want
  2087.           read messages to be moved to the second folder. In either case,
  2088.           moving the messages means they will be deleted from the first
  2089.           folder.
  2090.           If these are not path names, they will be in the default
  2091.           collection for _Save_s. Any valid folder specification, local
  2092.           or remote (via IMAP), is allowed. There is no default.
  2093.    _incoming-folders_
  2094.           This is a list of one or more folders other than _INBOX_ that
  2095.           may receive new messages. This list is slightly special in that
  2096.           it is always expanded in the folder lister. In the future, it
  2097.           may become more special. For example, it would be nice if _Pine_
  2098.           would monitor the folders in this list for new mail.
  2099.    _incoming-startup-rule_
  2100.           This rule affects _Pine_'s behavior when opening the _INBOX_ or
  2101.           another folder from the "INCOMING MESSAGE FOLDERS". This rule
  2102.           tells _Pine_ which message to make the current message when an
  2103.           incoming folder is opened. There are seven possible values for
  2104.           this option:
  2105.           
  2106.         _first-unseen_
  2107.                 The current message will be the first unseen message
  2108.                 which has not been marked deleted, or the last message if
  2109.                 all of the messages have been seen. This is the default
  2110.                 setting.
  2111.                 
  2112.         _first-recent_
  2113.                 This is similar to _first-unseen_. Instead of first
  2114.                 unseen it is the first recent message. A message is
  2115.                 considered to be recent if it arrived since the last time
  2116.                 the folder was open (by any mail client, not just the
  2117.                 current one). So this option causes the current message
  2118.                 to be set to the first undeleted-recent message, or the
  2119.                 last message if none is both undeleted and recent.
  2120.                 
  2121.         _first-important_
  2122.                 This will result in the current message being set to the
  2123.                 first message marked Important (but not Deleted). If no
  2124.                 messages are marked Important, then it will be the last
  2125.                 message.
  2126.                 
  2127.         _first-important-or-unseen_
  2128.                 This selects the minimum of the first unseen and the
  2129.                 first important messages.
  2130.                 
  2131.         _first-important-or-recent_
  2132.                 This selects the first of the first recent and the first
  2133.                 important messages.
  2134.                 
  2135.         _first_
  2136.                 Set the current message to the first undeleted message
  2137.                 unless all are deleted. In that case set it to the last
  2138.                 message.
  2139.                 
  2140.         _last_
  2141.                 Set the current message to the last undeleted message
  2142.                 unless all are deleted. In that case set it to the last
  2143.                 message.
  2144.                 
  2145.    _index-answered-background-color_
  2146.    _index-answered-foreground-color_
  2147.    _index-deleted-background-color_
  2148.    _index-deleted-foreground-color_
  2149.    _index-important-background-color_
  2150.    _index-important-foreground-color_
  2151.    _index-new-background-color_
  2152.    _index-new-foreground-color_
  2153.    _index-recent-background-color_
  2154.    _index-recent-foreground-color_
  2155.    _index-to-me-background-color_
  2156.    _index-to-me-foreground-color_
  2157.    _index-unseen-background-color_
  2158.    _index-unseen-foreground-color_
  2159.           Index Colors.
  2160.    _index-format_
  2161.           This option is used to customize the content of lines in the
  2162.           MESSAGE INDEX screen. Each line is intended to convey some
  2163.           amount of immediately relevant information about each message
  2164.           in the current folder.
  2165.           _Pine_ provides a pre-defined set of informational fields with
  2166.           reasonable column widths automatically computed. You can,
  2167.           however, replace this default set by listing special tokens in
  2168.           the order you want them displayed.
  2169.           The list of available tokens is here.
  2170.           Spaces are used to separate listed tokens. Additionally, you
  2171.           can specify how much of the screen's width the taken's
  2172.           associated data should occupy on the index line by appending
  2173.           the token with a pair of parentheses enclosing either a number
  2174.           or percentage. For example, "SUBJECT(13)" means to allocate 13
  2175.           characters of space to the subject column, and "SUBJECT(20%)"
  2176.           means to allocate 20% of the available space to the subjects
  2177.           column, while plain "SUBJECT" means the system will attempt to
  2178.           figure out a reasonable amount of space.
  2179.           There is always one space between every pair of columns, so if
  2180.           you use fixed column widths (like 13) you should remember to
  2181.           take that into account. Several of the fields are virtually
  2182.           fixed-width, so it doesn't make much sense to specify the width
  2183.           for them. The fields STATUS, FULLSTATUS, MSGNO, the DATE
  2184.           fields, SIZE, and DESCRIPSIZE all fall into that category. You
  2185.           _may_ specify widths for those if you wish, but you're probably
  2186.           better off letting the system pick those widths.
  2187.           The default is equivalent to:
  2188.           
  2189.        index-format=STATUS MSGNO DATE FROMORTO(33%) SIZE SUBJECT(67%)
  2190.           This means that the four fields without percentages will be
  2191.           allocated first, and then 33% and 67% of the _remaining_ space
  2192.           will go to the from and subject fields. If one of those two
  2193.           fields is specified as a percentage and the other is left for
  2194.           the system to choose, then the percentage is taken as an
  2195.           absolute percentage of the screen, not of the space remaining
  2196.           after allocating the first four columns. It doesn't usually
  2197.           make sense to do it that way. If you leave off all the widths,
  2198.           then the subject and from fields (if both are present) are
  2199.           allocated space in a 2 to 1 ratio, which is almost exactly the
  2200.           same as the default.
  2201.           What you are most likely to do with this configuration option
  2202.           is to specify which fields appear at all, which order they
  2203.           appear in, and the percentage of screen that is used for the
  2204.           from and subject fields if you don't like the 2 to 1 default.
  2205.    _initial-keystroke-list_
  2206.           This is a comma-separated list of keystrokes which _Pine_
  2207.           executes on startup. Items in the list are usually just
  2208.           characters, but there are some special values. _SPACE,_ _TAB,_
  2209.           and _CR_ mean a space character, tab character, and a carriage
  2210.           return, respectively. _F1_ through _F12_ stand for the twelve
  2211.           function keys. _UP, DOWN, LEFT, _and_ RIGHT _stand for the
  2212.           arrow keys. Control characters are represented with _^<char>_.
  2213.           A restriction is that you can't mix function keys and character
  2214.           keys in this list even though you can, in some cases, mix them
  2215.           when running _Pine_. A user can always use only _character_
  2216.           keys in the startup list even if he or she is using _function_
  2217.           keys normally, or vice versa. If an element in this list is a
  2218.           string surrounded by double quotes (") then it will be expanded
  2219.           into the individual characters in the string, excluding the
  2220.           double quotes.
  2221.    _kblock-passwd-count_
  2222.           System-wide _Pine_ configuration files only. Number of times a
  2223.           user will have to enter a password when they run the keyboard
  2224.           lock command in the main menu.
  2225.    _keylabel-background-color_
  2226.    _keylabel-foreground-color_
  2227.           KeyLabel Color.
  2228.    _keyname-background-color_
  2229.    _keyname-foreground-color_
  2230.           KeyName Color.
  2231.    _last-time-prune-questioned_
  2232.           Personal configuration file only. This variable records the
  2233.           month the user was last asked if his or her _sent-mail_ folders
  2234.           should be pruned. The format is _yy.mm_. This is automatically
  2235.           updated by _Pine_ when the the pruning is done or declined. If
  2236.           a user wanted to make _Pine_ stop asking this question he or
  2237.           she could set this time to something far in the future. This
  2238.           may not be set in the system-wide configuration files. Note:
  2239.           The _yy_ year is actually the number of years since 1900, so it
  2240.           will be equal to 101 in the year 2001.
  2241.    _last-version-used_
  2242.           Personal configuration file only. This is set automatically by
  2243.           _Pine_. It is used to keep track of the last version of _Pine_
  2244.           that was run by the user. Whenever the version number
  2245.           increases, a new version message is printed out. This may not
  2246.           be set in the system-wide configuration files.
  2247.    _ldap-servers_
  2248.           This is only available if _Pine_ was linked with an LDAP
  2249.           library when it was compiled. This variable is normally managed
  2250.           by _Pine_ though it can be set in the system-wide configuration
  2251.           files as well as the personal configuration. It is a list
  2252.           variable. Each item in the list contains quite a bit of extra
  2253.           information besides just the server name. To put this into a
  2254.           system-wide config file the easiest thing to do is to configure
  2255.           a personal _Pine_ for the LDAP server then copy the
  2256.           configuration line into the system-wide config file. Each item
  2257.           in the list looks like:
  2258.           
  2259.      server_name[:port] "quoted stuff"
  2260.           The server_name is just a hostname and it is followed by an
  2261.           optional colon and port number. The default port is 389.
  2262.           Following the server name is a single SPACE character followed
  2263.           by a bunch of characters inside double quotes. The part inside
  2264.           the quotes is a set of _tag_ = _value_ pairs. Each tag is
  2265.           preceded by a slash (/) and followed by an equal sign. The
  2266.           value for that tag is the text up to the next slash. An example
  2267.           of some quoted stuff is:
  2268.           
  2269.      "/base=o=University of Washington, c=US/impl=0/.../nick=My Server"
  2270.           This would set the search base for this server to o=University
  2271.           of Washington, c=US, set the implicit bit to zero, and set the
  2272.           nickname for the server to My Server. All of the tags
  2273.           correspond directly to items in the Setup/Directory screen so
  2274.           experiment with that if you want to see what the possible tags
  2275.           and values are.
  2276.    _literal-signature_
  2277.           With this option your actual signature, as opposed to the name
  2278.           of a file containing your signature, is stored in the _Pine_
  2279.           configuration file. If this is defined it takes precedence over
  2280.           the _signature-file_ option.
  2281.           This is simply a different way to store the signature data. The
  2282.           signature is stored inside your _Pine_ configuration file
  2283.           instead of in a separate signature file. Tokens contained in
  2284.           the signature work the same way they do with the regular
  2285.           signature-file.
  2286.           The Setup/Signature command in _Pine_'s Main Menu will edit the
  2287.           _literal-signature_ if defined, otherwise it will edit the file
  2288.           named in the _signature-file_ option. Likewise, Compose (Reply,
  2289.           Forward, ...) will default to using the _literal-signature_ if
  2290.           defined, otherwise it will use the contents of the file named
  2291.           in _signature-file_.
  2292.           The _Pine_ composer is used to edit the literal-signature. The
  2293.           result of that edit is first converted to a C-style string
  2294.           before it is stored in the configuration file. In particular,
  2295.           the two character sequence \n (backslash followed by the
  2296.           character "n") will be used to signify a line-break in the
  2297.           signature. You don't have to enter the \n, but it will be
  2298.           visible in the SETUP CONFIGURATION window after you are done
  2299.           editing the signature.
  2300.    _mail-check-interval_
  2301.           This option specifies, in seconds, how often _Pine_ will check
  2302.           for new mail. If set to zero, new-mail checking is disabled.
  2303.           There is a minimum value, normally 15 seconds. A side effect of
  2304.           disabling mail checking is that there will be situations in
  2305.           which the user's IMAP connection will be broken due to
  2306.           inactivity timers on the server. Another side effect is that
  2307.           the user-input-timeout option won't work.
  2308.    _mail-directory_
  2309.           This variable was more important in previous versions of
  2310.           _Pine_. Now it is used only as the default for storing personal
  2311.           folders (and only if there are no folder-collections defined).
  2312.           The default value is _~/mail_ on UNIX and _$HOME\MAIL_ on a PC.
  2313.    _mailcap-search-path_
  2314.           This variable is used to replace _Pine_'s default mailcap file
  2315.           search path. It takes one or more file names (full paths must
  2316.           be specified) in which to look for mail capability data.
  2317.    _mimetype-search-path_
  2318.           This variable is used to replace _Pine_'s default mime.types
  2319.           file search path. It takes one or more file names (full paths
  2320.           must be specified) in which to look for file-name-extension to
  2321.           MIME type mapping data. See the Config Notes for details on
  2322.           _Pine_'s usage of the MIME.Types File.
  2323.    _new-version-threshold_
  2324.           When a new version of _Pine_ is run for the first time it
  2325.           offers a special explanatory screen to the user upon startup.
  2326.           This option helps control when and if that special screen
  2327.           appears for users that have previously run _Pine_. It takes as
  2328.           its value a _Pine_ version number. _Pine_ versions less than
  2329.           the specified value will supress this special screen while
  2330.           versions equal to or greater than that specified will behave
  2331.           normally.
  2332.    _news-active-file-path_
  2333.           This option tells _Pine_ where to look for the "active file"
  2334.           for newsgroups when accessing news locally, rather than via
  2335.           NNTP. The default path is usually /usr/lib/news/active.
  2336.    _news-collections_
  2337.           This is a list of collections where news folders are located.
  2338.           See the section describing collections for more information.
  2339.    _news-spool-directory_
  2340.           This option tells _Pine_ where to look for the "news spool" for
  2341.           newsgroups when accessing news locally, rather than via NNTP.
  2342.           The default path is usually /usr/spool/news.
  2343.    _newsrc-path_
  2344.           This option overrides the default name _Pine_ uses for your
  2345.           "newsrc" news status and subscription file. If set, _Pine_ will
  2346.           take this value as the full pathname for the desired newsrc
  2347.           file.
  2348.    _nntp-server_
  2349.           One or more NNTP servers (host name or IP address) which _Pine_
  2350.           will use for reading and sending news. If you read and post
  2351.           news to and from a single NNTP server, you can get away with
  2352.           only setting the _nntp-server_ variable and leaving the
  2353.           _news-collections_ variable unset.
  2354.    _normal-background-color_
  2355.    _normal-foreground-color_
  2356.           Normal Color.
  2357.    _operating-dir_
  2358.           System-wide _Pine_ configuration files only. This names the
  2359.           root of the tree to which the user is restricted when reading
  2360.           and writing folders and files. It is usually used in the _fixed_
  2361.           configuration file.
  2362.    _patterns-filters_
  2363.           Matching patterns and their corresponding actions are stored in
  2364.           this variable. These patterns are used with Filtering. This
  2365.           variable is normally maintained through the Setup/Rules/Filters
  2366.           configuration screen. It is a list variable. Each member of the
  2367.           list is a single pattern/action pair, or it can be a file which
  2368.           contains zero or more lines of pattern/action pairs. The only
  2369.           way to create a filters file is to use the InsertFile command
  2370.           in the Setup/Rules/Filters screen with a filename which doesn't
  2371.           yet exist. Then use the Shuffle command to move existing filter
  2372.           patterns into the file. This isn't very convenient but it isn't
  2373.           thought that many users will need this functionality. The
  2374.           purpose of filter files is for sharing filters.
  2375.    _patterns-indexcolors_
  2376.           Matching patterns and their corresponding actions are stored in
  2377.           this variable. These patterns are used for Index Line Colors.
  2378.           This variable is normally maintained through the
  2379.           Setup/Rules/Indexcolor configuration screen. It is a list
  2380.           variable. Each member of the list is a single pattern/action
  2381.           pair, or it can be a file which contains zero or more lines of
  2382.           pattern/action pairs. The only way to create a indexcolor file
  2383.           is to use the InsertFile command in the Setup/Rules/Indexcolor
  2384.           screen with a filename which doesn't yet exist. Then use the
  2385.           Shuffle command to move existing patterns into the file. This
  2386.           isn't very convenient but it isn't thought that many users will
  2387.           need this functionality. The purpose of indexcolor files is for
  2388.           sharing indexcolors.
  2389.    _patterns-roles_
  2390.           Matching patterns and their corresponding actions are stored in
  2391.           this variable. These patterns are used with Roles. This
  2392.           variable is normally maintained through the Setup/Rules/Roles
  2393.           configuration screen. It is a list variable. Each member of the
  2394.           list is a single pattern/action pair, or it can be a file which
  2395.           contains zero or more lines of pattern/action pairs. The only
  2396.           way to create a roles file is to use the InsertFile command in
  2397.           the Setup/Rules/Roles screen with a filename which doesn't yet
  2398.           exist. Then use the Shuffle command to move existing roles into
  2399.           the file. This isn't very convenient but it isn't thought that
  2400.           many users will need this functionality. The purpose of role
  2401.           files is for sharing roles.
  2402.    _patterns-scores_
  2403.           Matching patterns and their corresponding actions are stored in
  2404.           this variable. These patterns are used with Scoring. This
  2405.           variable is normally maintained through the
  2406.           Setup/Rules/SetScores configuration screen. It is a list
  2407.           variable. Each member of the list is a single pattern/action
  2408.           pair, or it can be a file which contains zero or more lines of
  2409.           pattern/action pairs. The only way to create a scores file is
  2410.           to use the InsertFile command in the Setup/Rules/SetScores
  2411.           screen with a filename which doesn't yet exist. Then use the
  2412.           Shuffle command to move existing scoring patterns into the
  2413.           file. This isn't very convenient but it isn't thought that many
  2414.           users will need this functionality. The purpose of scoring
  2415.           files is for sharing scoring rules.
  2416.    _personal-name_
  2417.           Personal configuration file only. User's full personal name. On
  2418.           UNIX systems, the default is taken from the accounts data base
  2419.           (/etc/passwd).
  2420.    _personal-print-category_
  2421.           Personal configuration file only. This is the category that the
  2422.           default print command belongs to. There are three categories.
  2423.           Category 1 is an attached printer which uses the ANSI escape
  2424.           sequence, category 2 is the standard system print command, and
  2425.           category 3 is the set of custom printer commands defined by the
  2426.           user. This just helps _Pine_ figure out where to put the cursor
  2427.           when the user runs the _Setup/Printer_ command. This is not
  2428.           used by _PC-Pine_.
  2429.    _personal-print-command_
  2430.           Personal configuration file only. This corresponds to the third
  2431.           category in the printer menu, the personally selected print
  2432.           commands. This variable contains the list of custom commands
  2433.           that the user has entered in the _Setup/Printer_ screen. This
  2434.           is not used by _PC-Pine_.
  2435.    _postponed-folder_
  2436.           The folder where postponed messages are stored. The default is
  2437.           _postponed-msgs_ (Unix) or _POSTPOND_ (PC).
  2438.    _print-font-name_
  2439.           Winsock version of _PC-Pine_ only.
  2440.    _print-font-size_
  2441.           Winsock version of _PC-Pine_ only.
  2442.    _print-font-style_
  2443.           Winsock version of _PC-Pine_ only.
  2444.    _printer_
  2445.           Personal configuration file only. This is the current setting
  2446.           for a user's printer. This variable is set from _Pine_'s
  2447.           _Setup/Printer_ screen.
  2448.    _prompt-background-color_
  2449.    _prompt-foreground-color_
  2450.           Prompt Color.
  2451.    _pruned-folders_
  2452.           This variable allows you to define a list of one or more
  2453.           folders that _Pine_ will offer to prune for you in the same way
  2454.           it automatically offers to prune your _sent-mail_ folder each
  2455.           month. That is, once a month for each folder listed, _Pine_
  2456.           will offer to move the contents of the folder to a new folder
  2457.           of the same name but with the previous month's date appended.
  2458.           _Pine_ will then look for any such date-appended folder names
  2459.           created for a previous month, and offer each one it finds for
  2460.           deletion. If you decline the first offer, no mail is moved and
  2461.           no new folder is created. Folders listed are assumed to exist,
  2462.           and the archive folders will be created, in the first
  2463.           collection defined by the folder-collections variable.
  2464.    _pruning-rule_
  2465.           By default, _Pine_ will ask at the beginning of each month
  2466.           whether or not you want to rename your sent-mail folder to a
  2467.           name like sent-mail-month-year. It will also ask whether you
  2468.           would like to delete old sent-mail folders. If you have defined
  2469.           read-message-folder or pruned-folders _Pine_ will also ask
  2470.           about pruning those folders. With this option you may provide
  2471.           an automatic answer to the rename questions and you may tell
  2472.           _Pine_ to not ask about deleting old folders.
  2473.    _quote1-background-color_
  2474.    _quote1-foreground-color_
  2475.    _quote2-background-color_
  2476.    _quote2-foreground-color_
  2477.    _quote3-background-color_
  2478.    _quote3-foreground-color_
  2479.           Quote Colors.
  2480.    _read-message-folder_
  2481.           If set, mail in the _INBOX_ that has been read but not deleted
  2482.           is moved here, or rather, the user is asked whether or not he
  2483.           or she wants to move it here upon quitting _Pine_.
  2484.    _remote-abook-history_
  2485.           Sets how many extra copies of remote address book data will be
  2486.           kept in each remote address book folder. The default is three.
  2487.           These extra copies are simply old versions of the data. Each
  2488.           time a change is made a new copy of the address book data is
  2489.           appended to the folder. Old copies are trimmed, if possible,
  2490.           when _Pine_ exits. An old copy can be put back into use by
  2491.           deleting and expunging newer versions of the data from the
  2492.           folder. Don't delete the first message from the folder. It is a
  2493.           special header message for the remote address book and it must
  2494.           be there. This is to prevent regular folders from being used as
  2495.           remote address book folders and having their data destroyed.
  2496.    _remote-abook-metafile_
  2497.           Personal configuration file only. This is usually set by _Pine_
  2498.           and is the name of a file that contains data about remote
  2499.           address books and remote configuration files.
  2500.    _remote-abook-validity_
  2501.           Sets the minimum number of minutes that a remote address book
  2502.           will be considered up to date. Whenever an entry contained in a
  2503.           remote address book is used, if more than this many minutes
  2504.           have passed since the last check the remote server will be
  2505.           queried to see if the address book has changed. If it has
  2506.           changed, the local copy is updated. The default value is five
  2507.           minutes. The special value of -1 means never check. The special
  2508.           value of zero means only check when the address book is first
  2509.           opened.
  2510.           No matter what the value, the validity check is always done
  2511.           when the address book is about to be changed by the user. The
  2512.           check can be initiated manually by typing _^L_ (control-L)
  2513.           while in the address book maintenance screen for the remote
  2514.           address book.
  2515.    _reply-indent-string_
  2516.           This variable specifies an aspect of _Pine_'s _Reply_ command.
  2517.           When a message is replied to and the text of the message is
  2518.           included, the included text usually has the string "> "
  2519.           prepended to each line indicating it is quoted text.
  2520.           This option specifies a different value for that string. If you
  2521.           wish to use a string which begins or ends with a space, enclose
  2522.           the string in double quotes.
  2523.           Besides simple text, the prepended string can be based on the
  2524.           message being replied to. The following tokens are substituted
  2525.           for the message's corresponding value:
  2526.           
  2527.         _FROM_
  2528.                 This token gets replaced with the message sender's
  2529.                 "username".
  2530.                 
  2531.         _NICK_
  2532.                 This token gets replaced with the nickname of the message
  2533.                 sender's address as found in your addressbook. If no
  2534.                 addressbook entry is found, Pine replaces the characters
  2535.                 "_NICK_" with nothing.
  2536.                 
  2537.         _INIT_
  2538.                 This token gets replaced with the initials of the sender
  2539.                 of the message.
  2540.                 
  2541.           When the enable-reply-indent-string-editing feature is enabled,
  2542.           you are given the opportunity to edit the string, whether it is
  2543.           the default or one automatically generated using the above
  2544.           tokens.
  2545.    _reply-leadin_
  2546.           This variable specifies an aspect of _Pine_'s _Reply_ command.
  2547.           When a message is replied to and the text of the message is
  2548.           included, that text has an introductory line preceding it. The
  2549.           normal default if you don't set this variable looks something
  2550.           like:
  2551.           
  2552.                 On Sat, 24 Oct 1998, Fred Flintstone wrote:
  2553.           where the day of the week is only included if it is available
  2554.           in the original message. You may replace this default with text
  2555.           of your own. The text may contain tokens which are replaced
  2556.           with text which depends on the message you are replying to. For
  2557.           example, the default is equivalent to:
  2558.           
  2559.                         On _DAYDATE_, _FROM_ wrote:
  2560.           The list of available tokens is here.
  2561.           For the adventurous, there is a way to conditionally include
  2562.           text based on whether or not a token would result in specific
  2563.           replacement text. For example, you could include some text
  2564.           based on whether or not the _NEWS_ token would result in any
  2565.           newsgroups if it was used. It's explained in detail here.
  2566.           If your _Reply-Leadin_ turns out to be longer than 80
  2567.           characters when replying to a particular message, it is
  2568.           shortened.
  2569.           In the very unlikely event that you want to include a literal
  2570.           token in the introduction line you must precede it with a
  2571.           backslash character. For example,
  2572.           
  2573.                            \_DAYDATE_ = _DAYDATE_
  2574.           would produce something like
  2575.           
  2576.                         _DAYDATE_ = Sat, 24 Oct 1998
  2577.           It is not possible to have a literal backslash followed by an
  2578.           expanded token.
  2579.    _reverse-background-color_
  2580.    _reverse-foreground-color_
  2581.           Reverse Color.
  2582.    _rsh-command_
  2583.           Sets the format of the command used to open a UNIX remote shell
  2584.           connection. The default is "%s %s -l %s exec /etc/r%sd". All
  2585.           four "%s" entries MUST exist in the provided command. The first
  2586.           is for the command's pathname, the second is for the host to
  2587.           connnect to, the third is for the user to connect as, and the
  2588.           fourth is for the connection method (typically imap).
  2589.    _rsh-open-timeout_
  2590.           Sets the time in seconds that _Pine_ will attempt to open a
  2591.           UNIX remote shell connection. The default is 15, the minimum
  2592.           non-zero value is 5, and the maximum is unlimited. If this is
  2593.           set to zero rsh connections will be completely disabled.
  2594.    _rsh-path_
  2595.           Sets the name of the command used to open a UNIX remote shell
  2596.           connection. The default is typically /usr/ucb/rsh.
  2597.    _saved-msg-name-rule_
  2598.           Determines default folder name when _Sav_ing. If set to
  2599.           _default-folder_ (which is the default setting), then _Pine_
  2600.           will offer the folder "saved-messages" (UNIX) or "SAVEMAIL"
  2601.           (PC) for _Sav_ing messages. The default folder offered in this
  2602.           way may be changed by using the configuration variable
  2603.           default-saved-msg-folder. If this rule is set to
  2604.           _last-folder-used_, _Pine_ offers to _Save_ to the folder you
  2605.           last successfully _Saved_ a message to (this session). The
  2606.           first time you _Save_ a message in a session, _Pine_ offers to
  2607.           _Save_ the message to the default folder.
  2608.           Choosing any of the _by-_ options causes _Pine_ to attempt to
  2609.           get the chosen option's value for the message being _Saved_.
  2610.           For example, if _by-from_ is chosen, _Pine_ attempts to get the
  2611.           value of who the message came from (i.e. the from address).
  2612.           _Pine_ then attempts to _Save_ the message to a folder matching
  2613.           that value. If _by-from_ is chosen and no value is obtained,
  2614.           _Pine_ uses _by-sender_. The opposite is also true. If
  2615.           _by-recipient_ was chosen and the message was posted to a
  2616.           newsgroup, _Pine_ will use the newsgroup name. If _by-replyto_
  2617.           is chosen and no value is obtained, _Pine_ uses _by-from_.
  2618.           If any of the _by-nick-_ options are chosen, the resulting
  2619.           address is looked up in the user's address books and if found,
  2620.           the nickname for that entry is used. Only simple address book
  2621.           entries are checked, not distribution lists. Similarly, if any
  2622.           of the _by-fcc-_ options are chosen, the fcc from the
  2623.           corresponding address book entry is used. If no value is found
  2624.           in the address book, then if the chosen option ends with the
  2625.           "-then-from", "-then-sender", "-then-replyto", or "-then-recip"
  2626.           suffix, _Pine_ reverts to the same behavior as _by-from_,
  2627.           _by-sender_, _by-replyto_, or _by-recipient_ depending on which
  2628.           option was specified. If the chosen option doesn't end with one
  2629.           of the "then-" suffixes, then _Pine_ reverts to the default
  2630.           folder when no match is found in the address book.
  2631.    _scroll-margin_
  2632.           This option controls when _Pine_'s line-by-line scrolling
  2633.           occurs. Typically, when a selected item is at the top or bottom
  2634.           screen edge and the UP or DOWN (and Ctrl-P or Ctrl-N) keys are
  2635.           pressed, the displayed items are scrolled down or up by a
  2636.           single line.
  2637.           This option allows you to tell _Pine_ the number of lines from
  2638.           the top and bottom screen edge that line-by-line scrolling
  2639.           should occur. For example, setting this value to one (1) will
  2640.           cause _Pine_ to scroll the display when you move to select an
  2641.           item on the display's top or bottom edge (instead of moving
  2642.           when you move off the edge of the screen).
  2643.           By default, this variable is zero (0), indicating that
  2644.           scrolling happens when you move up or down to select an item
  2645.           immediately off the display's top or bottom edge.
  2646.    _selectable-item-background-color_
  2647.    _selectable-item-foreground-color_
  2648.           Selectable-item Color.
  2649.    _sending-filters_
  2650.           This option defines a list of text-filtering commands (programs
  2651.           and scripts) that may be selectively invoked to process a
  2652.           message just before it is sent. If set, the Composer's _^X Send_
  2653.           command will allow you to select which filter (or none) to
  2654.           apply to the message before it is sent. For security reasons,
  2655.           the full path of the filter program must be specified.
  2656.           Command Modifying Tokens:
  2657.           
  2658.         __RECIPIENTS__
  2659.                 When the command is executed, this token is replaced with
  2660.                 the space delimited list of recipients of the message
  2661.                 being sent.
  2662.                 
  2663.         __TMPFILE__
  2664.                 When the command is executed, this token is replaced with
  2665.                 the path and name of the temporary file containing the
  2666.                 text to be filtered. _Pine_ expects the filter to replace
  2667.                 this data with the filter's result. NOTE: Use of this
  2668.                 token implies that the text to be filtered is not piped
  2669.                 into standard input of the executed command and its
  2670.                 standard output is ignored. _Pine_ restores the tty modes
  2671.                 before invoking the filter in case the filter interacts
  2672.                 with the user via its own standard input and output.
  2673.                 
  2674.         __RESULTFILE__
  2675.                 When the command is executed, this token is replaced with
  2676.                 the path and name of a temporary file intended to contain
  2677.                 a status message from the filter. _Pine_ displays this in
  2678.                 the message status field.
  2679.                 
  2680.         __DATAFILE__
  2681.                 When the command is executed, this token is replaced in
  2682.                 the command line with the path and name of a temporary
  2683.                 file that _Pine_ creates once per session and deletes
  2684.                 upon exit. The file is intended to be used by the filter
  2685.                 to store state information between instances of the
  2686.                 filter.
  2687.                 
  2688.         __PREPENDKEY__
  2689.                 When the command is executed, this token indicates that a
  2690.                 random number will be passed down the input stream before
  2691.                 the message text. It is not included as a command-line
  2692.                 argument. This number could be used as a session key. It
  2693.                 is sent in this way to improve security. The number is
  2694.                 unique to the current _Pine_ session and is only
  2695.                 generated once per session.
  2696.                 
  2697.         __INCLUDEALLHDRS__
  2698.                 When the command is executed, this token indicates that
  2699.                 the headers of the message will be passed down the input
  2700.                 stream before the message text. It is not included as a
  2701.                 command-line argument. The filter should, of course,
  2702.                 remove the headers before returning control to _Pine_.
  2703.                 
  2704.         __MIMETYPE__
  2705.                 When the command is executed, this token is replaced in
  2706.                 the command name with a temporary file name used to
  2707.                 accept any new MIME Content-Type information necessitated
  2708.                 by the output of the filter. Upon the filter's exit, if
  2709.                 the file contains new MIME type information, _Pine_
  2710.                 verifies its format and replaces the outgoing message's
  2711.                 MIME type information with that contained in the file.
  2712.                 This is basically a cheap way of sending something other
  2713.                 than Text/Plain.
  2714.                 
  2715.    _sendmail-path_
  2716.           This names the path to an alternative program, and any
  2717.           necessary arguments, to be used in posting mail messages. See
  2718.           the section on SMTP and Sendmail for more details.
  2719.    _signature-file_
  2720.           This is the name of a file which will be automatically inserted
  2721.           into outgoing messages. It typically contains information such
  2722.           as your name, email address and organizational affiliation.
  2723.           _Pine_ adds the signature into the message as soon as you enter
  2724.           the composer so you can choose to remove it or edit it on a
  2725.           message by message basis. Signature file placement in message
  2726.           replies is controlled by the signature-at-bottom setting in the
  2727.           feature list.
  2728.           This defaults to ~/.signature on UNIX and <PINERC
  2729.           directory>\PINE.SIG on a PC.
  2730.           To create or edit your signature file choose Setup from the
  2731.           Main Menu and then select S for Signature
  2732.           (Main/Setup/Signature). This puts you into the Signature Editor
  2733.           where you can enter a _few_ lines of text containing your
  2734.           identity and affiliation.
  2735.           If the filename is followed by a vertical bar (|) then instead
  2736.           of reading the contents of the file the file is assumed to be a
  2737.           program which will produce the text to be used on its standard
  2738.           output. The program can't have any arguments and doesn't
  2739.           receive any input from _Pine_, but the rest of the processing
  2740.           works as if the contents came from a file.
  2741.           Instead of storing the data in a local file, the signature data
  2742.           may be stored remotely in an IMAP folder. In order to do this,
  2743.           you must use a remote name for the file. A remote
  2744.           signature-file name might look like:
  2745.           
  2746.                {myimaphost.myschool.k12.wa.us}mail/signature
  2747.           or, if you have an SSL-capable version of _Pine_, you might try
  2748.           
  2749.       {myimaphost.myschool.k12.wa.us/user=loginname/ssl}mail/signature
  2750.           The syntax used here is the same as the syntax used for remote
  2751.           configuration files from the command line. Note that you may
  2752.           not access an existing signature file remotely, you have to
  2753.           create a new _folder_ which contains the signature data. If the
  2754.           name you use here for the signature file is a remote name, then
  2755.           when you edit the file from the Setup/Signature command the
  2756.           data will be stored remotely in the folder. You aren't required
  2757.           to do anything special to create the folder, it gets created
  2758.           automatically if you use a remote name.
  2759.           Besides regular text, the signature file may also contain (or a
  2760.           signature program may produce) tokens which are replaced with
  2761.           text which usually depends on the message you are replying to
  2762.           or forwarding. For example, if the signature file contains the
  2763.           token
  2764.           
  2765.                                    _DATE_
  2766.           anywhere in the text, then that token is replaced by the date
  2767.           the message you are replying to or forwarding was sent. If it
  2768.           contains
  2769.           
  2770.                                  _CURDATE_
  2771.           that is replaced with the current date. The first is an example
  2772.           of a token which depends on the message you are replying to (or
  2773.           forwarding) and the second is an example which doesn't depend
  2774.           on anything other than the current date. You have to be a
  2775.           little careful with this facility since tokens which depend on
  2776.           the message you are replying to or forwarding will be replaced
  2777.           by nothing in the case where you are composing a new message
  2778.           from scratch. The use of roles may help you in this respect. It
  2779.           allows you to use different signature files in different cases.
  2780.           The list of tokens available for use in the signature file is
  2781.           here.
  2782.           Instead of, or along with the use of _roles_ to give you
  2783.           different signature files in different situations, there is
  2784.           also a way to conditionally include text based on whether or
  2785.           not a token would result in specific replacement text. For
  2786.           example, you could include some text based on whether or not
  2787.           the _NEWS_ token would result in any newsgroups if it was used.
  2788.           This is explained in detail here. This isn't for the faint of
  2789.           heart.
  2790.           In the very unlikely event that you want to include a literal
  2791.           token in the signature you must precede it with a backslash
  2792.           character. For example,
  2793.           
  2794.                            \_DAYDATE_ = _DAYDATE_
  2795.           would produce something like
  2796.           
  2797.                         _DAYDATE_ = Sat, 24 Oct 1998
  2798.           It is not possible to have a literal backslash followed by an
  2799.           expanded token.
  2800.    _smtp-server_
  2801.           One or more SMTP servers (host name or IP address) which _Pine_
  2802.           will use for outgoing mail. If not set, _Pine_ passes outgoing
  2803.           email to the _sendmail_ program on the local machine. _PC-Pine_
  2804.           users must have this variable set in order to send mail as they
  2805.           have no _sendmail_ program. An alternate port may be specified
  2806.           by appending :port to the host name or IP address. See the SMTP
  2807.           Servers section for details.
  2808.    _sort-key_
  2809.           This variable sets up the default Message Index sorting. The
  2810.           default is to sort by arrival order (the order the messages
  2811.           arrived in the folder). It has the same functionality as the
  2812.           _-sort_ command line argument and the _$_ command in the
  2813.           "Folder Index". If a _sort-key_ is set, then all folders open
  2814.           during the session will have that as the default sort order.
  2815.    _speller_
  2816.           This option affects the behavior of the _^T_ (spell check)
  2817.           command in the Composer. It specifies the program invoked by
  2818.           _^T_ in the Composer. By default, _Pine_ uses the system's
  2819.           "spell" command. _Pine_ will use the command defined by this
  2820.           option (if any) instead. When invoking the spell-checking
  2821.           program, _Pine_ appends a tempfile name (where the message is
  2822.           passed) to the command line. _Pine_ expects the speller to
  2823.           correct the spelling in that file. When you exit from the
  2824.           speller program _Pine_ will read the tmpfile back into the
  2825.           composer.
  2826.           For Unix _Pine_ the program _ispell_ works well as an alternate
  2827.           spell checker. If your Unix system has _ispell_ it is probably
  2828.           reasonable to make it the default speller by configuring it as
  2829.           the default in the system configuration file,
  2830.           /usr/local/lib/pine.conf.
  2831.           If this option is not set, then the system's _spell_ command is
  2832.           used. The spell command does not work the same as the alternate
  2833.           speller. It produces a list of misspelled words on its standard
  2834.           output, instead, and doesn't take a tempfile as an argument.
  2835.           Don't set this speller option to the standard Unix spell
  2836.           command. That won't work. If you want to use the standard Unix
  2837.           spell command, set the speller option to nothing.
  2838.    _ssh-command_
  2839.           Sets the format of the command used to open a UNIX secure shell
  2840.           connection. The default is "%s %s -l %s exec /etc/r%sd". All
  2841.           four "%s" entries MUST exist in the provided command. The first
  2842.           is for the command's pathname, the second is for the host to
  2843.           connnect to, the third is for the user to connect as, and the
  2844.           fourth is for the connection method (typically imap).
  2845.    _ssh-open-timeout_
  2846.           Sets the time in seconds that _Pine_ will attempt to open a
  2847.           UNIX secure shell connection. The default is 15, the minimum
  2848.           non-zero value is 5, and the maximum is unlimited. If this is
  2849.           set to zero ssh connections will be completely disabled.
  2850.    _ssh-path_
  2851.           Sets the name of the command used to open a UNIX secure shell
  2852.           connection. The default is typically /usr/local/bin/ssh.
  2853.    _standard-printer_
  2854.           System-wide configuration file only. Specifies a list of
  2855.           commands for category 2 of the _Setup/Printer_ screen, the
  2856.           standard print command section. This is not used by _PC-Pine_.
  2857.    _status-background-color_
  2858.    _status-foreground-color_
  2859.           Status Color.
  2860.    _status-message-delay_
  2861.           If this is set to a positive number, it causes the cursor to
  2862.           move to the status line whenever a status message is printed
  2863.           and pause there for this many seconds. It will probably only be
  2864.           useful if the show-cursor feature is also turned on. Most users
  2865.           should leave this set to the default value of zero since its
  2866.           only effect is to slow things down.
  2867.    _tcp-open-timeout_
  2868.           Sets the time in seconds that _Pine_ will attempt to open a
  2869.           network connection. The default is 30, the minimum is 5, and
  2870.           the maximum is system defined (typically 75). If a connection
  2871.           has not completed within this many seconds _Pine_ will give up
  2872.           and consider it a failed connection.
  2873.    _tcp-query-timeout_
  2874.           When _Pine_ times out a network read or write it will normally
  2875.           just display a message saying "Still waiting". However, if
  2876.           enough time has elapsed since it started waiting it will offer
  2877.           to let you break the connection. That amount of time is set by
  2878.           this option, which defaults to 60 seconds, has a minimum of 5
  2879.           seconds, and a maximum of 1000 seconds.
  2880.    _tcp-read-warning-timeout_
  2881.           Sets the time in seconds that _Pine_ will wait for a network
  2882.           read before warning you that things are moving slowly and
  2883.           possibly giving you the option to break the connection. The
  2884.           default is 15 seconds. The minimum is 5 seconds and the
  2885.           maximumn is 1000 seconds.
  2886.    _tcp-write-warning-timeout_
  2887.           Sets the time in seconds that _Pine_ will wait for a network
  2888.           write before warning you that things are moving slowly and
  2889.           possibly giving you the option to break the connection. The
  2890.           default is 0 which means it is unset. If set to a non-zero
  2891.           value, the minimum is 5 and the maximum is 1000.
  2892.    _title-background-color_
  2893.    _title-foreground-color_
  2894.           Title Color.
  2895.    _upload-command_
  2896.           This option affects the behavior of the Composer's _^R_ (Read
  2897.           File) and _^J_ (Attach File, in the header) commands. It
  2898.           specifies a Unix program name, and any necessary command line
  2899.           arguments, that _Pine_ can use to transfer files from your
  2900.           personal computer into messages that you are composing.
  2901.    _upload-command-prefix_
  2902.           This option is used in conjunction with the _upload-command_
  2903.           option. It defines text to be written to the terminal emulator
  2904.           (via standard output) immediately prior to starting the upload
  2905.           command. This is useful for integrated serial line file
  2906.           transfer agents that permit command passing (e.g., Kermit's APC
  2907.           method).
  2908.    _url-viewers_
  2909.           List of programs to use to open Internet URLs. This value
  2910.           affects _Pine_'s handling of URLs that are found in the text of
  2911.           messages you read. Normally, only URLs _Pine_ can handle
  2912.           directly are automatically offered for selection in the
  2913.           "Message Text" screen. When one or more comma delimited Web
  2914.           browsers capable of deciphering URLs on their command line are
  2915.           added here, _Pine_ will choose the first available browser to
  2916.           display URLs it doesn't recognize.
  2917.           Additionally, to support various connection methods and
  2918.           browsers, each entry in this list can begin with the special
  2919.           token _TEST(test-string)_. The test-string is a shell command
  2920.           that _Pine_ will run and which must exit with a status of zero
  2921.           for _Pine_ to consider that browser for use (the other criteria
  2922.           is that the browser must exist as a full path or a path
  2923.           relative to your home directory).
  2924.           Now for an example:
  2925.           
  2926.      url-viewers=_TEST("test -n '${DISPLAY}'")_ /usr/local/bin/netscape,
  2927.      /usr/local/bin/lynx, C:\BIN\NETSCAPE.BAT
  2928.           This example shows that for the first browser in the list to be
  2929.           used the environment variable DISPLAY must be defined. If it
  2930.           is, then the file /usr/local/bin/netscape must exist. If either
  2931.           condition is not met, then the file /usr/local/bin/lynx must
  2932.           exist. If it doesn't, then the final path and file must exist.
  2933.           Note that the last entry is a DOS/Windows path. This is one way
  2934.           to support _Pine_ running on more than one architecture with
  2935.           the same configuration file.
  2936.    _use-only-domain-name_
  2937.           Can be set to _yes_ or _no._ Anything but _yes_ means _no._ If
  2938.           set to _yes_ the first label in the host name will be lopped
  2939.           off to get the domain name and the domain name will be used for
  2940.           outgoing mail and such. That is, if the host name is
  2941.           _carson.u.example.edu_ and this variable is set to _yes,_ then
  2942.           _u.example.edu_ will be used on outgoing mail. Only meaningful
  2943.           if user-domain is NOT set.
  2944.    _user-domain_
  2945.           Sets the domain or host name for the user, overriding the
  2946.           system host or domain name. See the domain name section.
  2947.    _user-id_
  2948.           _PC-Pine_ only and personal configuration file only. Sets the
  2949.           username that is placed on all outgoing messages. The username
  2950.           is the part of the address that comes before the "@".
  2951.    _user-input-timeout_
  2952.           If this is set to an integer greater than zero, then this is
  2953.           the number of _hours_ to wait for user input before _Pine_
  2954.           times out. If _Pine_ is in the midst of composing a message or
  2955.           is waiting for user response to a question, then it will not
  2956.           timeout. However, if _Pine_ is sitting idle waiting for the
  2957.           user to tell it what to do next and the user does not give any
  2958.           input for this many hours, _Pine_ will exit. No expunging or
  2959.           moving of read messages will take place. It will exit similarly
  2960.           to the way it would exit if it received a hangup signal. This
  2961.           may be useful for cleaning up unused _Pine_ sessions which have
  2962.           been forgotten by their owners. The _Pine_ developers envision
  2963.           system administrators setting this to a value of several hours
  2964.           (24?) so that it won't surprise a user who didn't want to be
  2965.           disconnected.
  2966.    _viewer-hdr-colors_
  2967.           This variable holds the optional Header Colors and patterns
  2968.           which have been defined by the user. This is usually modified
  2969.           by using the Header Colors section of the Setup Color screen.
  2970.    _viewer-hdrs_
  2971.           You may change the default list of headers that are viewed by
  2972.           listing the headers you want to view here. If the headers in
  2973.           your _viewer-hdrs_ list are present in the message, then they
  2974.           will be shown. The order of the headers you list will also be
  2975.           honored. If the special value _all-except_ is included as the
  2976.           first header in the _viewer-hdrs_ list, then all headers in the
  2977.           message except those in the list will be shown. The values are
  2978.           all case insensitive.
  2979.    _viewer-overlap_
  2980.           This option specifies an aspect of _Pine_'s Message Viewing
  2981.           screen. When the space bar is used to page forward in a
  2982.           message, the number of lines specified by the _viewer-overlap_
  2983.           variable will be repeated from the bottom of the screen. That
  2984.           is, if this was set to two lines, then the bottom two lines of
  2985.           the screen would be repeated on the top of the next screen. The
  2986.           normal default value is "2".
  2987.    _window-position_
  2988.           Winsock version of _PC-Pine_ only. Window position in the
  2989.           format: CxR+X+Yn Where C and R are the window size in
  2990.           characters and X and Y are the screen position of the top left
  2991.           corner of the window.
  2992.      _________________________________________________________________
  2993.    
  2994. Configuration Features
  2995.  
  2996.    There are several features (options) which may be turned off or on.
  2997.    The configuration variable feature-list is a list of all the features
  2998.    that are turned on or off. If the name of a feature is in the list it
  2999.    will be turned on. If the name of a feature with the characters no-
  3000.    prepended is in the list, it will turn the feature off. This is useful
  3001.    for overriding system-wide defaults. This is because, unlike all the
  3002.    other configuration variables, the _feature-list_ is additive. That
  3003.    is, first the system-wide _feature-list_ is read and then the user's
  3004.    _feature-list_ is read. This makes it possible for the system manager
  3005.    to turn some of the features on by default while still allowing the
  3006.    user to cancel that default. For example, if the system manager has
  3007.    turned on the _allow-talk_ feature by default then a user may turn it
  3008.    back off by including the feature _no-allow-talk_ in his or her
  3009.    personal configuration file. Of course, these details are usually
  3010.    handled by _Pine_ when the user turns an option on or off from inside
  3011.    the _Setup/Config_ screen.
  3012.    
  3013.    System managers should take some care when turning on features by
  3014.    default. Some of the documentation assumes that all of the features
  3015.    are off by default, so it could be confusing for a user if some are on
  3016.    by default instead.
  3017.    
  3018.    Here is an alphabetical list of possible features.
  3019.    _allow-changing-from_
  3020.           Prior to _Pine_ 4.00 there was a _compile_-time option called
  3021.           ALLOW_CHANGING_FROM. That has been replaced by a _runtime_
  3022.           feature. If this feature is turned on then the From line can be
  3023.           changed just like all the other header fields that can be
  3024.           changed. See the configuration variables customized-hdrs and
  3025.           default-composer-hdrs for more information on editing headers.
  3026.           Beginning with _Pine_ 4.30 the default value for this feature
  3027.           has been changed from OFF to ON, so that editing of From
  3028.           headers is now allowed by default.
  3029.    _allow-talk_
  3030.           Unix _Pine_ only. By default, permission for others to _talk_
  3031.           to your terminal is turned off when you are running _Pine_.
  3032.           When this feature is set, permission is instead turned on.
  3033.           Note: The _talk_ program has nothing to do with _Pine_ or
  3034.           email. The _talk_ daemon on your system will attempt to print a
  3035.           message on your screen when someone else is trying to contact
  3036.           you. If you wish to see these messages while you are running
  3037.           _Pine_, you should enable this feature.
  3038.           If you do enable this feature and see a _talk_ message, you
  3039.           must suspend or quit _Pine_ before you can respond.
  3040.    _assume-slow-link_
  3041.           This feature affects _Pine_'s display routines. If set, the
  3042.           normal inverse-video cursor (used to highlight the current item
  3043.           in a list) will be replaced by an _arrow_ cursor and other
  3044.           screen update optimizations for low-speed links (e.g. 2400 bps
  3045.           dialup connections) will be activated. This might be useful if
  3046.           _you_ know you have a slow speed link but for some reason _Pine_
  3047.           doesn't know.
  3048.    _auto-move-read-msgs_
  3049.           This feature controls an aspect of _Pine_'s behavior upon
  3050.           quitting. If set, and the read-message-folder variable is also
  3051.           set, then _Pine_ will automatically transfer all read messages
  3052.           from the _INBOX_ to the designated folder and mark them as
  3053.           deleted in the _INBOX_. Messages in the _INBOX_ marked with an
  3054.           _N_ (meaning New, or unseen) are not affected.
  3055.    _auto-open-next-unread_
  3056.           This feature controls the behavior of the TAB key when
  3057.           traversing folders in the optional incoming-folders collection
  3058.           or in optional news-collections.
  3059.           When the TAB (Next New) key is pressed, and there are no more
  3060.           unseen messages in the current (incoming message or news)
  3061.           folder, _Pine_ will search the list of folders in the current
  3062.           collection for one containing New or Recent (new since the last
  3063.           time the folder was opened) messages. By default, when such a
  3064.           folder is found, _Pine_ will ask whether you wish to open the
  3065.           folder. If this feature is set, _Pine_ will automatically open
  3066.           the folder without prompting.
  3067.    _auto-unzoom-after-apply_
  3068.           If set, and if you are currently looking at a Zoomed Index view
  3069.           of selected messages, the _Apply_ command will do the operation
  3070.           you specify, but then will implicitly do an _UnZoom_, so that
  3071.           you will automatically be back in the normal Index view after
  3072.           the _Apply_.
  3073.    _auto-zoom-after-select_
  3074.           If set, the _; select_ command will automatically perform a
  3075.           _Zoom_ after the _select_ is complete.
  3076.    _check-newmail-when-quitting_
  3077.           If set, _Pine_ will check for new mail after you give the Quit
  3078.           command. If new mail has arrived since the previous check, you
  3079.           will be notified and given the choice of quitting or not
  3080.           quitting.
  3081.    _combined-addrbook-display_
  3082.           This feature affects the address book display screens.
  3083.           Normally, expanding an address book from the ADDRESS BOOK LIST
  3084.           screen will cause the remaining address books and directory
  3085.           servers to disappear from the screen, leaving only the entries
  3086.           of the expanded address book. If this feature is set, then the
  3087.           other address books will remain on the screen, so that all of
  3088.           the address books can be present at once.
  3089.           The way that commands work won't be changed. For example, the
  3090.           Select All command will select all of the entries in the
  3091.           current address book, not all of the entries in all of the
  3092.           address books. The WhereIs command will change a little. It
  3093.           will search through all of the text on the screen plus all of
  3094.           the entries from expanded address books.
  3095.           When this feature is set, the setting of the feature
  3096.           expanded-view-of-addressbooks has an effect.
  3097.    _combined-folder-display_
  3098.           This feature affects the folder list display screens. Normally,
  3099.           each folder list is viewed within its collection only. This
  3100.           command allows folder lists to be viewed within a single screen
  3101.           that combines the contents of all collections.
  3102.           The way that commands work won't be changed. For example, the
  3103.           Select All command will select all of the folders in the
  3104.           current collection, not all of the entries in all of the
  3105.           collections. The WhereIs command will change a little. It will
  3106.           search through all of the folders in the current collection as
  3107.           well as all the folder in any other expanded collection.
  3108.           When this feature is set, the setting of the feature
  3109.           expanded-view-of-folders has an effect.
  3110.    _combined-subdirectory-display_
  3111.           This feature affects the Folder List screen when the
  3112.           combined-folder-display feature is enabled. Normally, selecting
  3113.           a directory from the Folder List takes you into a new screen
  3114.           displaying only the contents of that directory.
  3115.           Enabling this feature will cause the contents of the selected
  3116.           directory to be displayed within the boundaries of the
  3117.           Collection it is a part of. All previously displayed
  3118.           collections will remain in the screen.
  3119.           The way that commands work won't be changed. For example, the
  3120.           Select All command will select all of the folders in the
  3121.           directory, as opposed to all of the entries in all of the
  3122.           collections. The WhereIs command will change a little. It will
  3123.           search through all of the folders in the current collection as
  3124.           well as all the folder in any other expanded collection.
  3125.    _compose-cut-from-cursor_
  3126.           If set, the _^K_ command in the composer will cut from the
  3127.           current cursor position to the end of the line, rather than
  3128.           cutting the entire line.
  3129.    _compose-maps-delete-key-to-ctrl-d_
  3130.           If set, Delete will be equivalent to ^D, and delete the current
  3131.           character. Normally _Pine_ defines the Delete key to be
  3132.           equivalent to ^H, which deletes the _previous_ character.
  3133.    _compose-rejects-unqualified-addrs_
  3134.           If set, unqualified names entered as addresses will be treated
  3135.           as errors unless they match an addressbook nickname or are
  3136.           looked up successfully on an LDAP server. _Pine_ will not
  3137.           attempt to turn them into complete addresses by adding your
  3138.           local domain (which _Pine_ normally does by default).
  3139.           A complete (fully-qualified) address is one containing a
  3140.           username followed by an _@_ symbol, followed by a host or
  3141.           domain name (e.g. _jsmith@nowhere.edu_). An unqualified name is
  3142.           one without the _@_ symbol and host or domain name (e.g.
  3143.           _jsmith_).
  3144.    _compose-send-offers-first-filter_
  3145.           If you have sending-filters configured, setting this feature
  3146.           will cause the first filter in the _sending-filters_ list to be
  3147.           offered as the default instead of _unfiltered_, the usual
  3148.           default.
  3149.    _compose-sets-newsgroup-without-confirm_
  3150.           If you enter the composer while reading a newsgroup, you will
  3151.           normally be prompted to determine whether you intend the new
  3152.           message to be posted to the current newsgroup or not. If this
  3153.           feature is set, _Pine_ will not prompt you in this situation,
  3154.           and will assume that you do indeed wish to post to the
  3155.           newsgroup you are reading.
  3156.    _confirm-role-even-for-default_
  3157.           If you have roles, when you Reply to or Forward a message, or
  3158.           Compose a new message, _Pine_ will search through your roles
  3159.           for one which matches. Normally, if no matches are found you
  3160.           will be placed into the composer with no opportunity to select
  3161.           a role. If this feature is set, then you will be asked to
  3162.           confirm that you don't want a role. This will give you the
  3163.           opportunity to select a role (with the ^T command). If you
  3164.           confirm no role with a Return, you will be placed in the
  3165.           composer with no role. You may also confirm with either an "N"
  3166.           or a "Y". These behave the same as if you pressed the Return.
  3167.           (The "N" and "Y" answers are available because they match what
  3168.           you might type if there was a role match.)
  3169.           If you are using the alternate form of the Compose command
  3170.           called "Role", then all of your roles will be available to you,
  3171.           independent of the value of this feauture and of the values set
  3172.           for all of Reply Use, Forward Use, and Compose Use.
  3173.    _continue-tab-without-confirm_
  3174.           Normally, when you use the TAB NextNew command and there is a
  3175.           problem checking a folder, you are asked whether you want to
  3176.           continue with the search in the following folder or not. This
  3177.           gives you a chance to stop the NextNew processing.
  3178.           If this feature is set you will not be asked. It will be
  3179.           assumed that you want to continue.
  3180.    _delete-skips-deleted_
  3181.           If set, this feature will cause the _Delete_ command to advance
  3182.           past other messages that are marked deleted. In other words,
  3183.           pressing _D_ will both mark the current message deleted and
  3184.           advance to the next message that is not marked deleted.
  3185.    _disable-busy-alarm_
  3186.           If set, the spinning bar that sometimes appears in the status
  3187.           line will not appear when _Pine_ is busy. This might be useful
  3188.           if it is suspected that the alarm(2) system calls that _Pine_
  3189.           uses to implement the busy spinner are suspected of causing a
  3190.           problem.
  3191.    _disable-config-cmd_
  3192.           If set, the configuration screen _Setup/Config_ will not be
  3193.           available at all.
  3194.    _disable-keyboard-lock-cmd_
  3195.           In the Main _Pine_ menu there is a Keyboard locking command
  3196.           (_KBLock_). If this feature is set, that command won't be
  3197.           available to the user.
  3198.    _disable-keymenu_
  3199.           If set, the command key menu that normally appears on the
  3200.           bottom two lines of the screen will not usually be there.
  3201.           Asking for help with _^G_ or _?_ will cause the key menu to
  3202.           appear instead of causing the help message to come up. If you
  3203.           want to actually see the help text, another _^G_ or _?_ will
  3204.           show it to you. After the key menu has popped up with the help
  3205.           key it will remain there for an _O Other_ command but will
  3206.           disappear if any other command is typed.
  3207.    _disable-password-cmd_
  3208.           If set the _Newpassword_ command usually available under the
  3209.           _Setup_ command will not be available.
  3210.    _disable-pipes-in-sigs_
  3211.           If set it will be an error to append a vertical bar (|) to the
  3212.           name of a signature file. Appending a vertical bar normally
  3213.           causes the signature file to be executed to produce the
  3214.           signature.
  3215.    _disable-pipes-in-templates_
  3216.           If set it will be an error to append a vertical bar (|) to the
  3217.           name of a template file. Appending a vertical bar normally
  3218.           causes the signature file to be executed to produce the
  3219.           signature.
  3220.    _disable-roles-setup-cmd_
  3221.           If set the _Roles_ command usually available under the _Setup_
  3222.           command will not be available.
  3223.    _disable-roles-sig-edit_
  3224.           If set the roles editor in the _Setup/Roles_ command will not
  3225.           allow editing of signature files with the F subcommand.
  3226.    _disable-roles-template-edit_
  3227.           If set the roles editor in the _Setup/Roles_ command will not
  3228.           allow editing of template files with the F subcommand.
  3229.    _disable-signature-edit-cmd_
  3230.           If set the _Signature_ editing command usually available under
  3231.           the _Setup_ command will not be available.
  3232.    _disable-take-last-comma-first_
  3233.           Normally, when _TakeAddr_ is used to copy an address from a
  3234.           message into an address book, _Pine_ will attempt to rewrite
  3235.           the full name of the address in the form:
  3236.           
  3237.      Last, First
  3238.           instead of
  3239.           
  3240.      First Last
  3241.           It does this because many people find it useful to sort by Last
  3242.           name instead of First name. If this feature is set, then the
  3243.           _TakeAddr_ command will not attempt to reverse the name in this
  3244.           manner.
  3245.    _enable-8bit-esmtp-negotiation_
  3246.           This feature affects _Pine_'s behavior when sending mail.
  3247.           Internet standards require that all electronic mail messages
  3248.           traversing the global Internet consist of 7bit ASCII characters
  3249.           unless a pair of cooperating mail transfer agents explicitly
  3250.           agree to allow 8bit messages. In general, then, exchanging
  3251.           messages in non-ASCII characters requires MIME encoding.
  3252.           However, there are now Internet standards that allow for
  3253.           unencoded 8bit exchange of messages between cooperating
  3254.           systems. Setting this feature tells _Pine_ to try to negotiate
  3255.           unencoded 8bit transmission during the sending process. Should
  3256.           the negotiation fail, _Pine_ will fall back to its ordinary
  3257.           encoding rules.
  3258.           Note, this feature relies on your system's mail transport agent
  3259.           or configured smtp-server having the negotiation mechanism
  3260.           introduced in "Extended SMTP" (ESMTP) and the specific
  3261.           extension called _8BITMIME_.
  3262.    _enable-8bit-nntp-posting_
  3263.           The Internet standard for exchanging USENET news messages
  3264.           (RFC-1036) specifies that USENET messages should conform to
  3265.           Internet mail standards and contain only 7bit characters, but
  3266.           much of the news transport software in use today is capable of
  3267.           successfully sending messages containing 8bit characters.
  3268.           Hence, many people believe that it is appropriate to send 8bit
  3269.           news messages without any MIME encoding.
  3270.           Moreover, there is no Internet standard for explicitly
  3271.           negotiating 8bit transfer, as there is for Internet email.
  3272.           Therefore, _Pine_ provides the option of posting unencoded 8bit
  3273.           news messages, though not as the default. Setting this feature
  3274.           will turn OFF _Pine_'s MIME encoding of newsgroup postings that
  3275.           contain 8bit characters.
  3276.           Note, articles may cross a path or pass through news transport
  3277.           software that is unsafe or even hostile to 8bit characters. At
  3278.           best this will only cause the posting to become garbled. The
  3279.           safest way to transmit 8bit characters is to leave _Pine_'s
  3280.           MIME encoding turned on, but recipients who lack MIME-aware
  3281.           tools are often annoyed when they receive MIME-encoded
  3282.           messages.
  3283.    _enable-aggregate-command-set_
  3284.           Setting this feature enables the commands and subcommands that
  3285.           relate to performing operations on more than one message at a
  3286.           time. We call these "aggregate operations". In particular, the
  3287.           _; Select_, _A Apply_, and _Z Zoom_ commands are enabled by
  3288.           this feature. _Select_ is used to _tag_ one or more messages
  3289.           meeting the specified criteria. _Apply_ can then be used to
  3290.           apply any message command to all of the selected/tagged
  3291.           messages. Further, the _Zoom_ command allows you to toggle the
  3292.           "Folder Index" view between just those Selected and all
  3293.           messages in the folder.
  3294.           This feature also enables the _^X_ subcommand in the "Folder
  3295.           Index" _WhereIs_ command which causes all messages matching the
  3296.           _WhereIs_ argument to become selected.
  3297.           You may also use aggregate operations in the address book
  3298.           screens where you are operating on address book entries instead
  3299.           of on messages.
  3300.    _enable-alternate-editor-cmd_
  3301.           If this feature is set, and the editor variable is not set,
  3302.           entering the _^__ (Control-underscore) key while composing a
  3303.           message will prompt you for the name of the editor you would
  3304.           like to use.
  3305.           If the environment variable $EDITOR is set, this value will be
  3306.           offered as a default. If the _editor_ variable is set, the _^__
  3307.           key will activate the specified editor without prompting, in
  3308.           which case it is not necessary to set the
  3309.           _enable-alternate-editor-cmd_ feature. This feature is not
  3310.           available in _PC-Pine_.
  3311.    _enable-alternate-editor-implicitly_
  3312.           If this feature and the editor variable are both set, _Pine_
  3313.           will automatically activate the specified editor when the
  3314.           cursor is moved from the header of the message being composed
  3315.           into the message text. For replies, the alternate editor will
  3316.           be activated immediately. If this feature is set but the
  3317.           _editor_ variable is not set, then _Pine_ will automatically
  3318.           ask for the name of an alternate editor when the cursor is
  3319.           moved out of the headers, or if a reply is being done. This
  3320.           feature is not available in _PC-Pine_.
  3321.    _enable-arrow-navigation_
  3322.           This feature controls the behavior of the left and right arrow
  3323.           keys. If set, the left and right arrow keys will operate like
  3324.           the usual navigation keys _<_ and _>_.
  3325.           If you set this feature, and do not like the changed behavior
  3326.           of the up/down arrow keys when navigating through the FOLDER
  3327.           LIST screen -- _first_ from column to column, if more than one
  3328.           folder is displayed per row, and _then_ from row to row -- you
  3329.           may either also wish to set the feature
  3330.           enable-arrow-navigation-relaxed, single-column-folder-list, or
  3331.           use the ^P/^N (instead of up/down arrow) keys to move up/down
  3332.           the list of folders in each column.
  3333.    _enable-arrow-navigation-relaxed_
  3334.           This feature controls the behavior of the left and right arrow
  3335.           keys in the FOLDER LIST screen when the enable-arrow-navigation
  3336.           feature is enabled.
  3337.           Normally, when the "enable-arrow-navigation" feature is set,
  3338.           the left and right arrow keys in the Folder List screen
  3339.           strictly track the commands bound to the _<_ and _>_ keys, and
  3340.           the up and down arrow keys move the hilite bar to the previous
  3341.           and next folder or directory name.
  3342.           When enabled, this feature returns the left, right, up and down
  3343.           arrow key's functionality in the FOLDER LIST screen to what it
  3344.           was before enabling "enable-arrow-navigation". In other words,
  3345.           left and right arrows move the hilite bar to the left or right,
  3346.           and the up and down arrows move it up or down.
  3347.    _enable-background-sending_
  3348.           If set, this feature enables a subcommand in the composer's
  3349.           _Send?_ confirmation prompt. The subcommand allows you to tell
  3350.           _Pine_ to handle the actual posting in the background. While
  3351.           this feature usually allows posting to appear to happen very
  3352.           fast, it has no affect on the actual delivery time it takes a
  3353.           message to arrive at its destination.
  3354.           This feature isn't supported on all systems. All DOS and
  3355.           Windows, as well as several Unix ports, do not recognize this
  3356.           feature.
  3357.           Error handling is significantly different when this feature is
  3358.           enabled. Any message posting failure results in the message
  3359.           being appended to your _Interrupted_ mail folder. When you type
  3360.           the _Compose_ command, _Pine_ will notice this folder and offer
  3361.           to extract any messages contained. Upon continuing a failed
  3362.           message, _Pine_ will display the nature of the failure in the
  3363.           status message line.
  3364.           Under extreme conditions, it is possible for message data to
  3365.           get lost. Do not enable this feature if you typically run close
  3366.           to any sort of disk-space limits or quotas.
  3367.    _enable-bounce-cmd_
  3368.           Setting this feature enables the _B Bounce_ command, which will
  3369.           prompt for an address and _remail_ the message to the new
  3370.           recipient. This command is used to re-direct messages that you
  3371.           have received in error, or need to be redirected for some other
  3372.           reason (e.g. list moderation). The final recipient will see a
  3373.           header indicating that you have Resent the msg, but the
  3374.           message's From: header will show the original author of the
  3375.           message, and replies to it will go back to that author, and not
  3376.           to you.
  3377.    _enable-cruise-mode_
  3378.           This feature affects _Pine_'s behavior when you hit the "Space
  3379.           Bar" at the end of a displayed message. Typically, _Pine_
  3380.           complains that the end of the text has already been reached.
  3381.           Setting this feature causes such keystrokes to be interpreted
  3382.           as if the _Tab_ key had been hit, thus taking you to the next
  3383.           _interesting_ message, or scanning ahead to the next incoming
  3384.           folder with _interesting_ messages.
  3385.    _enable-cruise-mode-delete_
  3386.           This feature modifies the behavior of _Pine_'s
  3387.           _enable-cruise-mode_ feature. Setting this feature causes _Pine_
  3388.           to implicitly delete read messages when it moves on to display
  3389.           the next _interesting_ message.
  3390.           NOTE: Beware when enabling this feature _and_ the
  3391.           expunge-without-confirm feature.
  3392.    _enable-delivery-status-notification_
  3393.           If set, this feature enables a subcommand in the composer's
  3394.           "Send?" confirmation prompt. The subcommand allows you to tell
  3395.           _Pine_ to request the type of Delivery Status Notification
  3396.           (DSN) which you would like. Most users will be happy with the
  3397.           default, and need not enable this feature. See the online help
  3398.           for more details.
  3399.           Note that this is not a method to request _READ_ receipts,
  3400.           which tells the sender when the receiver has read the message.
  3401.           In this case we're talking about notification of delivery to
  3402.           the mailbox, not notification that the message has been seen.
  3403.    _enable-dot-files_
  3404.           If set, files beginning with dot (".") will be visible in the
  3405.           file browser. For example, you'll be able to select them when
  3406.           using the browser to add an attachment to a message.
  3407.    _enable-dot-folders_
  3408.           If set, folders beginning with dot (".") may be added and
  3409.           viewed.
  3410.    _enable-exit-via-lessthan-command_
  3411.           If set, then on screens where there is an _Exit_ command but no
  3412.           _<_ command, the _<_ key will perform the same function as the
  3413.           _Exit_ command.
  3414.    _enable-fast-recent-test_
  3415.           If set, the TAB key behavior in Incoming folders or News
  3416.           collections is modified. By default, the TAB will cause each
  3417.           folder in the Incoming folders collection (or in the news
  3418.           collection) to be examined to see how many new messages have
  3419.           been delivered since the last time it was viewed. If this
  3420.           feature is set, the check is for any recent messages instead of
  3421.           the count of recent messages. This is much faster in many
  3422.           cases.
  3423.    _enable-flag-cmd_
  3424.           Setting this feature enables the _* Flag_ command, which allows
  3425.           you to manipulate the status flags associated with a message.
  3426.           By default, _Flag_ will set the _Important_ flag, which results
  3427.           in an asterisk being displayed in column one of the "Folder
  3428.           Index" for such messages.
  3429.    _enable-flag-screen-implicitly_
  3430.           This feature modifies the behavior of the _* Flag_ command
  3431.           (provided it too is enabled). By default, when the _* Flag_
  3432.           command is selected, _Pine_ offers a prompt to set one of
  3433.           several flags and also offers the option of entering the
  3434.           detailed flag manipulation screen via the _^T_ key. Enabling
  3435.           this feature causes _Pine_ to immediately enter the detailed
  3436.           flag screen rather than first offer the simple prompt.
  3437.    _enable-full-header-cmd_
  3438.           This feature enables the _H Full Headers_ command which toggles
  3439.           between the display of all headers in the message and the
  3440.           normal edited view of headers. The _Full Header_ command also
  3441.           controls which headers are included for _Export_, _Pipe_,
  3442.           _Print_, _Forward_, and _Reply_ functions. (For _Reply_, the
  3443.           _Full Header_ mode will respect the _include-headers-in-reply_
  3444.           feature setting.)
  3445.    _enable-goto-in-file-browser_
  3446.           Setting this causes _Pine_ to offer the _G Goto_ command in the
  3447.           file browser. This command allows you to explicitly set the
  3448.           displayed directory. _Pine_'s default behavior requires you to
  3449.           visit each related directory when moving between two distant
  3450.           directories.
  3451.    _enable-incoming-folders_
  3452.           If set, this feature defines a pseudo-folder collection called
  3453.           _INCOMING MESSAGE FOLDERS_. Initially, the only folder included
  3454.           in this collection will be your _INBOX_, which will no longer
  3455.           show up in your default saved-message folder collection.
  3456.    _enable-jump-shortcut_
  3457.           Setting this feature will allow you to enter a number (followed
  3458.           by RETURN) and jump to that message number, when in the "Folder
  3459.           Index" or "Message Text" screens. In other words, it obviates
  3460.           the need for typing the _J_ for the _Jump_ command.
  3461.    _enable-lame-list-mode_
  3462.           This feature modifies the method Pine uses to ask your IMAP
  3463.           server for folder names to display in the the FOLDER LIST
  3464.           screen. It is intended to compensate for a small set of IMAP
  3465.           servers that are programmed to ignore a part of the request,
  3466.           and thus respond to _Pine_'s query with nonsensical results.
  3467.           If you find that _Pine_ is erroneously displaying blank folder
  3468.           lists, try enabling this feature.
  3469.           NOTE: Enabling this feature has consequences for the Goto and
  3470.           Save commands. Many servers allow access to folders outside the
  3471.           area reserved for your personal folders via some reserved
  3472.           character, typically '#' (sharp), '~' (tilde) or '/' (slash).
  3473.           This mechanism allows, at the Goto and Save prompts, quick
  3474.           access to folders outside your personal folder collection
  3475.           without requiring a specific collection definition. This
  3476.           behavior will generally not be available when this feature is
  3477.           enabled.
  3478.    _enable-mail-check-cue_
  3479.           If set, this will cause an asterisk to appear in the upper
  3480.           left-hand corner of the screen whenever _Pine_ checks for new
  3481.           mail, and two asterisks whenever _Pine_ saves (checkpoints) the
  3482.           state of the current mailbox to disk.
  3483.    _enable-mailcap-param-substitution_
  3484.           If set, this will allow mailcap named parameter substitution to
  3485.           occur in mailcap entries. By default, this is turned off to
  3486.           prevent security problems which may occur with some incorrect
  3487.           mailcap configurations. For more information, RFC1524 and look
  3488.           for "named parameters" in the text of the RFC.
  3489.    _enable-mouse-in-xterm_
  3490.           This feature controls whether or not an X terminal mouse can be
  3491.           used with _Pine_. If set, and the $DISPLAY variable indicates
  3492.           that an X terminal is being used, the left mouse button on the
  3493.           mouse can be used to select text or commands.
  3494.           Note: if this feature is set, the behavior of X terminal
  3495.           cut-and-paste is also modified. It is necessary to hold the
  3496.           shift key down while clicking left or middle mouse buttons for
  3497.           the normal xterm cut/paste operations.
  3498.    _enable-msg-view-addresses_
  3499.           This feature modifies the behavior of _Pine_'s "Message Text"
  3500.           screen. Setting this feature causes _Pine_ to select possible
  3501.           email addresses from the displayed text and display them in
  3502.           boldface for selection.
  3503.           The first available email address is displayed in inverse. This
  3504.           is the "selected" address. Pressing _RETURN_ will cause _Pine_
  3505.           to enter the message composition screen with the To field
  3506.           filled in with the selected address.
  3507.           Use the up and down arrow keys to change which of the addresses
  3508.           displayed in boldface is the current selection.
  3509.    _enable-msg-view-attachments_
  3510.           This feature modifies the behavior of _Pine_'s "Message Text"
  3511.           screen. Setting this feature causes _Pine_ to present
  3512.           attachments in boldface. The first available attachment is
  3513.           displayed in inverse. This is the "selected" attachment.
  3514.           Pressing _RETURN_ will cause _Pine_ to display the selected
  3515.           attachment. Use the up and down arrow keys to change which of
  3516.           the attachments displayed in boldface is the current selection.
  3517.           Speaking of arrow keys, the Up and Down Arrows will select the
  3518.           next and previous attachments if one is available on the screen
  3519.           for selection. Otherwise, they will simply adjust the viewed
  3520.           text one line up or down.
  3521.           Similarly, when selectable items are present in a message, the
  3522.           Ctrl-F key can be used to select the next item in the message
  3523.           independent of which portion of the viewed message is currently
  3524.           displayed. The Ctrl-B key can be used to select the previous
  3525.           item in the same way.
  3526.    _enable-msg-view-forced-arrows_
  3527.           This feature modifies Up and Down arrow key behavior in
  3528.           _Pine_'s "Message Text" screen when selectable Attachments,
  3529.           URL's, or web-hostnames are presented. _Pine_'s usual behavior
  3530.           is to move to the next or previous selectable item if currently
  3531.           displayed or simply to adjust the screen view by one line if
  3532.           the next selectable line is off the screen.
  3533.           Setting this feature causes the Up and Down arrow keys to
  3534.           behave as if no selectable items were present in the message.
  3535.           Note, the _Ctrl-F_ (next selectable item) and _Ctrl-B_
  3536.           (previous selectable item) functionality is unchanged.
  3537.    _enable-msg-view-urls_
  3538.           This feature modifies the behavior of _Pine_'s "Message Text"
  3539.           screen. Setting this feature causes _Pine_ to select possible
  3540.           URL's from the displayed text and display them in boldface for
  3541.           selection.
  3542.           The first available URL is displayed in inverse. This is the
  3543.           "selected" URL. Pressing _RETURN_ will cause _Pine_ to display
  3544.           the selected URL via either built-in means as with mailto:,
  3545.           imap:, news:, and nntp:, or via an external application as
  3546.           defined by the url-viewers variable.
  3547.           Use the up and down arrow keys to change which of the URLs
  3548.           displayed in boldface is the current selection.
  3549.    _enable-msg-view-web-hostnames_
  3550.           This feature modifies the behavior of _Pine_'s "Message Text"
  3551.           screen. Setting this feature causes _Pine_ to select possible
  3552.           web hostnames from the displayed text and display them in
  3553.           boldface for selection.
  3554.           The first available hostname is displayed in inverse. This is
  3555.           the "selected" hostname. Pressing _RETURN_ will cause _Pine_ to
  3556.           display the selected hostname via an external application as
  3557.           defined by the url-viewers variable.
  3558.           Use the up and down arrow keys to change which of the hostnames
  3559.           displayed in boldface is the current selection.
  3560.    _enable-newmail-in-xterm-icon_
  3561.           This feature controls whether or not _Pine_ will attempt to
  3562.           announce new mail arrival when it is running in an X terminal
  3563.           window and that window is iconified. If set, and the $DISPLAY
  3564.           variable indicates that an X terminal is being used, _Pine_
  3565.           will send appropriate escape sequences to the X terminal to
  3566.           modify the label on _Pine_'s icon to indicate that new mail has
  3567.           arrived.
  3568.    _enable-partial-match-lists_
  3569.           This feature affects the subcommands available when _Sav_ing or
  3570.           Opening a new folder. If set, the subcommand _^X ListMatches_
  3571.           will be available. This command allows you to type in a
  3572.           substring of the folder you are looking for and when you type
  3573.           _^X_ it will display all folders which contain that substring
  3574.           in their names.
  3575.    _enable-print-via-y-command_
  3576.           By default, _Pine_'s print command is available by pressing the
  3577.           _%_ key. In recent versions prior to 4.00, the print command
  3578.           was accessed by pressing the _Y_ key.
  3579.           Enabling this feature will cause _Pine_ to recognize both the
  3580.           old command, _Y_, and the new _%_ method for invoking printing.
  3581.           Note, key menu labels are not changed as a result of enabling
  3582.           this feature.
  3583.    _enable-reply-indent-string-editing_
  3584.           This feature affects the Reply command's "Include original
  3585.           message in Reply?" prompt. When enabled, it causes the "Edit
  3586.           Indent String" sub-command to appear which allows you to edit
  3587.           the string _Pine_ would otherwise use to denote included text
  3588.           from the message being replied to.
  3589.           Thus, you can change _Pine_'s default message quote character
  3590.           (usually an angle bracket) on a per message basis. So you could
  3591.           change your quoted message to look, for example, like this:
  3592. On Tues, 26 Jan 1999, John Q. Smith wrote:
  3593.  
  3594. John: I just wanted to say hello and to congratulate you
  3595. John: on a job well done!
  3596.           The configuration option "reply-indent-string" may be used to
  3597.           change what appears as the default string to be edited.
  3598.           NOTE: Edited reply-indent-strings only apply to the message
  3599.           currently being replied to.
  3600.    _enable-rules-under-take_
  3601.           Normally, the Take command takes addresses from a message and
  3602.           helps you put them into your Address Book. If you use Rules for
  3603.           Indexcolors, Roles, Filtering, or Scoring; you may find it
  3604.           useful to be able to Take information from a message's headers
  3605.           and put it into a new Rule. When this feature is set, you will
  3606.           be given an extra prompt which gives you the choice to Take
  3607.           into the Address Book or Take into a rule.
  3608.    _enable-search-and-replace_
  3609.           If set _Pine_'s composer offers the _R Replace_ command option
  3610.           inside the _W WhereIs_ command.
  3611.    _enable-sigdashes_
  3612.           If set and a _signature-file_ exists, the line consisting of
  3613.           the three characters "-- " (dash dash space) is included before
  3614.           the signature. This only happens if the signature doesn't
  3615.           already contain such a line.
  3616.           In addition, when you Reply or Followup to a message containing
  3617.           one of these special lines and choose to include its text,
  3618.           _Pine_ will observe the convention of not including text beyond
  3619.           the special line in your reply.
  3620.    _enable-suspend_
  3621.           Setting this feature will allow you to type _^Z_ and
  3622.           temporarily suspend _Pine_. Not available on _PC-Pine_.
  3623.    _enable-tab-completion_
  3624.           This feature enables the _TAB_ key when at a prompt for a
  3625.           filename. In this case, _TAB_ will cause the partial name
  3626.           already entered to be automatically completed, provided the
  3627.           partial name is unambiguous.
  3628.    _enable-tray-icon_
  3629.           _PC-Pine_ only.
  3630.    _enable-unix-pipe-cmd_
  3631.           This feature enables the _| Pipe_ command that sends the
  3632.           current message to the specified Unix command for external
  3633.           processing. Not available on _PC-Pine_.
  3634.    _enable-verbose-smtp-posting_
  3635.           This feature controls an aspect of _Pine_'s message sending.
  3636.           When enabled, _Pine_ will send a VERB (i.e., VERBose) command
  3637.           early in the posting process intended to cause the server SMTP
  3638.           to provide a more detailed account of the transaction. This
  3639.           feature is typically only useful to system administrators and
  3640.           other support personel as an aid in troublshooting problems.
  3641.           Note, this feature relies on a specific capability of the
  3642.           system's mail transport agent or configured smtp-server.
  3643.    _expanded-view-of-addressbooks_
  3644.           If multiple address books (either personal or global) are
  3645.           defined, and you wish to have them all expanded implicitly upon
  3646.           entering the ADDRESS BOOK screen, then set this feature. This
  3647.           feature will have no effect unless the feature
  3648.           combined-addrbook-display is also set.
  3649.    _expanded-view-of-distribution-lists_
  3650.           If this feature is set, then distribution lists in the address
  3651.           book screen will always be expanded automatically.
  3652.    _expanded-view-of-folders_
  3653.           If multiple folder collections are defined, and you wish to
  3654.           have them all expanded implicitly upon entering the FOLDER LIST
  3655.           screen, then set this feature. This feature will have no effect
  3656.           unless the feature combined-folder-display is also set.
  3657.    _expose-hidden-config_
  3658.           The purpose of this feature is to allow you to change
  3659.           configuration features and variables which are normally hidden.
  3660.           This is particularly useful if you are using a remote
  3661.           configuration file, where it is impossible to edit the file
  3662.           manually, but it may also be used on a local pinerc
  3663.           configuration file.
  3664.           If set, most configuration variables and features which are
  3665.           normally hidden from view will show up in the
  3666.           Setup/Configuration screen. They will be at the bottom of the
  3667.           configuration screen. You can find them by searching for the
  3668.           word "hidden".
  3669.           This feature will usually be used by setting it on the command
  3670.           line. Any feature may be turned on temporarily for a particular
  3671.           _Pine_ session from the command line. For example, this feature
  3672.           may be temporarily set with the syntax
  3673.           
  3674.      pine -feature-list=expose-hidden-config
  3675.           You could also set this feature in your configuration file (it
  3676.           is one of the hidden features which can be set) so that the
  3677.           hidden configuration always shows up.
  3678.           Note that this is an advanced feature which should be used with
  3679.           care. The reason that this part of the configuration is
  3680.           normally hidden is because there is a significant potential for
  3681.           causing problems if you change these variables. If something
  3682.           breaks after a change try changing it back to see if that is
  3683.           what is causing the problem. There are also some variables
  3684.           which are normally hidden because they are manipulated through
  3685.           _Pine_ in other ways. For example, the "address-book" variable
  3686.           is normally set using the Setup/AddressBooks screen, so there
  3687.           is little reason to edit it directly. The "incoming-folders"
  3688.           variable is normally changed by using the Add, Delete, and
  3689.           Rename commands in the FOLDER LIST screen, and the
  3690.           "last-time-prune-questioned" variable is normally used
  3691.           internally by _Pine_ and not set directly by the user.
  3692.    _expunge-only-manually_
  3693.           Normally, when you close a folder which contains deleted
  3694.           messages you are asked if you want to expunge those messages
  3695.           from the folder permanently. If this feature is set, you won't
  3696.           be asked and the deleted messages will remain in the folder. If
  3697.           you choose to set this feature you will have to expunge the
  3698.           messages manually using the eXpunge command, which you can use
  3699.           while in the MESSAGE INDEX screen. If you do not expunge
  3700.           deleted messages the size of your folder will continue to
  3701.           increase until you are out of disk space.
  3702.    _expunge-without-confirm_
  3703.           If set, you will not be prompted to confirm your intent before
  3704.           the expunge takes place. Actually, you will still be prompted
  3705.           for confirmation if the folder is not the _INBOX_ folder or
  3706.           another folder in the Incoming Folders collection. See the
  3707.           _expunge-without-confirm-everywhere_ feature which follows.
  3708.    _expunge-without-confirm-everywhere_
  3709.           The regular _expunge-without-confirm_ feature actually only
  3710.           works for the _INBOX_ folder and for other folders in the
  3711.           "Incoming Folders" collection. If this feature is set then you
  3712.           also won't be prompted to confirm expunges for all other
  3713.           folders.
  3714.    _fcc-on-bounce_
  3715.           If set, normal Fcc (File Carbon Copy) processing will be done
  3716.           for bounced messages, just as if you had composed a message to
  3717.           the address you are bouncing to. If not set, no Fcc of the
  3718.           message will be saved.
  3719.    _fcc-only-without-confirm_
  3720.           This features controls an aspect of Pine's composer. The only
  3721.           time this feature will be used is if you attempt to send mail
  3722.           which has no recipients but does have an Fcc. Normally, Pine
  3723.           will ask if you really mean to copy the message only to the
  3724.           Fcc. That is, it asks if you really meant to have no
  3725.           recipients. If this feature is set, you will _not_ be prompted
  3726.           to confirm your intent to make only a copy of a message with no
  3727.           recipients.
  3728.    _fcc-without-attachments_
  3729.           This features controls the way FCC's (File Carbon Copies) are
  3730.           made of the messages you send.
  3731.           Normally, _Pine_ saves an exact copy of your message as it was
  3732.           sent. When this feature is enabled, the "body" of the message
  3733.           you send (the text you type in the composer) is preserved in
  3734.           the copy as before, however all attachments are replaced with
  3735.           text explaining what had been sent rather than the attachments
  3736.           themselves.
  3737.           This feature also affects _Pine_'s "Send ?" confirmation prompt
  3738.           in that a new "^F Fcc Attchmnts" option becomes available which
  3739.           allows you to interactively set whether or not attachments are
  3740.           saved to the Fcc'd copy.
  3741.    _include-attachments-in-reply_
  3742.           If set, any MIME attachments that were part of the original
  3743.           message will automatically be included in a _Reply_.
  3744.    _include-header-in-reply_
  3745.           If set, and a message being replied to is included in the
  3746.           _Reply_, then headers from that message will also be part of
  3747.           the reply.
  3748.    _include-text-in-reply_
  3749.           Normally, _Pine_ will ask whether you wish to include the
  3750.           original message in your _Reply_. If this feature is set, the
  3751.           original message will be included in the reply automatically,
  3752.           without prompting.
  3753.    _ldap-result-to-addrbook-add_
  3754.           This is only available if _Pine_ was linked with an LDAP
  3755.           library when it was compiled. If both the per-directory-server
  3756.           option use-implicitly-from-composer and this feature are set,
  3757.           then when an implicit directory lookup is done from the
  3758.           composer you will automatically be prompted to add the result
  3759.           of the directory lookup to your address book.
  3760.    _mark-for-cc_
  3761.           This feature affects Pine's MESSAGE INDEX display. By default,
  3762.           a '+' is displayed in the first column if the message is
  3763.           addressed directly to you. When this feature is set and the
  3764.           message is not addressed to you, then a '-' character is
  3765.           displayed if the message is instead Cc'd directly to you.
  3766.    _news-approximates-new-status_
  3767.           This feature causes certain messages to be marked as _New_ in
  3768.           the "Folder Index" of newsgroups.
  3769.           When opening a newsgroup, _Pine_ will consult your _newsrc_
  3770.           file and determine the last message you have previously
  3771.           disposed of via the _D_ key. If this feature is set, any
  3772.           subsequent messages will be shown in the Index with an _N_, and
  3773.           the first of these messages will be highlighted. Although this
  3774.           is only an approximation of true _New_ or _Unseen_ status, it
  3775.           provides a useful cue to distinguish more-or-less recent
  3776.           messages from those you have seen previously, but are not yet
  3777.           ready to mark deleted.
  3778.           Background: your _newsrc_ file (used to store message status
  3779.           information for newsgroups) is only capable of storing a single
  3780.           flag, and _Pine_ uses this to record whether or not you are
  3781.           "done with" a message, as indicated by marking the message as
  3782.           _Deleted_. Unfortunately, this means that _Pine_ has no way to
  3783.           record exactly which messages you have previously seen, so it
  3784.           normally does not show the _N_ status flag for any messages in
  3785.           a newsgroup. This feature enables a starting _approximation_ of
  3786.           seen/unseen status that may be useful.
  3787.    _news-deletes-across-groups_
  3788.           This feature controls what _Pine_ does when you delete a
  3789.           message in a newsgroup that appears in more than one newsgroup.
  3790.           Such a message is sometimes termed a "crossposting" in that it
  3791.           was posted across several newsgroups.
  3792.           _Pine_'s default behavior when you delete such a message is to
  3793.           remove only the copy in the current newsgroup from view when
  3794.           you use the "Exclude" command or the next time you visit the
  3795.           newsgroup.
  3796.           Enabling this feature causes _Pine_ to remove every occurrence
  3797.           of the message from all newsgroups it appears in and to which
  3798.           you are subscribed.
  3799.           NOTE: As currently implemented, enabling this feature may
  3800.           increase the time it takes the Expunge command and newsgroup
  3801.           closing to complete.
  3802.    _news-offers-catchup-on-close_
  3803.           This feature controls what _Pine_ does as it closes a
  3804.           newsgroup. When set, _Pine_ will offer to delete all messages
  3805.           from the newsgroup as you are quitting _Pine_ or opening a new
  3806.           folder.
  3807.           This feature is useful if you typically read all the
  3808.           interesting messages in a newsgroup each time you open it. This
  3809.           feature saves you from having to delete each message in a
  3810.           newsgroup as you read it or from selecting all the messages and
  3811.           doing an aggregate delete before you move on to the next folder
  3812.           or newsgroup.
  3813.    _news-post-without-validation_
  3814.           This feature controls whether the NNTP server is queried as
  3815.           newsgroups are entered for posting. Validation over slow links
  3816.           (e.g. dialup using SLIP or PPP) can cause delays. Set this
  3817.           feature to eliminate such delays.
  3818.    _news-read-in-newsrc-order_
  3819.           This feature controls the order that newsgroups will be
  3820.           presented. If set, they will be presented in the same order as
  3821.           they occur in your _newsrc_ file. If not set, the newsgroups
  3822.           will be presented in alphabetical order.
  3823.    _pass-control-characters-as-is_
  3824.           If set, all characters in a message will be sent to the screen.
  3825.           Normally, control characters are automatically suppressed in
  3826.           order to avoid inadvertently changing terminal setup
  3827.           parameters.
  3828.    _prefer-plain-text_
  3829.           A message being viewed may contain alternate versions of the
  3830.           same content. Those alternate versions are ordered by the
  3831.           sending software such that the first alternative is the least
  3832.           preferred and the last alternative is the most preferred. Pine
  3833.           will normally display the most-preferred version that it knows
  3834.           how to display. This is most often encountered where the two
  3835.           alternate versions are a plain text version and an HTML
  3836.           version, with the HTML version listed last as the most
  3837.           preferred.
  3838.           If this option is set, then any plain text version will be
  3839.           preferred to all other versions.
  3840.    _preserve-start-stop-characters_
  3841.           This feature controls how special control key characters,
  3842.           typically _^S_ and _^Q_, are interpreted when input to _Pine_.
  3843.           These characters are known as the "start" and "stop" characters
  3844.           and are sometimes used in communications paths to control data
  3845.           flow between devices that operate at different speeds.
  3846.           By default, _Pine_ turns the system's handling of these special
  3847.           characters off except during printing. However, if you see
  3848.           _Pine_ reporting input errors such as:
  3849.           
  3850.      [ Command "^Q" not defined for this screen. ]
  3851.           and, at the same time, see your display become garbled, then it
  3852.           is likely that setting this option will solve the problem. Be
  3853.           aware, though, that enabling this feature will also cause _Pine_
  3854.           to ostensibly "hang" whenever the _Ctrl-S_ key combination is
  3855.           entered as the system is now interpreting such input as a "stop
  3856.           output" command. To "start output" again, simply type _Ctrl-Q_.
  3857.    _print-formfeed-between-messages_
  3858.           Setting this feature causes a formfeed to be printed between
  3859.           messages when printing multiple messages with the _Apply Print_
  3860.           command.
  3861.    _print-includes-from-line_
  3862.           If this feature is set, then the Unix mail style From line is
  3863.           included at the start of each message that is printed. This
  3864.           line looks something like the following, with the address
  3865.           replaced by the address from the From line of the message being
  3866.           printed:
  3867.           
  3868.      From user@domain.somewhere.com Mon May 13 14:11:06 1996
  3869.    _print-index-enabled_
  3870.           This feature controls the behavior of the _Print_ command when
  3871.           in the "Folder Index" screen. If set, the _Print_ command will
  3872.           give you a prompt asking if you wish to print the message
  3873.           index, or the currently highlighted message. If not set, the
  3874.           message will be printed.
  3875.    _print-offers-custom-cmd-prompt_
  3876.           When this feature is set, the _Print_ command will have an
  3877.           additional subcommand called _C CustomPrint_. If selected, you
  3878.           will have the opportunity to enter any system print command,
  3879.           instead of being restricted to using those that have been
  3880.           previously configured in the _Setup/Printer_ screen.
  3881.    _quell-berkeley-format-timezone_
  3882.           POSIX mandates a timezone in UNIX mailbox format folder
  3883.           delimiters (the line which begins with From ). Some versions of
  3884.           Berkeley mail have trouble with this, and don't recognize the
  3885.           line as a message delimiter. If this feature is set, the
  3886.           timezone will be left off the delimiter line.
  3887.    _quell-dead-letter-on-cancel_
  3888.           This feature affects _Pine_'s behavior when you cancel a
  3889.           message being composed. _Pine_'s usual behavior is to write the
  3890.           canceled message to a file named dead.letter in your home
  3891.           directory (under UNIX; DEADLETR under WINDOWS/DOS) overwriting
  3892.           any previous message. Under some conditions (some routine),
  3893.           this can introduce a noticeable delay.
  3894.           Setting this feature will cause _Pine_ NOT to write canceled
  3895.           compositions into the file called dead.letter.
  3896.    _quell-empty-directories_
  3897.           This feature causes _Pine_ to remove from the display any
  3898.           directories that do not contain at least one file or directory.
  3899.           This can be useful to prevent overly cluttered folder lists
  3900.           when a collection is stored on a server that treats all names
  3901.           as both a folder and a directory.
  3902.           Note, enabling this feature can cause surprising behavior! For
  3903.           example, you can still use Add to create a directory, but
  3904.           unless you immediately enter that directory and create a
  3905.           folder, that newly created directory may not be displayed next
  3906.           time you enter the folder list.
  3907.    _quell-extra-post-prompt_
  3908.           This feature causes _Pine_ to skip the extra question about
  3909.           posting a message which may go to thousands of readers when you
  3910.           are about to post to a newsgroup.
  3911.    _quell-folder-internal-msg_
  3912.           This feature determines whether or not _Pine_ will create
  3913.           "pseudo messages" in folders that are in standard Unix or MMDF
  3914.           format.
  3915.           _Pine_ will normally create these pseudo messages when they are
  3916.           not already present in a standard Unix or MMDF folder. Their
  3917.           purpose is to record certain mailbox state data needed for
  3918.           correct IMAP and POP server operation, and also for _Pine_ to
  3919.           be able to mark messages as Answered when the Reply has been
  3920.           postponed.
  3921.           Sites which do not use IMAP/POP for remote mail access, and
  3922.           which need to support mail tools that are adversely affected by
  3923.           the presence of the pseudo-messages (e.g. some mail
  3924.           notification tools) may enable this feature to tell _Pine_ not
  3925.           to create them. Note that _Pine_'s "Answered" flag capability
  3926.           will be adversely affected if this is done.
  3927.           Note too that, even if this feature is enabled, _Pine_ will not
  3928.           remove pseudo-messages when it encounters them (e.g. those
  3929.           created by UW's imapd or ipopd servers.) This feature has no
  3930.           effect on folders that are not in standard Unix or MMDF format,
  3931.           as pseudo-messages are not needed in the other formats to
  3932.           record mailbox state information.
  3933.    _quell-imap-envelope-update_
  3934.           In the MESSAGE INDEX screen, if the open folder is being
  3935.           accessed using IMAP, _Pine_ normally tries to paint the index
  3936.           lines on the screen as soon as the information arrives from the
  3937.           IMAP server. This means that the index information makes it
  3938.           onto the screen more quickly than it otherwise would. This
  3939.           sometimes results in behavior that bothers some users. For
  3940.           example, when paging to a new page of the index, it may be
  3941.           possible for the lines to be painted on the screen in a random
  3942.           order, rather than from top to bottom.
  3943.           Setting this feature causes _Pine_ to wait for all of the
  3944.           information to be gathered before it paints the index screen.
  3945.           Once it collects all of the information, the screen will be
  3946.           painted quickly from top to bottom.
  3947.    _quell-lock-failure-warnings_
  3948.           This feature affects _Pine_'s behavior when it encounters a
  3949.           problem acquiring a mail folder lock. Typically, a secondary
  3950.           file associated with the mail folder being opened is created as
  3951.           part of the locking process. On some systems, such file
  3952.           creation has been administratively precluded by the system
  3953.           configuration.
  3954.           _Pine_ issues a warning when such failures occur, which can
  3955.           become bothersome if the system is configured to disallow such
  3956.           actions. Setting this feature causes _Pine_ to remain silent
  3957.           when this part of lock creation fails.
  3958.           WARNING: systems that have been configured in a way that
  3959.           precludes locking introduce some risk of mail folder corruption
  3960.           when more than one program attempts to modify the mail folder.
  3961.           This is most likely to occur to one's _INBOX_ or other
  3962.           "Incoming Message Folder".
  3963.    _quell-news-envelope-update_
  3964.           In the MESSAGE INDEX screen, if the open folder is being
  3965.           accessed using NNTP (News), _Pine_ normally tries to paint the
  3966.           index lines on the screen as soon as the information arrives
  3967.           from the NNTP server. This means that the index information
  3968.           makes it onto the screen more quickly than it otherwise would.
  3969.           This sometimes results in behavior that bothers some users. For
  3970.           example, when paging to a new page of the index, it may be
  3971.           possible for the lines to be painted on the screen in a random
  3972.           order, rather than from top to bottom.
  3973.           Setting this feature causes _Pine_ to wait for all of the
  3974.           information to be gathered before it paints the index screen.
  3975.           Once it collects all of the information, the screen will be
  3976.           painted quickly from top to bottom.
  3977.    _quell-partial-fetching_
  3978.           Partial fetching is a feature of the IMAP protocol. By default,
  3979.           _Pine_ will use partial fetching when copying the contents of a
  3980.           message or attachment from the IMAP server to _Pine_. This
  3981.           means that the fetch will be done in many small chunks instead
  3982.           of one big chunk. The main benefit of this approach is that the
  3983.           fetch becomes interruptible. That is, the user can type _^C_ to
  3984.           stop the fetch early. In some cases partial fetching may cause
  3985.           a performance problem so that the fetching of data takes
  3986.           significantly longer when partial fetching is used. Turning on
  3987.           this feature will turn off partial fetching.
  3988.    _quell-status-message-beeping_
  3989.           If set status messages will never emit a beep.
  3990.    _quell-user-lookup-in-passwd-file_
  3991.           This feature controls an aspect of _Pine_'s Composer, and if
  3992.           needed, will usually be set by the system manager in _Pine_'s
  3993.           system-wide configuration file. Specifically, if this feature
  3994.           is set, _Pine_ will not attempt to look in the system password
  3995.           file to find a Full Name for the entered address.
  3996.           Normally, names you enter into address fields (e.g. To: or Cc:)
  3997.           are checked against your address book(s) to see if they match
  3998.           an address book nickname. Failing that, (in Unix _Pine_) the
  3999.           name is then checked against the Unix password file. If the
  4000.           entered name matches a username in the system password file,
  4001.           _Pine_ extracts the corresponding Full Name information for
  4002.           that individual, and adds that to the address being entered.
  4003.           However, password file matching can have surprising (incorrect)
  4004.           results if other users of the system do not receive mail at the
  4005.           domain you are using. That is, if either the user-domain or
  4006.           use-only-domain-name option is set such that the administrative
  4007.           domain of other users on the system isn't accurately reflected,
  4008.           _Pine_ should be told that a password file match is
  4009.           coincidental, and Full Name info will be incorrect. For
  4010.           example, a personal name from the password file could get
  4011.           falsely paired with the entered name as it is turned into an
  4012.           address in the configured domain.
  4013.           If you are seeing this behavior, enabling this feature will
  4014.           prevent Unix _Pine_ from looking up names in the password file
  4015.           to find the Full Name for incomplete addresses you enter.
  4016.    _quit-without-confirm_
  4017.           This feature controls whether or not _Pine_ will ask for
  4018.           confirmation when a _Quit_ command is received.
  4019.    _reply-always-uses-reply-to_
  4020.           If set, _Pine_ will not prompt when a message being replied to
  4021.           contains a _Reply-To:_ header value, but will simply use its
  4022.           value (as opposed to using the _From:_ field's value).
  4023.    _quell-berkeley-format-timezone_
  4024.           Versions of _Pine_ prior to 4.20 would write Berkeley format
  4025.           message delimiters with a trailing timezone offset. On rare
  4026.           occurances this can cause an incompatibility with other mail
  4027.           access utilities. Enabling this hidden feature will cause _Pine_
  4028.           to refrain from writing this timezone to the "From " delimiter.
  4029.    _save-aggregates-copy-sequence_
  4030.           This feature will optimize an aggregate copy operation, if
  4031.           possible, by issuing a single IMAP _COPY_ command with a list
  4032.           of the messages to be copied. This may save network traffic
  4033.           when the source and destination folders are on the same IMAP
  4034.           server. _However, many IMAP servers (including the UW IMAP
  4035.           server) do not preserve the order of messages when this
  4036.           optimization is applied._ If this feature is not enabled, or if
  4037.           the folders are on different IMAP servers, or the folders are
  4038.           local and in different formats, _Pine_ will copy each message
  4039.           individually.
  4040.    _save-will-advance_
  4041.           If set, _Save_ will (in addition to copying the current message
  4042.           to the designated folder) also advance to the next message.
  4043.    _save-will-not-delete_
  4044.           If set, _Save_ will not mark the message Deleted (its default
  4045.           behavior) after it has been copied to the designated folder.
  4046.    _save-will-quote-leading-froms_
  4047.           This feature controls an aspect of the _Save_ command (and also
  4048.           the way outgoing messages are saved to an FCC folder). If set,
  4049.           _Pine_ will add a leading > character in front of message lines
  4050.           beginning with "From" when they are saved to another folder,
  4051.           including lines syntactically distinguishable from the type of
  4052.           message separator line commonly used on Unix systems.
  4053.           The default behavior is that a > will be prepended only to
  4054.           lines beginning with "From " that might otherwise be confused
  4055.           with a message separator line on Unix systems. If _Pine_ is the
  4056.           only mail program you use, this default is reasonable. If
  4057.           another program you use has trouble displaying a message with
  4058.           an unquoted From saved by _Pine_, you should enable this
  4059.           feature. This feature only applies to the common Unix mailbox
  4060.           format that uses message separator lines beginning with "From
  4061.           ". If _Pine_ has been configured to use a different mailbox
  4062.           format (possibly incompatible with other mail programs), then
  4063.           this issue does not arise, and the feature is irrelevant.
  4064.    _select-without-confirm_
  4065.           This feature controls an aspect of _Pine_'s _Save_, _Export_,
  4066.           and _Goto_ commands. These commands all take text input to
  4067.           specify the name of the folder or file to be used, but allow
  4068.           you to press _^T_ for a list of possible names. If set, the
  4069.           selected name will be used immediately, without further
  4070.           opportunity to confirm or edit the name.
  4071.    _separate-folder-and-directory-display_
  4072.           This feature affects folder collections wherein a folder and
  4073.           directory can have the same name. By default, _Pine_ displays
  4074.           them only once, denoting that it is both a folder and directory
  4075.           by appending the folder name with the hierarchy character
  4076.           enclosed in square brackets.
  4077.           Enabling this feature will cause _Pine_ to display such names
  4078.           separately marking the name representing a directory with a
  4079.           trailing hierarchy delimiter (typically the slash, "/",
  4080.           character).
  4081.           The feature also alters the command set slightly. By default,
  4082.           the right-arrow descends into the directory, while hitting the
  4083.           Return key will cause the folder by that name to be opened.
  4084.           With this feature set, the Return key will open the hilited
  4085.           folder, or enter the hilited directory.
  4086.    _show-cursor_
  4087.           If set, the system cursor will move to convenient locations in
  4088.           the displays. For example, to the beginning of the status field
  4089.           of the highlighted index line, or to the highlighted word after
  4090.           a successful _WhereIs_ command. It is intended to draw your
  4091.           attention to the _interesting_ spot on the screen.
  4092.    _show-plain-text-internally_
  4093.           This feature modifies the method Pine uses to display
  4094.           Text/Plain MIME attachments from the Attachment Index screen.
  4095.           Normally, the "View" command searches for any externally
  4096.           defined (usually via the Mailcap file) viewer, and displays the
  4097.           selected text within that viewer.
  4098.           Enabling this feature causes Pine to ignore any external viewer
  4099.           settings and always display text with Pine's internal viewer.
  4100.    _show-selected-in-boldface_
  4101.           This feature controls an aspect of _Pine_'s aggregate operation
  4102.           commands; in particular, the _Select_ and _WhereIs_ commands.
  4103.           _Select_ and _WhereIs_ (with the _^X_ subcommand) will search
  4104.           the current folder for messages meeting a specified criteria,
  4105.           and _tag_ the resulting messages with an _X_ in the first
  4106.           column of the applicable lines in the "Folder Index". If this
  4107.           feature is set, instead of using the _X_ to denote a selected
  4108.           message, _Pine_ will attempt to display those index lines in
  4109.           boldface. Whether this is preferable to the _X_ will depend on
  4110.           personal taste and the type of terminal being used.
  4111.    _signature-at-bottom_
  4112.           If this feature is set, and a message being _Repl_ied to is
  4113.           being included in the reply, then the contents of the signature
  4114.           file (if any) will be inserted after the included message. This
  4115.           feature does not affect the results of a _Forward_ command.
  4116.    _single-column-folder-list_
  4117.           If set, the "Folder List" screen will list one folder per line
  4118.           instead of several per line.
  4119.    _strip-from-sigdashes-on-reply_
  4120.           This feature doesn't do anything if the feature
  4121.           enable-sigdashes is turned on. However, if the
  4122.           _enable-sigdashes_ feature is not turned on, then turning on
  4123.           this feature enables support for the convention of not
  4124.           including text beyond the sigdashes line when Replying or
  4125.           Following up to a message and including the text of that
  4126.           message.
  4127.           In other words, this is a way to turn on the signature
  4128.           stripping behavior without also turning on the dashes-adding
  4129.           behavior.
  4130.    _tab-visits-next-new-message-only_
  4131.           This feature affects _Pine_'s behavior when using the _TAB_ key
  4132.           to move from one message to the next. _Pine_'s usual behavior
  4133.           is to select the next _Unread_ message or message flagged as
  4134.           _Important_.
  4135.           Setting this feature causes _Pine_ to skip the messages flagged
  4136.           as _Important_, and select _Unread_ messages exclusively. Tab
  4137.           behavior when there are no new messages left to select remains
  4138.           unchanged.
  4139.    _termdef-takes-precedence_
  4140.           In some versions of _Pine_ before 4.00 there was a compile-time
  4141.           macro called _TERMCAP_WINS_ which could be set to cause the
  4142.           _termcap_ or _terminfo_ definitions to be used instead of the
  4143.           built in definitions. Beginning with 4.00 this hidden runtime
  4144.           feature can be turned on to accomplish the same thing.
  4145.    _try-alternative-authentication-driver-first_
  4146.           This feature controls how _Pine_ provides authentication
  4147.           credentials to the IMAP server you are connecting to. Normally,
  4148.           _Pine_ and the server negotiate the most secure method to
  4149.           exchange such information.
  4150.           However, some methods aren't available for negotiation, and
  4151.           thus require pre-configuration (typically, per server) on
  4152.           _Pine_'s part. This feature allows _Pine_ to implicitly try an
  4153.           alternative to the default methods that may have been added to
  4154.           _Pine_ when it was built.
  4155.    _use-current-dir_
  4156.           This feature controls an aspect of several commands. If set,
  4157.           your "current working directory" will be used instead of your
  4158.           home directory for all of the following operations:
  4159.           + _Export_ in the "Folder Index" and "Message Text" screens
  4160.           + Attachment _Save_ in the "Message Text" and "Attachment Text"
  4161.             screens
  4162.           + _^R_ file inclusion in the Composer
  4163.           + _^J_ file attachment in the Composer
  4164.    _use-function-keys_
  4165.           This feature specifies that _Pine_ will respond to function
  4166.           keys instead of the normal single-letter commands. In this
  4167.           mode, the key menus at the bottom of each screen will show
  4168.           function key designations instead of the normal mnemonic key.
  4169.    _use-sender-not-x-sender_
  4170.           Normally _Pine_ adds a header line labeled _X-Sender_, if the
  4171.           sender is different from the _From:_ line. The standard
  4172.           specifies that this header line should be labeled _Sender_, not
  4173.           _X-Sender_. Setting this feature causes _Sender_ to be used
  4174.           instead of _X-Sender_.
  4175.    _use-subshell-for-suspend_
  4176.           This feature affects _Pine_'s behavior when process suspension
  4177.           is enabled and then activated via the _^Z_ key. _Pine_
  4178.           suspension allows one to temporarily interact with the
  4179.           operating system command "shell" without quitting _Pine_, and
  4180.           then subsequently resume the still-active _Pine_ session.
  4181.           When the _enable-suspend_ feature is set and subsequently the
  4182.           _^Z_ key is pressed, _Pine_ will normally suspend itself and
  4183.           return temporary control to _Pine_'s parent shell process.
  4184.           However, if this feature is set, _Pine_ will instead create an
  4185.           inferior subshell process. This is useful when the parent
  4186.           process is not intended to be used interactively. Examples
  4187.           include invoking _Pine_ via the -e argument of the Unix _xterm_
  4188.           program, or via a menu system.
  4189.           Note that one typically resumes a suspended _Pine_ by entering
  4190.           the Unix _fg_ command, but if this feature is set, it will be
  4191.           necessary to enter the _exit_ command instead.
  4192.    _vertical-folder-list_
  4193.           This feature controls an aspect of Pine's FOLDER LIST screen.
  4194.           If set, the folders will be listed alphabetically down the
  4195.           columns rather than across the columns as is the default.
  4196.           
  4197. Hidden Config Variables and Features
  4198.  
  4199.    There are several configuration variables and features which are
  4200.    normally hidden from the user. That is, they don't appear on any of
  4201.    the configuration screens. Some of these are suppressed because they
  4202.    are intended to be used by system administrators, and in fact may only
  4203.    be set in system-wide configuration files. Others are available to
  4204.    users but are thought to be of such little value to most users that
  4205.    their presence on the Config screens would cause more confusion than
  4206.    help. Those features may only be set by hand editing the configuration
  4207.    file. You may set the feature expose-hidden-config to cause most of
  4208.    these hidden variables and features to show up in the Setup/Config
  4209.    screen.
  4210.    
  4211.   Hidden Variables Not Settable by Users
  4212.   
  4213.    These variables are settable only in system-wide configuration files.
  4214.      * bugs-additional-data
  4215.      * bugs-address
  4216.      * bugs-fullname
  4217.      * forced-abook-entry
  4218.      * kblock-passwd-count
  4219.      * local-address
  4220.      * local-fullname
  4221.      * mail-directory
  4222.      * standard-printer
  4223.      * suggest-address
  4224.      * suggest-fullname
  4225.        
  4226.   Hidden Variables Which are Settable by Users
  4227.   
  4228.    These variables are not shown to users but are settable by means of
  4229.    hand editing the personal configuration file. This first group is
  4230.    usually maintained by _Pine_ and there will usually be no reason to
  4231.    edit them by hand.
  4232.      * last-version-used
  4233.      * patterns-filters
  4234.      * patterns-indexcolors
  4235.      * patterns-roles
  4236.      * patterns-scores
  4237.      * remote-abook-metafile
  4238.        
  4239.    This group is usually correct but may be changed by system managers or
  4240.    users in special cases.
  4241.      * disable-these-drivers
  4242.      * last-time-prune-questioned
  4243.      * new-version-threshold
  4244.      * remote-abook-history
  4245.      * remote-abook-validity
  4246.      * rsh-command
  4247.      * rsh-open-timeout
  4248.      * rsh-path
  4249.      * save-aggregates-copy-sequence
  4250.      * sendmail-path
  4251.      * ssh-command
  4252.      * ssh-open-timeout
  4253.      * ssh-path
  4254.      * tcp-open-timeout
  4255.      * tcp-query-timeout
  4256.      * tcp-read-warning-timeout
  4257.      * tcp-write-warning-timeout
  4258.      * use-function-keys
  4259.        
  4260.    System managers are usually interested in setting these in the
  4261.    system-wide configuration files, though users may set them if they
  4262.    wish.
  4263.      * operating-dir
  4264.      * user-input-timeout
  4265.        
  4266.   Hidden Features Which are Settable by Users
  4267.   
  4268.    These are _features_ (as opposed to variables) which users or system
  4269.    administrators may set. Some of them only make sense for
  4270.    administrators. To turn these on manually, the configuration file
  4271.    should be edited and the feature added to the _feature-list_ variable.
  4272.    You may set the feature expose-hidden-config to cause these hidden
  4273.    features to show up in the Setup/Config screen. They will be at the
  4274.    bottom of the screen.
  4275.      * allow-changing-from
  4276.      * disable-busy-alarm
  4277.      * disable-config-cmd
  4278.      * disable-keyboard-lock-cmd
  4279.      * disable-password-cmd
  4280.      * disable-pipes-in-sigs
  4281.      * disable-pipes-in-templates
  4282.      * disable-roles-setup-cmd
  4283.      * disable-roles-sig-edit
  4284.      * disable-roles-template-edit
  4285.      * disable-signature-edit-cmd
  4286.      * enable-mailcap-param-substitution
  4287.      * expose-hidden-config
  4288.      * quell-berkeley-format-timezone
  4289.      * quell-imap-envelope-update
  4290.      * quell-news-envelope-update
  4291.      * quell-partial-fetching
  4292.      * save-aggregates-copy-sequence
  4293.      * termdef-takes-precedence
  4294.        
  4295. Retired Variables and Features
  4296.  
  4297.    Variables and features that are no longer used by the current _Pine_
  4298.    version. When an obsolete variable is encountered, its value is
  4299.    applied to any new corresponding setting. The replaced values include:
  4300.    
  4301.    _compose-mime_
  4302.    _elm-style-save_
  4303.           Replaced by _saved-msg-name-rule_
  4304.    _expanded-view-of-addressbooks_
  4305.           This one was retired in 4.00 but made a comeback in 4.10. This
  4306.           is now an active feature.
  4307.    _expanded-view-of-folders_
  4308.           This one was retired in 4.00 but made a comeback in 4.10. This
  4309.           is now an active feature.
  4310.    _feature-level_
  4311.           Replaced by _feature-list._
  4312.    _header-in-reply_
  4313.           Replaced by _include-header-in-reply_ in the _feature-list._
  4314.    _old-style-reply_
  4315.           Replaced by _signature-at-bottom_ in the _feature-list._
  4316.    _use-old-unix-format-write_
  4317.           No replacement.
  4318.    _patterns_
  4319.           Replaced by four separate patterns variables: _patterns-roles_,
  4320.           _patterns-filters_, _patterns-scores_, and
  4321.           _patterns-indexcolors_.
  4322.    _save-by-sender_
  4323.           Replaced by _saved-msg-name-rule._
  4324.    _show-all-characters_
  4325.           No replacement, it always works this way now.
  4326.           
  4327. Tokens for Index and Replying
  4328.  
  4329.    This set of special tokens may be used in the index-format option, in
  4330.    the reply-leadin option, in signature files, and in template files
  4331.    used in roles.
  4332.    
  4333.    The tokens are used as they appear below for the _Index-Format_
  4334.    option, but they must be surrounded by underscores for the
  4335.    _Reply-Leadin_ option, and in signature and template files.
  4336.    
  4337.   _Tokens Available for all Cases_
  4338.   
  4339.    DATE
  4340.           This token represents the date on which the message was sent,
  4341.           according to the "Date" header field. It has the format MMM DD.
  4342.           For example, "Oct 23".
  4343.           
  4344.    SMARTDATE
  4345.           This token represents the date on which the message was sent,
  4346.           according to the "Date" header field. It is "Today" if the
  4347.           message was sent today, "Yesterday" for yesterday, "Wednesday"
  4348.           if it was last Wednesday, and so on. If the message is from
  4349.           more than six months ago it includes the year, as well. There
  4350.           is no adjustment made for different time zones, so you'll get
  4351.           the day the message was sent according to the time zone the
  4352.           sender was in.
  4353.           
  4354.    LONGDATE
  4355.           This token represents the date on which the message was sent,
  4356.           according to the "Date" header field. It has the format MMM DD,
  4357.           YYYY. For example, "Oct 23, 1998".
  4358.           
  4359.    DATEISO
  4360.           This token represents the date on which the message was sent,
  4361.           according to the "Date" header field. It has the format
  4362.           YYYY-MM-DD. For example, "1998-10-23".
  4363.           
  4364.    SHORTDATEISO
  4365.           This token represents the date on which the message was sent,
  4366.           according to the "Date" header field. It has the format
  4367.           YY-MM-DD. For example, "98-10-23".
  4368.           
  4369.    SHORTDATE1
  4370.           This token represents the date on which the message was sent,
  4371.           according to the "Date" header field. It has the format
  4372.           MM/DD/YY. For example, "10/23/98".
  4373.           
  4374.    SHORTDATE2
  4375.           This token represents the date on which the message was sent,
  4376.           according to the "Date" header field. It has the format
  4377.           DD/MM/YY. For example, "23/10/98".
  4378.           
  4379.    SHORTDATE3
  4380.           This token represents the date on which the message was sent,
  4381.           according to the "Date" header field. It has the format
  4382.           DD.MM.YY. For example, "23.10.98".
  4383.           
  4384.    SHORTDATE4
  4385.           This token represents the date on which the message was sent,
  4386.           according to the "Date" header field. It has the format
  4387.           YY.MM.DD. For example, "98.10.23".
  4388.           
  4389.    TIME24
  4390.           This token represents the time at which the message was sent,
  4391.           according to the "Date" header field. There is no adjustment
  4392.           made for different time zones, so you'll get the time the
  4393.           message was sent according to the time zone the sender was in.
  4394.           It has the format HH:MM. For example, "17:28".
  4395.           
  4396.    TIME12
  4397.           This token represents the time at which the message was sent,
  4398.           according to the "Date" header field. This time is for a 12
  4399.           hour clock. It has the format HH:MMpm. For example, "5:28pm" or
  4400.           "11:13am".
  4401.           
  4402.    TIMEZONE
  4403.           This token represents the numeric timezone from the "Date"
  4404.           header field. It has the format [+-]HHMM. For example, "-0800".
  4405.           
  4406.    SUBJECT
  4407.           This token represents the Subject the sender gave the message.
  4408.           
  4409.    FROM
  4410.           This token represents the personal name (or email address if
  4411.           the name is unavailable) of the person specified in the
  4412.           message's "From:" header field.
  4413.           
  4414.    SENDER
  4415.           This token represents the personal name (or email address) of
  4416.           the person listed in the message's "Sender:" header field.
  4417.           
  4418.    TO
  4419.           This token represents the personal names (or email addresses if
  4420.           the names are unavailable) of the persons specified in the
  4421.           message's "To:" header field.
  4422.           
  4423.    NEWSANDTO
  4424.           This token represents the newsgroups from the message's
  4425.           "Newsgroups:" header field _and_ the personal names (or email
  4426.           addresses if the names are unavailable) of the persons
  4427.           specified in the message's "To:" header field.
  4428.           
  4429.    TOANDNEWS
  4430.           Same as "NEWSANDTO" except in the opposite order.
  4431.           
  4432.    NEWS
  4433.           This token represents the newsgroups from the message's
  4434.           "Newsgroups:" header field.
  4435.           
  4436.    CC
  4437.           This token represents the personal names (or email addresses if
  4438.           the names are unavailable) of the persons specified in the
  4439.           message's "Cc:" header field.
  4440.           
  4441.    RECIPS
  4442.           This token represents the personal names (or email addresses if
  4443.           the names are unavailable) of the persons specified in both the
  4444.           message's "To:" header field and the message's "Cc:" header
  4445.           field.
  4446.           
  4447.    NEWSANDRECIPS
  4448.           This token represents the newsgroups from the message's
  4449.           "Newsgroups:" header field _and_ the personal names (or email
  4450.           addresses if the names are unavailable) of the persons
  4451.           specified in the message's "To:" and "Cc:" header fields.
  4452.           
  4453.    RECIPSANDNEWS
  4454.           Same as "NEWSANDRECIPS" except in the opposite order.
  4455.           
  4456.    MONTHABBREV
  4457.           This token represents the month the message was sent, according
  4458.           to the "Date" header field. For example, "Oct".
  4459.           
  4460.   _Tokens Available Only for Index-Format_
  4461.   
  4462.    MSGNO
  4463.           This token represents the message's current position in the
  4464.           folder which, of course, may change as the folder is sorted or
  4465.           new mail arrives.
  4466.           
  4467.    STATUS
  4468.           This token represents a three character wide field displaying
  4469.           various aspects of the message's state. The first character is
  4470.           either blank, a '*' for message marked Important, or a '+'
  4471.           indicating a message addressed directly to you (as opposed to
  4472.           your having received it via a mailing list, for example). When
  4473.           the feature mark-for-cc is set, if the first character would
  4474.           have been blank then it will instead be a '-' if the message is
  4475.           cc'd to you. The second character is typically blank, though
  4476.           the arrow cursor may occupy it if the assume-slow-link feature
  4477.           is set, or you actually are on a slow link. The third character
  4478.           is either the letter 'D' if the message is deleted, 'A' if it
  4479.           is answered (but not deleted), or 'N' if it is new (but not
  4480.           deleted or answered), or blank if it is neither deleted,
  4481.           answered nor new.
  4482.           
  4483.    FULLSTATUS
  4484.           This token represents a less abbreviated alternative to the
  4485.           "STATUS" field. It is six characters wide. The first character
  4486.           is '+', '-', or blank, the second blank, the third either '*'
  4487.           or blank, the fourth 'N' or blank, the fifth 'A' or blank, and
  4488.           the sixth character is either 'D' or blank.
  4489.           
  4490.    IMAPSTATUS
  4491.           This token represents an even less abbreviated alternative to
  4492.           the "FULLSTATUS" field. It differs in only the fourth character
  4493.           which is either an 'N' if the message is new to this folder
  4494.           since the last time it was opened _and_ it has not been viewed,
  4495.           an 'R' if the message is new to the folder and has been viewed
  4496.           (Recent), a 'U' if the message is not new to the folder since
  4497.           it was last opened _but_ has not been viewed (Unseen), or a
  4498.           blank if the message has been in the folder since it was last
  4499.           opened and has been viewed.
  4500.           
  4501.    SIZE
  4502.           This token represents the total size, in bytes, of the message.
  4503.           
  4504.    DESCRIPSIZE
  4505.           This token is intended to represent a more useful description
  4506.           of the message than just its size, but it isn't very useful at
  4507.           this point. The plus sign in this view means there are
  4508.           attachments. Note that including this token in the
  4509.           "Index-Format" could slow down the display a little while _Pine_
  4510.           collects the necessary information.
  4511.           
  4512.    ATT
  4513.           This is a one column wide field which represents the number of
  4514.           attachments a message has. It will be blank if there are no
  4515.           attachments, a single digit for one to nine attachments, or an
  4516.           asterisk for more than nine. Note that including this token in
  4517.           the "Index-Format" could slow down the display a little while
  4518.           _Pine_ collects the necessary information.
  4519.           
  4520.    FROMORTO
  4521.           This token represents _either_ the personal name (or email
  4522.           address) of the person listed in the message's "From:" header
  4523.           field, _or_, if that address is yours or one of your alternate
  4524.           addresses, the first person specified in the message's "To:"
  4525.           header field with the prefix "To: " prepended. If the from
  4526.           address is yours and there is also no "To" address, _Pine_ will
  4527.           use the address on the "Cc" line. If there is no address there,
  4528.           either, _Pine_ will look for a newsgroup name from the
  4529.           "Newsgroups" header field and put that after the "To: " prefix.
  4530.           
  4531.    FROMORTONOTNEWS
  4532.           This is almost the same as _FROMORTO_. The difference is that
  4533.           newsgroups aren't considered. When a message is from you,
  4534.           doesn't have a To or Cc, and does have a Newsgroups header;
  4535.           this token will be your name instead of the name of the
  4536.           newsgroup (like it would be with FROMORTO).
  4537.           
  4538.   _Tokens Available for all but Index-Format_
  4539.   
  4540.    ADDRESS
  4541.           This is similar to the "FROM" token, only it is always the
  4542.           email address, never the personal name. For example,
  4543.           "mailbox@domain".
  4544.           
  4545.    MAILBOX
  4546.           This is the same as the "ADDRESS" except that the domain part
  4547.           of the address is left off. For example, "mailbox".
  4548.           
  4549.    DAYDATE
  4550.           This token represents the date on which the message was sent,
  4551.           according to the "Date" header field. It looks like "Sat, 24
  4552.           Oct 1998" unless the day of the week is not available, in which
  4553.           case it looks like "24 Oct 1998".
  4554.           
  4555.    DAY
  4556.           This token represents the day of the month on which the message
  4557.           was sent, according to the "Date" header field. For example,
  4558.           "24" or "9".
  4559.           
  4560.    DAY2DIGIT
  4561.           This token represents the day of the month on which the message
  4562.           was sent, according to the "Date" header field. For example,
  4563.           "24" or "09".
  4564.           
  4565.    MONTHLONG
  4566.           This token represents the month in which the message was sent,
  4567.           according to the "Date" header field. For example, "October".
  4568.           
  4569.    MONTH
  4570.           This token represents the month in which the message was sent,
  4571.           according to the "Date" header field. For example, "10" or "9".
  4572.           
  4573.    MONTH2DIGIT
  4574.           This token represents the month in which the message was sent,
  4575.           according to the "Date" header field. For example, "10" or
  4576.           "09".
  4577.           
  4578.    YEAR
  4579.           This token represents the year the message was sent, according
  4580.           to the "Date" header field. For example, "1999" or "2001".
  4581.           
  4582.    YEAR2DIGIT
  4583.           This token represents the year the message was sent, according
  4584.           to the "Date" header field. For example, "99" or "01".
  4585.           
  4586.    MSGID
  4587.           This token represents the message ID of the message.
  4588.           
  4589.    CURDATE
  4590.           This token represents the current date. It has the format MMM
  4591.           DD. For example, "Oct 23".
  4592.           
  4593.    CURDATEISO
  4594.           This token represents the current date. It has the format
  4595.           YYYY-MM-DD. For example, "1998-10-23".
  4596.           
  4597.    CURDATEISOS
  4598.           This token represents the current date. It has the format
  4599.           YY-MM-DD. For example, "98-10-23".
  4600.           
  4601.    CURTIME24
  4602.           This token represents the current time. It has the format
  4603.           HH:MM. For example, "17:28".
  4604.           
  4605.    CURTIME12
  4606.           This token represents the current time. This time is for a 12
  4607.           hour clock. It has the format HH:MMpm. For example, "5:28pm" or
  4608.           "11:13am".
  4609.           
  4610.   _Token Available Only for Templates and Signatures_
  4611.   
  4612.    CURSORPOS
  4613.           This token is different from the others. When it is replaced it
  4614.           is replaced with nothing, but it sets a _Pine_ internal
  4615.           variable which tells the composer to start with the cursor
  4616.           positioned at the position where this token was. If both the
  4617.           template file and the signature file contain a "CURSORPOS"
  4618.           token, then the position in the template file is used. If there
  4619.           is a template file and neither it nor the signature file
  4620.           contains a "CURSORPOS" token, then the cursor is positioned
  4621.           after the end of the contents of the template file when the
  4622.           composer starts up.
  4623.           
  4624. Conditional Inclusion of Text for Reply-Leadin, Signatures, and Templates
  4625.  
  4626.    Conditional text inclusion may be used with the Reply-Leadin option,
  4627.    in signature files, and in template files used in roles. It may _not_
  4628.    be used with the _Index-Format_ option.
  4629.    
  4630.    There is a limited if-else capability for including text. The if-else
  4631.    condition is based on whether or not a given token would result in
  4632.    replacement text you specify. The syntax of this conditional inclusion
  4633.    is
  4634.    
  4635.            _token_(match_this, if_matched [ , if_not_matched ] )
  4636.                                       
  4637.    The left parenthesis must follow the underscore immediately, with no
  4638.    intervening space. It means the token is expanded and the results of
  4639.    that expansion are compared against the "match_this" argument. If
  4640.    there is an exact match, then the "if_matched" text is used as the
  4641.    replacement text. Otherwise, the "if_not_matched" text is used. One of
  4642.    the most useful values for the "match_this" argument is the empty
  4643.    string, "". In that case the expansion is compared against the empty
  4644.    string.
  4645.    
  4646.    Here's an example to make it clearer. This text could be included in
  4647.    one of your template files:
  4648.    
  4649.          _NEWS_("", "I'm replying to email","I'm replying to news")
  4650.                                       
  4651.    If that is included in a template file which you are using while
  4652.    replying to a message (because you chose to use the role it was part
  4653.    of), and that message has a newsgroup header and a newsgroup in that
  4654.    header, then the text
  4655.    
  4656.                             I'm replying to news
  4657.                                       
  4658.    will be included in the message you are about to compose. On the other
  4659.    hand, if the message you are replying to does not have a newsgroup,
  4660.    then the text
  4661.    
  4662.                            I'm replying to email
  4663.                                       
  4664.    would be included instead. This would also work in signature files and
  4665.    in the "Reply-Leadin" option. If the "match_this", "if_matched", or
  4666.    "if_not_matched" arguments contain spaces, parentheses, or commas;
  4667.    they have to be quoted with double quotation marks (like in the
  4668.    example above). If you want to include a literal quote in the text you
  4669.    must escape the quote by preceding it with a backslash character. If
  4670.    you want to include a literal backslash character you must escape it
  4671.    by preceding it with another backslash.
  4672.    
  4673.    The comma followed by "if_not_matched" is optional. If there is no
  4674.    "if_not_matched" present then no text is included if the not_matched
  4675.    case is true. Here's another example:
  4676.    
  4677.            _NEWS_("", "", "This msg was seen in group: _NEWS_.")
  4678.                                       
  4679.    Here you can see that tokens may appear in the arguments. The same is
  4680.    true for tokens with the conditional parentheses. They may appear in
  4681.    arguments, though you do have to be careful to get the quoting and
  4682.    escaping of nested double quotes correct. If this was in the signature
  4683.    file being used and you were replying to a message sent to
  4684.    comp.mail.pine the resulting text would be:
  4685.    
  4686.                 This msg was seen in group: comp.mail.pine.
  4687.                                       
  4688.    If you were replying to a message which wasn't sent to any newsgroup
  4689.    the resulting text would be a single blank line. The reason you'd get
  4690.    a blank line is because the end of the line is outside of the
  4691.    conditional, so is always included. If you wanted to get rid of that
  4692.    blank line you could do so by moving the end of line inside the
  4693.    conditional. In other words, it's ok to have multi-line "if_matched"
  4694.    or "if_not_matched" arguments. The text just continues until the next
  4695.    double quotation, even if it's not on the same line.
  4696.    
  4697.    Here's one more (contrived) example illustrating a matching argument
  4698.    which is not the empty string.
  4699.    
  4700.         _SMARTDATE_("Today", _SMARTDATE_, "On _DATE_") _FROM_ wrote:
  4701.                                       
  4702.    If this was the value of your "Reply-Leadin" option and you were
  4703.    replying to a message which was sent today, then the value of the
  4704.    "Reply-Leadin" would be
  4705.    
  4706.                         Today Fred Flintstone wrote:
  4707.                                       
  4708.    But if you were replying to a message sent on Oct. 27 (and that wasn't
  4709.    today) you would get
  4710.    
  4711.                       On Oct 27 Fred Flintstone wrote:
  4712.                                       
  4713. Per Server Directory Configuration
  4714.  
  4715.    This is only available if _Pine_ was linked with an LDAP library when
  4716.    it was compiled. If that's the case, there will be a Directory option
  4717.    underneath the Setup command on the Main Menu. Each server that is
  4718.    defined there has several configuration variables which control the
  4719.    behavior when using it.
  4720.    _ldap-server_
  4721.           This is the name of the host where an LDAP server is running.
  4722.           To find out whether your organization has its own LDAP server,
  4723.           contact its computing support staff.
  4724.    _search-base_
  4725.           This is the search base to be used on this server. It functions
  4726.           as a filter by restricting your searches in the LDAP server
  4727.           database to the specified contents of the specified fields.
  4728.           Without it, searches submitted to this directory server may
  4729.           fail. It might be something like:
  4730.       O = <Your Organization Name>, C = US
  4731.           or it might be blank. (Some LDAP servers actually ignore
  4732.           anything specified here.)
  4733.           If in doubt what parameters you should specify here, contact
  4734.           the maintainers of the LDAP server.
  4735.    _port_
  4736.           This is the TCP port number to be used with this LDAP server.
  4737.           If you leave this blank port 389 will be used.
  4738.    _nickname_
  4739.           This is a nickname to be used in displays. If you don't supply
  4740.           a nickname the server name from "ldap-server" will be used
  4741.           instead. This option is strictly for your convenience.
  4742.    _use-implicitly-from-composer_
  4743.           Set this feature to have lookups done to this server implicitly
  4744.           from the composer. If an address doesn't look like a
  4745.           fully-qualified address, it will be looked up in your address
  4746.           books, and if it doesn't match a nickname there, then it will
  4747.           be looked up on the LDAP servers which have this feature set.
  4748.           Also see the LDAP feature lookup-addrbook-contents and the
  4749.           Setup/Config feature ldap-result-to-addrbook-add.
  4750.    _lookup-addrbook-contents_
  4751.           Normally implicit LDAP lookups from the composer are done only
  4752.           for the strings you type in from the composer screen. In other
  4753.           words, you type in something in the To or CC field and press
  4754.           return, then the string is looked up. First that string is
  4755.           looked up in your address books. If a match is found there,
  4756.           then the results of that match are looked up again. If you
  4757.           place a string in your address book that you want to have
  4758.           looked up on the LDAP directory server, you need to turn on
  4759.           this feature. If you set this feature for a server, you almost
  4760.           always will also want to set the use-implicitly-from-composer
  4761.           feature. An example might serve to best illustrate this
  4762.           feature.
  4763.           If an LDAP lookup of "William Clinton" normally returns an
  4764.           entry with an address of pres@whitehouse.gov, then you might
  4765.           put an entry in your address book that looks like:
  4766.     Nickname     Address
  4767.     bill         "William Clinton"
  4768.           Now, when you type "bill" into an address field in the composer
  4769.           _Pine_ will find the "bill" entry in your address book. It will
  4770.           replace "bill" with "William Clinton". It will then search for
  4771.           an entry with that nickname in your address book and not find
  4772.           one. If this feature is set, _Pine_ will then attempt to lookup
  4773.           "William Clinton" on the LDAP server and find the entry with
  4774.           address pres@whitehouse.gov.
  4775.           A better way to accomplish the same thing is probably to use
  4776.           the feature save-search-criteria-not-result.
  4777.    _save-search-criteria-not-result_
  4778.           Normally when you save the results of an LDAP directory lookup
  4779.           to your address book the _results_ of the lookup are saved. If
  4780.           this feature is set and the entry being saved was found on this
  4781.           directory server, then the search _criteria_ is saved instead
  4782.           of the _results_ of the search. When this address book entry is
  4783.           used in the future, instead of copying the results from the
  4784.           address book the directory lookup will be done again. This
  4785.           could be useful if the copied result might become stale because
  4786.           the data on the directory server changes (for example, the
  4787.           entry's email address changes). You probably don't want to set
  4788.           this feature if the server is at all slow or unreliable.
  4789.           The way this actually works is that instead of saving the email
  4790.           address in your address book, _Pine_ saves enough information
  4791.           to look up the same directory entry again. In particular, it
  4792.           saves the server name and the distinguished name of the entry.
  4793.           It's possible that the server administrators might change the
  4794.           format of distinguished names on the server, or that the entry
  4795.           might be removed from the server. If _Pine_ notices this, you
  4796.           will be warned and a backup copy of the email address will be
  4797.           used. You may want to create a new entry in this case, since
  4798.           you will get the annoying warning every time you use the old
  4799.           entry. You may do that by Saving the entry to a new nickname in
  4800.           the same address book. You will be asked whether or not you
  4801.           want to use the backup email address.
  4802.           A related feature in the Setup/Config screen is
  4803.           ldap-result-to-addrbook-add.
  4804.    _disable-ad-hoc-space-substitution_
  4805.           Spaces in your input are normally handled specially. Each space
  4806.           character is replaced by
  4807.      * <SPACE>
  4808.           in the search query (but not by "* <SPACE> *"). The reason this
  4809.           is done is so the input string
  4810.      Greg Donald
  4811.           (which is converted to "Greg* Donald") will match the names
  4812.           "Greg Donald", "Gregory Donald", "Greg F. Donald", and "Gregory
  4813.           F Donald"; but it won't match "Greg McDonald". If the
  4814.           "Search-Rule" you were using was "begins-with", then it would
  4815.           also match the name "Greg Donaldson".
  4816.           Turning on this feature will disable this substitution.
  4817.    _search-type_
  4818.           This affects the way that LDAP searches are done. In
  4819.           particular, this tells the server where to look for the string
  4820.           to be matched. If set to "name" then the string that is being
  4821.           searched for will be compared with the string in the "Name"
  4822.           field on the server (technically, it is the "commonname" field
  4823.           on the server). "Surname" means we're looking for a match in
  4824.           the "Surname" field on the server (actually the "sn" field).
  4825.           "Givenname" really is "givenname" and "email" is the electronic
  4826.           mail address (this is actually the field called "mail" or
  4827.           "electronicmail" on the server). The other three types are
  4828.           combinations of the types listed so far. "Name-or-email" means
  4829.           the string should appear in either the "name" field OR the
  4830.           "email" field. Likewise, "surname-or-givenname" means "surname"
  4831.           OR "givenname" and "sur-or-given-or-name-or-email" means the
  4832.           obvious thing.
  4833.           This search _type_ is combined with the search rule to form the
  4834.           actual search query.
  4835.           The usual default value for this option is
  4836.           "sur-or-given-or-name-or-email". This type of search may be
  4837.           slow on some servers. Try "name-or-email", which is often
  4838.           faster, or just "name" if the performance seems to be a
  4839.           problem.
  4840.           Some servers have been configured with different attribute
  4841.           names for these four fields. In other words, instead of using
  4842.           the attribute name "mail" for the email address field, the
  4843.           server might be configured to use something else, for example,
  4844.           "rfc822mail" or "internetemailaddress". _Pine_ can be
  4845.           configured to use these different attribute names by using the
  4846.           four per-server configuration options:
  4847.           + email-attribute
  4848.           + name-attribute
  4849.           + surname-attribute
  4850.           + givenname-attribute
  4851.    _search-rule_
  4852.           This affects the way that LDAP searches are done. If set to
  4853.           "equals" then only exact matches count. "Contains" means that
  4854.           the string you type in is a substring of what you are matching
  4855.           against. "Begins-with" and "ends-with" mean that the string
  4856.           starts or ends with the string you type in.
  4857.           Spaces in your input are normally handled specially, but you
  4858.           can turn that special handling off with the
  4859.           disable-ad-hoc-space-substitution feature.
  4860.           The usual default value for this option is _begins-with_.
  4861.    _email-attribute_
  4862.           This is the name of the attribute which is searched for when
  4863.           looking for an email address. The default value for this option
  4864.           is "mail" or "electronicmail". If the server you are using uses
  4865.           a different attribute name for the email address, put that
  4866.           attribute name here.
  4867.           This will affect the search filter used if your Search-Type is
  4868.           one that contains a search for "email". It will also cause the
  4869.           attribute value matching this attribute name to be used as the
  4870.           email address when you look up an entry from the composer.
  4871.    _name-attribute_
  4872.           This is the name of the attribute which is searched for when
  4873.           looking for the name of the entry. The default value for this
  4874.           option is "cn", which stands for common name. If the server you
  4875.           are using uses a different attribute name for the name, put
  4876.           that attribute name here. This will affect the search filter
  4877.           used if your Search-Type is one that contains a search for
  4878.           "name".
  4879.    _surname-attribute_
  4880.           This is the name of the attribute which is searched for when
  4881.           looking for the surname of the entry. The default value for
  4882.           this option is "sn". If the server you are using uses a
  4883.           different attribute name for the surname, put that attribute
  4884.           name here. This will affect the search filter used if your
  4885.           Search-Type is one that contains a search for "surname".
  4886.    _givenname-attribute_
  4887.           This is the name of the attribute which is searched for when
  4888.           looking for the given name of the entry. The default value for
  4889.           this option is "givenname". If the server you are using uses a
  4890.           different attribute name for the given name, put that attribute
  4891.           name here. This will affect the search filter used if your
  4892.           Search-Type is one that contains a search for "givenname".
  4893.    _timelimit_
  4894.           This places a limit on the number of seconds the LDAP search
  4895.           will continue. The default is 30 seconds. A value of 0 means no
  4896.           limit. Note that some servers may place limits of their own on
  4897.           searches.
  4898.    _sizelimit_
  4899.           This places a limit on the number of entries returned by the
  4900.           LDAP server. A value of 0 means no limit. The default is 0.
  4901.           Note that some servers may place limits of their own on
  4902.           searches.
  4903.    _custom-search-filter_
  4904.           This one is for advanced users only! If you define this, then
  4905.           the search-type and search-rule defined are both ignored.
  4906.           However, the feature disable-ad-hoc-space-substitution is still
  4907.           in effect. That is, the space substitution will take place even
  4908.           in a custom filter unless you disable it.
  4909.           If your LDAP service stops working and you suspect it might be
  4910.           because of your custom filter, just delete this filter and try
  4911.           using the _search-type_ and _search-rule_ instead. Another
  4912.           option that sometimes causes trouble is the search-base option.
  4913.           This variable may be set to the string representation of an
  4914.           LDAP search filter (see RFC1960). In the places where you want
  4915.           the address string to be substituted in, put a '%s' in this
  4916.           filter string. Here are some examples:
  4917.           A "Search-Type" of "name" with "Search-Rule" of "begins-with"
  4918.           is equivalent to the "custom-search-filter"
  4919.      (cn=%s*)
  4920.           When you try to match against the string "string" the program
  4921.           replaces the "%s" with "string" (without the quotes). You may
  4922.           have multiple "%s"'s and they will all be replaced with the
  4923.           string. There is a limit of 10 "%s"'s.
  4924.           A "Search-Type" of "name-or-email" with "Search-Rule" of
  4925.           "contains" is equivalent to
  4926.      (|(cn=*%s*)(mail=*%s*))
  4927.           If your server uses a different attribute _name_ than _Pine_
  4928.           uses by default, (for example, it uses "rfc822mail" instead of
  4929.           "mail"), then you may be able to use one or more of the four
  4930.           attribute configuration options instead of defining a custom
  4931.           filter:
  4932.           + email-attribute
  4933.           + name-attribute
  4934.           + surname-attribute
  4935.           + givenname-attribute
  4936.           
  4937. Color Configuration
  4938.  
  4939.    If the terminal or terminal emulator you are using is capable of using
  4940.    color (see color-style option), or if you are using _PC-Pine_, then it
  4941.    is possible to set up _Pine_ so that various parts of the display will
  4942.    be shown in colors you configure. This is done using the Setup Color
  4943.    screen. The Setup Color screen is divided into three broad sections,
  4944.    General Colors, Index Colors, and Header Colors. In addition to these
  4945.    three categories you may also color lines in the MESSAGE INDEX screen
  4946.    by configuring the Index Line Color.
  4947.    
  4948.    Each color is defined as a foreground color (the color of the actual
  4949.    text) and a background color (the color of the area behind the text).
  4950.    
  4951.   General Colors
  4952.   
  4953.    _Normal Color_
  4954.           This is the color which most of the screen is painted in.
  4955.    _Reverse Color_
  4956.           The color _Pine_ uses for reverse video characters. Actually,
  4957.           the name is misleading. This used to be reverse video and so
  4958.           the name remains. It is still used to highlight certain parts
  4959.           of the screen but the color may be set to whatever you'd like.
  4960.    _Title Color_
  4961.           The color _Pine_ uses for the titlebar (the top line on the
  4962.           screen). By default, the Title Color is the same as the Reverse
  4963.           Color.
  4964.    _Status Color_
  4965.           The color _Pine_ uses for messages written to the status
  4966.           message line near the bottom of the screen. By default, the
  4967.           Status Color is the same as the Reverse Color.
  4968.    _KeyLabel Color_
  4969.           The color _Pine_ uses for the labels of the commands in the
  4970.           two-line menu at the bottom of the screen. The label is the
  4971.           long name, for example, "PrevMsg". By default, the KeyLabel
  4972.           Color is the same as the Normal Color.
  4973.    _KeyName Color_
  4974.           The color _Pine_ uses for the names of the commands in the
  4975.           two-line menu at the bottom of the screen. The KeyName is the
  4976.           shorter name in the menu. For example, the "W" before the
  4977.           "WhereIs". By default, the KeyName Color is the same as the
  4978.           Normal Color.
  4979.    _Selectable-item Color_
  4980.           The color _Pine_ uses for displaying selectable items, such as
  4981.           URLs. By default, the Selectable-item Color is the same as the
  4982.           Normal Color, except it is also Bold.
  4983.    _Quote Colors_
  4984.           The colors _Pine_ uses for coloring quoted text in the MESSAGE
  4985.           TEXT screen. If a line begins with a > character (or space
  4986.           followed by >) it is considered a quote. That line will be
  4987.           given the Quote1 Color (first level quote). If there is a
  4988.           second level of quoting then the Quote2 Color will be used.
  4989.           _Pine_ considers there to be a second level of quoting if that
  4990.           first > is followed by another > (or space followed by >). If
  4991.           there are characters other than whitespace and > signs, then it
  4992.           isn't considered another level of quoting. Similarly, if there
  4993.           is a third level of quoting the Quote3 Color will be used. If
  4994.           there are more levels after that the Quote Colors are reused.
  4995.           If you define all three colors then it would repeat like
  4996.           Color1, Color2, Color3, Color1, Color2, Color3, ... If you only
  4997.           define the first two it would be Color1, Color2, Color1,
  4998.           Color2, ... If you define only the Quote1 Color, then the
  4999.           entire quote would be that color regardless of the quoting
  5000.           levels. If you define a Quote Color to be the same as the
  5001.           Normal Color, that's treated the same as if you didn't define
  5002.           it at all. By default, the Quote Colors are the same as the
  5003.           Normal Color.
  5004.    _Prompt Color_
  5005.           The color _Pine_ uses for confirmation prompts and questions
  5006.           which appear in the status message line near the bottom of the
  5007.           screen. By default, the Prompt Color is the same as the Reverse
  5008.           Color.
  5009.           
  5010.   Index Colors
  5011.   
  5012.    You may add color to the single character symbols which give the
  5013.    status of each message in the MESSAGE INDEX. By default the characters
  5014.    "+", "*", "D", "A", and "N" show up near the left hand side of the
  5015.    screen, depending on whether the message is addressed to you, and
  5016.    whether the message is marked Important, is Deleted, is Answered, or
  5017.    is New. You may set the color of those symbols. By default, all of
  5018.    these symbols are drawn with the same color as the rest of the index
  5019.    line they are a part of.
  5020.    
  5021.    Besides coloring the message status symbols, you may also color the
  5022.    entire index line. This is done by using the Index Line Color
  5023.    configuration screen.
  5024.    
  5025.    _Index-to-me Symbol Color_
  5026.           The color used for drawing the "+" symbol which signifies a
  5027.           message is addressed directly to you.
  5028.    _Index-important Symbol Color_
  5029.           The color used for drawing the "*" symbol which signifies a
  5030.           message has been flagged Important.
  5031.    _Index-deleted Symbol Color_
  5032.           The color used for drawing the "D" symbol which signifies a
  5033.           message has been marked Deleted.
  5034.    _Index-answered Symbol Color_
  5035.           The color used for drawing the "A" symbol which signifies a
  5036.           message has been answered.
  5037.    _Index-new Symbol Color_
  5038.           The color used for drawing the "N" symbol which signifies a
  5039.           message is New.
  5040.    _Index-recent Symbol Color_
  5041.           The color used for drawing the "R" symbol which signifies a
  5042.           message is Recent (only visible if the "IMAPSTATUS" token is
  5043.           part of the index-format option).
  5044.    _Index-unseen Symbol Color_
  5045.           The color used for drawing the "U" symbol which signifies a
  5046.           message is Unseen (only visible if the "IMAPSTATUS" token is
  5047.           part of the index-format option).
  5048.           
  5049.   Header Colors
  5050.   
  5051.    You may add color to the header fields in the MESSAGE TEXT screen. For
  5052.    example, you may set the color of the contents of the Subject field or
  5053.    the From field.
  5054.    
  5055.    For Header Colors, there is an additional line on the configuration
  5056.    screen labeled "Pattern to match". If you leave that blank, then the
  5057.    whole field for that header will always be colored. However, if you
  5058.    give a pattern to match, the coloring will only take place if there is
  5059.    a match for that pattern in the value of the field. For example, if
  5060.    you are working on a color for the Subject header and you fill in a
  5061.    pattern of "important", then only Subjects which contain the word
  5062.    "important" will be colored. For address fields like From or To, a
  5063.    pattern match will cause only the addresses which match the pattern to
  5064.    be colored.
  5065.    
  5066.    If the pattern you enter is a comma-separated list of patterns, then
  5067.    coloring happens if any of those patterns matches.
  5068.    
  5069.   Index Line Colors
  5070.   
  5071.    You may color whole index lines by using roles. This isn't configured
  5072.    in the Setup Colors screen, but is configured in the Setup Rules
  5073.    IndexColor screen.
  5074.    
  5075. Index Line Color Configuration
  5076.  
  5077.    Index Line Color causes lines in the MESSAGE INDEX screen to be
  5078.    colored. This action is only available if your terminal is capable of
  5079.    displaying color and color display has been enabled with the
  5080.    Color-Style option. (In PC-Pine, color is always enabled so there is
  5081.    no option to turn on.)
  5082.    
  5083.    Each rule has a "Pattern", which is used to decide which of the rules
  5084.    is used; and the color which is used if the Pattern matches a
  5085.    particular message.
  5086.    
  5087.   Rule Patterns
  5088.   
  5089.    In order to determine whether or not a message matches a rule the
  5090.    message is compared with the rule's Pattern. These Patterns are the
  5091.    same for use with Roles, Filtering, Index Coloring, and Scoring, so
  5092.    are described in only one place, "here".
  5093.    
  5094.   Index Line Color
  5095.   
  5096.    This is the color that index lines are colored when there is a
  5097.    matching Pattern. This colors the whole index line, except possibly
  5098.    the status letters which may be colored separately using the Setup
  5099.    Kolor screen.
  5100.    
  5101. Role Configuration
  5102.  
  5103.    You may play different roles depending on who you are replying to. For
  5104.    example, if you are replying to a message addressed to _help-desk_ you
  5105.    may be acting as a Help Desk Worker. That role may require that you
  5106.    use a different return address and/or a different signature.
  5107.    
  5108.    Roles are optional. If you set up roles they work like this: Each role
  5109.    has a set of "Uses", which indicate whether or not a role is eligible
  5110.    to be considered for a particular use; a "Pattern", which is used to
  5111.    decide which of the eligible roles is used; and a set of "Actions",
  5112.    which are taken when that role is used. When you reply to a message,
  5113.    the message you are replying to is compared with the Patterns of the
  5114.    roles marked as eligible for use when replying. The comparisons start
  5115.    with the first eligible role and keep going until there is a match. If
  5116.    a match is found, the matching role's Actions are taken.
  5117.    
  5118.   Role Uses
  5119.   
  5120.    There are three types of use to be configured; one for Replying, one
  5121.    for Forwarding, and one for Composing. These indicate whether or not
  5122.    you want a role to be considered when you type the Reply, Forward, or
  5123.    Compose commands. (The Role command is an alternate form of the
  5124.    Compose command, and it is not affected by these settings.) Each of
  5125.    these Use types has three possible values. The value "Never" means
  5126.    that the role will never be considered as a candidate for use with the
  5127.    corresponding command. For example, if you set a role's Reply Use to
  5128.    Never, then when you Reply to a message, the role won't even be
  5129.    considered. (That isn't quite true. If the message you are replying to
  5130.    matches some other role which requires confirmation, then there will
  5131.    be a ^T command available which allows you to select a role from all
  5132.    of your roles, not just the reply-eligible roles.)
  5133.    
  5134.    The options "With confirmation" and "Without confirmation" both mean
  5135.    that you do want to consider this role when using the corresponding
  5136.    command. For either of these settings the role's Pattern will be
  5137.    checked to see if it matches the message. For Reply Use, the message
  5138.    used to compare the Patterns with is the message being replied to. For
  5139.    Forward Use, the message used to compare the Pattern with is the
  5140.    message being forwarded. For Compose Use, there is no message, so the
  5141.    parts of the Pattern which depend on a message (everything other than
  5142.    Current Folder Type) are ignored. In all cases, the Current Folder is
  5143.    checked if defined, and the Score Interval is checked if defined. If
  5144.    there is a match then this role will either be used without
  5145.    confirmation or will be the default when confirmation is asked for,
  5146.    depending on which of the two options is selected. If confirmation is
  5147.    requested, you will have a chance to choose No Role instead of the
  5148.    offered role, or to change the role to any one of your other roles
  5149.    (with the ^T command).
  5150.    
  5151.   Role Patterns
  5152.   
  5153.    In order to determine whether or not a message matches a role the
  5154.    message is compared with the Role Pattern. These Patterns are the same
  5155.    for use with Roles, Filtering, Index Coloring, and Scoring, so are
  5156.    described in only one place, "here".
  5157.    
  5158.    Since header patterns and AllText patterns which are unset are
  5159.    ignored, a role which has all header patterns unset, the AllText
  5160.    pattern unset, the Score Interval unset, and the Current Folder Type
  5161.    set to "Any" may be used as a default role. It should be put last in
  5162.    the list of roles since the matching starts at the beginning and
  5163.    proceeds until one of the roles is a match. If no roles at all match,
  5164.    then _Pine_ will use its regular methods of defining the role. If you
  5165.    wanted to, you could define a different "default" role for Replying,
  5166.    Forwarding, Composing, and Index Line Color by setting the "Use"
  5167.    fields appropriately.
  5168.    
  5169.   Role Actions
  5170.   
  5171.    Once a role match is found, the role's Actions are taken. For each
  5172.    role there are several possible actions that may be defined. They are
  5173.    actions to set the From address, the Reply-To address, the Fcc, the
  5174.    Signature file, and the Template file.
  5175.    
  5176.     Initialize Setttings Using Role
  5177.     
  5178.    This is a power user feature. You will usually want to leave this
  5179.    field empty. The value of this field is the nickname of another one of
  5180.    your roles. The action values from that other role are used as the
  5181.    initial values of the action items for this role. If you put something
  5182.    in any of the action fields for this role, that will override whatever
  5183.    was in the corresponding field of the initializer role. The fields
  5184.    affected by this field are the fields labeled "Set From", "Set
  5185.    Reply-To", "Set Other Headers", "Set Fcc", "Set LiteralSig", "Set
  5186.    Signature", and "Set Template".
  5187.    
  5188.    You might use this field if the "action" part of one of your roles is
  5189.    something you want to use in more than one role. Instead of filling in
  5190.    those action values again for each role, you may give the nickname of
  5191.    the role where the values are filled in. It's just a shortcut way to
  5192.    define role actions.
  5193.    
  5194.    Here's an example to help explain how this works. Suppose you have a
  5195.    role with nickname "role1" and role1 has (among other things)
  5196.    
  5197.                          Set Signature = sig_file1
  5198.                                       
  5199.    set. If in "role2" you set "Initialize settings using role" to
  5200.    "role1", then role2 will inherit the Set Signature value from role1 by
  5201.    default (and any of the three other action values that are set). So if
  5202.    role2 had
  5203.    
  5204.                               Set Signature =
  5205.                                       
  5206.    defined, the signature file used with role2 would be "sig-file1".
  5207.    However, if role2 had
  5208.    
  5209.                          Set Signature = sig_file2
  5210.                                       
  5211.    defined, then the signature file used with role2 would be "sig-file2".
  5212.    
  5213.    If you wish, you may choose a nickname from your list of roles by
  5214.    using the "T" command.
  5215.    
  5216.     Set From
  5217.     
  5218.    This field consists of a single address which will be used as the From
  5219.    address on the message you are sending. This should be a
  5220.    fully-qualified address like
  5221.    
  5222.                           Full Name <user@domain>
  5223.                                       
  5224.    or just
  5225.    
  5226.                                 user@domain
  5227.                                       
  5228.    If this is left blank, then the normal From address will be used.
  5229.    
  5230.     Set Reply-To
  5231.     
  5232.    The Reply-To address is the address used on the Reply-To line of the
  5233.    message you are sending. You don't need a Reply-To address unless it
  5234.    is different from the From address. This should be a fully-qualified
  5235.    address like
  5236.    
  5237.                           Full Name <user@domain>
  5238.                                       
  5239.    or just
  5240.    
  5241.                                 user@domain
  5242.                                       
  5243.    If this is left blank, then there won't be a Reply-To address unless
  5244.    you have configured one specially with the customized-hdrs
  5245.    configuration option.
  5246.    
  5247.     Set Other-Hdrs
  5248.     
  5249.    This field gives you a way to set values for headers besides "From"
  5250.    and "Reply-To". If you want to set either of those, use the specific
  5251.    "Set From" and "Set Reply-To" settings.
  5252.    
  5253.    This field is similar to the customized-hdrs option. Each header you
  5254.    specify here must include the header tag ("To:", "Approved:", etc.)
  5255.    and may optionally include a value for that header. In order to see
  5256.    these headers when you compose using this role you must use the rich
  5257.    header command. Here's an example which shows how you might set the To
  5258.    address.
  5259.    
  5260.                 Set Other Hdrs = To: Full Name <user@domain>
  5261.                                       
  5262.    Headers set in this way are different from headers set with the
  5263.    customized-hdrs option in that the value you give for a header here
  5264.    will replace any value that already exists. For example, if you are
  5265.    Replying to a message there will already be at least one address in
  5266.    the To header (the address you are Replying to). However, if you Reply
  5267.    using a role which sets the To header, that role's To header value
  5268.    will be used instead. The customized-hdrs headers are defaults.
  5269.    
  5270.    Limitation: Because commas are used to separate the list of Other
  5271.    Headers, it is not possible to have the value of a header contain a
  5272.    comma; nor is there currently an "escape" mechanism provided to make
  5273.    this work.
  5274.    
  5275.     Set Fcc
  5276.     
  5277.    This field consists of a single folder name which will be used in the
  5278.    Fcc field of the message you are sending. You may put anything here
  5279.    that you would normally type into the Fcc field from the composer.
  5280.    
  5281.    In addition, an fcc of "" (two double quotation marks) means no Fcc.
  5282.    
  5283.    A blank field here means that _Pine_ will use its normal rules for
  5284.    deciding the default value of the Fcc field. For many roles, perhaps
  5285.    most, it may make more sense for you to use the other _Pine_
  5286.    facilities for setting the Fcc. In particular, if you want the Fcc to
  5287.    depend on who you are sending the message to then the fcc-name-rule is
  5288.    probably more useful. In that case, you would want to leave the Fcc
  5289.    field here blank. However, if you have a role that depends on who the
  5290.    message you are replying to was From, or what address that message was
  5291.    sent to; then it might make sense to set the Fcc for that role here.
  5292.    
  5293.     Set LiteralSig
  5294.     
  5295.    This field contains the actual text for your signature, as opposed to
  5296.    the name of a file containing your signature. If this is defined it
  5297.    takes precedence over any value set in the _Set Signature_ field.
  5298.    
  5299.    This is simply a different way to store the signature. The signature
  5300.    is stored inside your Pine configuration file instead of in a separate
  5301.    signature file. Tokens work the same way they do with _Set Signature_.
  5302.    
  5303.    The two character sequence \n (backslash followed by the character n)
  5304.    will be used to signify a line-break in your signature. You don't have
  5305.    to enter the \n, but it will be visible in the CHANGE THIS ROLE RULE
  5306.    window after you are done editing the signature.
  5307.    
  5308.     Set Signature
  5309.     
  5310.    The Signature is the name of a file to be used as the signature file
  5311.    when this role is being used. If the filename is followed by a
  5312.    vertical bar (|) then instead of reading the contents of the file the
  5313.    file is assumed to be a program which will produce the text to be used
  5314.    on its standard output. The program can't have any arguments and
  5315.    doesn't receive any input from _Pine_, but the rest of the processing
  5316.    works as if the contents came from a file.
  5317.    
  5318.    Signature files may be stored remotely on an IMAP server. In order to
  5319.    do that you just give the file a remote name. This works just like the
  5320.    regular signature-file option which is configured from the
  5321.    Setup/Configuration screen. A remote signature file name might look
  5322.    like:
  5323.    
  5324.                   {myimaphost.myschool.k12.wa.us}mail/sig3
  5325.                                       
  5326.    or, if you have an SSL-capable version of _Pine_, you might try
  5327.    
  5328.         {myimaphost.myschool.k12.wa.us/user=loginname/ssl}mail/sig3
  5329.                                       
  5330.    Once you have named the remote signature file you create its contents
  5331.    by using the "F" "editFile" command when the cursor is on the "Set
  5332.    Signature" line of the role editor.
  5333.    
  5334.    Besides containing regular text, a signature file may also contain (or
  5335.    a signature program may produce) tokens which are replaced with text
  5336.    which depends on the message you are replying to or forwarding. The
  5337.    tokens all look like _word_ (a word surrounded by underscores). For
  5338.    example, if the token
  5339.    
  5340.                                    _DATE_
  5341.                                       
  5342.    is included in the text of the signature file, then when you reply to
  5343.    or forward a message, the token will be replaced with the actual date
  5344.    the message you are replying to or forwarding was sent.
  5345.    
  5346.    If you use a role which has a signature file for a plain composition
  5347.    (that is, not a reply or forward) then there is no original message,
  5348.    so any tokens which depend on the message will be replaced with
  5349.    nothing. So if you want a signature file to be useful for new
  5350.    compositions it shouldn't include any of the tokens which depend on
  5351.    the message being replied to or forwarded.
  5352.    
  5353.    The list of available tokens is here.
  5354.    
  5355.    Actually, for the adventurous, there is a way to conditionally include
  5356.    text based on whether or not a token would result in specific
  5357.    replacement text. For example, you could include some text based on
  5358.    whether or not the _NEWS_ token would result in any newsgroups if it
  5359.    was used. It's explained in detail here.
  5360.    
  5361.    In the very unlikely event that you want to include a literal token in
  5362.    a signature file, you must precede it with a backslash character. For
  5363.    example, to include the literal text _DATE_ you must actually use
  5364.    \_DATE_. It is not possible to have a literal backslash followed by an
  5365.    expanded token.
  5366.    
  5367.    A blank field here means that _Pine_ will use its normal rules for
  5368.    deciding which file (if any) to use for the signature file.
  5369.    
  5370.     Set Template
  5371.     
  5372.    A Template is the name of a file to be included in the message when
  5373.    this role is being used. The template file is a file which is included
  5374.    at the top of the message you are composing.
  5375.    
  5376.    If the filename is followed by a vertical bar (|) then instead of
  5377.    reading the contents of the file the file is assumed to be a program
  5378.    which will produce the text to be used on its standard output. The
  5379.    program can't have any arguments and doesn't receive any input from
  5380.    _Pine_, but the rest of the processing works as if the contents came
  5381.    from a file.
  5382.    
  5383.    Template files may be stored remotely on an IMAP server. In order to
  5384.    do that you just give the file a remote name. This works just like the
  5385.    regular signature-file option which is configured from the
  5386.    Setup/Configuration screen. A remote template file name might look
  5387.    like:
  5388.    
  5389.                  {myimaphost.myschool.k12.wa.us}mail/templ3
  5390.                                       
  5391.    or, if you have an SSL-capable version of _Pine_, you might try
  5392.    
  5393.        {myimaphost.myschool.k12.wa.us/user=loginname/ssl}mail/templ3
  5394.                                       
  5395.    Once you have named the remote template file you create its contents
  5396.    by using the "F" "editFile" command when the cursor is on the "Set
  5397.    Template" line of the role editor.
  5398.    
  5399.    Besides containing regular text, a template file may also contain (or
  5400.    a template file program may produce) tokens which are replaced with
  5401.    text which depends on the message you are replying to or forwarding.
  5402.    The tokens all look like _word_ (a word surrounded by underscores).
  5403.    For example, if the token
  5404.    
  5405.                                    _DATE_
  5406.                                       
  5407.    is included in the text of the template file, then when you reply to
  5408.    or forward a message, the token will be replaced with the actual date
  5409.    the message you are replying to or forwarding was sent.
  5410.    
  5411.    If you use a role which has a template file for a plain composition
  5412.    (that is, not a reply or forward) then there is no original message,
  5413.    so any tokens which depend on the message will be replaced with
  5414.    nothing. So if you want a template file to be useful for new
  5415.    compositions it shouldn't include any of the tokens which depend on
  5416.    the message being replied to or forwarded.
  5417.    
  5418.    The list of available tokens is here.
  5419.    
  5420.    Actually, for the adventurous, there is a way to conditionally include
  5421.    text based on whether or not a token would result in specific
  5422.    replacement text. For example, you could include some text based on
  5423.    whether or not the _NEWS_ token would result in any newsgroups if it
  5424.    was used. It's explained in detail here.
  5425.    
  5426.    In the very unlikely event that you want to include a literal token in
  5427.    a template file, you must precede it with a backslash character. For
  5428.    example, to include the literal text _DATE_ you must actually use
  5429.    \_DATE_. It is not possible to have a literal backslash followed by an
  5430.    expanded token.
  5431.    
  5432.    A blank field here means that _Pine_ will not use a template file when
  5433.    this role is being used.
  5434.    
  5435.    If any of the actions are left unset, then the action depends on what
  5436.    is present in the "Initialize settings using role" field. If you've
  5437.    listed the nickname of another one of your roles there, then the
  5438.    corresponding action from that role will be used here. If that action
  5439.    is also blank, or if there is no nickname specified, then _Pine_ will
  5440.    do whatever it normally does to set these actions. This depends on
  5441.    other configuration options and features you've set.
  5442.    
  5443. Filtering Configuration
  5444.  
  5445.    The software which actually delivers mail (the stuff that happens
  5446.    before _Pine_ is involved) for you is in a better position to do mail
  5447.    filtering than _Pine_ itself. If possible, you may want to look into
  5448.    using that sort of mail filtering to deliver mail to different
  5449.    folders, delete it, or forward it. However, if you'd like _Pine_ to
  5450.    help with this, _Pine_'s filtering is for you.
  5451.    
  5452.    Filtering is a way to automatically move certain messages from one
  5453.    folder to another or to delete messages. _Pine_ doesn't have the
  5454.    ability to forward mail to another address.
  5455.    
  5456.    Each filtering rule has a "Pattern" and possibly a "Folder". When a
  5457.    folder is opened, or when new mail arrives in an open folder, each
  5458.    message is compared with the Patterns of your filtering rules. The
  5459.    comparisons start with the first rule and keep going until there is a
  5460.    match. If a match is found, the message is copied to the folders
  5461.    you've listed in the "Folder" field and then it is deleted. If the
  5462.    Folder field is _not set_, then the matching message is simply
  5463.    _deleted_.
  5464.    
  5465.    _NOTE:_ When setting up a pattern used to only delete messages, it is
  5466.    recommended that you test the pattern first with a folder specified in
  5467.    case unintended matches occur. Messages that are deleted will be
  5468.    removed from the folder and _unrecoverable_ from within _Pine_ after
  5469.    the next Expunge command or once the folder being filtered has been
  5470.    closed.
  5471.    
  5472.   Filter Patterns
  5473.   
  5474.    In order to determine whether or not a message matches a filter the
  5475.    message is compared with the Filter's Pattern. These Patterns are the
  5476.    same for use with Roles, Filtering, Index Coloring, and Scoring, so
  5477.    are described in only one place, "here".
  5478.    
  5479.    Since filtering is a potentially destructive action, if you have a
  5480.    filtering Pattern with nothing other than Current Folder Type set,
  5481.    that filtering rule is ignored.
  5482.    
  5483.   Move to Folder
  5484.   
  5485.    Once a filter match is found for a particular message, that message is
  5486.    moved into these folders. Folder may be left unset. In that case, the
  5487.    message is simply deleted if it matches. Folder may be set to more
  5488.    than one folder name by listing the folders separated with commas. The
  5489.    message will be saved to each of the folders listed and then deleted
  5490.    from the current folder.
  5491.    
  5492.   Move-only-if-deleted option
  5493.   
  5494.    If you have specified a Move to Folder to filter messages into, then
  5495.    this option has an effect. If this option is set then messages will
  5496.    only be moved into the specified folder if they aren't already marked
  5497.    deleted. This might be useful if you have more than one _Pine_ session
  5498.    running simultaneously and you don't want messages to be filtered into
  5499.    a folder more than once. This method is not foolproof. There may be
  5500.    cases where a message gets marked deleted and so it is never filtered
  5501.    into the folder. For example, if you deleted it in another _Pine_ or
  5502.    another mail program that didn't know about the filtering rule.
  5503.    
  5504.    This option has no effect if the Filter Action is set to Delete
  5505.    instead of Move.
  5506.    
  5507. Scoring Configuration
  5508.  
  5509.    Most people will not use scores at all, but if you do use them, here's
  5510.    how they work in Pine. Using this screen, you may define Scoring
  5511.    rules. The score for a message is calculated by looking at every Score
  5512.    rule defined and adding up the Score Values for the ones which match
  5513.    the message. If there are no matches for a message, it has a score of
  5514.    zero. Message scores may be used a couple of ways in Pine.
  5515.    
  5516.   Sorting by Score
  5517.   
  5518.    One of the methods you may use to sort message indexes is to sort by
  5519.    score. The scores of all the messages in a folder will be calculated
  5520.    and then the index will be ordered by placing the messages in order of
  5521.    ascending or descending score.
  5522.    
  5523.   Scores for use in Patterns
  5524.   
  5525.    The Patterns used for Roles, Index Line Coloring, and Filtering have a
  5526.    category labeled "Score Interval". When a message is being compared
  5527.    with a Pattern to check for a match, if the Score Interval is set only
  5528.    messages which have a score somewhere in the interval are a match.
  5529.    
  5530.   Scoring Rule Patterns
  5531.   
  5532.    In order to determine whether or not a message matches a scoring rule
  5533.    the message is compared with the rule's Pattern. These Patterns are
  5534.    the same for use with Roles, Filtering, Index Coloring, and Scoring,
  5535.    so are described in only one place, "here".
  5536.    
  5537.    Actually, Scoring rule Patterns are slightly different from the other
  5538.    types of Patterns because Scoring rule Patterns don't contain a Score
  5539.    Interval. In other words, when calculating the score for a message,
  5540.    which is done by looking at the Scoring rule Patterns, scores aren't
  5541.    used.
  5542.    
  5543.   Score Value
  5544.   
  5545.    This is the value that will be added to the score for a message if the
  5546.    rule's Pattern is a match. Each individual Score Value is an integer
  5547.    between -100 and 100, and the values from matching rules are added
  5548.    together to get a message's score.
  5549.    
  5550. Patterns
  5551.  
  5552.    Patterns are used with Roles, Filtering, Index Coloring, and Scoring.
  5553.    Patterns are compared with a message to see if there is a match. For
  5554.    Filtering, the messages being checked are all the messages in the
  5555.    folder, one at a time. For Index Line Coloring, each message which is
  5556.    visible on the screen is checked for matches with the Index Coloring
  5557.    Patterns. Roles are used with the Reply, Forward, and Compose
  5558.    commands. For Reply, the message used to compare the Pattern with is
  5559.    the message being replied to; for Forward, the message used to compare
  5560.    the Pattern with is the message being forwarded; and for Compose,
  5561.    there is no message, so the parts of the Pattern which depend on a
  5562.    message (everything other than Current Folder Type) are not used. Only
  5563.    the Current Folder Type matters for Compose. For Scoring, the message
  5564.    being scored is compared with all of the Score Patterns, and the Score
  5565.    Values from the ones that match are added together to get the
  5566.    message's score.
  5567.    
  5568.    Each Pattern has several possible pieces, all of which are optional.
  5569.    There are six predefined header patterns called the To, From, Sender,
  5570.    Cc, News, and Subject patterns. Besides those six predefined header
  5571.    patterns, you may add additional header patterns with header
  5572.    fieldnames of your choosing. You add an extra header pattern by
  5573.    placing the cursor on one of the patterns while in the role editor and
  5574.    using the "eXtraHdr" command. The Recip pattern is a header pattern
  5575.    which stands for Recipient (To OR Cc) and the Partic pattern is a
  5576.    header pattern which stands for Participant (To OR Cc OR From).
  5577.    (Defining the Recip pattern does not have the same effect as defining
  5578.    both the To and Cc patterns. Recip is To OR Cc, not To AND Cc.)
  5579.    Similar to the header patterns is the AllText pattern. Instead of
  5580.    comparing this pattern's text against only the contents of a
  5581.    particular header field, the text for the AllText pattern is compared
  5582.    with text anywhere in the message's header or body.
  5583.    
  5584.    The "Current Folder Type" and the "Score Interval" are also part of
  5585.    the Pattern, though the "Score Interval" is not used for Scoring.
  5586.    There are also four similar settings which relate to the _status_ of
  5587.    the message. These settings rely on the message being New or not,
  5588.    Deleted or not, Answered or not, and Important or not.
  5589.    
  5590.    In order for there to be a match, all of the defined parts of the
  5591.    Pattern must match the message.
  5592.    
  5593.   Parts of a Pattern
  5594.   
  5595.     Header patterns
  5596.     
  5597.    A header pattern is simply text which is searched for in the
  5598.    corresponding header field. For example, if a Pattern has a From
  5599.    header pattern with the value "@company.com", then only messages which
  5600.    have a From header which contains the text "@company.com" will be
  5601.    possible matches. Matches don't have to be exact. For example, if the
  5602.    relevant field of a message contains the text "mailbox@domain"
  5603.    somewhere in it, then header patterns of "box", or "x@d", or
  5604.    "mailbox@domain" are all matches.
  5605.    
  5606.    All parts of the Pattern must match so, for example, if a message
  5607.    matches a defined From pattern, it still must be checked against the
  5608.    other parts of the Pattern which have been defined. The To header
  5609.    pattern is a slightly special case. If the message being checked has a
  5610.    Resent-To header, the addresses there are used in place of the
  5611.    addresses in the To header. This is only true for the To header.
  5612.    Resent-cc and Resent-From headers are never used unless you add them
  5613.    with the eXtraHdrs command.
  5614.    
  5615.    If you want to check for the presence of a header field but don't care
  5616.    about its value, then the empty pattern which you get by entering a
  5617.    pair of double quotes ("") should match any message which has the
  5618.    corresponding header field.
  5619.    
  5620.     AllText patterns
  5621.     
  5622.    AllText patterns are just like header patterns except that the text is
  5623.    searched for anywhere in the message's headers or body, not just in
  5624.    the contents of a particular header field.
  5625.    
  5626.    If there is more than one header pattern or AllText pattern for which
  5627.    you want to take the same action there is a shorthand notation which
  5628.    may be used. Any of these patterns may be a comma-separated list of
  5629.    patterns instead of just a single pattern. If any one of the patterns
  5630.    in the list matches the message then it is considered a match. For
  5631.    example, if "company1" and "company2" both required you to use the
  5632.    same role when replying to messages, you might have a To pattern which
  5633.    looks like
  5634.    
  5635.                          company1.com,company2.com
  5636.                                       
  5637.    This means that if the mail you are replying to was addressed to
  5638.    either "anything@company1.com" or "anything@company2.com", then this
  5639.    Pattern is a match and the same actions will be taken.
  5640.    
  5641.    A technicality: Since comma is the character used to separate multiple
  5642.    values in a header or AllText pattern field, you have to escape comma
  5643.    with a backslash (\) if you want to include a literal comma in one of
  5644.    those fields. The same is true for the backslash character itself,
  5645.    which must be escaped with another backslash to make it literal. It's
  5646.    unlikely you'll ever need to enter a literal comma or backslash in any
  5647.    of the patterns.
  5648.    
  5649.     Current Folder Type
  5650.     
  5651.    The "Current Folder Type" may be set to one of four different values:
  5652.    "Any", "News", "Email", or "Specific". If the value is set to "News",
  5653.    then the Pattern will only match if the currently open folder is a
  5654.    newsgroup. The value "Email" only matches if the current folder is not
  5655.    news and the value "Any" causes any folder to match. If the value of
  5656.    "Current Folder Type" is set to "Specific", then you must fill in a
  5657.    value for "Folder", which is on the line below the "Specific" line. In
  5658.    this case you will only get a match if the currently open folder is
  5659.    the specific folder you list. You may give a comma-separated list of
  5660.    folders instead of just a single folder name, in which case the
  5661.    Pattern will match if the open folder is any one of the folders in the
  5662.    list. The name of each folder in the list may be either "INBOX", the
  5663.    technical specification of the folder (like what appears in your
  5664.    configuration file) or, if the folder is one of your incoming folders,
  5665.    it may be the nickname you've given the folder. Here are a couple
  5666.    samples of specific folder names:
  5667.    
  5668.                    {monet.art.nowhere.edu}mail/art-class
  5669.                                       
  5670.                  {news.myisp.com/nntp}#news.comp.mail.pine
  5671.                                       
  5672.    The easiest way to fill in the "Folder" field is to use the "T"
  5673.    command which is available when the "Folder" line is hilighted, or to
  5674.    use the "Take" command with the configuration feature
  5675.    "enable-rules-under-take" turned on.
  5676.    
  5677.    When reading a newsgroup, there may be a performance penalty incurred
  5678.    when collecting the information necessary to check whether or not a
  5679.    Pattern matches a message. For this reason, the default Current Folder
  5680.    Type is set to "Email". If you have Patterns with a Current Folder
  5681.    Type of either "Any" or "News" and those Patterns are used for Index
  5682.    Line Coloring or Scoring, you may experience slower screen redrawing
  5683.    in the MESSAGE INDEX screen when in a newsgroup.
  5684.    
  5685.     Score Interval
  5686.     
  5687.    The "Score Interval" may be set to an interval of message scores which
  5688.    should be considered a match. Like the other parts of the Pattern, if
  5689.    it is unset it will be ignored. The Score Interval looks like
  5690.    
  5691.                            (min_score,max_score)
  5692.                                       
  5693.    where "min_score" and "max_score" are integers between -32000 and
  5694.    32000. The special values "-INF" and "INF" may be used for the min and
  5695.    max values to represent negative and positive infinity.
  5696.    
  5697.    When there is a Score Interval defined, it is a match if the score for
  5698.    the message is contained in the interval. The interval includes both
  5699.    endpoints. The score for a message is calculated by looking at every
  5700.    Score rule defined and adding up the Score Values for the ones which
  5701.    match the message. When deciding whether or not a Pattern matches a
  5702.    message for purposes of calculating the score, the Score Interval is
  5703.    ignored.
  5704.    
  5705.     Message Status
  5706.     
  5707.    There are four separate message status settings. By default, all four
  5708.    are set to the value "Don't care", which will match any message. The
  5709.    value "Yes" means that the particular status must be true for a match,
  5710.    and the value "No" means that the particular status must not be true
  5711.    for a match. For example, one of the four Message Status settings is
  5712.    whether a message is marked Important or not. A "Yes" means that the
  5713.    message must be Important to be considered a match and "No" means that
  5714.    the message must not be Important to be considered a match. The same
  5715.    is true of the other three message status settings which depend on
  5716.    whether or not the message is New; whether the message has been
  5717.    Answered or not; and whether the message has been Deleted or not.
  5718.    
  5719.   Help Configuring Pattern Fields
  5720.   
  5721.    _nickname_
  5722.           This is a nickname to help you. You should have a different
  5723.           nickname for each role you define. The nickname will be used in
  5724.           the SETUP ROLE RULES screen to allow you to pick a role to
  5725.           edit. It will also be used when you send a message to let you
  5726.           know you are sending with a different role than you use by
  5727.           default, and it will be useful for choosing a role when
  5728.           composing with the Role command or when composing with one of
  5729.           the Role Uses set to With Confirmation. This field is not used
  5730.           in the outgoing message.
  5731.    _To pattern_
  5732.           If this pattern is non-blank, then for this role to be
  5733.           considered a match, at least one of the recipients from the To
  5734.           line of the message being replied to or forwarded must match
  5735.           this pattern. In the case of the Compose command, this pattern
  5736.           and the other header patterns are ignored. If this pattern is a
  5737.           comma-separated list of patterns, then at least one of the
  5738.           recipients must match at least one of the patterns. (Any other
  5739.           non-blank parts of the Pattern must match, too.) If the message
  5740.           being replied to or forwarded has a Resent-To header line, then
  5741.           that is used in place of the To line.
  5742.    _From pattern_
  5743.           This is just like the To pattern except that it is compared
  5744.           with the address from the From header of the message being
  5745.           replied to or forwarded instead of the addresses from the To
  5746.           header.
  5747.    _Sender pattern_
  5748.           This is just like the To pattern except that it is compared
  5749.           with the address from the Sender header of the message being
  5750.           replied to or forwarded instead of the addresses from the To
  5751.           header. If there is no Sender header, then the From header is
  5752.           used instead.
  5753.    _Cc pattern_
  5754.           This is just like the To pattern except that it is compared
  5755.           with the address from the CC header of the message being
  5756.           replied to or forwarded instead of the addresses from the To
  5757.           header.
  5758.    _News pattern_
  5759.           If this pattern is non-blank, then for this role to be
  5760.           considered a match, at least one of the newsgroups from the
  5761.           Newsgroups line of the message must match this pattern. If this
  5762.           pattern is a comma-separated list of patterns, then at least
  5763.           one of the newsgroups must match at least one of the patterns.
  5764.           (Any other non-blank parts of the Pattern must match, too.)
  5765.    _Subject pattern_
  5766.           This is similar to the other header patterns. It is compared
  5767.           with the contents from the Subject of the message being replied
  5768.           to or forwarded.
  5769.           If you enter non-ascii characters in this field then the search
  5770.           will be done using the character set you have defined with the
  5771.           "character-set" configuration variable. (The truly
  5772.           sophisticated may use an alternate character set for a search
  5773.           by entering the MIME encoding of the header string here.)
  5774.    _Extra header patterns_
  5775.           There isn't actually a field called Extra header patterns, but
  5776.           you may add extra header patterns by moving the cursor to one
  5777.           of the header patterns and using the "eXtraHdr" command to add
  5778.           a new header pattern. You would do this if the six predefined
  5779.           header patterns don't cover the header you want to use for
  5780.           pattern matching. Once you've added an extra header pattern,
  5781.           you use it just like the Subject pattern. Of course, it is
  5782.           compared with the contents from the particular header field of
  5783.           the message being replied to or forwarded rather than the
  5784.           contents from the subject field. To remove an extra header
  5785.           pattern from a role, use the "RemoveHdr" command on the
  5786.           highlighted extra header.
  5787.           If you enter non-ascii characters in this field then the search
  5788.           will be done using the character set you have defined with the
  5789.           "character-set" configuration variable. (The truly
  5790.           sophisticated may use an alternate character set for a search
  5791.           by entering the MIME encoding of the header string here.)
  5792.    _Recipient pattern_
  5793.           This is just like the To pattern except that it is compared
  5794.           with the addresses from both the To header and the Cc header
  5795.           instead of just the addresses from the To header. It's
  5796.           equivalent to having two different rules; one with a To pattern
  5797.           and the other with the same Cc pattern.
  5798.    _Participant pattern_
  5799.           This is just like the To pattern except that it is compared
  5800.           with the addresses from the To header, the Cc header, and the
  5801.           From header instead of just the addresses from the To header.
  5802.           It's equivalent to having three different rules; one with a To
  5803.           pattern, another with the same Cc pattern, and another with the
  5804.           same From pattern.
  5805.    _AllText pattern_
  5806.           This is similar to the header patterns. Instead of comparing
  5807.           with text in a particular header field it is compared with all
  5808.           of the text in the message header and body.
  5809.           If you enter non-ascii characters in this field then the search
  5810.           will be done using the character set you have defined with the
  5811.           "character-set" configuration variable. (The truly
  5812.           sophisticated may use an alternate character set for a search
  5813.           by entering the MIME encoding of the header string here.)
  5814.    _Score Interval_
  5815.           The Score Interval, if defined, is part of the Pattern. If you
  5816.           use this, it should be set to something like:
  5817.           
  5818.                            (min_score,max_score)
  5819.           where "min_score" and "max_score" are integers between -32000
  5820.           and 32000. The special values "-INF" and "INF" can be used for
  5821.           the min and max values. These represent negative and positive
  5822.           infinity.
  5823.           When there is a Score Interval defined, it is a match if the
  5824.           score for the message is contained in the interval. The
  5825.           interval includes both endpoints. The score for a message is
  5826.           calculated by looking at every scoring rule defined and adding
  5827.           up the Score Values for the rules which match the message.
  5828.    _Current Folder Type_
  5829.           The Current Folder Type is part of the Pattern. It refers to
  5830.           the type of the currently open folder, which is the folder you
  5831.           were last looking at from the MESSAGE INDEX or MESSAGE TEXT
  5832.           screen. In order for a pattern to be considered a match, the
  5833.           current folder must be of the type you set here. The three
  5834.           types "Any", "News", and "Email" are all what you might think.
  5835.           If the Current Folder Type for a Pattern is set to "News", for
  5836.           example, then that will only be a match if the current folder
  5837.           is a newsgroup and the rest of the Pattern matches. The value
  5838.           "Specific" may be used when you want to limit the match to a
  5839.           specific folder (not just a specific type of folder), or to a
  5840.           list of specific folders. In order to match a specific folder
  5841.           you must Select the "Specific" button _AND_ you must fill in
  5842.           the name (or comma-separated list of names) of the folder in
  5843.           the "Folder" field. If the current folder is any of the folders
  5844.           in the list, that is considered a match. The name of each
  5845.           folder in the list may be either "INBOX", the technical
  5846.           specification of the folder (like what appears in your
  5847.           configuration file) or, if the folder is one of your incoming
  5848.           folders, it may be the nickname you've given the folder. Here
  5849.           are a couple samples of specific folder names:
  5850.           
  5851.                    {monet.art.nowhere.edu}mail/art-class
  5852.           
  5853.                  {news.myisp.com/nntp}#news.comp.mail.pine
  5854.           The easiest way to fill in the "Folder" field is to use the T
  5855.           command which is available when the "Folder" line is hilighted.
  5856.           Note that you won't be able to edit the "Folder" line unless
  5857.           the Current Folder Type is set to "Specific", and any value
  5858.           that "Folder" has is ignored unless the type is set to
  5859.           "Specific".
  5860.           When reading a newsgroup, there may be a performance penalty
  5861.           incurred when collecting the information necessary to check a
  5862.           Pattern. For this reason, the default Current Folder Type is
  5863.           set to "Email". For example, a role with a non-Normal Index
  5864.           Line Color and a Current Folder Type of "Any" or "News" may
  5865.           cause the MESSAGE INDEX screen to draw more slowly when in a
  5866.           newsgroup.
  5867.    _Message Status Important_
  5868.           This part of the Pattern may have one of three possible values.
  5869.           The default value is "Don't care", which matches any message.
  5870.           The other two values are "Yes", which means the message must be
  5871.           flagged "Important" in order to be a match; or "No", which
  5872.           means the message must _not_ be flagged "Important" in order to
  5873.           be considered a match.
  5874.    _Message Status New_
  5875.           This part of the Pattern may have one of three possible values.
  5876.           The default value is "Don't care", which matches any message.
  5877.           The other two values are "Yes", which means the message must be
  5878.           "New" in order to be a match; or "No", which means the message
  5879.           must _not_ be "New" in order to be a match. "New" is the same
  5880.           as _Unseen_ and not "New" is the same as _Seen_.
  5881.    _Message Status Deleted_
  5882.           This part of the Pattern may have one of three possible values.
  5883.           The default value is "Don't care", which matches any message.
  5884.           The other two values are "Yes", which means the message must be
  5885.           marked "Deleted" in order to be a match; or "No", which means
  5886.           the message must _not_ be marked "Deleted" in order to be a
  5887.           match.
  5888.           If you are thinking of using this part of the Pattern as a way
  5889.           to prevent messages from being filtered more than once in a
  5890.           Filter Pattern, take a look at the Filter Option
  5891.           "move-only-if-not-deleted" instead. It should work better than
  5892.           using this field since it will hide the filtered messages even
  5893.           if they are already Deleted.
  5894.    _Message Status Answered_
  5895.           This part of the Pattern may have one of three possible values.
  5896.           The default value is "Don't care", which matches any message.
  5897.           The other two values are "Yes", which means the message must be
  5898.           marked "Answered" in order to be a match; or "No", which means
  5899.           the message must _not_ be marked "Answered" in order to be a
  5900.           match.
  5901.      _________________________________________________________________
  5902.  
  5903.                     Notes on Configuration and Preferences
  5904.                                        
  5905. Pine in Function Key Mode
  5906.  
  5907.    The standard _Pine_ uses alphabetic keys for most commands, and
  5908.    control keys in the composer. Despite possible appearances, the
  5909.    current bindings are the result of much discussion and thought. All
  5910.    the commands in the composer are single control characters. This keeps
  5911.    things very neat and simple for users. Two character commands in the
  5912.    composer are a possibility, but we're trying to avoid them because of
  5913.    the added complexity for the user.
  5914.    
  5915.    _Pine_ can also operate in a function-key mode. To go into this mode
  5916.    invoke _pine -k_ or (on some UNIX systems) _pinef._ On a UNIX system,
  5917.    you can link or copy the _Pine_ executable to _pinef_ to install
  5918.    _pinef._ Alternatively, users and systems administrators can set the
  5919.    _use-function-keys_ feature in the personal or system-wide _Pine_
  5920.    configuration file. The command menus at the bottom of the screen will
  5921.    show _F1-F12 _instead of the alphabetic commands. In addition, the
  5922.    help screens will be written in terms of function keys and not
  5923.    alphabetic keys.
  5924.    
  5925.    One of the results of using _Pine_ in function-key mode is that users
  5926.    can only choose from twelve commands at any given time. In
  5927.    alphabetic-key mode, a user can press a key for a command (say, q to
  5928.    quit) and that command can be fulfilled. In function-key mode, the
  5929.    command must be visible on the bottom key-menu in order to be used.
  5930.    There are some screens where four screens of commands are operational;
  5931.    function-key users can get to all of them, just not all at once.
  5932.      _________________________________________________________________
  5933.    
  5934. Domain Settings
  5935.  
  5936.    _Pine_ uses the default domain for a few different tasks. First, it is
  5937.    tacked onto the user-id for outgoing email. Second, it is tacked onto
  5938.    all "local" (unqualified) addresses in the "To:" or "Cc:" fields of
  5939.    messages being composed (unless they are found in the address book or
  5940.    on an LDAP server). The domain name is also used to generate
  5941.    message-id lines for each outgoing message and to allow _Pine_ to
  5942.    check if an address is that of the current _Pine_ user.
  5943.    
  5944.    _Pine_ determines the domain name according to whichever of these it
  5945.    finds. The list here is in decreasing order of precedence.
  5946.     1. Value of the variable user-domain in the system fixed
  5947.        configuration file
  5948.     2. Value of the variable _user-domain_ in the personal configuration
  5949.        file
  5950.     3. Value of the variable _user-domain_ in the system-wide
  5951.        configuration file
  5952.     4. Value from an external database (DNS, /etc/hosts, NIS) as modified
  5953.        by a system fixed configuration file if use-only-domain-name set
  5954.        to _yes_
  5955.     5. Value from an external database (DNS, /etc/hosts, NIS) as modified
  5956.        by a personal configuration file if _use-only-domain-name_ set to
  5957.        _yes_
  5958.     6. Value from an external database (DNS, /etc/hosts, NIS) as modified
  5959.        by a system configuration file if _use-only-domain-name_ set to
  5960.        _yes_
  5961.     7. Unmodified value (host name) from an external database
  5962.        
  5963.    The easiest way for this system to work is for _PC-Pine_ users and
  5964.    UNIX _Pine_ system administrators to set the _user-domain_ variable.
  5965.    The variable _use-only-domain-name_ is helpful if your site
  5966.    supports/requires hostless addressing, but for some reason you don't
  5967.    want to use the _user-domain_ variable.
  5968.      _________________________________________________________________
  5969.    
  5970. Syntax for Collections
  5971.  
  5972.    In many environments, it is quite common to have collections of
  5973.    archived mail on various hosts around the network. Using the folder
  5974.    collections facility in _Pine_, access to these archives is just as
  5975.    simple as access to folders on _Pine_'s local disk.
  5976.    
  5977.    "Collection" is the word we use in _Pine_ to describe a set of
  5978.    folders. A collection corresponds loosely to a "directory" containing
  5979.    mail folders. Folders within a defined collection can be manipulated
  5980.    (opened, saved-to, etc) using just their simple name. Any number of
  5981.    folder collections can be defined, and _Pine_ will adjust its menus
  5982.    and prompts to help navigate them.
  5983.    
  5984.    The way collections are defined in _Pine_ is with the
  5985.    folder-collections variable in the _Pine_ configuration file.
  5986.    _Folder-collections_ takes a list of one or more collections, each
  5987.    (optionally) preceded by a user-defined logical name (label). Once
  5988.    collections are defined, _Pine_ adjusts its menus and behavior to
  5989.    allow choosing files by their simple name within the collection.
  5990.    
  5991.    Consider the following:
  5992.    folder-collections=  Local-Mail      C:\MAIL\[],
  5993.                         Remote-Mail     {imap.u.example.edu}mail/[]
  5994.  
  5995.    The example shows two collections defined (a comma separated list;
  5996.    newlines in the list are OK if there's one or more spaces before the
  5997.    next entry), one local and one remote. Each collection is a
  5998.    space-delimited pair of elements-first an optional logical-name and
  5999.    second the collection specifier. The logical-name can have spaces if
  6000.    it has quotes around it (but keeping the logical name short and
  6001.    descriptive works best). _Pine_ will use the logical-name (if
  6002.    provided) to reference all folders in the collection, so the user
  6003.    never has to see the ugliness of the collection specifier.
  6004.    
  6005.    The collection specifier can be thought of as an extended IMAP format
  6006.    (see the Remote Folders section for a description of IMAP format
  6007.    names). Basically, a pair of square-brackets are placed in the fully
  6008.    qualified IMAP path where the simple folder name (the part without the
  6009.    host name and path) would appear. Like IMAP, the path can be either
  6010.    fully qualified (i.e., with a leading '/') or relative to your home
  6011.    directory.
  6012.    
  6013.    An advanced feature of this notation is that a pattern within the
  6014.    square brackets allows the user to define a collection to be a subset
  6015.    of a directory. For example, a collection defined with the specifier:
  6016.         M-Mail          C:MAIL/[m*]
  6017.  
  6018.    will provide a view in the folder lister of all folders in the PC's
  6019.    "C:MAIL" directory that start with the letter 'm' (case insensitive
  6020.    under DOS, of course). Further, the wildcard matching will honor
  6021.    characters trailing the '*' in the pattern.
  6022.    
  6023.    From within _Pine_, the "Folder List" display will be adjusted to
  6024.    allow browsing of the folders in any defined collection. Even more,
  6025.    you'll notice in the _Goto_ and _Save_ commands a pair of sub-commands
  6026.    to rotate through the list of logical collection names, so only a
  6027.    simple name need be input in order to operate on a folder in any
  6028.    collection.
  6029.    
  6030.    The first collection specified in the _folder-collections_ has special
  6031.    significance. That folder is the "default collection for saves". By
  6032.    default, in cases where the user does not specify which collection
  6033.    should be used to _Save_ a message, the default collection for saves
  6034.    will be used. Also, if the default-fcc is a relative file name, then
  6035.    it is relative to the default collection for saves. (See also
  6036.    saved-msg-name-rule.
  6037.    
  6038.    The notion of collections encompasses both email folders and news
  6039.    reading. The variable news-collections uses nearly the same format as
  6040.    _folder-collections_. Newsgroups can be defined for convenient access
  6041.    via either IMAP or NNTP. There are advantages and disadvantages to
  6042.    both access methods. In the IMAP case, your news environment state is
  6043.    maintained on the server and, thus, will be seen by any client. The
  6044.    downside is that, at the moment, you must have an account on the
  6045.    server. In the NNTP case, server access is mostly anonymous and no
  6046.    state/accounting need be maintained on it. The downside is that each
  6047.    client, for now, must individually maintain news environment state.
  6048.    
  6049.    An example pinerc entry might be:
  6050.      news-collections=  Remote-State    {news.u.example.edu}#news.[],
  6051.                         Local-State     {news.u.example.edu/nntp}#news.[]
  6052.  
  6053.    Only newsgroups to which you are subscribed are included in the
  6054.    collection.
  6055.    
  6056.    The pattern matching facility can be applied so as to define a news
  6057.    collection which is a subset of all the newsgroups you subscribe to.
  6058.    For example, this could be a valid collection:
  6059.                         Newsfeed-News   {news.u.example.edu/nntp}#news.[clari.*
  6060. ]
  6061.  
  6062.    Collection handling is a tough problem to solve in a general way, and
  6063.    the explanation of the syntax is a bit ugly. The upside is, hopefully,
  6064.    that for a little complexity in the _Pine_ configuration file you get
  6065.    simple management of multiple folders in diverse locations.
  6066.    
  6067.    As of _Pine_ 4.00, collection setup is handled by the
  6068.    _Setup/collectionList_ screen instead of requiring hand editing of the
  6069.    configuration file.
  6070.      _________________________________________________________________
  6071.    
  6072. Syntax for Remote Folders
  6073.  
  6074.    Remote folders are distinguished from local folders by a leading host
  6075.    name bracketed by '{' and '}'. The path and folder name immediately
  6076.    following the closing bracket, '}', is interpreted by the IMAP server
  6077.    and is in a form compatible with that server (i.e., path delimiters
  6078.    and naming syntax relative to that server).
  6079.    
  6080.    Typically, a folder name without any path description is understood to
  6081.    reside in the user's "home directory" (i.e., in some way the user's
  6082.    personal, writable file area), as are incomplete path designations.
  6083.    However, the IMAP specification does not require that unqualified
  6084.    folder names live in one's home directory, so some IMAP servers may
  6085.    require fully qualified names. An example of a remote folder
  6086.    specification would be,
  6087.         {host.dept.washington.edu}mail/saved-messages
  6088.  
  6089.    This example simply specifies a folder named ``saved-messages'' on the
  6090.    imap server ``host.dept.washington.edu'', in the ``mail'' subdirectory
  6091.    of the user's home directory. Easy isn't it?
  6092.    
  6093.    To confuse things a bit, qualifiers are permitted within the brackets
  6094.    following the host name. These qualifiers consist of a slash ('/')
  6095.    character followed by a keyword or keyword and value, and have the
  6096.    effect of modifying how the connection is made to the host specified.
  6097.    An example of such a specification might be,
  6098.         {news.u.washington.edu/nntp}#news.comp.mail.mime
  6099.  
  6100.    This specifies an altogether different access method: access via the
  6101.    Network News Transport Protocol (NNTP).
  6102.    
  6103.    Some other possible qualifiers are /user=username, which says to login
  6104.    as user _username_; /secure, which says to require Kerberos 5 to
  6105.    login; imap; pop3; and anonymous.
  6106.    
  6107.    There is also an optional :portnum following the hostname. This would
  6108.    specify a non-standard port number to connect to.
  6109.      _________________________________________________________________
  6110.    
  6111. Sorting a Folder
  6112.  
  6113.    The mail index may be sorted by arrival, date, subject, from, size,
  6114.    score, to, or cc order. Each sort order can also be reversed. The _$_
  6115.    command will prompt the user for the sort order. The sort order can
  6116.    also be specified on the command line with the _-sort_ flag or
  6117.    (equivalently) with the sort-key variable in the _pinerc_ file. When a
  6118.    user changes folders, the sort order will go back to the original sort
  6119.    order. The command line (_-sort_) or configuration file sort
  6120.    specification (_sort-key_) changes the original sort order.
  6121.    
  6122.    When a folder is sorted and new mail arrives in the folder it will be
  6123.    inserted in its properly sorted place. This can be a little odd when
  6124.    the folder is sorted by something like the subject. It can also be a
  6125.    little slow if you are viewing a large, sorted _INBOX_, since the
  6126.    _INBOX_ will have to be re-sorted whenever new mail arrives.
  6127.    
  6128.    The sorts are all independent of case and ignore leading or trailing
  6129.    white space. There are actually two forms of subject sort. One called
  6130.    _Subject_ and the other called _OrderedSubj_. They both ignore "Re:"
  6131.    at the beginning and "(fwd)" at the end of the subjects. _Subject_
  6132.    sorts all the subjects alphabetically. _OrderedSubj_ sorts by subjects
  6133.    alphabetically, groups messages with the same subject
  6134.    (pseudo-threads), then sorts the groups by the date of the first
  6135.    message of the group. Sorting by _Thread_ was added after _OrderedSubj_
  6136.    and is usually a better method. Thread sorting uses information in the
  6137.    message headers References, Message-ID, and Subject. It is possible
  6138.    the sort will be slightly slower with a Thread sort than with an
  6139.    OrderedSubj sort. The sort by sender sorts by the user-id (part before
  6140.    the "@"), not the full name. The arrival sort is no sort at all and
  6141.    the date sort depends on the format of the date. Some dates are in
  6142.    strange formats and are unparsable. The time zone is also taken into
  6143.    account.
  6144.    
  6145.    Sorting large mail folders can be very slow since it requires fetching
  6146.    all the headers of the mail messages. With UNIX _Pine_, only the first
  6147.    sort is slow since _Pine_ keeps a copy of all the headers. One
  6148.    exception is sorting in reverse arrival order. This is fast because no
  6149.    headers have to be examined. _Pine_ will show progress as it is
  6150.    sorting.
  6151.      _________________________________________________________________
  6152.    
  6153. Alternate Editor
  6154.  
  6155.    In the _Pine_ composer you can use any text editor, such as _vi_ or
  6156.    _emacs,_ for composing the message text. The addresses and subject
  6157.    still must be edited using the standard _Pine_ composer. If you
  6158.    include the feature enable-alternate-editor-cmd in your _pinerc_ you
  6159.    can type _^__ while in the body of the message in the composer and be
  6160.    prompted for the editor. If you also set the editor variable in your
  6161.    _pinerc_ then _^__ will invoke the configured editor when you type it.
  6162.    
  6163.    Turning on the feature enable-alternate-editor-implicitly will
  6164.    automatically invoke the editor you have defined with the _editor_
  6165.    variable whenever you enter the body of a message you are composing.
  6166.    For example, when you move out of the last header line and into the
  6167.    body of the message, the alternate editor will be automatically
  6168.    invoked.
  6169.    
  6170.    We know that many people would like to use the alternate editor to
  6171.    edit the mail header as well. We considered several designs for this
  6172.    and didn't come up with one that we liked and that was easy to
  6173.    implement. One of the main problems is that you lose access to the
  6174.    address book.
  6175.      _________________________________________________________________
  6176.    
  6177. Signatures and Signature Placement
  6178.  
  6179.    If the file _~/.signature_ (UNIX) or _<PINERC_directory>\PINE.SIG (PC)
  6180.    exists, it will be included in all outgoing messages. It is included
  6181.    before composition starts so that the user has a chance to edit it out
  6182.    if he or she likes. The file name for the signature can be changed by
  6183.    setting the signature-file variable in the _pinerc_. If the feature
  6184.    enable-sigdashes is turned on then the line consisting of the three
  6185.    characters "-- " is prepended to the signature file. When Replying or
  6186.    Forwarding a message different signatures my be automatically included
  6187.    by configuring them in the Roles setup screen. It's easy to include
  6188.    different signatures by hand, by having multiple signature files
  6189.    (_.sig1, .sig2, .sig3, etc_) and choosing to include (^R in the
  6190.    composer) the correct one for the message being sent.
  6191.    
  6192.    _Pine_'s default behavior encourages a user to put his or her
  6193.    contribution before the inclusion of the original text of the message
  6194.    being forwarded or replied to, This is contrary to some conventions,
  6195.    but makes the conversation more readable when a long original message
  6196.    is included in a reply for context. The reader doesn't have to scroll
  6197.    through the original text that he or she has probably already seen to
  6198.    find the new text. If the reader wishes to see the old message(s), the
  6199.    reader can scroll further into the message. Users who prefer to add
  6200.    their input at the end of a message should set the signature-at-bottom
  6201.    feature. The signature will then be appended to the end of the message
  6202.    after any included text. This feature applies when _Reply_ing, not
  6203.    when _Forward_ing.
  6204.      _________________________________________________________________
  6205.    
  6206. Feature List Variable
  6207.  
  6208.    _Pine_ used to have _feature levels_ for users with different amounts
  6209.    of experience. We found that this was too restrictive. _Pine_ now has
  6210.    a feature-list instead. Each user may pick and choose which features
  6211.    they would like enabled (simple to do in the _Setup/Config_ screen).
  6212.    There is a short description of each in Configuration Features. There
  6213.    is also a short on-line help explaining the effect of each of the
  6214.    features in the _Setup/Config_ screen. When the cursor is highlighting
  6215.    a feature, the _?_ command will show the help text for that feature.
  6216.    Features don't have values, they are just turned on or off. They are
  6217.    all off by default.
  6218.    
  6219.    The _feature-list_ variable is different from all other configuration
  6220.    variables in that its value is additive. That is, the system-wide
  6221.    configuration file can have some features turned on by default. The
  6222.    user can select other features in their personal configuration file
  6223.    and those features will be _added_ to the set of features turned on in
  6224.    the system-wide configuration file. (With all other configuration
  6225.    variables, the user's values _replace_ the system-wide values.)
  6226.    Likewise, additional features may be set on the command-line with the
  6227.    argument "-feature-list=". These will be added to the others.
  6228.    
  6229.    The treatment of _feature-list_ in the system-wide _fixed_
  6230.    configuration file is also different from other variables. The system
  6231.    management can fix the value of individual features by placing them in
  6232.    the fixed configuration file. Users will not be able to alter those
  6233.    features, but will still be able to set the other non-restricted
  6234.    features the way they like.
  6235.    
  6236.    Because _feature-list_ is additive, there is a way to turn features
  6237.    off as well as on. Prepending the prefix "no-" to any feature sets it
  6238.    to off. This is useful for over-riding the system-wide default in the
  6239.    personal configuration file or for over-riding the system-wide default
  6240.    or the personal configuration value on the command line. For example,
  6241.    if the system-wide default configuration has the _quit-without-confirm_
  6242.    feature set, the user can over-ride that (and turn it off) by
  6243.    including _no-quit-without-confirm_ in the personal configuration file
  6244.    or by giving the command line argument
  6245.    _-feature-list=no-quit-without-confirm._ More features (options) will
  6246.    no doubt continue to be added.
  6247.      _________________________________________________________________
  6248.    
  6249. Configuration Inheritance
  6250.  
  6251.    We start with an explanation of how configuration works in hopes of
  6252.    making it easier to describe how inheritance works.
  6253.    
  6254.    _Pine_ uses a hierarchy of configuration values from different
  6255.    locations. There are five ways in which each configuration option
  6256.    (configuration variable) can be set. In increasing order of precedence
  6257.    they are:
  6258.    
  6259.     1. the system-wide configuration file.
  6260.     2. the personal configuration file
  6261.     3. the personal exceptions file
  6262.     4. a command line argument
  6263.     5. the system-wide _fixed_ configuration file (Unix _Pine_ only)
  6264.        
  6265.    The fixed configuration file is normally
  6266.    /usr/local/lib/pine.conf.fixed.
  6267.    
  6268.    The system-wide configuration file is normally
  6269.    /usr/local/lib/pine.conf for Unix _Pine_ and is normally not set for
  6270.    _PC-Pine_. For _PC-Pine_, if the environment variable _$PINECONF_ is
  6271.    set, that is used for the system-wide configuration. This location can
  6272.    be set or changed on the command line with the -P flag. The
  6273.    system-wide configuration file can be either a local file or a remote
  6274.    configuration folder.
  6275.    
  6276.    For Unix _Pine_, the personal configuration file is normally the file
  6277.    .pinerc in the user's home directory. This can be changed with the -p
  6278.    command line flag. For _PC-Pine_, the personal configuration file is
  6279.    in $PINERC or <PineRC registry value> or $HOME\PINE\PINERC or
  6280.    <PINE.EXE dir>\PINERC. This can be changed with the -p command line
  6281.    flag. If -p or $PINERC is used, the configuration data may be in a
  6282.    local file or a remote config folder.
  6283.    
  6284.    For Unix _Pine_, the personal exceptions configuration file is
  6285.    specified with the "-x exceptions_config" command line argument.
  6286.    "Exceptions_config" may be either a local file or a remote
  6287.    configuration folder. If there is no "-x" command line option, _Pine_
  6288.    will look for the file ".pinercex" in the same local directory that
  6289.    the regular config file is located in. If the regular config file is
  6290.    remote then Unix _Pine_ looks in the home directory for ".pinercex".
  6291.    
  6292.    For _PC-Pine_, the personal exceptions configuration file is specified
  6293.    with the "-x exceptions_config" command line argument. If there is no
  6294.    "-x" command line argument the environment variable $PINERCEX may be
  6295.    set to the name of the "exceptions_config" instead.
  6296.    "Exceptions_config" may be either a local file or a remote
  6297.    configuration folder. If there is no "-x" command line option and
  6298.    $PINERCEX is not set, _PC-Pine_ will look for the file "PINERCEX" in
  6299.    the same local directory that the regular config file is located in.
  6300.    If the regular config file is remote then _PC-Pine_ looks in the local
  6301.    directory specified by the "-aux local_directory" command line
  6302.    argument, or the directory $HOME\PINE, or in <PINE.EXE directory> for
  6303.    a file named "PINERCEX".
  6304.    
  6305.    To reiterate, the value of a configuration option is taken from the
  6306.    last location in the list above in which it is set. Or, thinking about
  6307.    it slightly differently, a default value for an option is established
  6308.    in the system-wide configuration file (or in the source code if there
  6309.    is no value in the system-wide file). That default remains in effect
  6310.    until and unless it is overridden by a value in a location further
  6311.    down the list, in which case a new "default" value is established. As
  6312.    we continue down the list of locations we either retain the value at
  6313.    each step or establish a new value. The value that is still set after
  6314.    going through the whole list of configuration locations is the one
  6315.    that is used.
  6316.    
  6317.    So, for example, if an option is set in the system-wide configuration
  6318.    file and in the personal configuration file, but is not set in the
  6319.    exceptions, on the command line, or in the fixed file; then the value
  6320.    from the personal configuration file is the one that is used. Or, if
  6321.    it is set in the system-wide config, in the personal config, not in
  6322.    the exceptions, but is set on the command line; then the value on the
  6323.    command line is used.
  6324.    
  6325.    Finally we get to inheritance. For configuration options which are
  6326.    lists, like "smtp-server" or "incoming-folders", the inheritance
  6327.    mechanism makes it possible to _combine_ the values from different
  6328.    locations instead of _replacing_ the value. This is true of all
  6329.    configuration lists other than the "feature-list", for which you may
  6330.    already set whatever you want at any configuration location (by using
  6331.    the "no-" prefix if necessary).
  6332.    
  6333.    To use inheritance, set the first item in a configuration list to the
  6334.    token "INHERIT". If the first item is "INHERIT", then instead of
  6335.    replacing the default value established so far, the rest of the list
  6336.    is appended to the default value established so far and that is the
  6337.    new value.
  6338.    
  6339.    Here is an example which may make it clearer. Suppose we have:
  6340.    
  6341.  System-wide config :   smtp-server = smtp1.corp.com, smtp2.corp.com
  6342.  Personal config    :   smtp-server = INHERIT, mysmtp.home
  6343.  Exceptions config  :   smtp-server = <No Value Set>
  6344.  Command line       :   smtp-server = <No Value Set>
  6345.  Fixed config       :   smtp-server = <No Value Set>
  6346.  
  6347.    This would result in an effective smtp-server option of
  6348.    
  6349.  smtp-server = smtp1.corp.com, smtp2.corp.com, mysmtp.home
  6350.  
  6351.    The "INHERIT" token can be used in any of the configuration files and
  6352.    the effect cascades. For example, if we change the above example to:
  6353.    
  6354.  System-wide config :   smtp-server = smtp1.corp.com, smtp2.corp.com
  6355.  Personal config    :   smtp-server = INHERIT, mysmtp.home
  6356.  Exceptions config  :   smtp-server = INHERIT, yoursmtp.org
  6357.  Command line       :   smtp-server = <No Value Set>
  6358.  Fixed config       :   smtp-server = <No Value Set>
  6359.  
  6360.    This would result in:
  6361.    
  6362.  smtp-server = smtp1.corp.com, smtp2.corp.com, mysmtp.home, yoursmtp.org
  6363.  
  6364.    Unset variables are skipped over (the default value is carried
  6365.    forward) so that, for example:
  6366.    
  6367.  System-wide config :   smtp-server = smtp1.corp.com, smtp2.corp.com
  6368.  Personal config    :   smtp-server = <No Value Set>
  6369.  Exceptions config  :   smtp-server = INHERIT, yoursmtp.org
  6370.  Command line       :   smtp-server = <No Value Set>
  6371.  Fixed config       :   smtp-server = <No Value Set>
  6372.  
  6373.    produces:
  6374.    
  6375.  smtp-server = smtp1.corp.com, smtp2.corp.com, yoursmtp.org
  6376.  
  6377.    If any later configuration location has a value set (for a particular
  6378.    list option) which does _not_ begin with "INHERIT", then that value
  6379.    replaces whatever value has been defined up to that point. In other
  6380.    words, that cancels out any previous inheritance.
  6381.    
  6382.  System-wide config :   smtp-server = smtp1.corp.com, smtp2.corp.com
  6383.  Personal config    :   smtp-server = INHERIT, mysmtp.org
  6384.  Exceptions config  :   smtp-server = yoursmtp.org
  6385.  Command line       :   smtp-server = <No Value Set>
  6386.  Fixed config       :   smtp-server = <No Value Set>
  6387.  
  6388.    results in:
  6389.    
  6390.  smtp-server = yoursmtp.org
  6391.  
  6392.    For some configuration options, like "viewer-hdr-colors" or
  6393.    "patterns-roles", it is difficult to insert the value "INHERIT" into
  6394.    the list of values for the option using the normal Setup tools. In
  6395.    other words, the color setting screen (for example) does not provide a
  6396.    way to input the text "INHERIT" as the first item in the
  6397.    viewer-hdr-colors option. The way to do this is to either edit the
  6398.    pinerc file directly and manually insert it, or turn on the
  6399.    "expose-hidden-config" feature and insert it using the Setup/Config
  6400.    screen.
  6401.      _________________________________________________________________
  6402.    
  6403. SMTP Servers
  6404.  
  6405.    It is sometimes desirable to set smtp-server=localhost instead of
  6406.    setting sendmail-path to overcome the inability to negotiate ESMTP
  6407.    options when _sendmail_ is invoked with the _-t_ option. Sendmail can
  6408.    also be subject to unacceptable delays due to slow DNS lookups and
  6409.    other problems.
  6410.    
  6411.    It is sometimes desireable to configure an SMTP server on a port other
  6412.    than the default port 25. This may be used to provide an alternate
  6413.    service that is optimized for a particular environment or provides
  6414.    different features from the port 25 server. An example would be a
  6415.    program that negotiates ESMTP options and queues a message, but does
  6416.    not attempt to deliver messages. This would avoid delays frequently
  6417.    encountered when invoking _sendmail_ directly.
  6418.    
  6419.    A typical configuration would consist of
  6420.      * A program that implements the SMTP or ESMTP protocol via stdio.
  6421.      * An entry in /etc/services for the alternate service.
  6422.      * An entry in /etc/inetd.conf for the alternate service.
  6423.      * An entry in /usr/local/lib/pine.conf,
  6424.        /usr/local/lib/pine.conf.fixed or ~/.pinerc.
  6425.      _________________________________________________________________
  6426.    
  6427. MIME.Types file
  6428.  
  6429.    _Pine_'s MIME-TYPE support is based on code contributed by Hans
  6430.    Drexler <drexler@mpi.nl>. _Pine_ assigns MIME Content-Types
  6431.    according to file name extensions found in the system-wide files
  6432.    /usr/local/lib/mime.types and /etc/mime.types, and a user specific
  6433.    ~/.mime.types file.
  6434.    
  6435.    In DOS and OS/2, _Pine_ looks in the same directory as the PINERC file
  6436.    and the same dir as PINE.EXE. This is similar to the UNIX situation
  6437.    with personal config info coming before potentially shared config
  6438.    data. An alternate search path can be specified by setting the
  6439.    mimetype-search-path variable in the user or system-wide configuration
  6440.    or by setting the MIMETYPES environment variable.
  6441.    
  6442.    These files specify file extensions that will be connected to a mime
  6443.    type. Lines beginning with a '#' character are treated as comments and
  6444.    ignored. All other lines are treated as a mime type definition. The
  6445.    first word is a _type/subtype_ specification. All following words are
  6446.    file _extensions_ belonging to that type/subtype. Words are separated
  6447.    by whitespace characters. If a file extension occurs more than once,
  6448.    then the first definition determines the file type and subtype. A
  6449.    couple sample lines from a mime.types file follow:
  6450.    
  6451. image/gif         gif
  6452. text/html         html htm
  6453. video/mpeg        mpeg mpg mpe
  6454.      _________________________________________________________________
  6455.    
  6456. Color Details
  6457.  
  6458.    UNIX _Pine_ may display color if the terminal or terminal emulator you
  6459.    are using is capable of displaying colors. If the terminal supports
  6460.    ANSI color escape sequences you will be able to turn color on using
  6461.    the color-style option and setting it to the value _force-ansi-8color_
  6462.    or _force-ansi-16color_. If instead you'd like _Pine_ to automatically
  6463.    detect whether or not you are on a color terminal, set _color-style_
  6464.    to _use-termdef_ _and_ configure the termcap entry to describe your
  6465.    terminal's color capabilities.
  6466.    
  6467.    If the _color-style_ option is set to _use-termdef_, _Pine_ looks in
  6468.    the terminal capabilities database, TERMINFO or TERMCAP, depending on
  6469.    how _Pine_ was compiled, to decide whether or not your terminal is
  6470.    capable of color. For TERMINFO compiled _Pine_s, the capabilities that
  6471.    are used for color are "colors", "setaf", "setab", "op", and "bce". If
  6472.    you have a terminal with color capabilities described by the "scp"
  6473.    capability, _Pine_ does not support it. The capabilities "setf" and
  6474.    "setb" may be used instead of "setaf" and "setab". The capability
  6475.    "bce" is optional and is used as an optimization, the other
  6476.    capabilities are required. For TERMCAP compiled _Pine_s, the
  6477.    capabilities that are used for color are "Co", "AF", "AB", "op", and
  6478.    "ut". The capabilities "Sf" and "Sb" may be used instead of "AF" and
  6479.    "AB", though this isn't a useful feature.
  6480.    
  6481.    Here are some short descriptions of the capabilities listed above. The
  6482.    TERMINFO name is listed, followed by the TERMCAP name in parentheses.
  6483.    _colors_ (_Co_)
  6484.           The number of different colors.
  6485.    _setaf_ (_AF_)
  6486.           Set ANSI foreground color.
  6487.    _setab_ (_AB_)
  6488.           Set ANSI background color.
  6489.    _setf_ (_Sf_)
  6490.           Set foreground color. Alternate form of _setaf_.
  6491.    _setb_ (_Sb_)
  6492.           Set background color. Alternate form of _setab_.
  6493.    _op_ (_op_)
  6494.           Set default pair to its original value.
  6495.    _bce_ (_ut_)
  6496.           Screen is erased with current background color instead of
  6497.           default background.
  6498.           
  6499.    A standard ANSI terminal which supports color will have a TERMINFO
  6500.    entry which contains:
  6501.   colors#8
  6502.   setaf=\E[3%p1%dm
  6503.   setab=\E[4%p1%dm
  6504.   op=\E[39;49m
  6505.   bce
  6506.  
  6507.    or the TERMCAP equivalent:
  6508.   Co#8
  6509.   AF=\E[3%dm
  6510.   AB=\E[4%dm
  6511.   op=\E[39;49m
  6512.   ut
  6513.  
  6514.    If there are eight colors, the program uses colors 0, 1, ..., 7. For
  6515.    an ANSI terminal, the foreground color is set by sending the escape
  6516.    sequence "Escape LeftBracket 3 color_number m" to the terminal. The
  6517.    background color is set by sending the sequence "Escape LeftBracket 4
  6518.    color_number m". ANSI colors zero through seven are defined to be
  6519.    "black", "red", "green", "yellow", "blue", "magenta", "cyan", and
  6520.    "white". Some terminal emulators will swap blue and red and swap
  6521.    yellow and cyan. The capabilities "setf" and "setb" are usually
  6522.    designed for those terminals so that they will flip the color numbers
  6523.    1 and 4 and the numbers 3 and 6 to compensate for this. _Pine_ will
  6524.    use the ANSI versions of the capabilities if they exist, and will use
  6525.    the non-ANSI versions (setf and setb) if the ANSI versions don't
  6526.    exist. Here's a version which does the flipping. This can only be used
  6527.    with TERMINFO _Pine_s, because of the arithmetic, which is not
  6528.    supported by TERMCAP.
  6529.   colors#8
  6530.   setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m
  6531.   setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m
  6532.   op=\E[39;49m
  6533.   bce
  6534.  
  6535.    Some terminal emulators are capable of displaying eight more colors
  6536.    when the foreground colors 30-37 are replaced with 90-97 and the
  6537.    background colors 40-47 are replaced with 100-107. These terminals
  6538.    require a fancy termcap entry which can take foreground colors 0, 1,
  6539.    ..., 15 and map that into 30, 31, ..., 37, 90, 91, ..., 97, and
  6540.    similarly for the background colors. Here is a terminfo entry which
  6541.    will do just that:
  6542.   colors#16
  6543.   setaf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%dm
  6544.   setab=%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%dm
  6545.   op=\E[39;49m
  6546.   bce
  6547.  
  6548.    and here is the termcap equivalent:
  6549.   Co#16
  6550.   AF=\E[%i%i%>\001\034%>\045\064%dm
  6551.   AB=\E[%i%i%>\001\046%>\057\064%dm
  6552.   op=\E[39;49m
  6553.   ut
  6554.  
  6555.    This is a terminfo entry for 16 colors that also does the color
  6556.    flipping:
  6557.   colors#16
  6558.   setf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%
  6559. {4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m
  6560.   setb=%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%
  6561. {4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m
  6562.   op=\E[39;49m
  6563.   bce
  6564.  
  6565.    If you are always using the same display it probably won't matter to
  6566.    you if the color pairs red/blue and cyan/yellow are flipped, since
  6567.    you'll always be seeing them flipped. You will get different defaults
  6568.    than on a display with them not flipped, but that's about all. If you
  6569.    are trying to use the same pinerc file from displays with different
  6570.    color characteristics, or from _Pine_ and _PC-Pine_, you will have to
  6571.    be more careful. The colors numbered 0 through 7 may be used portably
  6572.    between different systems if you are careful to make them correspond
  6573.    to the ANSI order mentioned above. You can check this by looking at a
  6574.    color configuration screen for one of the colors. The first eight
  6575.    colors should be in the order above. If they aren't, you could fix
  6576.    that by modifying your termcap entry on the UNIX system. This is not
  6577.    possible if your system uses TERMCAP instead of TERMINFO.
  6578.      _________________________________________________________________
  6579.    
  6580. Additional Notes on PC-Pine
  6581.  
  6582.    Below are a few odds and ends worth mentioning about _PC-Pine_. They
  6583.    have to do with DOS-specific behavior that is either necessary or
  6584.    useful (and sometimes both!).
  6585.    
  6586.    As _PC-Pine_ runs in an environment with limited access control,
  6587.    accounting or auditing, an additional line is automatically inserted
  6588.    into the header of mail messages generated by _PC-Pine_:
  6589.         X-Sender: <userid>@<imap.host>
  6590.  
  6591.    By popular demand of system administrators, _PC-Pine_ has been
  6592.    modified to prevent sending messages until the user has successfully
  6593.    logged into a remote mail server. Even though _PC-Pine_ cannot prevent
  6594.    users from changing the apparent identity of the sender of a message,
  6595.    the IMAP server login name and host name included in the _X-Sender_
  6596.    line provide some level of traceability by the recipient. However,
  6597.    this should not be considered a rigorous form of authentication. It is
  6598.    extremely lightweight, and is not a replacement for true
  6599.    authentication.
  6600.    
  6601.    Hand in hand with authentication and accounting is user information.
  6602.    Since _PC-Pine_ has no user database to consult for _user-id_,
  6603.    _personal-name_, etc., necessary information must be provided by the
  6604.    user/installer before _PC-Pine_ can properly construct the "From"
  6605.    address required for outbound messages. _PC-Pine_ will, by default,
  6606.    prompt for the requisite pieces as they are needed. This information
  6607.    corresponds to the _PINERC_ variables user-id, personal-name,
  6608.    user-domain, and smtp-server.
  6609.    
  6610.    The user is then asked whether or not this information should
  6611.    automatically be saved to the _PINERC_. This is useful behavior in
  6612.    general, but can lead to problems in a lab or other shared
  6613.    environment. Hence, these prompts and automatic saving of
  6614.    configuration can be turned off on an entry by entry basis by setting
  6615.    any of the above values in the _PINERC_ to the null string (i.e., a
  6616.    pair of double quotes). This means that the user will be prompted for
  6617.    the information once during each _Pine_ session, and no opportunity to
  6618.    save them in the _PINERC_ will be offered.
  6619.    
  6620.    Along similar lines, a feature allowing automatic login to the
  6621.    imap-server containing the user's _INBOX_ has also been requested.
  6622.    This feature is not enabled by default, but requires the existence of
  6623.    the file named _PINE.PWD_ in the same directory as the _PINERC_. Even
  6624.    with the existence of this file, the user must still acknowledge a
  6625.    prompt before the password is saved to the file. If _PC-Pine_ is
  6626.    configured to access several different IMAP servers, each password
  6627.    entered will be kept (associated with the corresponding host name) in
  6628.    memory during the current session, and optionally, in the _PINE.PWD_
  6629.    file for use in subsequent sessions.
  6630.    
  6631.    _WARNING_! Use this feature with caution! It effectively makes the
  6632.    user's mail no more secure than the physical security of the machine
  6633.    running _PC-Pine_. What's more, while the password is cloaked by a
  6634.    mild (some might say, feeble) encryption scheme, it is nonetheless
  6635.    sitting in a file on the PC's disk and subject to cracking by anyone
  6636.    with access to it. _BEWARE_!
  6637.    
  6638.    Another feature of DOS is the lack of standard scratch area for
  6639.    temporary files. During the course of a session, _PC-Pine_ may require
  6640.    numerous temporary files (large message texts, various caches, etc.).
  6641.    Where to create them can be a problem, particularly when running under
  6642.    certain network operating systems. _PC-Pine_ observes the _TMP_ and
  6643.    _TEMP_ environment variables, and creates temporary files in the
  6644.    directory specified by either. In their absence, _PC-Pine_ creates
  6645.    these files in the root of the current working drive.
  6646.  
  6647.                                Behind the Scenes
  6648.                                        
  6649.    Many people ask how certain _Pine_ features are implemented. This
  6650.    section outlines some of the details.
  6651.    
  6652. Address Books
  6653.  
  6654.    Beginning with _Pine_ 4.00 there are two types of address book
  6655.    storage. There are _local_ address books, which are the address books
  6656.    that are stored in a local file (the address books _Pine_ has had all
  6657.    along); and there are _remote_ address books, which are stored on an
  6658.    IMAP server.
  6659.    
  6660.     Information About Remote Address Books
  6661.     
  6662.      NOTE: The remote address book capability does not allow you to
  6663.      access an existing local address book from a remote system! That
  6664.      is, you can't set the remote address book to something like
  6665.      {remote.host}.addressbook and expect to access the existing
  6666.      .addressbook _file_ on remote.host. Instead, you need to create a
  6667.      new remote address book in a new, previously unused remote mail
  6668.      _folder_. Then you can use the _Select_ and _Apply Save_ commands
  6669.      in the address book screen to _Save_ all of the entries from an
  6670.      existing local address book to the new remote address book.
  6671.      
  6672.    Beginning with _Pine_ 4.00 there is a new type of address book called
  6673.    a remote address book. A remote address book is stored in a mail
  6674.    folder on an IMAP server. A _Pine_ remote address book is just like a
  6675.    _Pine_ local address book in that it is not interoperable with other
  6676.    email clients. The folder is a regular folder containing mail messages
  6677.    but those messages are special. The first message must be a pine
  6678.    remote address book header message which contains the header
  6679.    _x-pine-addrbook_. The last message in the folder contains the address
  6680.    book data. In between the first and the last message are old versions
  6681.    of the address book data. The address book data is simply stored in
  6682.    the message as it would be on disk, with no MIME encoding. When it is
  6683.    used the data from the last message in the folder is copied to a local
  6684.    file and then that file is used exactly like a local address book file
  6685.    is used. When a change is made the modified local file is appended to
  6686.    the remote folder in a new message. In other words, the local file is
  6687.    just a cache copy of the data in the remote folder. Each client which
  6688.    uses the remote address book will have its own cache copy of the data.
  6689.    Whenever a copy is done the entire address book is copied, not just
  6690.    the entries which have changed.
  6691.    
  6692.    _Pine_ can tell that the remote data has changed by one of several
  6693.    methods. If the date contained in the Date header of the last message
  6694.    has changed then it knows it has changed. If the UID of the last
  6695.    message has changed, or the number of messages in the folder has
  6696.    changed, it knows that it has changed. When _Pine_ discovers the
  6697.    folder has changed it gets a new copy and puts it in the local cache
  6698.    file.
  6699.    
  6700.    There is a new configuration file variable for remote address books
  6701.    called remote-abook-metafile. The variable is the name of a file in
  6702.    which information about remote address books is stored. There is one
  6703.    line in the metafile for each remote address book. The information
  6704.    stored there is the name of the cache file and information to help
  6705.    figure out when the remote folder has changed. If the metafile or any
  6706.    of the cache files is deleted then _Pine_ will rebuild them the next
  6707.    time it runs.
  6708.    
  6709.    Remote address books have names that look just like regular remote
  6710.    mail folder names. For example:
  6711.    
  6712.      {host.domain}foldername
  6713.      
  6714.    _Pine_ decides whether or not an address book is remote simply by
  6715.    looking at the first character of the address book name and comparing
  6716.    it to '_{_'.
  6717.    
  6718.     Information About All Address Books
  6719.     
  6720.    The address book is named, by default, .addressbook in the user's Unix
  6721.    home directory, or in the case of _PC-Pine_, ADDRBOOK, in the same
  6722.    directory as the PINERC file. There may be more than one address book,
  6723.    and the default name can be overridden via an entry in any of the
  6724.    _Pine_ configuration files. The two configuration variables
  6725.    address-book and global-address-book are used to specify the names of
  6726.    the address books. Each of these variables is a list variable. The
  6727.    total set of address books for a user is the combination of all the
  6728.    address books specified in these two lists. Each entry in the list is
  6729.    an optional nickname followed by an address book name. The nickname is
  6730.    everything up to the last space before the file name. The
  6731.    _global-address-book_ list will typically be configured in the
  6732.    system-wide configuration file, though a user may override it like
  6733.    most other variables. Address books which are listed in the
  6734.    _global-address-book_ variable are forced read-only, and are typically
  6735.    shared among multiple users.
  6736.    
  6737.    Local address books (or local cache files for remote address books)
  6738.    are simple text files with lines in the format:
  6739.    
  6740.      <nickname>TAB<fullname>TAB<address>TAB<fcc>TAB<comments>
  6741.      
  6742.    The last two fields are optional. A "line" may be made up of multiple
  6743.    actual lines in the file by using continuation lines, which are lines
  6744.    beginning with SPACE characters. The line breaks may be after TABs or
  6745.    in between addresses in a distribution list. Each _actual_ line in the
  6746.    file must be less than 1000 characters in length.
  6747.    
  6748.    Nicknames (the first field) are short names that the user types
  6749.    instead of typing in the full address. There are several characters
  6750.    which aren't allowed in nicknames in order to avoid ambiguity when
  6751.    parsing the address (SPACE, COMMA, @, ", ;, :, (, ), [, ], <, >, \).
  6752.    Nicknames aren't required. In fact, none of the fields is required.
  6753.    
  6754.    The _fullname_ field is usually stored as Last_name, First_name, in
  6755.    order that a sort on the fullname field comes out sorted by Last_name.
  6756.    If there is an unquoted comma in the fullname, _Pine_ will flip the
  6757.    first and last name around and get rid of the comma when using the
  6758.    entry in a composition. It isn't required that there be a comma,
  6759.    that's only useful if the user wants the entries to sort on last
  6760.    names.
  6761.    
  6762.    The _address_ field takes one of two forms, depending on whether the
  6763.    entry is a single (simple) address or a distribution list. For a
  6764.    simple entry, the address field is an RFC 822 address. This could be
  6765.    either the email-address part of the address, i.e., the part that goes
  6766.    inside the brackets (<>), or it could be a full RFC 822 address. The
  6767.    phrase part of the address (the fullname) is used unless there is a
  6768.    fullname present in the fullname field of the address book entry. In
  6769.    that case, the fullname of the address book entry replaces the
  6770.    fullname of the address. For a distribution list, the <address> is in
  6771.    the format:
  6772.    
  6773.      "(" <address>, <address>, <address>, ... ")"
  6774.      
  6775.    The only purpose for the parentheses around the list of addresses is
  6776.    to make it easier for the parsing routines to tell that it is a simple
  6777.    entry instead of a list. The two are displayed differently and treated
  6778.    slightly differently in some cases, though most of the distinction has
  6779.    disappeared. Each of the addresses in a list can be a full RFC 822
  6780.    address with fullname included, or it may be just the simple
  6781.    email-address part of the address. This allows the user to have a list
  6782.    which includes the fullnames of all the list members. In both the
  6783.    simple and list cases, addresses may also be other nicknames which
  6784.    appear in this address book or in one of the other address books.
  6785.    (Those nicknames are searched for by looking through the address books
  6786.    in the order they appear in the address book screen, with the first
  6787.    match winning.) Lists may be nested. If addresses refer to each other
  6788.    in a loop (for example, list A includes list B which includes list A
  6789.    again) this is detected and flagged. In that case, the address will be
  6790.    changed to "**** address loop ****".
  6791.    
  6792.    The optional _fcc_ field is a folder name, just like the fcc field in
  6793.    the composer headers. If the first address in the To field of a
  6794.    composition comes from an address book entry with an fcc field, then
  6795.    that fcc is placed in the fcc header in the composer.
  6796.    
  6797.    The _comments_ field is just a free text field for storing comments
  6798.    about an entry. By default, neither the fcc nor the comments field is
  6799.    shown on the screen in the address book screen. You may make those
  6800.    fields visible by configuring the variable addressbook-formats. They
  6801.    are also searched when you use the _WhereIs_ command in the address
  6802.    book screen and are visible when you _View_ or _Update_ an entry.
  6803.    
  6804.    The address book is displayed in the order that it is stored. When the
  6805.    user chooses a different sorting criterion, the data is actually
  6806.    sorted and stored, as opposed to showing a sorted view of the data.
  6807.    
  6808.    When the address book is written out, it is first written to a
  6809.    temporary file and if that write is successful it is renamed. This
  6810.    guards against errors writing the file that might destroy the whole
  6811.    address book. The address book is re-written after each change. If the
  6812.    address book is a remote address book, the file is then appended to
  6813.    the remote mail folder using IMAP.
  6814.    
  6815.    The end-of-line character(s) in the address book file are those native
  6816.    to the system writing it. So it is <LF> on Unix and <CR><LF> on PC's.
  6817.    However, both Unix and PC versions of _Pine_ can read either format,
  6818.    so it should be possible to share a read-only address book among the
  6819.    two populations (using NFS, for example). The end-of-line character
  6820.    for the LookUp file is always just <LF>, even on a PC.
  6821.      _________________________________________________________________
  6822.    
  6823.   Address Book Lookup File
  6824.   
  6825.    Starting in 3.90 there is an additional file for each address book,
  6826.    called the LookUp file. It usually has the same name as the address
  6827.    book file with the suffix ".lu" appended. (It might have a different
  6828.    name if a file name length restriction prohibited that name.) This
  6829.    file is created and maintained by _Pine_. If it is deleted, _Pine_
  6830.    will recreate it next time it runs. Its purpose is to speed up lookups
  6831.    for large address books and to reduce memory requirements for large
  6832.    address books. A fairly detailed description of how it is used is
  6833.    given in src/pine/adrbklib.h.
  6834.    
  6835.    The lookup file changes whenever the address book itself is changed.
  6836.    If it doesn't exist, _Pine_ attempts to create it. If _Pine_ doesn't
  6837.    have permission to create the lookup file with the standard name, it
  6838.    will create a temporary version in a temp directory. You want to avoid
  6839.    this since it would have to be rebuilt every time _Pine_ was run, and
  6840.    rebuilding takes a significant time for a large address book. So, if
  6841.    you're going to have a shared address book in a read-only directory,
  6842.    it is highly desirable to create the lookup file so that the users
  6843.    sharing it won't have to each create a copy in a temp directory. You
  6844.    can do that by running _Pine_ and accessing the address book under a
  6845.    user id which does have permission to write the file or by using the
  6846.    _-create_lu_ command line argument to _Pine_. If users may be using a
  6847.    shared address book that needs updating, it is best to _move_ the old
  6848.    address book to another name rather than copying over it since the
  6849.    file may be opened by running _Pine_s. It is also best to make the
  6850.    lookup file for the new addrbook before moving it and the address book
  6851.    file into place, otherwise users may get stuck attempting to
  6852.    initialize the new lookup file. The lookup file contains a timestamp
  6853.    which records the mtime of the address book file when the lookup file
  6854.    was last updated. Whenever a user runs _Pine_ the current mtime of the
  6855.    address book is checked against this timestamp and if they differ,
  6856.    _Pine_ will want to rebuild the lookup file. Because of this, it isn't
  6857.    a good idea to build the lookup file and then _copy_ the address book
  6858.    and lookup file into place. You should move it or copy it in some way
  6859.    which preserves the address book file's mtime (e.g., use _mv_ or
  6860.    _tar_).
  6861.    
  6862.     Validity Checking of Address Books
  6863.     
  6864.    There is no file locking done on _Pine_ address books, however, there
  6865.    is considerable validity checking done to make sure that the address
  6866.    book hasn't changed unexpectedly. Whenever the address book is about
  6867.    to be changed, a check is made to see if the file is newer than when
  6868.    we read it or the remote address book folder has changed since we last
  6869.    copied it. If either of these is true, the change is aborted.
  6870.    
  6871.    There is an automatic, behind-the-scene check that happens every so
  6872.    often, also. For example, if someone else changes one of the address
  6873.    books that you have configured, your _Pine_'s copy of the address book
  6874.    will usually be updated automatically without you noticing. This
  6875.    checking happens at the same time as new mail checking takes place,
  6876.    unless you are actively using the address book, in which case it
  6877.    happens more frequently.
  6878.    
  6879.    Another sort of validity check is that the lookup file contains a
  6880.    timestamp internally that is supposed to match the time that the
  6881.    address book file itself was last modified. If the lookup file
  6882.    timestamp doesn't match the date of the address book file, a new
  6883.    lookup file is built. If you are having trouble, it is always ok to
  6884.    remove the lookup file and restart. _Pine_ will automatically rebuild
  6885.    the lookup file.
  6886.    
  6887.    One other validity check happens when looking up an entry in the
  6888.    address book file. An entry is looked up by first getting an offset
  6889.    into the address book file from the lookup file. A seek to that
  6890.    location is done and then the entry is read. An entry should be at the
  6891.    start of a line. If it isn't, something is wrong. In that case, the
  6892.    lookup file is rebuilt and the operation is repeated if possible.
  6893.      _________________________________________________________________
  6894.    
  6895. Remote Configuration
  6896.  
  6897.    Beginning with _Pine_ 4.30, configuration information may be stored
  6898.    remotely. Remote configuration information is stored in a folder on an
  6899.    IMAP server. This should be a folder which is used only for storing
  6900.    the configuration information. In other words, it should be a folder
  6901.    which didn't exist before.
  6902.    
  6903.    Remote configuration folders are very similar to remote address book
  6904.    folders. They both consist of a header message, which serves to
  6905.    identify the type of folder; the last message, which contains the
  6906.    data; and intermediate messages, which contain old versions of the
  6907.    data. The first message must contain the header _x-pine-pinerc_.
  6908.    
  6909.    When a remote configuration is being used, the folder is checked to
  6910.    make sure it is a remote configuration folder, then the data contained
  6911.    in the last message is copied to a temporary file. That file is
  6912.    treated just like any regular local configuration file from that point
  6913.    on. Whenever a configuration change is made, the entire file is copied
  6914.    back to the IMAP server and is appended to the folder as a new
  6915.    message.
  6916.    
  6917.    Because remote configuration folders are so similar to remote address
  6918.    books, the configuration variable remote-abook-metafile is used by
  6919.    both.
  6920.    
  6921.    Remote configuration folders have names that look just like regular
  6922.    remote mail folder names. For example:
  6923.    
  6924.      {host.domain}mypinerc
  6925.      
  6926.    _Pine_ decides whether or not a configuration file is remote simply by
  6927.    looking at the first character of the name and comparing it to '_{_'.
  6928.      _________________________________________________________________
  6929.    
  6930. Checkpointing
  6931.  
  6932.    Periodically _Pine_ will save the whole mail folder to disk to prevent
  6933.    loss of any mail or mail status in the case that it gets interrupted,
  6934.    disconnected, or crashes. The period of time _Pine_ waits to do the
  6935.    checkpoint is calculated to be minimally intrusive. The timing can be
  6936.    changed (but usually isn't) at compile time. Folder checkpointing
  6937.    happens for both local folders and those being accessed with IMAP. The
  6938.    delays are divided into three categories:
  6939.    
  6940.    Good Time:
  6941.           This occurs when _Pine_ has been idle for more than 30 seconds.
  6942.           In this case _Pine_ will checkpoint if 12 changes to the file
  6943.           have been made or at least one change has been made and a
  6944.           checkpoint hasn't been done for five minutes.
  6945.    Bad Time:
  6946.           This occurs just after _Pine_ has executed some command. _Pine_
  6947.           will checkpoint if there are 36 outstanding changes to the mail
  6948.           file or at least one change and no checkpoint for ten minutes.
  6949.    Very Bad Time:
  6950.           Done when composing a message. In this case, _Pine_ will only
  6951.           checkpoint if at least 48 changes have been made or at least
  6952.           one change has been made in the last twenty minutes with no
  6953.           checkpoint.
  6954.      _________________________________________________________________
  6955.    
  6956. Debug Files
  6957.  
  6958.    If Unix _Pine_ is compiled with the compiler _DEBUG_ option on (the
  6959.    default), then _Pine_ will produce debugging output to a file. The
  6960.    file is normally .pine-debugX in the user's home directory where _X_
  6961.    goes from 1 to 4. Number 1 is always the most recent session and 4 the
  6962.    oldest. Four are saved because often the user has gone in and out of
  6963.    _Pine_ a few times after a problem has occurred before the expert
  6964.    actually gets to look at it. The amount of output in the debug files
  6965.    varies with the debug level set when _Pine_ is compiled and/or as a
  6966.    command line flag. The default is level 2. This shows very general
  6967.    things and records errors. Level 9 produces copious amounts of output
  6968.    for each keystroke.
  6969.    
  6970.    _PC-Pine_ creates a single debug file named PINEDEBG.TXT in the same
  6971.    directory as the PINERC file.
  6972.      _________________________________________________________________
  6973.    
  6974. Filters
  6975.  
  6976.    _Pine_ is not designed to process email messages as they are
  6977.    delivered; rather _Pine_ depends on the fact that some other program
  6978.    (sendmail, etc) will deliver messages and _Pine_ simply reads the
  6979.    email folders which that other program creates. For this reason, _Pine_
  6980.    cannot filter incoming email into different folders. It can, however,
  6981.    work alongside most of the programs available over the Internet which
  6982.    perform this task. _Pine_ is known to operate successfully with the
  6983.    _Elm_ _filter_ program and with _procmail_.
  6984.    
  6985.    _Pine_ allows users to specify a set of incoming-folders. _Pine_ will
  6986.    separate out all the folders listed as _incoming-folders_ and offer
  6987.    convenient access to these. We hope that in the future _Pine_ will be
  6988.    able to offer new message counts for all of the incoming folders, but
  6989.    we haven't done this so far because of the performance penalty.
  6990.      _________________________________________________________________
  6991.    
  6992. Folder Formats and Name Extensions
  6993.  
  6994.    A folder is a group of messages. The default format used by Unix _Pine_
  6995.    is the Berkeley mail format. It is also used by the standard _mail_
  6996.    command and by _elm._ Unix _Pine_ also understands message folders in
  6997.    other formats, such as Tenex, MH, MMDF, and Netnews.
  6998.    
  6999.    _PC-Pine_ reads and writes local (PC) folders in a special format
  7000.    similar to the Tenex format. Near as we can tell, _PC-Pine_ is the
  7001.    only program to use this format. Beginning with version 3.90, _PC-Pine_
  7002.    includes a ReadOnly driver for the Berkeley mailbox format in
  7003.    addition. That means that you can import Unix mail folders, or mount
  7004.    them via NFS or SMB, and _PC-Pine_ can read them --but not modify
  7005.    them.
  7006.    
  7007.    Extensions. In the past, file name extensions have been significant in
  7008.    both Unix _Pine_ and _PC-Pine_, but this has caused more problems than
  7009.    it solved. Therefore, on Unix _Pine_ extensions no longer have any
  7010.    special meaning, and this is the trend for _PC-Pine_ as well.
  7011.    
  7012.    By default, _PC-Pine_ adds ".MTX" to the name of any local (PC)
  7013.    folders that are referenced, and suppresses the extension from the
  7014.    "Folder List" display. Now that _PC-Pine_ can read more than one
  7015.    folder format, the MTX extension no longer implies a particular
  7016.    format, and is largely irrelevant. By using the folder_extension
  7017.    option, you can change this behavior. In particular, you may set
  7018.    _folder-extension_ to the "null string" (a pair of double quotes)
  7019.    which tells _PC-Pine_ to neither add nor hide-from-view _any_ folder
  7020.    name extension.
  7021.    
  7022.    The reason you might wish to over-ride the MTX default is that recent
  7023.    versions of _PC-Pine_ have the ability to open (albeit ReadOnly)
  7024.    normal Unix mail folders. Since it might be inconvenient to rename all
  7025.    of them to have an MTX extension, it is possible with this option to
  7026.    switch _PC-Pine_'s behavior so that such folders can be seen and
  7027.    accessed without changing their names. However, doing this means that
  7028.    your existing _PC-Pine_ local folders will have apparently changed
  7029.    their names. For example, if you had a local folder named "FOO" it
  7030.    will now appear in the "Folder List" as "FOO.MTX". If you wish to save
  7031.    additional messages to that folder, you will need to enter the full
  7032.    name, "FOO.MTX" at the _Save_ prompt. Likewise for _GoTo_.
  7033.    
  7034.    If you wish to permanently avoid having to deal with folder name
  7035.    extensions, you will need to set this option to the null string by
  7036.    entering two double- quote marks, and you will need to rename your
  7037.    existing local folders to not have an MTX extension. In DOS this can
  7038.    be done in one command, once you have changed to your mail directory:
  7039.    RENAME *.MTX *.
  7040.    
  7041.    We don't know why you might wish to, but you could also use this
  7042.    option to tell _PC-Pine_ to use an extension other than MTX. In this
  7043.    case, enter the three characters you desire to use in lieu of "MTX".
  7044.    Note that your existing folders will need to be renamed to correspond
  7045.    to this new extension.
  7046.    
  7047.    Berkeley Mail Format
  7048.           This format comes to us from the ancient UNIX mail program,
  7049.           _/bin/mail._ (Note that this doesn't have anything to do with
  7050.           Berkeley, but we call it the Berkeley mail file format anyway.)
  7051.           This program was actually used to interactively read mail at
  7052.           one time, and is still used on many systems as the local
  7053.           delivery agent. In the Berkeley mail format, a folder is a
  7054.           simple text file. Each message (including the first) must start
  7055.           with a separator line which takes approximately the form:
  7056.           
  7057.      From juser@u.example.edu Wed Aug 11 14:32:33 1993
  7058.           Each message ends with two blank lines. There are actually
  7059.           several different variations in the date part of the string,
  7060.           twenty at last count. Because of the format of the separators,
  7061.           lines in the mail message beginning with "From ", space
  7062.           included, risk being confused as message separator lines. Some
  7063.           mail programs will interpret any line beginning with "From " as
  7064.           a message separator, while others --including _Pine_-- will not
  7065.           be confused unless the line really looks like a message
  7066.           separator, complete with address and date. Such lines will be
  7067.           modified to begin with ">From ". In deference to other mail
  7068.           programs, you may also set the save-will-quote-leading-froms
  7069.           feature, in which case any line beginning with "From " will be
  7070.           modified as above. If you see this occasionally in incoming
  7071.           mail messages, the culprit is not _Pine_ but the message
  7072.           delivery program being used at your site.
  7073.           You can fool _Pine_ into thinking a file is a mail folder by
  7074.           copying a suitable message separator from a real folder to the
  7075.           beginning of the file and wherever you want message boundaries.
  7076.           The vast majority of _INBOX_es _Pine_ reads and folders it
  7077.           writes are of this format.
  7078.    Tenex and MTX Formats
  7079.           Like the Berkeley format, the Tenex folder format uses a single
  7080.           file per folder. Historically, the name of Tenex-format folders
  7081.           ended with _.txt_, but this rule is no longer enforced. The
  7082.           file format consists of a header line followed by the message
  7083.           text for each message. The header is in one of two forms:
  7084.           
  7085.      dd-mmm-yy hh:mm:ss-zzz,n;ffffffffffff
  7086.      dd-mmm-yyyy hh:mm:ss sssss,n;ffffffffffff
  7087.           and is immediately followed by a newline (and the message
  7088.           text). The fields in the formats are:
  7089.  
  7090.         dd      two-digit day of month (leading space if a single-digit day)
  7091.  
  7092.         mmm     three-letter English month name (Jan, Feb, etc.)
  7093.  
  7094.         yy      two-digit year in 20th century (obsolete)
  7095.  
  7096.         yyyy    four-digit year
  7097.  
  7098.         hh      two-digit hour in 24-hour clock (leading zero if single-digit)
  7099.  
  7100.         mm      two-digit minute (leading zero)
  7101.  
  7102.         ss      two-digit second (leading zero)
  7103.  
  7104.         zzz     three-letter North American time zone (obsolete)
  7105.  
  7106.         sssss   signed four-digit international time zone as in RFC 822
  7107.  
  7108.         n       one or more digits of the size of the following message in
  7109.  
  7110.                 bytes
  7111.  
  7112.         ffffffffffff
  7113.  
  7114.                 twelve-digit octal flags value
  7115.  
  7116.           Punctuation is as given above.
  7117.           The time in the header is the time that message was written to
  7118.           the folder. The flags are interpreted as follows: the high
  7119.           order 30 bits are used to indicate user flags, the next two
  7120.           bits are reserved for future usage, the low four bits are used
  7121.           for system flags (010 = answered, 04 = flagged urgent, 02 =
  7122.           deleted, 01 = seen).
  7123.           If a Tenex-format (or empty) file named _mail.txt_ exists in a
  7124.           _Pine_ user's home directory, this triggers special processing
  7125.           in _Pine_. When _INBOX_ is opened, mail is automatically moved
  7126.           from _/usr/spool/mail_ into _mail.txt_ in the user's home
  7127.           directory.
  7128.           The format used by _PC-Pine_ is identical to the Tenex format,
  7129.           with two exceptions: the folder name ends with _.MTX_ instead
  7130.           of _.txt_ (this is a requirement in the MTX format), and
  7131.           DOS-style CR/LF newlines are used instead of UNIX-style LF
  7132.           newlines.
  7133.    Netnews Format
  7134.           The netnews format is a ReadOnly format which uses directories
  7135.           under /usr/spool/news as folders. The /usr/spool/news/ prefix
  7136.           is removed and all subsequent ``/'' (slash) characters are
  7137.           changed to ``.'' (period). For example, the netnews folder name
  7138.           _comp.mail.misc_ refers to the directory name
  7139.           /usr/spool/news/comp/mail/misc. In addition, the news folder
  7140.           name must appear in the file /usr/lib/news/active for it to be
  7141.           recognized. Individual messages are stored as files in that
  7142.           directory, with file names being the ASCII form of a number
  7143.           assigned to that message. The default locations above can be
  7144.           changed with the config variables news-spool-directory and
  7145.           news-active-file-path.
  7146.      _________________________________________________________________
  7147.    
  7148. Folder Locking
  7149.  
  7150.    There are two kinds of locking which _Pine_ has to worry about. The
  7151.    first might be called program-contention locking. This affects the
  7152.    times when a program is performing actual updates on a folder. An
  7153.    update might be a message delivery program appending a message
  7154.    (_sendmail_ delivering a message to an _INBOX_), status changes
  7155.    (checkpoints by _Pine_ every few minutes) or deletion of messages (an
  7156.    expunge in _Pine_). For moderate sized mail messages, these operations
  7157.    should not last for more than a few seconds. The second kind of
  7158.    locking has to do with user-contention situations. This would be the
  7159.    case when one folder is shared by a group of people or even when one
  7160.    person starts multiple email sessions all of which access the same
  7161.    folders and _INBOX_.
  7162.    
  7163.    There are two standard locking mechanisms which handle
  7164.    program-contention locking. To be on the safe side, _Pine_ implements
  7165.    both of them. The older mechanism places a file _xxxx.lock_ (where
  7166.    _xxxx_ is the name of the file being locked) in the same directory as
  7167.    the file being locked. This makes use of the fact that directory
  7168.    operations are atomic in UNIX and mostly works across NFS. There are
  7169.    involved algorithms used to determine if a lock has been held for an
  7170.    excessive amount of time and should be broken. The second
  7171.    program-contention locking mechanism uses the _flock()_ system call on
  7172.    the mailbox. This is much more efficient and the locks can't get stuck
  7173.    because they go away when the process that created them dies. This is
  7174.    usually found on 4BSD and related machines.
  7175.    
  7176.    In addition to these, _Pine_--through the c-client library--provides
  7177.    robust locking which prevents several users (or several instances of
  7178.    the same user) having a mail file open (for update) at once. This
  7179.    user-contention lock is held the entire time that the folder is in
  7180.    use.
  7181.    
  7182.    With IMAPd 7.3(63) and _Pine_ 3.84 and higher, the second _Pine_
  7183.    session which attempts to open a particular folder (usually _INBOX_)
  7184.    with _Pine_ will ``win''. That is to say, the second session will have
  7185.    read/write access to the folder. The first user's folder will become
  7186.    read-only. (Note that this is exactly the opposite of the behavior
  7187.    prior to _Pine_ 3.84 where the second open was read-only. Having the
  7188.    latest open be read-write seems to match more closely with what users
  7189.    would like to have happen in this situation.) _Pine_'s additional
  7190.    locking is only effective against multiple uses of _Pine_ or other
  7191.    programs using the c-client library, such as _MailManager, ms, IMAPd
  7192.    _and a few others. Beginning with _Pine_ 3.85, there is a _-o_ command
  7193.    line flag to intentionally open a mailbox read-only.
  7194.    
  7195.    _Pine_ locking on UNIX systems works by creating lock files in _/tmp_
  7196.    of the form _\usr\spool\mail\joe. _The system call _flock()_ is then
  7197.    used on these files; the existence of the file alone does not
  7198.    constitute a lock. This lock is created when the folder is opened and
  7199.    destroyed when it is closed. When the folder is actually being
  7200.    written, the standard UNIX locks are also created.
  7201.    
  7202.    If a folder is modified by some other program while _Pine_ has it
  7203.    open, _Pine_ will give up on that mail file, concluding it's best not
  7204.    to do any further reads or writes. This can happen if another mailer
  7205.    that doesn't observe _Pine_'s user-contention locks (e.g. _elm_ or
  7206.    _mail)_ is run while _Pine_ has the mail folder open. _Pine_
  7207.    checkpoints files every few minutes, so little data can be lost in
  7208.    these situations.
  7209.    
  7210.    _PC-Pine_ does not do any folder locking. It depends on IMAP servers
  7211.    to handle locking of remote folders. It is assumed that only one _Pine_
  7212.    session can be running on the PC at a time, so there is no contention
  7213.    issue around folders on the PC itself.
  7214.      _________________________________________________________________
  7215.    
  7216. INBOX and Special Folders
  7217.  
  7218.    The _INBOX_ folder is treated specially. It is normally kept open
  7219.    constantly so that the arrival of new mail can be detected. The name
  7220.    _INBOX_ refers to wherever new mail is retrieved on the system. If the
  7221.    inbox-path variable is set, then _INBOX_ refers to that. IMAP servers
  7222.    understand the concept of _INBOX_, so specifying the folder
  7223.    _{imap.u.example.edu}INBOX_ is meaningful. The case of the word _INBOX_
  7224.    is not important, but _Pine_ tends to display it in all capital
  7225.    letters.
  7226.    
  7227.    The folders for sent mail and saved messages folders are also somewhat
  7228.    special. They are automatically created if they are absent and
  7229.    recreated if they are deleted.
  7230.      _________________________________________________________________
  7231.    
  7232. Internal Help Files
  7233.  
  7234.    The file pine.hlp in the pine subdirectory of the distribution
  7235.    contains all the help text for _Pine_. On UNIX, it is compiled right
  7236.    into the _Pine_ binary as strings. This is done to simplify
  7237.    installation and configuration. The pine.hlp file is in a special
  7238.    format that is documented at the beginning of the file. It is divided
  7239.    into sections, each with a name that winds up being referenced as a
  7240.    global variable. This file is processed by two awk scripts and turned
  7241.    into C files that are compiled into _Pine_.
  7242.    
  7243.    _PC-Pine_, which tries to run on machines with as little as 640k of
  7244.    memory, leaves the _Pine_ help text out of the executable. PINE.EXE,
  7245.    PINE.HLP, and PINE.NDX are all needed for _PC-Pine_'s help system.
  7246.      _________________________________________________________________
  7247.    
  7248. International Character Sets
  7249.  
  7250.    While _Pine_ was designed in the U.S. and used mostly for
  7251.    English-language correspondence, it is a goal for _Pine_ to handle
  7252.    email in almost any language. Many sites outside of the U.S. run _Pine_
  7253.    in their native language. The default character set for _Pine_ is
  7254.    US-ASCII. That can be changed in the personal or system-wide
  7255.    configuration file with the variable character-set.
  7256.    
  7257.    When reading incoming email, _Pine_ allows all character sets to pass
  7258.    through. _Pine_ doesn't actually display the characters but simply
  7259.    passes them through; it is up to the actual display device to show the
  7260.    characters correctly. When composing email, _Pine_ will accept input
  7261.    in any language and tag the message according to the _character-set_
  7262.    variable. Again, it is up to the input device to generate the correct
  7263.    sequences for the character set being used.
  7264.    
  7265.    With the exception of UNICODE-1-1-UTF-7, the outgoing message is
  7266.    checked to see if it is all US-ASCII text (and contains no escape
  7267.    characters). In that case, the text will be labeled as US-ASCII even
  7268.    if the _character-set_ variable is set to something else. The theory
  7269.    is that every reasonable character set will have US-ASCII as a subset,
  7270.    and that it makes sense to label the text with the
  7271.    lowest-common-denominator label so that more mailers will be able to
  7272.    display it. Text in the UNICODE-1-1-UTF-7 character set is never
  7273.    re-labeled as US-ASCII. If the outgoing message is not all US-ASCII
  7274.    text, then it will be labeled with the _character-set_ variable set by
  7275.    the user. If the user has not set the _character-set_ variable then it
  7276.    will be labeled as _X-UNKNOWN-CHARSET_.
  7277.    
  7278.    _BUG_: If you prepare a UNICODE-1-1 document and read it into the
  7279.    composer with _^R_, _Pine_ may mistreat it. If your document, when
  7280.    misviewed as 8-bit bytes, does not contain any individual bytes
  7281.    greater than 0x7f base 16, then _Pine_ will re-label your outgoing
  7282.    message as US-ASCII, even if your message is really in Unicode
  7283.    Cyrillic, Arabic, or Thai. On the other hand, if your UNICODE-1-1,
  7284.    when misviewed as 8-bit bytes, does contain at least one individual
  7285.    byte greater than 0x7f base 16, as is likely for Unicode
  7286.    French/German/Spanish, Greek, Japanese, and Chinese, then _Pine_ will
  7287.    retain the UNICODE-1-1 label.
  7288.    
  7289.    The character sets are:
  7290.    
  7291.      US-ASCII Standard 7 bit English characters
  7292.      ISO-8859-1 8 bit European "latin 1" character set
  7293.      ISO-8859-2 8 bit European "latin 2" character set
  7294.      ISO-8859-3 8 bit European "latin 3" character set
  7295.      ISO-8859-4 8 bit European "latin 4" character set
  7296.      ISO-8859-5 8 bit Latin and Cyrillic
  7297.      ISO-8859-6 8 bit Latin and Arabic
  7298.      ISO-8859-7 8 bit Latin and Greek
  7299.      ISO-8859-8 8 bit Latin and Hebrew
  7300.      ISO-8859-9 8 bit European "latin 5" character set
  7301.      ISO-8859-10 8 bit European "latin 6" character set
  7302.      KOI8-R 8 bit Latin and Russian
  7303.      VISCII 8 bit Latin and Vietnamese
  7304.      ISO-2022-JP Latin and Japanese
  7305.      ISO-2022-KR Latin and Korean
  7306.      UNICODE-1-1 Unicode
  7307.      UNICODE-1-1-UTF-7 Mail-safe Unicode
  7308.      ISO-2022-JP-2 Multilingual
  7309.      
  7310.    Earlier versions of _Pine_ made use of the character set tags
  7311.    associated with text in MIME to decide if the text should be displayed
  7312.    or not. Depending on the character set tag and the _character-set_
  7313.    variable in _Pine_, the text was either displayed as is, displayed
  7314.    with some characters filtered out, or not displayed at all. The
  7315.    current version uses a much simpler algorithm in order to maximize the
  7316.    chance that useful contents are readable by the user. It simply
  7317.    displays _all_ messages of type text and makes no attempt to filter
  7318.    out characters that may be in the wrong character set. If the text is
  7319.    tagged as something other than US-ASCII and the tag does not match the
  7320.    character set that the _character-set_ variable is set to, then a
  7321.    warning is printed at the start of the message. In that case, it is
  7322.    possible that the text will be displayed incorrectly. For example, if
  7323.    the text is one variant of ISO-8859 and the display device is another
  7324.    variant, some of the characters may show up on the screen as the wrong
  7325.    character. Or if the text is Japanese and the display device is not,
  7326.    some parts of the message may be total gibberish (which will look like
  7327.    ASCII gibberish). On the other hand, the parts of the Japanese message
  7328.    that really are US-ASCII will be readable in the midst of the
  7329.    gibberish.
  7330.    
  7331.    In the case of _PC-Pine_, the character values cannot be passed
  7332.    through to the display device unaltered since MS-DOS uses various
  7333.    non-standard character sets called "Code Pages".
  7334.    
  7335.    The mapping between DOS Code Page and standard character set is
  7336.    controlled by the _character-set_ variable in the PINERC file and the
  7337.    PC's installed Code Page. _PC-Pine_ will automatically map common
  7338.    characters in IBM Code Pages 437, 850, 860, 863, and 865 to ISO-8859-1
  7339.    and back when the PINERC has _character-set=ISO-8859-1_. _Pine_ will
  7340.    also map common characters for IBM Code Page 866 to ISO-8859-5 and
  7341.    back when _character-set=ISO-8859-5_. The mappings are bi-directional,
  7342.    and applied to all saved text attachments in the defined character
  7343.    set, messages exported, etc.
  7344.    
  7345.    Alternatively, the translation tables can be configured externally and
  7346.    applied at run time whenever the _character-set_ variable is set to
  7347.    something other then "US-ASCII" (the default). _PC-Pine_ looks in the
  7348.    text file pointed to by the environment variable ISO_TO_CP for the
  7349.    table to use for mapping text matching the type defined by the
  7350.    _character-set_ variable into the local Code Page value. _PC-Pine_
  7351.    looks in the text file pointed to by the environment variable
  7352.    CP_TO_ISO for the table to use for mapping text in the local Code Page
  7353.    into outbound text tagged with the _character-set_ variable's value.
  7354.    
  7355.    A text file containing a character set mapping table is expected to
  7356.    contain 256 elements where each element is a decimal number separated
  7357.    from the next element by white-space (space, tab or newline, but no
  7358.    commas!). The index of the element is the character's value in the
  7359.    source character set, and the element's value is the corresponding
  7360.    character's value in the destination character set.
  7361.      _________________________________________________________________
  7362.    
  7363. Interrupted and Postponed Messages
  7364.  
  7365.    If the user is composing mail and is interrupted by being disconnected
  7366.    (SIGHUP, SIGTERM or end of file on the standard input), _Pine_ will
  7367.    save the interrupted composition and allow the user to continue it
  7368.    when he or she resumes _Pine_. As the next _Pine_ session starts, a
  7369.    message will be given that an interrupted message can be continued. To
  7370.    continue the interrupted message, simply go into the composer. To get
  7371.    rid of the interrupted message, go into the composer and then cancel
  7372.    the message with _^C._
  7373.    
  7374.    Composition of half-done messages may be postponed to a later time by
  7375.    giving the _^O_ command. Other messages can be composed while
  7376.    postponed messages wait. All of the postponed messages are kept in a
  7377.    single folder. Postponing is a good way to quickly reference other
  7378.    messages while composing.
  7379.      _________________________________________________________________
  7380.    
  7381. Message Status
  7382.  
  7383.    The c-client library allows for several flags or status marks to be
  7384.    set for each message. _Pine_ uses four of these flags: UNSEEN,
  7385.    DELETED, ANSWERED, and FLAGGED. The N in _Pine_'s FOLDER INDEX means
  7386.    that a message is unseen-it has not been read from this folder yet.
  7387.    The D means that a message is marked for deletion. Messages marked
  7388.    with D are removed when the user _Expunges_ the folder (which usually
  7389.    happens when the folder is closed or the user quits _Pine_). The A in
  7390.    _Pine_'s FOLDER INDEX means that the message has been replied-to. The
  7391.    * in _Pine_'s FOLDER INDEX means that the message has been ``flagged''
  7392.    as important. That is, the user used the _Flag_ command to turn the
  7393.    FLAGGED flag on. This flag can mean whatever the user wants it to
  7394.    mean. It is just a way to mark some messages as being different from
  7395.    others. It will usually probably be used to mark a message as somehow
  7396.    being ``important''. For Berkeley format folders, the message status
  7397.    is written into the email folder itself on the header lines marked
  7398.    Status: and X-Status. In Tenex and _PC-Pine_'s MTX folder formats, the
  7399.    status goes into the 36-bit octal flags.
  7400.      _________________________________________________________________
  7401.    
  7402. MIME: Reading a Message
  7403.  
  7404.    _Pine_ should be able to handle just about any MIME message. When a
  7405.    MIME message is received, _Pine_ will display a list of all the parts,
  7406.    their types and sizes. It will display the attachments when possible
  7407.    and appropriate and allow users to _Save_ all other attachments.
  7408.    
  7409.    Starting with version 3.90, _Pine_ honors the "mailcap" configuration
  7410.    system for specifying external programs for handling attachments. The
  7411.    mailcap file maps MIME attachment types to the external programs
  7412.    loaded on your system which can display and/or print the file. A
  7413.    sample mailcap file comes bundled with the _Pine_ distribution. It
  7414.    includes comments which explain the syntax you need to use for
  7415.    mailcap. With the mailcap file, any program (mail readers,
  7416.    newsreaders, WWW clients) can use the same configuration for handling
  7417.    MIME-encoded data.
  7418.    
  7419.    If a MAILCAPSenvironment variable is defined, _Pine_ will use that to
  7420.    look for one or more mailcap files, which are combined. In the absence
  7421.    of MAILCAPS, Unix _Pine_ will look for a personal mailcap file in
  7422.    ~/.mailcap and combine that with a system-wide file in /etc/mailcap.
  7423.    _PC-Pine_ will look for a file named MAILCAP in the same directory as
  7424.    the PINERC file, and/or the directory containing the PINE.EXE
  7425.    executable.
  7426.    
  7427.    Messages which include _rich text_ or _enriched text_ in the main body
  7428.    will be displayed in a very limited way (it will show bold and
  7429.    underlining).
  7430.    
  7431.    If _Pine_ sees a MIME message part tagged as type IMAGE, and _Pine_'s
  7432.    image-viewer configuration variable is set, _Pine_ will attempt to
  7433.    send that attachment to the named image viewing program. In the case
  7434.    of UNIX _Pine_, the DISPLAY environment variable is checked to see if
  7435.    an X-terminal is being used (which can handle the images). If the
  7436.    _image-viewer_ variable is not set, _Pine_ uses the _mailcap_ system
  7437.    to determine what to do with IMAGE types, just as it does for any
  7438.    other non-TEXT type, e.g. type APPLICATION. For MIME's generic "catch
  7439.    all" type, APPLICATION/OCTET-STREAM, the _mailcap_ file will probably
  7440.    not specify any action, but _Pine_ users may always _Save_ any MIME
  7441.    attachment to a file.
  7442.    
  7443.    MIME type "text/plain" is handled a little bit differently than the
  7444.    other types. If you are viewing the main body part in the MESSAGE TEXT
  7445.    viewing screen, then _Pine_ will use its internal viewer to display
  7446.    it. This happens even if there is a mailcap description which matches
  7447.    this particular type. If it is labeled as having a character set other
  7448.    than the one you are using, it will still be displayed by the internal
  7449.    viewer (perhaps incorrectly), though you will get a warning message
  7450.    prepended to the message in the viewing screen. However, if you view a
  7451.    part of type "text/plain" from the ATTACHMENT INDEX screen, then _Pine_
  7452.    will check the mailcap database for a matching entry and use it in
  7453.    preference to its internal viewer.
  7454.    
  7455.    Some text attachments, specifically those which are just other email
  7456.    messages forwarded as MIME messages, are displayed as part of the main
  7457.    body of the message. This distinction allows easy display when
  7458.    possible (the forward as MIME case) and use of an attachment viewer
  7459.    when that is desirable (the plain text file attachment case).
  7460.    
  7461.    If the parts of a multipart message are alternate versions of the same
  7462.    thing _Pine_ will select and display the one best suited. For parts of
  7463.    type "message/external-body", the parameters showing the retrieval
  7464.    method will be displayed, and the retrieval process is automated.
  7465.    Messages of type "message/partial" are not currently supported.
  7466.      _________________________________________________________________
  7467.    
  7468. MIME: Sending a Message
  7469.  
  7470.    There are two important factors when trying to include an attachment
  7471.    in a message: encoding and labeling. _Pine_ has rules for both of
  7472.    these which try to assure that the message goes out in a form that is
  7473.    robust and can be handled by other MIME mail readers.
  7474.    
  7475.    MIME has two ways of encoding data-Quoted-Printable and Base64.
  7476.    Quoted-Printable leaves the ASCII text alone and only changes 8-bit
  7477.    characters to "=" followed by the hex digits. For example, "=09" is a
  7478.    tab. It has the advantage that it is mostly readable and that it
  7479.    allows for end of line conversions between unlike systems. Base64
  7480.    encoding is similar to _uuencode_ or _btoa_ and just encodes a raw bit
  7481.    stream. This encoding is designed to get text and binary files through
  7482.    even the most improperly implemented and configured gateways intact,
  7483.    even those that distort uuencoded data.
  7484.    
  7485.    _All_ attachments are encoded using Base64 encoding. This is so that
  7486.    the attachment will arrive at the other end looking exactly like it
  7487.    did when it was sent. Since Base64 is completely unreadable except by
  7488.    MIME-capable mailers or programs, there is an obvious tradeoff being
  7489.    made here. We chose to ensure absolutely reliable transport of
  7490.    attachments at the cost of requiring a MIME-capable mailer to read
  7491.    them. If the user doesn't want absolute integrity he or she may always
  7492.    _include_ text (with the _^R_ command) in the body of a message
  7493.    instead of attaching it. With this policy, the only time
  7494.    quoted-printable encoding is used is when the main body of a message
  7495.    includes special foreign language characters.
  7496.    
  7497.    When an attachment is to be sent, _Pine_ sniffs through it to try to
  7498.    set the right label (content-type and subtype). An attachment with any
  7499.    lines longer than 500 characters in it or more than 10% of the
  7500.    characters are 8-bit it will be considered binary data. _Pine_ will
  7501.    recognize (and correctly label) a few special types including GIF,
  7502.    JPEG, PostScript, and some audio formats. Another method which can be
  7503.    more robust and flexible for determining the content-type and subtype
  7504.    is to base it on the file extension. This method uses a MIME.Types
  7505.    File.
  7506.    
  7507.    If it is not binary data (has only a small proportion of 8-bit
  7508.    characters in it,) the attachment is considered 8-bit text. 8-bit text
  7509.    attachments are labeled "text/plain" with charset set to the value of
  7510.    the user's _character-set_ variable. If an attachment is ASCII (no
  7511.    8-bit characters) and contains no _ESCAPE, ^N, _or _^O_ characters
  7512.    (the characters used by some international character sets), then it is
  7513.    considered plain ASCII text. Such attachments are given the MIME label
  7514.    "text/plain; charset=US-ASCII", regardless of the setting of the
  7515.    user's _character-set_ variable.
  7516.    
  7517.    All other attachments are unrecognized and therefore given the generic
  7518.    MIME label "application/octet-stream".
  7519.      _________________________________________________________________
  7520.    
  7521. New Mail Notification
  7522.  
  7523.    _Pine_ checks for new mail in the _INBOX_ and in the currently open
  7524.    folder every two and a half minutes by default. It used to be 30
  7525.    seconds instead of 150 seconds, but we increased it in order to reduce
  7526.    the load on large systems with lots of _Pine_ users. The value can be
  7527.    changed at compile-time in the pine/os.h file. This value can be
  7528.    changed with the variable mail-check-interval. A new mail check can be
  7529.    forced by redrawing the screen with a _^L_.
  7530.    
  7531.    When there is new mail, the message(s) will appear in the index, the
  7532.    screen will beep, and a notice showing the sender and subject will be
  7533.    displayed. If there has been more than one new message since you last
  7534.    issued a command to _Pine_, the notice will show the count of new
  7535.    messages and the sender of the most recent one.
  7536.    
  7537.    Questions have arisen about the interaction between _Pine_ and
  7538.    external mail notification routines (biff, csh, login). Firstly and
  7539.    unfortunately, we have found no PC based program that will check for
  7540.    email on an IMAP server when _PC-Pine_ is not running. If you find
  7541.    one, please tell us.
  7542.    
  7543.    The UNIX case is more complicated. _Pine_ sets the modification and
  7544.    access time on a file every time it performs a write operation (status
  7545.    change or expunge). You need to see which of these your email
  7546.    notification program is looking at to know how it will behave with
  7547.    _Pine_.
  7548.      _________________________________________________________________
  7549.    
  7550. NFS
  7551.  
  7552.    It is possible to access mail folders on _NFS_ mounted volumes with
  7553.    _Pine_, but there are some drawbacks to doing this, especially in the
  7554.    case of incoming-message folders that may be concurrently updated by
  7555.    _Pine_ and the system's mail delivery agent. One concern is that
  7556.    _Pine_'s user-contention locks don't work because _/tmp_ is usually
  7557.    not shared, and even if it was, _flock()_ doesn't work across _NFS._
  7558.    
  7559.    The implementation of the standard UNIX ".lock" file locking has been
  7560.    modified to work with _NFS_ as follows. Standard hitching post locking
  7561.    is used so first a uniquely named file is created, usually something
  7562.    like _xxxx.host.time.pid._ Then a link to it is created named
  7563.    _xxxx.lock_ where the folder being locked is _xxxx._ This file
  7564.    constitutes the lock. This is a standard UNIX locking scheme. After
  7565.    the link returns, a _stat(2)_ is done on the file. If the file has two
  7566.    links, it is concluded that the lock succeeded and it is safe to
  7567.    proceed.
  7568.    
  7569.    In order to minimize the risks of locking failures via _NFS_, we
  7570.    strongly recommend using IMAP rather than _NFS_ to access remote
  7571.    incoming message folders, e.g. your _INBOX_. However, it is generally
  7572.    safe to access personal saved-message folders via _NFS_ since it is
  7573.    unlikely that more than one process will be updating those folders at
  7574.    any given time. Still, some problems may occur when two _Pine_
  7575.    sessions try to access the same mail folder from different hosts
  7576.    without using IMAP. Imagine the scenario: _Pine_-A performs a write
  7577.    that changes the folder. _Pine_-B then attempts to perform a write on
  7578.    the same folder. _Pine_-B will get upset that the file has been
  7579.    changed from underneath it and abort operations on the folder.
  7580.    _Pine_-B will continue to display mail from the folder that it has in
  7581.    its internal cache, but it will not read or write any further data.
  7582.    The only thing that will be lost out of the _Pine_-B session when this
  7583.    happens is the last few status changes.
  7584.    
  7585.    If other mail readers besides _Pine_ are involved, all bets are off.
  7586.    Typically, mailers don't take any precautions against a user opening a
  7587.    mailbox more than once and no special precautions are taken to prevent
  7588.    _NFS_ problems.
  7589.      _________________________________________________________________
  7590.    
  7591. Printers and Printing
  7592.  
  7593.    UNIX _Pine_ can print to the standard UNIX line printers or to generic
  7594.    printers attached to ANSI terminals using the escape sequences to turn
  7595.    the printer on and off. The user has a choice of three printers in the
  7596.    configuration.
  7597.    
  7598.    The first setting, _attached-to-ansi_, makes use of escape sequences
  7599.    on ANSI/VT100 terminals. It uses "<ESC>[5i" to begin directing all
  7600.    output sent to the terminal to the printer and then "<ESC>[4i" to
  7601.    return to normal. _Pine_ will send these escape sequences if the
  7602.    printer is set to _attached-to-ansi._ This works with most ANSI/VT100
  7603.    emulators on Macs and PCs such as kermit, NCSA telnet, VersaTerm Pro,
  7604.    and WinQVT. Various terminal emulators implement the print feature
  7605.    differently. For example, NCSA telnet requires "capfile = PRN" in the
  7606.    _config.tel_ file. Attached-to-ansi printing doesn't work at all with
  7607.    the telnet provided with PC-NFS. There is also a closely related
  7608.    method called _attached-to-ansi-no-formfeed_ which is the same except
  7609.    for the lack of formfeed character at the end of the print job.
  7610.    
  7611.    The second selection is the standard UNIX print command. The default
  7612.    is _lpr_, but it can be changed on a system basis to anything so
  7613.    desired in /usr/local/lib/pine.conf.
  7614.    
  7615.    The third selection is the user's personal choice for a UNIX print
  7616.    command. The text to be printed is piped into the command. _Enscript_
  7617.    or _lpr_ with options are popular choices. The actual command is
  7618.    retained even if one of the other print selections is used for a
  7619.    while.
  7620.    
  7621.    Both the second and third sections are actually lists of possible
  7622.    commands rather than single commands.
  7623.    
  7624.    If you have a PostScript printer attached to a PC or Macintosh, then
  7625.    you will need to use a utility called _ansiprt_ to get printouts on
  7626.    your printer. _Ansiprt_ source code and details can be found in the
  7627.    ./contrib directory of the _Pine_ distribution.
  7628.    
  7629.    The three printer choices are for UNIX _Pine_ only. _PC-Pine_ can only
  7630.    print to the locally attached printer. All printing on _PC-Pine_ is
  7631.    done via ROM BIOS Print Services (Int 17h). After verifying the
  7632.    existence of a local printer via the BIOS Equipment-List Service (Int
  7633.    11h), it simply sends the message text, character by character, to the
  7634.    first printer found using ASCII CR and LF at the end of lines and
  7635.    followed by an ASCII FF. Note, some system adjustments using the PC's
  7636.    "MODE" command may be required if the printer is not on the first
  7637.    parallel port. _PC-Pine_ cannot generate PostScript, so printing to
  7638.    exclusively PostScript printers does not work.
  7639.    
  7640.    _PC-Pine_ for Winsock uses the MS-Windows printer interface. A _Pine_
  7641.    print command will bring up a standard MS-Windows printer dialog box.
  7642.      _________________________________________________________________
  7643.    
  7644. Save and Export
  7645.  
  7646.    _Pine_ users get two options for moving messages in _Pine_: _Save_ and
  7647.    _Export_. _Save_ is used when the message should remain ``in the _Pine_
  7648.    realm.'' Saved messages include the complete header (including header
  7649.    lines normally hidden by _Pine_), are placed in a _Pine_ folder
  7650.    collection and accumulate in a standard folder format which _Pine_ can
  7651.    read. In contrast, the _Export_ command is used to write the contents
  7652.    of a message to a file for use outside of _Pine_. Messages which have
  7653.    been exported are placed in the user's home directory (unless the
  7654.    feature use-current-dir is turned on), not in a _Pine_ folder
  7655.    collection. Unless FullHeaderMode is toggled on, all delivery-oriented
  7656.    headers are stripped from the message. Even with _Export_, _Pine_
  7657.    retains message separators so that multiple messages can accumulate in
  7658.    a single file and subsequently be accessed as a folder. On UNIX
  7659.    systems, the _Export_ command pays attention to the standard _umask_
  7660.    for the setting of the file permissions.
  7661.      _________________________________________________________________
  7662.    
  7663. Sent Mail
  7664.  
  7665.    _Pine_'s default behavior is to keep a copy of each outgoing message
  7666.    in a special "sent mail" folder. This folder is also called the fcc
  7667.    for "file carbon copy". The existence, location and name of the sent
  7668.    mail folder are all configurable. Sent mail archiving can be turned
  7669.    off by setting the configuration variable default-fcc="". The sent
  7670.    mail folder is assumed to be in the default collection for _Save_s,
  7671.    which is the first collection named in folder-collections. The name of
  7672.    the folder can be chosen by entering a name in _default-fcc_. With
  7673.    _PC-Pine_, this can be a bit complicated. If the default collection
  7674.    for _Save_s is local (DOS), then the _default-fcc_ needs to be
  7675.    SENTMAIL, which is syntax for a DOS file. However, if the default
  7676.    collection for _Save_s is remote, then the _default-fcc_ needs to be
  7677.    sent-mail to match the UNIX syntax.
  7678.    
  7679.    The configuration variable fcc-name-rule also plays a role in
  7680.    selecting the folder to save sent mail in.
  7681.    
  7682.    A danger here is that the sent mail could grow without bound. For this
  7683.    reason, we thought it useful to encourage the users to periodically
  7684.    prune their sent mail folder. The first time _Pine_ is used each month
  7685.    it will offer to archive all messages sent from the month before.
  7686.    _Pine_ also offers to delete all the sent mail archive folders which
  7687.    are more than 1 month old. If the user or system has disabled sent
  7688.    mail archiving (by setting the configuration variable
  7689.    _default-fcc=""_) there will be no pruning question.
  7690.      _________________________________________________________________
  7691.    
  7692. Spell Checker
  7693.  
  7694.    Spell checking is available for UNIX _Pine_ only. We could not find an
  7695.    appropriate PC based spell checker to hook into _PC-Pine_. Even UNIX
  7696.    _Pine_ depends on the system for its spell checking and dictionary.
  7697.    _Pico_, the text editor, uses the same spell checking scheme as
  7698.    _Pine_.
  7699.    
  7700.    Lines beginning with ">" (usually messages included in replies) are
  7701.    not checked. The message text to be checked is on the standard input
  7702.    and the incorrect words are expected on the standard output.
  7703.    
  7704.    The default spell checker is UNIX _spell_. You can replace this by
  7705.    setting the speller configuration variable. _Pine_ also respects the
  7706.    environment variable SPELL. The spelling checker reads its words from
  7707.    a standard dictionary on the system. Below is a description,
  7708.    contributed by Bob Hurt, of how you can create your own personal
  7709.    dictionary with additional ``correct'' words.
  7710.    
  7711.    Step 1:
  7712.           Make a file with all the words you want to include in your new
  7713.           dictionary. I did mine with one word per line in alphabetical
  7714.           order. Caps don't matter at all, as far as I know.
  7715.    Step 2:
  7716.           At the UNIX prompt, type "cat [word file] | spellin
  7717.           /usr/dict/hlista > [new dict name]" where [word file] is the
  7718.           file you just created and [new dict name] is the name of the
  7719.           new dictionary that _Pine_ will look at instead of the standard
  7720.           _/usr/dict/hlista._ I named my word file _.bobwords_ and my
  7721.           dictionary _.bobspell_ so I don't have to see them when I do a
  7722.           _ls_ command (_ls_ doesn't list "dot" files). I also put the
  7723.           above command into my _.alias_ file as the command _makedict_
  7724.           so I can add a word to my word file and easily recreate my
  7725.           dictionary. NOTE: the new dictionary is in something called a
  7726.           "hashed" format, and can't be read normally.
  7727.    Step 3:
  7728.           Check your new dictionary. At the UNIX prompt, type "cat [word
  7729.           file] | spellout [new dict name]" If you did everything
  7730.           correctly, it should just give you another prompt. If it lists
  7731.           any of the words in your file, something is wrong. I can try to
  7732.           help if all else fails.
  7733.    Step 4:
  7734.           Now you have to tell UNIX to use your dictionary instead of the
  7735.           standard one by setting the environment variable _SPELL_ to
  7736.           access your dictionary. Go into your _.login_ or _.cshrc_ file
  7737.           in your home directory (it doesn't seem to make a difference
  7738.           which one you use) and add the line
  7739.           
  7740.      setenv SPELL "spell -d [new dict name]"
  7741.           I also created an alias for _SPELL_ in my _.alias_ file so I
  7742.           can use the UNIX _spell_ command to spell-check a file outside
  7743.           of _Pine_. (The _.alias_ line is: alias spell 'spell -d [new
  7744.           dict name]')
  7745.    Step 5:
  7746.           Now you need to logoff and log back on to let UNIX look at your
  7747.           _.login_ (or _.cshrc_) file.
  7748.           
  7749.    Here is an alternative method suggested by Zachary Leber:
  7750.    
  7751.           Create a list (e.g. _.zachwords_) with the upper case followed
  7752.           by lower case words, sorted alphabetically.
  7753.           Add this line to _.cshrc_:
  7754.           
  7755.      setenv SPELL 'spell +/home/ie/rsa/.zachwords'
  7756.           The limitation here is that the path must be absolute (e.g.
  7757.           _+~/.zachwords_ doesn't work).
  7758.           My man pages for spell show this + flag to be an easy way to do
  7759.           the exception list. This way you don't have to bother with hash
  7760.           lists or rehashing, and it seems to work across several
  7761.           platforms.
  7762.      _________________________________________________________________
  7763.    
  7764. Terminal Emulation and Key Mapping
  7765.  
  7766.    _Pine_ has been designed to require as little as possible from the
  7767.    terminal. At the minimum, _Pine_ requires cursor positioning, clear to
  7768.    end of line, and inverse video. Unfortunately, there are terminals
  7769.    that are missing some of these such as a vt52. _Pine_ makes no
  7770.    assumptions as to whether the terminal wraps or doesn't wrap. If the
  7771.    terminal has other capabilities it may use some of them. _Pine_ won't
  7772.    run well on older terminals that require a space on the screen to
  7773.    change video attributes, such as the Televideo 925. One can get around
  7774.    this on some terminals by using "protected field" mode. The terminal
  7775.    can be made to go into protected mode for reverse video, and then
  7776.    reverse video is assigned to protected mode.
  7777.    
  7778.    _Pine_ handles screens of most any size and resizing on the fly. It
  7779.    catches SIGWINCH and does the appropriate thing. A screen one line
  7780.    high will display only the new mail notification. Screens that are
  7781.    less than ten columns wide don't format very nicely or work well, but
  7782.    will function fine again once resized to something large. _Pine_ sets
  7783.    an internal maximum screen size (currently 170x200) and decides to use
  7784.    either _termcap_ or _terminfo_ when it is compiled.
  7785.    
  7786.    On the input side of things, _Pine_ uses all the standard keys, most
  7787.    of the control keys and (in function-key mode) the function keys.
  7788.    _Pine_ avoids certain control keys, specifically ^S, ^Q, ^H, and _^\_
  7789.    because they have other meanings outside of _Pine_ (they control data
  7790.    flow, etc.) _^H_ is treated the same as the _delete_ key, so the
  7791.    _backspace_ or _delete_ keys always works regardless of any
  7792.    configuration. There is a feature _compose-maps-delete-key-to-ctrl-d_
  7793.    which makes the delete key behave like ^D rather than ^H (deletes
  7794.    current character instead of previous character).
  7795.    
  7796.    Sometimes a communications program or communications server in between
  7797.    you and the other end will eat certain control characters. There is a
  7798.    work-around when you need it. If you type two escape characters
  7799.    followed by a character that will be interpreted as the character with
  7800.    the control key depressed. For example, _ESC ESC T_ is equivalent to
  7801.    _^T_.
  7802.    
  7803.    When a function key is pressed and _Pine_ is in regular (non-function
  7804.    key) mode, _Pine_ traps escape sequences for a number of common
  7805.    function keys so users don't get an error message or have an
  7806.    unexpected command executed for each character in the function key's
  7807.    escape sequence. _Pine_ expects the following escape sequences from
  7808.    terminals defined as VT100:
  7809.    
  7810.      ANSI/VT100
  7811.      F1: <ESC>OP
  7812.      F2: <ESC>OQ
  7813.      F3: <ESC>OR
  7814.      F4: <ESC>OS
  7815.      F5: <ESC>Op
  7816.      F6: <ESC>Oq
  7817.      F7: <ESC>Or
  7818.      F8: <ESC>Os
  7819.      F9: <ESC>Ot
  7820.      F10: <ESC>Ou
  7821.      F11: <ESC>Ov
  7822.      
  7823.    Arrow keys are a special case. _Pine_ has the escape sequences for a
  7824.    number of conventions for arrow keys hard coded and does not use
  7825.    _termcap_ to discover them. This is because _termcap_ is sometimes
  7826.    incorrect, and because many users have PC's running terminal emulators
  7827.    that don't conform exactly to what they claim to emulate. In some
  7828.    versions of _Pine_ before 4.00 there was a compile-time macro called
  7829.    TERMCAP_WINS which could be set to cause the _termcap_ or _terminfo_
  7830.    definitions to be used instead of the built in definitions. Beginning
  7831.    with 4.00 there is a hidden runtime feature which can be turned on to
  7832.    accomplish the same thing. The feature is called
  7833.    termdef-takes-precedence and it can be set in any of the _Pine_
  7834.    configuration files. Some arrow keys on old terminals send single
  7835.    control characters like _^K_ (one even sends _^\_). These arrow keys
  7836.    will not work with _Pine_. The most popular escape sequences for arrow
  7837.    keys are:
  7838.    
  7839.      Up: <ESC>[A <ESC>?x <ESC>A <ESC>OA
  7840.      Down: <ESC>[B <ESC>?r <ESC>B <ESC>OB
  7841.      Right: <ESC>[C <ESC>?v <ESC>C <ESC>OC
  7842.      Left: <ESC>[D <ESC>?t <ESC>D <ESC>OD
  7843.      
  7844.    It is possible to configure an NCD X-terminal so that some of the
  7845.    special keys operate. Brad Greer contributes these instructions:
  7846.    
  7847.    1.
  7848.           In your _.Xdefaults_ file, include the following
  7849.           "translations", using lower hex values:
  7850.           
  7851.      Pine*VT100.Translations: #override \n\
  7852.      <Key>Delete: string(0x04) \n\
  7853.      <Key>End: string(0x05) \n\
  7854.      <Key>Escape: string(0x03) \n\
  7855.      <Key>Home: string(0x01) \n\
  7856.      <Key>Next: string(0x16) \n\
  7857.      <Key>Prior: string(0x19) \n\
  7858.      <Key>KP_Enter: string(0x18) \n\
  7859.    2.
  7860.           Start up _Pine_ from an _xterm,_ and specify a "resource name".
  7861.           This resource name will allow the user to specify resources for
  7862.           _Pine_ (that deviate from the defaults). For example, _xterm
  7863.           -name Pine -e pine &_ (the resource name _Pine_ corresponds to
  7864.           the translations just added in the _.Xdefaults_ file).
  7865.  
  7866.                       Notes for Porting and Modification
  7867.                                        
  7868. Porting Pine to Other Platforms
  7869.  
  7870.    Substantial effort has gone into making _Pine_/_Pico_ portable. There
  7871.    are still, of course, a number of machine dependencies. Some of the
  7872.    ports are well-tested and some are untested. In particular, the most
  7873.    heavily used ports are the Ultrix, AIX, NeXT, Windows, and Dec Unix
  7874.    ports.
  7875.    
  7876.    Each platform is given a three letter name (see the file
  7877.    doc/pine-ports). Make up a new one for your new port. We've attempted
  7878.    to bring all potential platform dependencies into the files:
  7879.    {pico,pine}/osdep/os-xxx.h, {pico,pine}/osdep/os-xxx.ic, and
  7880.    {pico,pine}/makefile.xxx, where _xxx_ is the three letter name of the
  7881.    port. Thus any new port will hopefully just result in new versions of
  7882.    these files and some notes for the _pine-ports_ file. There are
  7883.    separate dependencies in the c-client source, but that is handled in
  7884.    separate documentation there. Regrettably, the source code is also
  7885.    full of instances of _ifdef DOS_. Most of these are due to memory
  7886.    limit problems on _DOS_ as opposed to actual system dependencies.
  7887.    
  7888.    The makefiles are kept as simple and straight-forward as possible,
  7889.    because many previous attempts at automatically figuring out what to
  7890.    do seem to have become complex and ineffective in what they set out to
  7891.    do: which is to make compiling and installing the program easy. Each
  7892.    port is for a specific hardware/software platform, also because past
  7893.    attempts to generalize on versions of Unix or some CPU architecture
  7894.    don't seem to have gained much. Thus, there is a separate makefile for
  7895.    each platform that calls the appropriate compiler and linker with the
  7896.    appropriate flags. Most of these makefiles are pretty similar. The
  7897.    makefile also specifies which of the _os-xxx.c_ and _os-xxx.h_ files
  7898.    to use. It is the root from which most platform dependencies are
  7899.    selected. In most cases the makefile also defines a symbol named after
  7900.    the platform on which there can be dependencies in the source code,
  7901.    though we've tried to minimize relying on this where reasonable. When
  7902.    different "ports" are very similar, it is sometimes possible to use
  7903.    the same pine code (for example) with only a small change in the
  7904.    c-client or pico code. In those cases, that kind of dependency is
  7905.    reflected in the top-level _build_ script. The _build_ script can
  7906.    usually be used to invoke the various makes correctly. It may set some
  7907.    variables before running make so look to see what _build_ does before
  7908.    trying a make in one of the subdirectories. This is especially true if
  7909.    LDAP is being included.
  7910.    
  7911.    It is almost always easier to start with an existing port when trying
  7912.    to port to a new system. There is a port called _gen_ (generic) which
  7913.    may be a good starting point. On the other hand, if another port is
  7914.    close to what you want, start with it instead.
  7915.    
  7916.    The file pico/osdep/os-xxx.h contains most of the general platform
  7917.    dependent _#include_'s and _#defines_. There are a number of _Pine_
  7918.    configuration settings that are defined in pine/osdep/os-xxx.h, as
  7919.    well, such as the place it looks for certain files, defaults for the
  7920.    printer and folder names, the maximum screen size, and so on. Start by
  7921.    looking at the generic pico/osdep/os-gen.h file and comparing it to
  7922.    some of the specific os-xxx.h files there.
  7923.    
  7924.    The osdep/os-xxx.c files contain functions that are potentially
  7925.    platform dependent. Again, the idea is to gather all the dependencies
  7926.    in one place. We use a complicated looking method to produce the
  7927.    _os-xxx.c_ files from a set of included files. Each included file
  7928.    usually contains a single implementation method and we've found that
  7929.    there are usually only two or three different methods in the ports
  7930.    we've done so far. Hopefully, coming up with an os-xxx.c for a new
  7931.    port will usually be a matter of including the right set of these
  7932.    already written functions. This is done by writing a new os-xxx.ic
  7933.    file in the osdep subdirectories. Starting with the generic os-gen.ic,
  7934.    as you did with the os-gen.h file above, may be a useful strategy.
  7935.    
  7936.    We strongly encourage that no changes be made to the general source
  7937.    when porting and that all changes be contained in the system dependent
  7938.    files if possible. The object is to maintain source code integrity and
  7939.    assimilate ports to new platforms rapidly. The more conventional way
  7940.    to do this is with a large collection of _#ifdefs_. The problem with
  7941.    this is that adding a port for a new platform implies changing the
  7942.    source code for all the other platforms and thereby risks breaking
  7943.    them. (We readily admit that there are still too many _ifdefs_ in the
  7944.    code.)
  7945.    
  7946.    If you do port _Pine_ to a new platform we hope that you will send us
  7947.    the changes required so that we may attempt to include it in a later
  7948.    release. Thanks!
  7949.      _________________________________________________________________
  7950.    
  7951. Test Checklist
  7952.  
  7953.    The following is a checklist of some things to check when testing a
  7954.    new port:
  7955.    
  7956.    ___
  7957.           Sending mail, check that headers are correct
  7958.    ___
  7959.           Sending mail with attachments
  7960.    ___
  7961.           Sending mail with SMTP server
  7962.    ___
  7963.           Sending mail without SMTP server
  7964.    ___
  7965.           Sending mail with list of two SMTP servers, first one doesn't
  7966.           answer
  7967.    ___
  7968.           Replying to and forwarding a message
  7969.    ___
  7970.           Postponing messages under composition
  7971.    ___
  7972.           Composer operations
  7973.    ___
  7974.           Alternate editor, _enable-alternate-editor-implicitly_
  7975.    ___
  7976.           Make sure local user names are expanded
  7977.    ___
  7978.           Test spelling checker
  7979.    ___
  7980.           Catching of SIGHUP while message is being composed
  7981.    ___
  7982.           Setting of variables in .pinerc
  7983.    ___
  7984.           New mail notification. Should happen with _Pine_ idle to check
  7985.           timeouts
  7986.    ___
  7987.           Reading mail (attachments, MIME, MIME with mailcap viewers)
  7988.    ___
  7989.           Deleting, undeleting, expunging, sorting
  7990.    ___
  7991.           Expunge to empty folder
  7992.    ___
  7993.           Make sure that _~_ expansion works in config files
  7994.    ___
  7995.           Make sure that $VAR expansion works in config files
  7996.    ___
  7997.           Save message to folder, check error conditions such as
  7998.           permission denied
  7999.    ___
  8000.           Export message with FullHeaderMode on and off
  8001.    ___
  8002.           Checkpointing (see the section on checkpointing)
  8003.    ___
  8004.           Open IMAP and RIMAP folders
  8005.    ___
  8006.           Default-fcc on remote IMAP server
  8007.    ___
  8008.           Fcc-name-rule, fcc in addrbook (while composing)
  8009.    ___
  8010.           Test opening bogus folders: invalid format, no permission
  8011.    ___
  8012.           Open a USENET news group, list in folder-lister, read news,
  8013.           post news
  8014.    ___
  8015.           Command line arguments
  8016.    ___
  8017.           Change password
  8018.    ___
  8019.           Lock keyboard
  8020.    ___
  8021.           Address book operations (edit, delete, add, lists, whereis,
  8022.           composeto)
  8023.    ___
  8024.           ReadOnly address book
  8025.    ___
  8026.           Look at addrbook, change addrbook-sort-rule in Config, go back
  8027.           to addrbook screen
  8028.    ___
  8029.           No permission to write in same directory as addrbook, should
  8030.           create addrbook.lu in a temp directory
  8031.    ___
  8032.           Multiple address books
  8033.    ___
  8034.           Address book loops from one addrbook to another and back
  8035.    ___
  8036.           TakeAddr command with one address, with multiple addresses
  8037.    ___
  8038.           TakeAddr command with ReadOnly address books
  8039.    ___
  8040.           TakeAddr command with one of two address books ReadOnly
  8041.    ___
  8042.           Send mail with empty address book
  8043.    ___
  8044.           Config Screen operation, does pinerc get written?
  8045.    ___
  8046.           Make sure SIGTSTP, ^Z works
  8047.    ___
  8048.           Sent-mail pruning (set back _last-time-prune-questioned_
  8049.           variable)
  8050.    ___
  8051.           Printing using all three printer configurations, various
  8052.           screens
  8053.    ___
  8054.           View help text and news
  8055.    ___
  8056.           Folder list operations (rename, create, delete...)
  8057.    ___
  8058.           Saved-msg-name-rule
  8059.    ___
  8060.           Screen redrawing in various screens (^L)
  8061.    ___
  8062.           Window resizing in various screens
  8063.    ___
  8064.           Error messages for incorrect terminal types (try "foo" and
  8065.           "vt52")
  8066.    ___
  8067.           Reading of /usr/local/lib/pine.conf
  8068.    ___
  8069.           Fixing variables and features in /usr/local/lib/pine.conf.fixed
  8070.    ___
  8071.           Flag command (check message status changed in mail folder)
  8072.    ___
  8073.           Initial-keystroke-list
  8074.    ___
  8075.           Aggregate operations (save, delete, export, takeaddr, ...)
  8076.    ___
  8077.           Build xxx from scratch, build clean
  8078.