
                             Pine Technical Notes
                                       
   Version 4.44, January 2002
   
   _Pine_ and _Pico_ are trademarks of the University of Washington.
   No commercial use of these trademarks may be made without prior
   written permission of the University of Washington.
   Pine, Pico and Pilot Copyright 1989-2002 University of Washington.
   Additional legal notices are at the web URL
   http://www.washington.edu/pine/legal.
   
Table of Contents

  Introduction
  
     * Design Goals
     * Pine Components
       
  Background Details
  
     * Domain Names
     * RFC 822 Compliance
     * SMTP and Sendmail
     * Internet Message Access Protocol (IMAP)
     * Multipurpose Internet Mail Extensions (MIME)
     * Folder Collections
       
  Building and Installation
  
     * Compile-time Options
     * Including LDAP Functionality
     * Including Kerberos 5 Functionality
     * Pine Compile-time Options
     * Pico Compile-time Options
     * OS Dependent Compile-time Settings
     * IMAPd Compile-time Options
     * Building the Pine Programs
     * Installing Pine and Pico on UNIX Platforms
     * Installing PC-Pine
     * Installing IMAPd
     * Support Files and Environment Variables: UNIX Pine
     * Support Files, Environment Variables, and Registry Values: PC-Pine
       
  Command Line Arguments
  
     * Pine
     * Pico
     * Pilot
       
  Configuration and Preferences
  
     * Pine Configuration
     * General Configuration Variables
     * Configuration Features
     * Hidden Config Variables and Features
     * Retired Variables
     * Tokens for Index and Replying
     * Conditional Inclusion of Text for Reply-Leadin, Signatures, and
       Templates
     * Per Server Directory Configuration
     * Color Configuration
     * Index Line Color Configuration
     * Role Configuration
     * Filtering Configuration
     * Scoring Configuration
     * Other Rules Configuration
     * Patterns
       
    Configuration Notes
          + Pine in Function Key Mode
          + Domain Settings
          + Syntax for Collections
          + Syntax for Remote Folders
          + Sorting a Folder
          + Alternate Editor
          + Signatures and Signature Placement
          + Feature List Variable
          + Configuration Inheritance
          + SMTP Servers
          + MIME.Types file
          + Color Details
          + Additional Notes on PC-Pine
       
  Behind the Scenes
  
     * Address Books
     * Remote Configuration
     * Checkpointing
     * Debug Files
     * Filters
     * Folder Formats and Name Extensions
     * Folder Locking
     * INBOX and Special Folders
     * Internal Help Files
     * International Character Sets
     * Interrupted and Postponed Messages
     * Message Status
     * MIME: Reading a Message
     * MIME: Sending a Message
     * New Mail Notification
     * NFS
     * Printers and Printing
     * Save and Export
     * Sent Mail
     * Spell Checker
     * Terminal Emulation and Key Mapping
       
  Notes for Porting and Modification
  
     * Porting Pine to Other Platforms
     * Test Checklist

                                 Introduction
                                       
Design Goals

   Throughout _Pine_ development, we have had to strike a balance between
   the need to include features which advanced users require and the need
   to keep things simple for beginning users. To strike this balance, we
   have tried to adhere to these design principles:
   
          - The model presented to the user has to be simple and clear.
          Underlying system operation is hidden as much as possible.
          - It's better to have a few easily understood commands that can
          be repeated than to have some more sophisticated command that
          will do the job all at once.
          - Whenever the user has to select a command, file name,
          address, etc., the user should be given (or can get) a menu
          from which to make the selection. Menus need to be complete,
          small, organized and well thought out.
          - _Pine_ must provide immediate feedback for the user with each
          operation.
          - _Pine_ must be very tolerant of user errors. Any time a user
          is about to perform an irreversible act (send a message,
          expunge messages from a folder), _Pine_ should ask for
          confirmation.
          - Users should be able to learn by exploration without fear of
          doing anything wrong. This is an important feature so the user
          can get started quickly without reading any manuals and so
          fewer manuals are required.
          - The core set of _Pine_ functions should be kept to a minimum
          so new users don't feel "lost" in seemingly extraneous commands
          and concepts.
          
   Just as there were goals relating to the look and feel of _Pine_,
   there were equally important goals having to do with _Pine_'s
   structure-the things that users never see but still rely on every time
   they use _Pine_. While _Pine_ can be used as a stand-alone mail user
   agent, one of its strongest assets is its use of the Internet Message
   Access Protocol (IMAP) for accessing remote email folders. In
   addition, _Pine_ was one of the first programs to support the
   Multipurpose Internet Mail Extensions (MIME) specification. With MIME,
   _Pine_ users can reliably send any binary file to any other person on
   the Internet who uses a MIME compliant email program.
   
   The decision to use IMAP and MIME reflects the importance of
   interoperability, standardization and robustness in _Pine_. As you
   work with _Pine_ more, you will see other features which reflect the
   same values. For example, _Pine_ enforces strict compliance with RFC
   822, implements a strong mail folder locking mechanism and verifies a
   process before overwriting any files (e.g. addressbook, expunging
   messages).
   
Pine Components

   If you have picked up the _Pine_ distribution, then you already know
   that _Pine_ comes in a few different pieces. They are:
   
   _Pine_
          The main code from which the _Pine_ program is compiled.
   _Pico_
          _Pico_ is the name for the _Pine_ composer. The _Pico_ code is
          used in two ways: (1) it is compiled on its own to be a
          stand-alone editor and, (2) it is compiled as a library for
          _Pine_ to support composition of messages within _Pine_. _Pico_
          is _Pine_'s internal editor invoked when users need to fill in
          header lines or type the text of an email message.
   _Imap_
          An API for IMAP. Includes the C-Client library, which is
          compiled into _Pine_, and the IMAP server _IMAPd_. C-Client
          implements the IMAP protocol and also negotiates all access
          between _Pine_ and the mail folders it operates on, even if the
          folders are local. The C-Client routines are used for email
          folder parsing and interpreting MIME messages. _IMAPd_ is a
          separate server that handles IMAP connections from any
          IMAP-compliant email program. When _Pine_ accesses a remote
          mailbox, the _Pine_ program is the IMAP client and the _IMAPd_
          program is the IMAP server.

                              Background Details
                                       
Domain Names

   Domain names are used to uniquely name each host on the Internet. A
   domain name has a number of parts separated by periods. Each label
   represents a level in the hierarchy. An example of a name is:
   
     olive.cac.washington.edu
     
   In this domain name the top-level label is _edu_, indicating it is at
   an educational institution, the second-level label is _washington_,
   indicating the University of Washington. _cac_ is a specific
   department within the University of Washington, and _olive_ is the
   host name. The top-level names are assigned by Internet organizations,
   and other names are assigned at the appropriate level. The Domain Name
   Service, DNS, is the distributed database used to look up these names.
   
   _Pine_ relies on domain names in multiple places. A domain name is
   embedded into the message-id line generated for each piece of email. A
   domain name is needed to contact an IMAP server to get access to
   remote INBOXes and folders. Most importantly, domain names are needed
   to construct the From: line of your outgoing messages so that people
   on the Internet will be able to get email back to you.
   
   On UNIX systems, you can set the domain via the user-domain variable
   in the _Pine_ configuration file, or rely on the file /etc/hosts which
   usually sets the name of the local host. While _Pine_ can often
   deliver email without the domain name being properly configured, it is
   best to have this set correctly. Problems can usually be solved by
   adjusting the system's entry in the /etc/hosts file. The
   fully-qualified name should be listed before any abbreviations.
   
     128.95.112.99 olive.cac.washington.edu olive
     
   is preferred over
   
     128.95.112.99 olive olive.cac.washington.edu
     
   On PCs, the task of configuring the domain name is a bit different.
   Often times, PCs do not have domain names-they have _IP addresses_. IP
   addresses are the numbers which uniquely identify a computer on the
   network. The way you configure your IP address depends on the
   networking software which you use on the PC. You can refer to the
   documentation which came with your networking software or see the PC
   specific installation notes for help configuring the IP address with
   your network software.
   
   With PCs, it is vital that users set the variable user-domain in the
   _Pine_ configuration file (PINERC).
   
   Details on configuring _Pine_ with correct domain names can be found
   in the Domain Settings section of this document.
     _________________________________________________________________
   
RFC 822 Compliance

   _Pine_ tries to adhere to RFC 822 a little more strongly than some
   other mailers and uses the _"full name <address>"_ format rather than
   the older _"address (full name)"_ format. The intent of the standard
   is that parentheses should only be for comments. _Pine_ displays and
   generates the newer format, but will parse the old format and attempt
   to turn it into the new one.
   
   As far as outgoing email is concerned, _Pine_ fully-qualifies
   addresses whenever possible. They are even displayed in
   fully-qualified form on the terminal as the user composes a message.
   This makes addresses more clear and gives a hint to the user that the
   network extends beyond the local organization. _Pine_ implements
   fully-qualified domain names by tacking on the local domain to all
   unqualified addresses which a user types in. Any address which does
   not contain an "@" is considered unqualified.
   
   The newer format for addresses allows for spaces and special
   characters in the full name of an address. For this reason, commas are
   required to separate addresses. If any special characters as defined
   in RFC 822 appear in the full name, quotes are required around the
   address. _Pine_ will insert the quotes automatically. The common cases
   where this happens are with periods after initials and parentheses.
   
   Because _Pine_ fully complies with RFC 822, it is sometimes difficult
   to use non-Internet address formats such as UUCP's host!user or
   DECNet's USER::HOST with _Pine_. People who run _Pine_ on these
   systems have made local modifications to _Pine_ or to the mail
   transport agent (e.g. sendmail) to make things work for them.
   
   _Pine_ expects dates to be in the standard RFC 822 format which is
   something like:
        [www, ] dd mmm yy hh:mm[:ss] [timezone]

   It will attempt to parse dates that are not in this format. When an
   unparsable date is encountered it is displayed as _xxx xx_ when shown
   in the FOLDER INDEX screen.
     _________________________________________________________________
   
SMTP and Sendmail

   _Pine_ is a _user agent_ not a _message transfer agent._ In plain
   English, that means _Pine_ does not know how to interact with other
   computers on the Internet to deliver or receive email. What _Pine_
   does know how to do is help users read, organize and create email. The
   "dirty work" of delivering and accepting email is handled by other
   programs.
   
   All outgoing email is delivered to a mail transfer program or to an
   SMTP server. The most common mail transfer program is sendmail.
   
   Pine 3.91 and earlier:
          When _Pine_ on a UNIX computer uses the local sendmail, it
          first writes the message to a temporary file in /tmp. Then
          _Pine_ runs a shell in the background that runs sendmail on the
          temporary file and then removes it. This is done with a shell
          in the background so the user doesn't have to wait for sendmail
          to finish. By default, sendmail is invoked with the -t flag to
          cause it to read and parse the header to determine the
          recipients; the -oem flag to cause errors to be mailed back;
          and the -oi flag to ignore dots in incoming messages. Systems
          administrators can choose to configure _Pine_ to use a
          different mail transfer program or even sendmail with different
          flags. See the section on UNIX Pine Compile-time Options for
          more details on this.
          
          _Pine_ can also operate as an SMTP client. SMTP stands for
          _Simple Mail Transfer Protocol_; it specifies the rules by
          which computers on the Internet pass email to one another. In
          this case, _Pine_ passes outgoing email messages to a
          designated SMTP server instead of to a mail transfer program on
          the local machine. A program on the server then takes care of
          delivering the message. To make _Pine_ operate as an SMTP
          client, the smtp-server variable must be set to the IP address
          or host name of the SMTP server within your organization. This
          variable accepts a comma separated list of servers, so you can
          specify multiple SMTP servers. _PC-Pine_ only runs as an SMTP
          client.
          
   Pine 3.92 and later:
          The selection of which MTA to use depends on the settings of
          sendmail-path, smtp-server, and compile-time options. The first
          MTA specified in the following list is used:
          
         1. _sendmail-path_ in /usr/local/etc/pine.conf.fixed
         2. _smtp-server_ in /usr/local/pine.conf.fixed
         3. _sendmail-path_ specified on the command line.
         4. _smtp-server_ specified on the command line.
         5. _sendmail-path_ in the user's .pinerc file.
         6. _smtp-server_ in the user's .pinerc file.
         7. _sendmail-path_ in /usr/local/etc/pine.conf
         8. _smtp-server_ in /usr/local/pine.conf
         9. DF_SENDMAIL_PATH defined at compile time.
        10. SENDMAIL and SENDMAILFLAGS defined at compile time.
            
          If the _sendmail-path_ form is used, a child process is forked,
          and the specified command is executed with the message passed
          on standard input. Standard output is then passed back and
          displayed for the user. _NOTE: The program MUST read the
          message to be posted on standard input, AND operate in the
          style of sendmail's "-t" option. _
          
          If an _smtp-server_ is specified, a connection to the server is
          opened. If the message contains 8-bit text, ESMTP 8BITMIME
          negotiation is attempted. The message is then sent using SMTP
          commands.
          
          If none of the above are set, the default sendmail program is
          invoked with the "-bs -odb -oem" flags, ESMTP negotiation is
          attempted, and the message is sent.
     _________________________________________________________________
   
Internet Message Access Protocol (IMAP)

   IMAP is a remote access protocol for message stores. _Pine_ uses IMAP
   to get at messages and folders which reside on remote machines. With
   IMAP, all messages are kept on the server. An IMAP client (such as
   _Pine_) can request specific messages, headers, message structures,
   etc. The client can also issue commands which delete messages from
   folders on the server. IMAP's closest kin is POP, the Post Office
   Protocol, which works by transferring an entire mailbox to the client
   where all the mail is kept. For a comparison of IMAP and POP, see the
   paper "Comparing Two Approaches to Remote Mailbox Access: IMAP vs.
   POP" by Terry Gray. A more detailed exploration of message access may
   be found in the paper " Message Access Paradigms and Protocols." These
   papers may be found in the /mail directory of the anonymous FTP server
   at ftp.cac.washington.edu.
   
   IMAP Features:
     * Allows access to mail folders from more than one client computer.
     * Works well over low-bandwidth lines because information is sent in
       small pieces as needed by the user. For example, only header
       information is sent to build index lists, and if someone sends a
       2MB audio file via MIME, you can choose when (or if) you want to
       get that part of the message.
     * Email can be delivered and stored on a well-maintained and
       reliable server which is "always-up".
     * Folders can be accessed and manipulated from anywhere on the
       Internet.
     * Users can get to messages stored in different folders within the
       same _Pine_ session.
     * Allows use of IMAP server for searching and parsing.
     * The latest revision of IMAP (IMAP4) also provides for disconnected
       operation, including resynchronization of message state between
       mail servers and message caches on clients. _Pine_ does not yet
       support this capability, however.
       
   IMAP2 is defined in RFC 1176. IMAP4rev1, the revision to IMAP2, is
   described in RFC 2060. Further information about IMAP may be obtained
   from the University of Washington's IMAP Information Center on the
   World Wide Web.
   
   _Pine_ 4.00 is an IMAP4rev1 client.
     _________________________________________________________________
   
Multipurpose Internet Mail Extensions (MIME)

   MIME is a way of encoding a multipart message structure into a
   standard Internet email message. The parts may be nested and may be of
   seven different types: Text, Audio, Image, Video, Message, Application
   and Multipart (nested). The MIME specification allows email programs
   such as _Pine_ to reliably and simply exchange binary data (images,
   spreadsheets, etc.). MIME includes support for international character
   sets, tagging each part of a message with the character set it is
   written in, and providing 7-bit encoding of 8-bit character sets. It
   also provides a simple rich text format for marking text as bold,
   underlined, and so on. There is a mechanism for splitting messages
   into multiple parts and reassembling them at the receiving end.
   
   The MIME standard was officially published in June of 1992 as RFC 1341
   and subsequently revised in RFC 2045 when it became a full Internet
   Standard. _Pine_ 3.0 was one of the first email programs to Implement
   MIME. Now, there are dozens of commercial and freely available
   MIME-capable email programs. In addition, MIME is being added to
   newsreaders so MIME messages can be posted and read in USENET
   newsgroups.
   
   The MIME standard also includes support for non-ASCII text in message
   headers through the extensions described in RFC 1342 and subsequently
   revised in RFC 2047. Support for RFC 2047 was added in _Pine_ 3.92.
   
   An actual MIME message looks something like this:
Date: Tue, 12 Mar 1996 15:39:35 -0800 (PST)
From: David L Miller <dlm@cac.washington.edu>
To: David L Miller <dlm@cac.washington.edu>
Subject: =?iso-8859-1?Q?Test_MIME_message_with_RFC-1522_headers_=28=E1?=    =?i
so-8859-1?Q?=E2=E3=29?=
Message-Id: <Pine.ULT.3.92.960312150851.21583I-101000@shiva2.cac.washington.edu
>
Mime-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="0-1737669234-826673975=:21583"
Content-Id: <Pine.ULT.3.92.960312153928.21583O@shiva2.cac.washington.edu>

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--0-1737669234-826673975=:21583
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.ULT.3.92.960312153104.21583L@shiva2.cac.washington.edu>

The text of the message would go here. It is readable if
one doesn't mind wading around a little bit of the MIME
formatting. After this is a binary file in base 64
encoding.

|\ |  |\/|  David L. Miller    dlm@cac.washington.edu  (206) 685-6240
|/ |_ |  |  Software Engineer, Pine Development Team   (206) 685-4045 (FAX)
University of Washington, Networks & Distributed Computing, JE-20
4545 15th Ave NE, Seattle WA 98105, USA

--0-1737669234-826673975=:21583
Content-Type: APPLICATION/ZIP; NAME="test.zip"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.ULT.3.92.960312153638.21583N@shiva2.cac.washington.edu>
Content-Description: Test Attachment

UEsDBBQAAAAIAGh8bCBbZKT4ygIAAHgFAAAEAAAAdGVzdIVUX2vbMBB/16c4
9rSBNyjsYX1UHSUROLInycv2qNhKI5ZYxlLa5dvvpDRLw6CFgJF09/t3Rxo3
WDBDD43rPJjJQpxMbw9m+h3AbyHuLLSDe7JTcPGUbtYm7NzwGP3wBYQnnT8c
7NQ5s4djsC8t4QbmYE6wsfjpLTy7uPPHCOPk/ATPk4vRDmS008GF4PzwPich
zY3m4LfxOQlPNy4GcEO3P/a2h2j/xGyp9ONpco+7CHf33+4/393ff4XNibzL
c1UVfXJXQIdIBRx877b4TYy9C3Fym2NEyzsX/pNDet8dD3aIJiagLbo2wwnG
4zT6cK66ZLK1NhH9J4tcZQEy7OxkNyd4nMwQbV9glP7JZb87E3O32fgnm7We
XQ8+us4SM47WTCkgMPt9enc2ZAW5c+Pj7o32l0IXXk/r8pSRE3A4jqOfIqqF
G+PFlSdRDOaQduXNESTwtDcYfJ8191gWXUjYmOJ43Oxdh11JTzRuSPcY37+B
vNqmf0O5RB1G27mt64rLCp4X8pW1L6BvxunCeYHNk3F7s9lb+GAwyvAhOyNE
Lxm0gv9gUnH9C+o5rKlacrHQtYAZV2VF+UoBrSp8kJIKzZkqgP1sJFMKagl8
1VSczQqy5noJki2onIGuQS+5AlXPNfaxArgoq3aGwJDq6lZDxVdcU82RKMG/
4JArTVKzYrJc4pE+8CoJpGIGc65FIp8jO4WGSs3LtqISmlY2tUKyVMUFETWw
H0xoUMvE8KbXB4aC6EPFzrDiF6iGlZxWBeFixiUrdXJb1kKx7y2C4hPM6Iou
WI4hdVyO6yXVqkZqiXmottLJ9lzWK1LVKttqk8oZ1TS1NrJGS5jqeslQI0aK
ieCvzNlgNZJqiccCc5WafLxmKdii4gsmSvYpISkteamzkRwXJiG5SoUpcERK
8xIE8QQ7o+eh5WAUy1qYRP8rioip/maI+OfyF1BLAQIUAxQAAAAIAGh8bCBb
ZKT4ygIAAHgFAAAEAAAAAAAAAAEAAACkgQAAAAB0ZXN0UEsFBgAAAAABAAEA
MgAAAOwCAAAAAA==
--0-1737669234-826673975=:21583--

   For details about _Pine_'s implementation of MIME, see the two MIME
   sections "MIME: Reading a Message" and "MIME: Sending a Message" later
   in this document.
     _________________________________________________________________
   
Folder Collections

   Folder Collections are _Pine_'s way of dealing with more than a single
   group of folders. With advent of _PC-Pine_ and the development of
   tools within IMAP to better manage remote folders, the time was ripe
   to provide a mechanism for defining a group of remote folders.
   _PC-Pine_ forced the issue in that many potential _PC-Pine_ users
   would be migrating from UNIX _Pine_ in a time-sharing environment and,
   thus, would have some investment in their archived messages on that
   host.
   
   For a more complete description of Folder Collections, see the section
   on "Syntax for Collections."
   
   The _Pine_ distribution is designed to require as little configuration
   and effort at compile time as possible. Still, there are some _Pine_
   behaviors which are set at the time you compile _Pine_. For each of
   these, there is a reasonable (our opinion) default built into the
   code, so most systems administrators will have no need for these
   steps.

                           Building and Installation
                                       
Compile-time Options

   The files you may need to modify are ./{pico,pine}/makefile.xxx,
   ./{pico,pine}/osdep/os-xxx.h, and possibly
   ./{pico,pine}/osdep/os-xxx.ic, where _xxx_ is the 3-letter code for
   your platform. You can give the command build help to see the list of
   ports incorporated into _Pine_ and their associated 3-letter codes.
   The files ./{pico,pine}/makefile.xxx are where you would set compiler
   options. By default, _Pine_ will be compiled with debugging on,
   optimization and profiling off. Note that if you compile with DEBUG
   off, then _Pine_ will not create its normal debug files, no matter how
   the debug-level and debug command line flag are set.
   
   Some of these can only be set when you compile. Others, however, can
   be overridden by command-line flags to _Pine_ or settings in _Pine_'s
   user or system configuration files. Some of the options which can be
   set when compiling:
   
  Including LDAP Functionality
  
   In order to build _Pine_ with LDAP functionality included you need to
   supply the LDAP library and include files. _Pine_ has been
   successfully built with OpenLDAP 2.0.x, OpenLDAP 1.x, the University
   of Michigan LDAP library (ldap-3.3), and with the Netscape Directory
   SDK 1.0 LDAP library.
   
   Set up a symlink called ldap in the top-level pine directory (the
   directory where the _Pine_ build script is located). The build script
   will call contrib/ldap-setup to help figure out how to use the LDAP
   libraries. It expects to find directories ldap, ldap/include,
   ldap/libraries, and file ldap/include/ldap.h.
   
   There are at least two slightly different styles of LDAP libraries.
   One style uses two libraries, libldap and liblber, the other uses just
   libldap. The script is not very smart, but it attempts to figure out
   which of these two cases is being used. Modify the script to fit your
   situation if you need to.
   
   When using OpenLDAP as the library (or the older University of
   Michigan libary), set up the symlink so that it points to the base of
   the ldap source tree. The ldap-setup script looks for the directory
   ldap/libraries/liblber and the libraries ldap/libraries/libldap.a and
   ldap/libraries/liblber.a.
   
   To use the Netscape Directory SDK library, make a directory called
   ldap in the top-level pine directory (where the _Pine_ build script is
   located). That directory should contain two subdirectories, include
   and libraries. The include directory is where you should put the
   include files from the Netscape SDK. The libraries directory is where
   you should put the library, libldap.a.
   
   The build script will run the script contrib/ldap-setup if you have
   created an ldap symlink or directory. It tries to figure out if the
   setup is the Univ. of Michigan code or not. If it is Univ. of Michigan
   ldap-3.3 or the library from mozilla.org, then it will link against
   both libldap.a and liblber.a. If it isn't, it will link against only
   libldap.a. You may find you have to do some tweaking to get this to
   work with the libraries you are using. If you find that a change to
   contrib/ldap-setup works for you, you might think about sending that
   to us for inclusion in the next _Pine_ release.
   
   If there is no ldap symlink, there is still an attempt to
   automatically include LDAP support if certain conditions exist. At
   this point, the check includes a check for Solaris 8, otherwise the
   automatic inclusion is not done. You may override the automatic
   inclusion of LDAP with the build argument NOLDAP.
   
   _Pine_ uses LDAPv2 protocol. When using LDAPv3 protocol, the results
   are returned in the utf8 character set. _Pine_ is not yet ready to
   deal with that, so it tells the server to use the LDAPv2 protocol.
   
  Including Kerberos 5 Functionality
  
   In order to build _Pine_ with Kerberos functionality included you
   should place a symlink called krb5 to the directory where your
   Kerberos5 include files and libraries are located. That is,
   krb5/include and krb5/lib should exist. Place the symlink in the
   top-level pine directory (where the _Pine_ build script is located).
   See the comments in the script contrib/krb5-setup if you have trouble.
   
  Pine Compile-time Options
  
   USE_QUOTAS
          Determines whether quotas are checked on startup. Default is to
          not check the quota.
   ALLOW_CHANGING_FROM
          This is now a hidden runtime feature called
          allow-changing-from. Even with this feature turned on, users
          still have to include _From_ in their default-composer-hdrs or
          customized-hdrs in order to be able to edit the From line.
          Beginning with version 4.10, a user may also change their From
          address by using Roles.
          A system administrator may disallow editing of the From line by
          putting the feature _no-allow-changing-from_ in the system-wide
          _fixed_ configuration file. The paranoid system administrator
          can compile in this behavior by defining
          _NEVER_ALLOW_CHANGING_FROM_ in ./pine/osdep/os-xxx.h.
   DEFAULT_DEBUG
          Sets the level of debugging output created in _Pine_'s debug
          files. Default is level 2. The command-line flag -d may also be
          used to change the debug level. For example, -dverbose=7.
   NUMDEBUGFILES
          Sets the number of debug files kept per user. Default is 4. The
          command-line flag -d may also be used to change this. For
          example, -dverbose=3,numfiles=2.
   BACKGROUND_POST
          Define this if you want to allow users to turn on the feature
          that enables sending to take place in a fork()'d child. This
          may reduce the time on the user's wall clock it takes to post
          mail. NOTE: You'll also have to make sure the appropriate
          ./pine/osdep/postreap.* file is included in the
          ./pine/osdep/os-xxx.ic file for your system.
   NEW_MAIL_TIME
          Interval between new-mail checks. Default is 150 seconds. This
          is obsolete. This should be set in a configuration file by
          setting the variable mail-check-interval.
   OVERLAP
          Number of lines overlap when user views the next page of a
          message. Default is 2 lines. This is obsolete. This should be
          set in a configuration file by setting the variable
          viewer-overlap.
   PASSFILE
          _WARNING!_ Turning this on is very dangerous and should
          probably not be done, except on single user systems! For
          _PC-Pine_, this is turned on by default and set to the filename
          PINE.PWD. It may be overridden by the -passfile command-line
          argument. You may enable it for Unix systems by defining
          PASSFILE to be a filename which will be located in the same
          directory as the pinerc file, usually the home directory.
          The file is used to save passwords from one session to the
          next. Even if you define PASSFILE when you compile _Pine_,
          password saving will not be enabled by default, but requires
          the existence of the file (the name of which is the value of
          PASSFILE). Even with the existence of this file, the user must
          still acknowledge a prompt before the password is saved to the
          file. If _Pine_ is configured to access several different IMAP
          servers, each password entered will be kept (associated with
          the corresponding host name) in memory during the current
          session, and optionally, in the PASSFILE file for use in
          subsequent sessions.
          _WARNING_! Use this feature with caution! It effectively makes
          the user's mail no more secure than the physical security of
          the machine running _Pine_. What's more, while the password is
          cloaked by a mild (some might say, feeble) encryption scheme,
          it is nonetheless sitting in a file on the disk and subject to
          cracking by anyone with access to it. _BEWARE_!
   SENDMAIL
   SENDMAILFLAGS
          Sets the name and flags for the local program that will be
          called to handle outgoing email. Default is /usr/lib/sendmail
          -oi -oem -t. See the SMTP and Sendmail section for more
          details.
   SYSTEM_PINERC
          The name of the file which holds _Pine_ configuration
          information for all users on the system. Default on UNIX
          systems is /usr/local/etc/pine.conf.
   SYSTEM_PINERC_FIXED
          The name of the file which holds the same type of information
          as for SYSTEM_PINERC, but only for variables that the
          administrator wants to keep fixed. That is, users are not
          allowed to change variables that are specified in the FIXED
          file. Default on UNIX systems is
          /usr/local/etc/pine.conf.fixed.
          
   There are a couple of more obscure options which are in the source
   code because a few people have asked for them or because we changed
   our minds about them being a good idea in general.
   ENCODE_FROMS
          Use Quoted-printable encoding so that From's at the beginning
          of lines don't end up being escaped by >'s. Most people seem to
          dislike the Q-P encoding more than the > escapes so this is off
          by default. Once everyone has MIME mail readers, we'll turn
          this on by default.
   NO_KEYBOARD_LOCK
          Disable the keyboard locking function in the main menu.
          Keyboard locking is enabled by default. An easier way to turn
          off Keyboard locking is to add the feature
          disable-keyboard-lock-cmd to the feature list variable in the
          global pine.conf or pine.conf.fixed file.
          
  Pico Compile-time Options
  
   There is really only one option settable specifically for _Pico_. It
   is for the UNIX _Pico_ versions only. The file that may need some
   changing is ./pico/osdep/os_xxx.h.. Whatever is set will effect the
   behavior of the _Pico_ stand-alone program as well as the composer
   within _Pine_.
   SPELLER
          Names the program called to do "normal" spell-checking. This
          can be set in a configuration file instead by setting the
          speller configuration variable.
          
  OS Dependent Compile-time Settings
  
   Most of _Pine_'s (and _Pico_'s) operating system dependent behaviors
   are set in the files ./pico/osdep/os-xxx.h and ./pico/osdep/os-xxx.ic.
   The flags in the makefiles are also system dependent. See the comments
   in ./pico/osdep/os-xxx.h for more details. One that may come up is:
   USE_TERMINFO
   USE_TERMCAP
          Instructs _Pine_ to use the terminfo (or termcap) database.
          Default varies by system. This has been moved from
          ./pine/osdep/os-xxx.h to ./pico/osdep/os-xxx.h. If you change
          this you will also have to change the file
          ./pico/osdep/os-xxx.ic so that it includes the file term.inf
          instead of term.cap (or vice versa) and you will probably have
          to change the libraries included by the makefiles
          ./{pico,pine}/makefile-xxx. Hopefully, it is already set
          correctly for each system.
          
  IMAPd Compile-time Options
  
   There are no options or settings required for the version of IMAPd
   distributed with _Pine_. If you need to be doing more complex
   modifications to IMAP, then you should pick up the IMAP development
   package and work with that code. The developer's version of IMAP is
   available for anonymous ftp from ftp.cac.washington.edu in the
   directory mail. The file is called imap.tar.Z.
     _________________________________________________________________
   
Building the Pine Programs

   You may have already compiled _Pine_ and tried it out. If so, great!
   If not, you should be able to do it without too much trouble by
   following these step-by-step instructions:
   
    1. Figure out what platform you're building for. You can give the
       command build help or look at the list in ./doc/pine-ports to see
       the list of ports incorporated into _Pine_. What you need is the
       three letter code for the platform. Some examples are a41 for the
       AIX 4.1 operating system, os4 for Digital Unix 4.0, and lnx for
       Linux. There are sometimes several variants for a single operating
       system (different compilers, shadow passwords or not, etc.) so
       look through the whole list in ./doc/pine-ports for the one you
       want. If your platform is not in the list of ports, then you might
       have some work ahead of you. First, check the file doc/pine-ports
       to see if there are others working on a port for your platform or
       to see if the port is included in the contrib section of the
       source code. Ports in the contrib directory were contributed by
       _Pine_ administrators from around the world, but the _Pine_
       development team has not been able to test the code. Some of these
       ports are very old and are based on old versions of _Pine_. If
       _Pine_ has not yet been ported to your platform at all, read the
       section on Porting Pine in this document.
    2. Make sure you're in the root of the _Pine_ source. When you type
       ls you should see the following files and directories (or
       something close to it):
        README  build   doc     makefile        pine
        bin     contrib imap    pico
    3. Make sure you're getting a clean start by giving the command
       ./build clean. This should take only a few seconds to run.
    4. Give the command ./build _xxx_ where _xxx_ is the three letter
       code you picked in step 1. The compiler should grind away for a
       few minutes.
    5. When the compilation is complete the sizes of the binaries built
       will be displayed. The actual binaries are in the various source
       directories. In addition, the bin directory contains a link to
       each program compiled. You can just copy them out of bin or try
       them from there.
       
   The build command can be given some options which it passes on to the
   subordinate makes. Some that may be useful are EXTRACFLAGS, DEBUG, and
   EXTRALDFLAGS. There are also some SSL-related arguments: SSLDIR,
   SSLCERTS, SSLINCLUDE, and SSLLIB. You should also read the comments in
   the build script itself, which are possibly more up-to-date than this
   text.
   
   Here are some examples of options you may want to pass to build. This
   will turn off the debugging files that _Pine_ produces, while leaving
   the symbol table information. We believe a better way to do this is to
   have an alias for pine which executes pine -d0 instead. This turns off
   debugging at runtime while preserving the possibility of using the
   debugging if a problem turns up. But if you wanted to turn it off
   unconditionally you could use the build argument
   
                                  DEBUG=-g
                                      
   In other words, the command to build a _Pine_ with no debugging would
   be
   
                          ./build DEBUG=-g target
                                      
   where target is one of the 3-letter port names found in
   doc/pine-ports. To also leave out the symbol table information you
   could pass:
   
                                   DEBUG=
                                      
   To turn on the optimizer
   
                                  DEBUG=-O
                                      
   It should be ok to move string constants into a read-only area. We
   don't think there are any instances where _Pine_ modifies a string
   constant. So you could pass a flag to your compiler that tells it to
   do this. This could cause several hundred K of strings to be moved
   from the data area of the program into the text area of the program,
   and that should allow that text to be shared among all instances of
   _Pine_. To do this, for example, with the AIX _a41_ port, you could
   pass this to build:
   
                              EXTRACFLAGS=-qro
                                      
   If you are using OpenSSL but have decided to use a non-standard
   directory (standard one is /usr/local/ssl) for the location then you
   can cause _Pine_ to use that directory with
   
                           SSLDIR=/some/other/dir
                                      
   The assumption is that the certs directory is in SSLDIR/certs, the
   include directory is SSLDIR/include, and the library directory is
   SSLDIR/lib. You can change those assumptions with
   
                          SSLCERTS=certs_directory
                                      
                      SSLINCLUDE=include_directory and
                                      
                        SSLLIB=ssl_library_directory
                                      
   If you are having trouble with the SSL compilation you may explicitly
   exclude SSL code with NOSSL.
   
                                   NOSSL
                                      
   Similarly,
   
                                   NOLDAP
                                      
   The argument
   
                               EXTRASPECIALS
                                      
   can be used to pass arguments to the c-client make which aren't
   provided for in the _Pine_ build script. For example, if you want to
   change the FRIZZLE parameter (a made up argument which the c-client
   make uses) you might be tempted to type something like
   
                        ./build FRIZZLE=cruft target
                                      
   This does work with make on some platforms, but not on others. Some
   makes seem to pass the arguments on to sub-makes, others don't. If
   that doesn't work, then EXTRASPECIALS is for you.
   
                ./build EXTRASPECIALS="FRIZZLE=cruft" target
                                      
   An additional warning. There are some arguments which are overridden
   unconditionally in the sub-makes. Hopefully none of the arguments
   mentioned above falls in this category, but it is something to look
   out for if you are having trouble.
     _________________________________________________________________
   
Installing Pine and Pico on UNIX Platforms

   Installing _Pine_ and _Pico_ is remarkably simple. You take the
   program files which you have just transferred or built and you move
   them to the correct directory on your system. Most often the binaries
   go in /usr/local/bin though sometimes they are placed in /usr/bin. All
   the help text is compiled into _Pine_ so there are no _required_
   auxiliary files.
   
   There are, however, three optional auxiliary files:
   /usr/local/etc/pine.info, /usr/local/etc/pine.conf, and
   /usr/local/etc/pine.conf.fixed. The file pine.info contains text on
   how to get further help on the local system. It is part of the help
   text for the main menu and should probably refer to the local help
   desk or the system administrator. If this file doesn't exist a generic
   version which suggests ``talking to the computer support staff at your
   site'' is shown. The file pine.conf is used to set system-wide default
   configurations for _Pine_. The file pine.conf.fixed is also used to
   set system-wide default configurations for _Pine_. The difference
   between these two files is that configuration variables set in the
   pine.conf.fixed file may not normally be over-ridden by a user. See
   the section on Pine Configuration later in this document for details
   about the pine.conf and pine.conf.fixed files.
     _________________________________________________________________
   
Installing PC-Pine

   Beginning with the _Pine_ 3.90 release, there is a _PC-Pine_ version
   that runs under windows using the Winsock network interface. For those
   who still need to run the DOS version of _PC-Pine_, there are versions
   for four different TCP/IP network stacks: FTP Inc's PC/TCP, Novell's
   LAN Workplace for DOS, Sun's PC/NFS, and WATTCP for packet drivers.
   _PC-Pine_ needs to be able to interact closely with the stack loaded
   on your PC. Most of the time, this occurs automatically. However,
   there are certain modifications that need be made.
   
   LAN Workplace for DOS Version 4.1
          Set the environment variable _EXCELAN_ in the PC's
          _AUTOEXEC.BAT_ file. This provides the necessary links so that
          LAN Workplace for DOS 4.1 can translate domain names to IP
          numbers correctly. It is needed because _Pine_ was developed
          for LAN Workplace 4.0 and this particular variable is treated
          differently in 4.1 than in 4.0. The _EXCELAN_ variable must
          point to the directory in which LAN Workplace is installed.
   PC/TCP versions before 2.2
          You need a file called _PCTCP.INI_ which contains a
          bare-minimum 2-line description of the PC's configuration. It
          looks like this:
                [pctcp ifcust 0]
                ip-address=_xx.xx.xx.xx_
          Where _xx.xx.xx.xx_ is the IP address of the PC. _Pine_ also
          requires an environment variable, _PCTCP,_ which points to this
          file. For example:
                set PCTCP=C:\PINE\PCTCP.INI
   Packet Drivers
          _Pine_ needs to be made aware of the PC's network configuration
          file. Simply edit the file WATTCP.CFG included in the _Pine_
          distribution. The file includes 5 configuration
          settings--IP-address, gateway, netmask, nameserver(s) and
          domainslist. If you have a network configuration file for NCSA
          Telnet then WATTCP.CFG is just a pared down version of the
          CONFIG.TEL file you already made. Take a look at CONFIG.TEL to
          find the correct settings for WATTCP.CFG. Once the
          configuration file is made, the DOS environment variable
          WATTCP.CFG needs to point at it. For example:
                set WATTCP.CFG=C:\PINE
          
   In addition to networking software issues, you might need to worry
   about setting the time zone. _PC-Pine_ includes the time zone as part
   of outgoing email. There is a generic way for PC applications to get
   the time zone, but, because _PC-Pine_ is one of a very few
   applications which requires this information, time zone might not be
   previously configured.
   
   The trick is to add an environment variable, _TZ_, to your PC's
   AUTOEXEC.BAT file. The format for the _TZ_ environment variable is as
   follows:
        ZZZ[+H]H[:MM:SSTTT]

   First is the 3-letter code for your standard time, then a "+" or a "-"
   for direction of offset from GMT, then the amount of offset (hours,
   minutes, seconds) and finally the 3-letter code for your summer- or
   daylight savings time. Everything in [] brackets is optional.
   
   The default time zone is "PST-8PDT" (U.S. Pacific Time).
   Coincidentally, Microsoft is headquartered in that time zone.
   
   As an example, people in the Eastern part of the US should add this
   line to their AUTOEXEC.BAT files:
   
        TZ=EST-5EDT
     _________________________________________________________________
   
Installing IMAPd

   When the _Pine_ distribution is built on a UNIX system, the IMAP
   server binary, imapd, is compiled. Installing imapd requires placing
   the binary in the appropriate directory, usually /usr/etc, and adding
   entries to /etc/services and /etc/inetd.conf or their counterparts.
   The following line is appropriate for /etc/services:
  imap         143/tcp         # Mail transfer

   and the next line is appropriate for /etc/inetd.conf:
  imap  stream  tcp     nowait  root    /usr/etc/imapd imapd

   The /etc/inetd.conf file entry may vary on different versions of UNIX.
   Some have a slightly different set of fields. Also the pathname in
   /etc/inetd.conf must match the path where imapd is installed.
   
   With this configuration, the IMAP server runs without
   pre-authentication. Each new IMAP connection requires a correct
   username and password. IMAP can also be run with pre-authentication
   based on the standard _rsh_ mechanism. To enable this, the user
   account on the IMAP server must contain a valid file which grants
   access to the client machine. Enabling _rimap_ authentication is done
   by creating a link called /etc/rimapd to imapd. Basically, what is
   happening is that _Pine_ is taking advantage of the ability that rsh
   has to use privileged TCP ports so it doesn't have to run in
   privileged mode. If the rimap authentication fails it will drop back
   to plain password authentication.
   
   _PC-Pine_ cannot take advantage of _rimap_ authentication. Also, if
   your system uses a distributed configuration database, like NIS,
   Yellow Pages or Netinfo, be sure that appropriate steps are taken to
   ensure the above mentioned information is updated.
     _________________________________________________________________
   
Support Files and Environment Variables: UNIX Pine

   This section lists the various files which _Pine_ uses which are not
   email folders. All of these are the default names of files, they may
   vary based on _Pine_'s configuration.
   /usr/local/etc/pine.conf
          Pine's global configuration file.
   /usr/local/etc/pine.conf.fixed
          Non-overridable global configuration file.
   /usr/local/etc/pine.info
          Local pointer to system administrator.
   ~/.pinerc
          Personal configuration file for each user.
   ~/.pinercex
          Personal exceptions configuration file for each user.
   ~/.addressbook
          Personal addressbook
   ~/.addressbook.lu
          Personal address book lookup file (index file to speed up
          lookups).
   ~/.newsrc
          Personal USENET subscription list. This is shared with other
          newsreading programs.
   ~/.pine-debugX
          The files created for debugging _Pine_ problems. By default,
          there are 4 .pine-debug files kept at any time.
   ~/.signature
          A signature file which will be included in all outgoing email
          messages.
   ~/.pine-interrupted-mail
          The text of a message which was interrupted by some unexpected
          error which _Pine_ detected.
   ~/mail/postponed-msgs
          A folder of messages which the user chose to postpone.
   /etc/mailcap
          System-wide mail capabilities file. Only used if $MAILCAPS not
          set.
   ~/.mailcap
          Personal mail capabilities file. Combines with system-wide
          mailcap. Only used if $MAILCAPS not set.
          
   The location of the following support files may be controlled by
   variables in the personal or global _Pine_ configuration file:
   signature, addressbook and its index file, postponed messages, and
   newsrc.
   
   Unix _Pine_ uses the following environment variables:
   TERM
          Tells _Pine_ what kind of terminal is being used.
   DISPLAY
          Determines if _Pine_ will try to display IMAGE attachments.
   TMPDIR, TMP, or TEMP
          Specifies location of temporary storage area, first one set
          wins
   SHELL
          If not set, default is /bin/sh
   MAILCAPS
          A semicolon delimited list of path names to mailcap files.
     _________________________________________________________________
   
Support Files, Environment Variables, and Registry Settings: PC-Pine

   This section lists the various files which _PC-Pine_ uses which are
   not normal mail folders. All of these are the default names of files,
   they may vary based on _Pine_'s configuration.
   
   <PINE.EXE directory>\PINE.HLP
          File containing _Pine_'s internal help text.
   <PINE.EXE directory>\PINE.NDX
          Index of _Pine_'s help text used by _PC-Pine_ to locate
          entries.
   $PINERC or <PineRC registry value> or $HOME\PINE\PINERC or <PINE.EXE
          dir>\PINERC
          Path to (required) personal configuration file.
   $PINERCEX or $HOME\PINE\PINERCEX or <PINE.EXE dir>\PINERCEX
          Path to personal exceptions configuration file.
   $PINECONF
          Path of optional global configuration file.
   <PINERC directory>\ADDRBOOK
          Personal addressbook
   <PINERC directory>\ADDRBOOK.LU
          Personal address book lookup file (index file to speed up
          lookups).
   <PINERC directory>\PINE.SIG
          A signature file which will be included in all outgoing email
          messages.
   <PINERC directory>\PINE.PWD
          A file containing encrypted password for remote mail server.
   <PINERC directory>\PINEDEBG.TXT
          Location of _Pine_ debug file.
   <PINERC directory>\MAILCAP and/or <PINE.EXE dir>\MAILCAP
          These paths are only used if $MAILCAPS not set.
   $HOME\NEWSRC or <PINERC directory>\NEWSRC
          Personal USENET subscription list. This may be shared with
          other newsreading programs.
   $HOME\MAIL\INTRUPTD
          The text of a message which was interrupted by some unexpected
          error which _Pine_ detected.
   $HOME\MAIL\POSTPOND
          A folder of messages which the user chose to postpone.
          
   Registry Values:
   HKEY_LOCAL_MACHINE\Software\University of Washington\PC-Pine\4.0
          _Pinedir_: The directory that contains the _Pine_ executable.
          _PineEXE_: The name of the _Pine_ executable (most commonly
          "pine.exe").
   HKEY_CURRENT_USER\Software\University of Washington\PC-Pine\4.0
          _PineRC_: The path that points to the default pinerc to use.
   HKEY_LOCAL_MACHINE\Software\Clients\Mail\PC-Pine
          _DLLPath_: The path that points to _Pine_'s pmapi32.dll.
   HKLM\Software\Clients\Mail\PC-Pine\shell\open\command
          _(Default)_: When set as the default mailer, this is the
          command that is run by external programs.
   HKLM\Software\Clients\Mail\PC-Pine\Protocols\Mailto\DefaultIcon
          _(Default)_: This points to the icon to display in relation to
          _Pine_'s mailto URL rendering.
   HKLM\Software\Clients\Mail\PC-Pine\Protocols\Mailto\shell\open\command
          _(Default)_: This value is the command that gets run by
          external programs when a mailto URL is run with _PC-Pine_ set
          as the default mailer.
   HKLM\Software\Clients\News\PC-Pine\shell\open\command
          _(Default)_: When set as the default newsreader, this is the
          command that is run by external programs.
   HKLM\Software\Clients\News\PC-Pine\Protocols\news\DefaultIcon
          _(Default)_: This points to the icon to display in relation to
          _Pine_'s news URL rendering.
   HKLM\Software\Clients\News\PC-Pine\Protocols\news\shell\open\command
          _(Default)_: This value is the command that gets run by
          external programs when a news URL is run with _PC-Pine_ set as
          the default newsreader.
   HKLM\Software\Clients\News\PC-Pine\Protocols\nntp\DefaultIcon
          _(Default)_: This points to the icon to display in relation to
          _Pine_'s nntp URL rendering.
   HKLM\Software\Clients\News\PC-Pine\Protocols\nntp\shell\open\command
          _(Default)_: This value is the command that gets run by
          external programs when a nntp URL is run with _PC-Pine_ set as
          the default newsreader.
          
   _PC-Pine_'s help text and help text index file are expected to reside
   in the same directory as the PINE.EXE executable, as they are
   essentially extensions of the executable. The personal configuration
   file may be in the same directory as the executable, or if that is
   inconvenient because the executable is on a shared or read-only drive,
   then it can be in a file named by the $PINERC environment variable, or
   in $HOME\PINE\PINERC, where if not set, $HOME defaults to the root of
   the current working drive.
   
   Most of the other support files key off of the location of the PINERC
   file. However, in the case of the NEWSRC file, the path $HOME\NEWSRC
   is checked first. Also, the postponed messages and interrupted message
   folders are placed in the default folder collection, normally in the
   directory $HOME\MAIL.
   
   The location of the following support files may be controlled by
   variables in the personal or global _Pine_ configuration file:
   signature, addressbook (and its index file), postponed messages, and
   newsrc.
   
   _PC-Pine_ uses the following environment variables:
   PINERC
          Overrides default path to pinerc file.
   PINERCEX
          Overrides default path to personal exceptions configuration
          file.
   PINECONF
          Optional path to global _Pine_ config file.
   HOME
          If not set, _Pine_ uses the root of the current drive, e.g. C:
   TMPDIR, TMP, or TEMP
          Specifies location of temporary storage area, first one set
          wins
   COMSPEC
          Specifies shell for external commands.
   MAILCAPS
          A semicolon delimited list of path names to mailcap files.

                            Command Line Arguments
                                       
Pine

   _Pine_ and _PC-Pine_ can accept quite a few command-line arguments.
   Many of these arguments overlap with variables in the _Pine_
   configuration file. If there is a difference, then a flag set in the
   command line takes precedence. Both _Pine_ and _PC-Pine_ expect
   command line arguments (other than addresses) to be preceded by the
   "-" (dash) as normally used by UNIX programs.
   
   _[addresses]_
          Send-to: If you give _Pine_ an argument or arguments which do
          not begin with a dash, _Pine_ treats them as email addresses.
          _Pine_ will startup in the composer with a message started to
          the addresses specified. Once the message is sent, the _Pine_
          session closes. Standard input redirection is allowed. Separate
          multiple addresses with a space between them. Addresses are
          placed in the "To" field only.
   < _file_
          _Pine_ will startup in the composer with _file_ read into the
          body of the message. Once the message is sent, the _Pine_
          session closes.
   -attach _file_
          Go directly into composer with given file attached.
   -attachlist _file-list_
          Go directly into composer with given files attached. This must
          be the last option on the command line.
   -attach_and_delete _file_
          Go directly into composer with given file attached, delete when
          finished.
   -aux _local_directory_
          _PC-Pine_ only. This tells _PC-Pine_ the local directory to use
          for storing auxiliary files, like debug files, address books,
          and signature files. The pinerc may be local or remote.
   -bail
          If the personal configuration file doesn't already exist, exit.
          This might be useful if the configuration file is accessed
          using some remote filesystem protocol. If the remote mount is
          missing this will cause _Pine_ to quit instead of creating a
          new pinerc.
   -c _n_
          When used with the -f option, apply the _n_th context. This is
          used when there are multiple folder collections (contexts) and
          you want to open a folder not in the primary collection.
   -conf
          Configuration: Prints a sample system configuration file to the
          screen or standard output. To generate an initial system
          configuration file, execute
                pine -conf > /usr/local/etc/pine.conf
          To generate a system configuration file using settings from an
          old system configuration file, execute
                pine -P old-pine.conf -conf > /usr/local/etc/pine.conf
          A system configuration file is not required.
   -convert_sigs _-p pinerc_
          Convert signatures contained in signature files into literal
          signatures.
   -copy_abook _<local_abook_file> <remote_abook_folder>_
          Copy an address book file to a remote address book folder. If
          the remote folder doesn't exist, it will be created. If it
          exists but the first message in the folder isn't a remote
          address book header message, the copy will be aborted. This
          flag will not usually be used by a user. Instead, the user will
          create a remote address book from within _Pine_ and copy
          entries from the local address book by using aggregate Save in
          the address book screen.
   -copy_pinerc _<local_pinerc_file> <remote_pinerc_folder>_
          Copy a pinerc configuration file to a remote pinerc folder. If
          the remote folder doesn't exist, it will be created. If it
          exists but the first message in the folder isn't a remote
          pinerc header message, the copy will be aborted. This flag may
          be useful to users who already have a local pinerc file and
          would like to convert it to a remote pinerc folder and use that
          instead. This gives a way to bootstrap that conversion without
          having to manually reset all of the variables in the remote
          pinerc folder.
   -create_lu _addrbook sort-order_
          Create auxiliary LookUp (index) file for _addrbook_ and sort
          _addrbook_ in _sort-order_, which may be _dont-sort_,
          _nickname_, _fullname_, _nickname-with-lists-last_, or
          _fullname-with-lists-last_. Only useful when creating global or
          shared address books. See Address Book Lookup File for more
          information, especially the warning about copying the address
          book after creating the lookup file.
   -d _debug-level_
          Debug Level: Sets the level of debugging information written by
          _Pine_. _Debug-level_ can be set to any integer 0-9. A debug
          level of 0 turns off debugging for the session. (Actually there
          are some levels higher than 9, but you probably don't want to
          see them. Sensitive authentication information is hidden at
          levels less than 10.)
   -d _keywords_
          You may use a more detailed version of the debugging flag to
          set the debug level in separate parts of _Pine_. The
          possibilities are flush, timestamp, imap=0..4, tcp,
          numfiles=0..31, and verbose=0..9. _Flush_ causes debugging
          information to be flushed immediately to the debug file as it
          is written. _Verbose_ is the general debugging verbosity level.
          _Timestamp_ causes timestamps to be added to the debug file,
          which is useful when you are trying to figure out what is
          responsible for delays. _Numfiles_ sets the number of debug
          files saved. _Imap_ sets the debug level for the debugging
          statements related to the conversation with the IMAP server,
          and more generally, for the debugging related to _Pine_'s
          interaction with the C-Client library. If _imap_ is set higher
          than 4, sensitive authentication information will be included
          in the debug file. _Tcp_ adds more TCP/IP debugging
          information.
   -f _folder_
          Startup folder: _Pine_ will open this folder in place of the
          standard INBOX.
   -F _file_
          Open named text file for viewing and forwarding.
   -h
          Help: Prints the list of available command-line arguments to
          the screen.
   -i
          _Pine_ will start up in the FOLDER INDEX screen instead of the
          MAIN MENU.
          Configuration equivalent: _initial-keystroke-list=i_.
   -I _a,b,c,..._
          Initial Keystrokes: _Pine_ will execute this comma-separated
          sequence of commands upon startup. This allows users to get
          _Pine_ to start in any of its menus/screens. You cannot include
          any input to the composer in the initial keystrokes. The key
          <Return> is represented by a ``CR'' in the keystroke list; the
          spacebar is designated by the letters ``SPACE''. Control keys
          are two character sequences beginning with ``^'', such as
          ``^I''. A tab character is ``TAB''. Function keys are ``F1'' -
          ``F12'' and the arrow keys are ``UP'', ``DOWN'', ``LEFT'', and
          ``RIGHT''. A restriction is that you can't mix function keys
          and character keys in this list even though you can, in some
          cases, mix them when running _Pine_. A user can always use only
          _character_ keys in the startup list even if he or she is using
          _function_ keys normally, or vice versa. If an element in this
          list is a string of characters surrounded by double quotes (")
          then it will be expanded into the individual characters in the
          string, excluding the double quotes.
          Configuration equivalent: _initial-keystroke-list_
   -k
          Function-Key Mode: When invoked in this way, _Pine_ expects the
          input of commands to be function-keys. Otherwise, commands are
          linked to the regular character keys.
          Configuration equivalent: _use-function-keys_ included in
          _feature-list_.
   -n _n_
          Message-Number: When specified, _Pine_ starts up in the FOLDER
          INDEX screen with the current message being the specified
          message number.
   -o _folder_
          Opens the INBOX (or a folder specified via the -f argument)
          ReadOnly.
   -p _pinerc_
          Uses the named file as the personal configuration file instead
          of _~/.pinerc_ or the default PINERC search sequence _PC-Pine_
          uses. Pinerc may be either a local file or a remote
          configuration folder.
   -P _pinerc_
          Uses the named file as the system wide configuration file
          instead of _/usr/local/etc/pine.conf_ on UNIX, or nothing on
          _PC-Pine_. Pinerc may be either a local file or a remote
          configuration folder.
   -passfile _passfile_
          _PC-Pine_ only. This tells _PC-Pine_ what file should be used
          as the password file. This should be a fully-qualified
          filename.
   -pinerc _file_
          Output fresh pinerc configuration to _file_, preserving the
          settings of variables that the user has made. Use _file_ set to
          ``-'' to make output go to standard out.
   -r
          Restricted Mode: For UNIX _Pine_ only. _Pine_ in restricted
          mode can only send email to itself. Save and export are
          limited.
   -registry _cmd_
          For _PC-Pine_ only, this option affects the values of _Pine_'s
          registry entries. Possible values for _cmd_ are set, clear, and
          dump. _Set_ will always reset _Pine_'s registry entries
          according to its current settings. _Clear_ will clear the
          registry values. _Dump_ will display the values of current
          registry settings. Note that the dump command is currently
          disabled. Without the -registry option, _PC-Pine_ will write
          values into the registry only if there currently aren't any
          values set.
   -sort _key_
          Sort-Key: Specifies the order messages will be displayed in for
          the FOLDER INDEX screen. _Key_ can have the following values:
          arrival, date, subject, orderedsubj, thread, from, size, score,
          to, cc, arrival/reverse, date/reverse, subject/reverse,
          orderedsubj/reverse, thread/reverse, from/reverse,
          size/reverse, score/reverse, to/reverse, and cc/reverse. The
          default value is "arrival". The _key_ value reverse is
          equivalent to arrival/reverse.
          Configuration equivalent: _sort-key_.
   -supported
          Some options may or may not be supported depending on how _Pine_
          was compiled. This is a way to determine which options are
          supported in the particular copy of _Pine_ you are using.
   -url _url_
          Open the given URL.
   -v
          Version: Print version information to the screen.
   -version
          Version: Print version information to the screen.
   -x _exceptions_config_
          Configuration settings in the exceptions config override your
          normal default settings. _Exceptions_config_ may be either a
          local file or a remote pinerc folder.
   -z
          Enable Suspend: When run with this flag, the key sequence
          ctrl-z will suspend the _Pine_ session.
          Configuration equivalent: _enable-suspend_ included in
          _feature-list_.
   -_option_=_value_
          Assign _value_ to the config option _option_. For example,
          _-signature-file=sig1_ or _-feature-list=signature-at-bottom_.
          (Note: feature-list values are additive and features may be
          preceded with no- to turn them off).
          
Pico

   The following command line options are supported in _Pico_:
   
   +_n_
          Causes _Pico_ to be started with the cursor located _n_ lines
          into the file. (Note: no space between "+" sign and number)
          
   -a
          Display all files and directories, including those beginning
          with a period (.).
          
   -b
          Enable the option to Replace text matches found using the
          "Where is" command.
          
   -d
          Rebind the "delete" key so the character the cursor is on is
          rubbed out rather than the character to its left.
          
   -e
          Enable file name completion.
          
   -f
          Use function keys for commands. _This option supported only in
          conjunction with UW Enhanced NCSA telnet._
          
   -g
          Enable "Show Cursor" mode in file browser. Cause cursor to be
          positioned before the current selection rather than placed at
          the lower left of the display.
          
   -k
          Causes "Cut Text" command to remove characters from the cursor
          position to the end of the line rather than remove the entire
          line.
          
   -m
          Enable mouse functionality. This only works when _Pico_ is run
          from within an X Window System "xterm" window.
          
   -n_n_
          The -n_n_ option enables new mail notification. The _n_
          argument is optional, and specifies how often, in seconds, your
          mailbox is checked for new mail. For example, -n60 causes _Pico_
          to check for new mail once every minute. The default interval
          is 180 seconds, while the minimum allowed is 30. (Note: no
          space between "n" and the number)
          
   -o _dir_
          Sets operating directory. Only files within this directory are
          accessible. Likewise, the file browser is limited to the
          specified directory subtree.
          
   -q
          TermdefWins. Termcap or terminfo escape sequences are used in
          preference to default escape sequences.
          
   -r_n_
          Sets column used to limit the "Justify" command's right margin.
          
   -t
          Enable "tool" mode. Intended for when _Pico_ is used as the
          editor within other tools (e.g., Elm, Pnews). _Pico_ will not
          prompt for save on exit, and will not rename the buffer during
          the "Write Out" command.
          
   -v
          View the file only, disallowing any editing.
          
   -version
          Print version information.
          
   -w
          Disable word wrap (thus allow editing of long lines).
          
          _Note: Pico will break any lines over 255 characters when
          reading a file, regardless of word wrapping._
          
   -x
          Disable keymenu at the bottom of the screen.
          
   -z
          Enable ^Z suspension of _Pico_.
          
Pilot

   The following command line options are supported in _Pilot_:
   
   -a
          Display all files including those beginning with a period (.).
          
   -f
          Use function keys for commands. _This option supported only in
          conjunction with UW Enhanced NCSA telnet._
          
   -g
          Enable "Show Cursor" mode. Cause cursor to be positioned before
          the current selection rather than placed at the lower left of
          the display.
          
   -m
          Enable mouse functionality. This only works when _Pilot_ is run
          from within an X Window System "xterm" window.
          
   -n_n_
          The -n_n_ option enables new mail notification. The _n_
          argument is optional, and specifies how often, in seconds, your
          mailbox is checked for new mail. For example, -n60 causes
          _Pilot_ to check for new mail once every minute. The default
          interval is 180 seconds, while the minimum allowed is 30.
          (Note: no space between "n" and the number)
          
   -o _dir_
          Sets operating directory. Only files within the specified
          directory are accessible and browsing is limited to the
          specified directory subtree.
          
   -v
          Enable single vertical column display.
          
   -x
          Disable keymenu at the bottom of the screen.
          
   -z
          Enable ^Z suspension of _Pilot_.

                         Configuration and Preferences
                                       
Pine Configuration

   There is very little in _Pine_ which _requires_ compile-time
   configuration. In most cases, the compiled-in preferences will suit
   users and administrators just fine. When running _Pine_ on a UNIX
   system, the default built-in configuration can be changed by setting
   variables in the system configuration files, /usr/local/etc/pine.conf
   or /usr/local/etc/pine.conf.fixed. (Actually, these files are whatever
   the definitions for SYSTEM_PINERC and SYSTEM_PINERC_FIXED in
   pine/osdep/os-xxx.h are set to.) The location of the pine.conf file
   can be changed with the -P command line argument. Both _Pine_ and
   _PC-Pine_ also use personal (user-based) configuration files. On UNIX
   machines, the personal configuration file is the file ~/.pinerc. For
   _PC-Pine_ systems, the personal configuration file is in $PINERC or
   <PineRC registry value> or $HOME\PINE\PINERC or <PINE.EXE dir>\PINERC.
   Or the personal configuration file can be specified with the -p
   command line argument.
   
   After the personal configuration, _Pine_ may optionally use a personal
   exceptions configuration file which is specified with the command line
   option "-x exceptions_config". "Exceptions_config" may be either a
   local file or a remote configuration folder. For Unix _Pine_, if you
   don't have a "-x" command line option, _Pine_ will look for the file
   ".pinercex" in the same local directory that the regular config file
   is located in. If the regular config file is remote then Unix _Pine_
   looks in the home directory for ".pinercex".
   
   For _PC-Pine_, if you don't have a "-x" command line option, _PC-Pine_
   will use the value of the environment variable $PINERCEX. If that is
   not set, _PC-Pine_ will look for the local file "PINERCEX" in the same
   local directory that the regular config file is located in. If the
   regular config file is remote then _PC-Pine_ looks in the local
   directory specfied by the "-aux local_directory" command line
   argument, or the directory $HOME\PINE, or in <PINE.EXE directory>.
   
   The syntax of a non-list configuration variable is this:
   
     <variable> = <value>
     
   If the value is absent then the variable is unset. To set a variable
   to the empty value the syntax is "". This is equivalent to an absent
   value except that it overrides any system-wide value that may be set.
   Quotes may be used around any value. All values are strings and end at
   the end of the line or the closing quote. Leading and trailing space
   is ignored unless it is included in the quotes. There is one variable,
   _use-only-domain-name_, for which the only appropriate values are _yes_
   and _no_. That's because it is a variable from the early days of _Pine_
   before features existed.
   
   There is also a second type of variable, lists. A list is a
   comma-separated list of values. The syntax for a list is:
   
     <variable> = <value> [, <value> , ... ]
     
   A list can be continued on subsequent lines by beginning the line with
   white-space. Both the per-user and global configuration files may
   contain comments which are lines beginning with a #.
   
   For UNIX _Pine_, there are five ways in which each variable can be
   set. In decreasing order of precedence they are:
    1. the system-wide _fixed_ configuration file
    2. a command line argument
    3. the personal exceptions file
    4. the personal configuration file
    5. the system-wide configuration file.
       
   If the variable is not set in any of those places, there is a default
   setting in the source code.
   
   So, system-wide fixed settings always take precedence over command
   line flags, which take precedence over per-user exception settings,
   which take precedence over per-user settings, which take precedence
   over system-wide configuration settings. _PC-Pine_ has the same list,
   except that it does not use a system-wide _fixed_ configuration file.
   This can be modified slightly by using inheritance, which is covered
   below.
   
   You may get a sample/fresh copy of the system configuration file by
   running _Pine -conf._ The result will be printed on the standard
   output with short comments describing each variable. (The online help
   in the Setup screens provides longer comments.) If you need to fix
   some of the configuration variables, you would use the same template
   for the fixed configuration file as for the regular system-wide
   configuration file. (If it isn't clear, the purpose of the fixed
   configuration file is to allow system administrators to restrict the
   configurability of _Pine_. It is by no means a bullet-proof method.)
   _Pine_ will automatically create the personal configuration file the
   first time it is run, so there is no need to generate a sample. _Pine_
   reads and writes the personal configuration file occasionally during
   normal operation. Users will not normally look at their personal
   configuration file, but will use the Setup screens from within _Pine_
   to set the values in this file. If a user does add additional comments
   to the personal configuration file they will be retained.
   
   References to environment variables may be included in the _Pine_
   configuration files. The format is $variable or ${variable}. The
   character ~ will be expanded to the $HOME environment variable.
   
   When environment variables are used for _Pine_ settings which take
   lists, you must have an environment variable set for each member of
   the list. That is, _Pine_ won't properly recognize an environment
   variable which is set equal to a comma-delimited list. It is OK to
   reference unset environment variables in the _Pine_ configuration
   file, which will expand to nothing.
   
  Remote and Local Configuration
  
   Beginning with _Pine_ 4.30 there are two types of storage for
   configuration information. _Local_ configuration files are used by
   default. These are just regular files on the UNIX system or on the PC.
   This is the only kind of configuration storage _Pine_ used prior to
   4.30. _Remote_ configuration folders are stored on an IMAP server. The
   advantage of using a remote configuration is that the same information
   may be accessed from multiple platforms. For example, if you use one
   computer at work and another at home, the same configuration could be
   used from both places. A configuration change from one place would be
   seen in both places. Technical information about remote configuration
   is in Remote Configuration.
   
  Generic and Exceptional Configuration
  
   If you use _Pine_ from more than one platform it may be convenient to
   split your configuration information into two pieces, a generic piece
   and exceptions which apply to a particular platform. For example,
   suppose you use _Pine_ from home and from work. Most of your
   configuration settings are probably the same in both locations, so
   those settings belong in the generic settings configuration. However,
   you may use a different SMTP server and INBOX from home than you do
   from work. The "smtp-server" and "inbox-path" variables could be part
   of your exceptional configuration so that they could be different in
   the two places.
   
   Beginning with _Pine_ 4.30 you can use the command line option "-x
   config" to split your configuration into generic and exceptional
   pieces. Config may be either local or remote.
   
   For most people, splitting the configuration information into two
   pieces is only going to be useful if the generic information is
   accessed remotely. If you already have a local pinerc file with
   settings you like you may find that the command
   Setup/RemoteConfigSetup will be useful in helping you convert to a
   remote configuration. The command line flag copy_pinerc may also be
   useful.
   
  Configuration Inheritance
  
   Configuration inheritance is a power user feature. It is confusing and
   not completely supported by the configuration user interface.
   
   For configuration variables which are lists, like "smtp-server" or
   "incoming-folders", the inheritance mechanism makes it possible to
   _combine_ the values of options from different configuration locations
   instead of _replacing_ the value. Configuration Inheritance has more
   information about how inheritance is used.
     _________________________________________________________________
   
General Configuration Variables

   The following is a list of all _Pine_ configuration variables, in
   alphabetical order. Note that not all variables apply to all versions
   of _Pine_ and that some variables are only applicable in a system
   configuration file and some are only applicable in a personal
   configuration file. These are configuration _variables_. Configuration
   Features are in a separate section.
   
   _addrbook-sort-rule_
          This variable sets up the default address book sorting.
          Currently, _Pine_ will accept the values _dont-sort_,
          _fullname-with-lists-last_, _fullname_,
          _nickname-with-lists-last_, and _nickname_. The default is to
          sort by fullname with lists last.
   _address-book_
          A list of personal address books. Each entry in the list is an
          optional nickname followed by a pathname or file name relative
          to the home directory. The nickname is separated from the rest
          of the line with whitespace. Instead of a local pathname or
          file name, a remote folder name can be given. This causes the
          address book to be a Remote address book. Remote folder syntax
          is discussed in Syntax for Remote Folders. This list of address
          books will be combined with the global-address-book list to
          arrive at the complete set of address books.
   _addressbook-formats_
          This option specifies the format that address books are
          displayed in. By default, address books are displayed with the
          nicknames in the first column, the fullnames in the second
          column, and addresses in the third column. The system figures
          out reasonable defaults for the widths of the columns. An
          address book may be given a different format by listing special
          tokens in the order you want them to display. The possible
          tokens are NICKNAME, FULLNAME, ADDRESS, FCC, and COMMENT. More
          details are included in the online help for this variable.
   _alt-addresses_
          This option provides a place for you to list alternate email
          addresses you may have. If set, the option affects the behavior
          of the _Reply_ command and the _+_ symbol in the "Folder
          Index", which denotes that a message has been addressed
          specifically to you.
          With respect to _Reply_, the _Reply to All_ option will exclude
          addresses listed here.
   _bugs-additional-data_
          System-wide configuration files only. Program/Script used by
          _Report Bug_ command. Output from the program/script is
          captured and attached to the bug report.
   _bugs-fullname_, _bugs-address_, _local-fullname_, _local-address_,
          _suggest-fullname_, and _suggest-address_
          System-wide configuration files only. These are used by the bug
          report commands which can be accessed from some of the Help
          screens.
   _character-set_
          This sets the character set used by the terminal. Currently
          appropriate values are _US-ASCII_, _ISO-8859-1_ through
          _ISO-8859-9_ and _ISO-2022-JP_. See the section on
          International Character Sets for more details. The default is
          _US-ASCII_.
   _color-style_
          UNIX _Pine_ only (color is automatically on with _PC-Pine_). If
          the terminal or terminal emulator you are using is capable of
          displaying colors, this variable controls whether or not color
          will be used in _Pine_. If you turn color on and things are set
          up correctly, you should see color appear on the screen
          immmediately. Modern terminal emulators are usually capable of
          displaying colors.
          This variable may be set to any of the following values:
          
        no-color
                Don't use color.
                
        use-termdef
                In order to decide if your terminal is capable of color,
                _Pine_ looks in the terminal capabilities database,
                TERMINFO or TERMCAP, depending on how _Pine_ was
                compiled. This is a good option to choose if you switch
                between a color and a non-color terminal with the same
                _Pine_ configuration. _Pine_ will know to use color on
                the color terminal because it is described in the termcap
                entry, and _Pine_ will know to use black and white on the
                non-color terminal. Color Details has more information
                about configuring a termcap entry for color. This is
                usually something a system administrator does.
                
        force-ansi-8color
                Because setting up a termcap entry is confusing and
                because the terminal capabilities database is often not
                correctly configured for color, this choice and the next
                may be easier for you to use. If your terminal emulator
                responds to ANSI color escape sequences, which many do,
                this option will cause _Pine_ to believe your terminal
                will respond to the escape sequences which produce eight
                different foreground and background colors. The escape
                sequences used to set the foreground colors are
                
                          ESC [ 3 <color_number> m
                                      
                where the color_number is an ASCII digit between 0 and 7.
                The numbers 0 through 7 should correspond to the colors
                black, red, green, yellow, blue, magenta, cyan, and
                white. Some terminal emulators use a pre-ANSI scheme
                which swaps the colors blue and red and the colors yellow
                and cyan. This will cause the default colors to be
                different, but other than that things should work fine.
                The escape sequences used to set the background colors
                are the same as for the foreground colors except a "4"
                replaces the "3".
                
                Note: With the Tera Term terminal emulator this setting
                works well. You should also have the Tera Term "Full
                color" option turned OFF. You may find the "Full color"
                option unset Setup/Window.
                
        force-ansi-16color
                Many terminal emulators know about the same eight colors
                above plus eight more. This option attempts to use all 16
                colors. The same escape sequences as for the eight-color
                terminal are used for the first eight colors. The escape
                sequences used to set foreground colors 8-15 are the same
                as for 0-7 except the "3" is replaced with a "9". The
                background color sequences for colors 8-15 are the same
                as for 0-7 except the "4" is replaced with "10". You can
                tell if the 16 colors are working by turning on this
                option and then going into one of the color configuration
                screens, for example, the configuration screen for Normal
                Color. If you see 16 different colors to select from,
                it's working.
                
          The normal default is "no-color".
          Once you've turned on color you may set the colors of many
          objects on the screen individually. The Color Configuration
          section has more information, or you may just try it by running
          the "Setup" command and typing "K" for Kolor to enter the color
          configuration screen (Kolor instead of Color because C means
          Config). Most categories of color which _Pine_ supports are
          configurable there. Index line color is configured separately.
          Beginning with _Pine_ 4.41, the default names of some colors
          were changed in order to have better interoperability between
          _PC-Pine_ and Unix _Pine_ with both eight and 16-color
          terminals. Both _PC-Pine_ and 8-color Unix _Pine_ will
          interpret the colors named color008, color009, ..., color015 as
          black, red, ..., white. When changing a configuration color
          they will put the colors black, color009, color010, ...,
          color015 into the config file. That is, the colors red, green,
          ..., white will only appear in the config file if put there
          manually or if they were already there from an older version of
          _Pine_. The reason for this is because with 16-color xterm the
          colors red, green, ..., white are actually two-thirds intensity
          colors, and the colors color009, color010, ..., color015 (in
          pine terminology) are full intensity colors which better match
          the default eight of _PC-Pine_ or 8-color Unix terminal
          emulators. The idea is that you can use the eight colors of an
          8-color terminal on a 16-color terminal and with _PC-Pine_.
          Those eight colors will be about the same in all three
          situations.
          In pre-4.41 _PC-Pine_ the three default grays offered were
          called color008, color009, and color010. Since this conflicts
          with three of the colors on 16-color terminals these three
          colors have been renamed colorlgr, colormgr, and colordgr.
          _PC-Pine_ will attempt to automatically change those color
          names the first time you run a version higher than 4.40. If
          that fails for some reason, you will see your old light grays
          displayed as black, your old medium grays displayed as red, and
          your old dark grays displayed as green. You may fix these from
          within the _PC-Pine_ color config screens. If you then go back
          to running a pre-4.41 version of _PC-Pine_ the colors with the
          new names (colorlgr...) will show up as Normally colored text.
   _composer-wrap-column_
          This option specifies an aspect of _Pine_'s Composer. This
          gives the maximum width that auto-wrapped lines will have. It's
          also the maximum width of lines justified using the ^J Justify
          command. The normal default is _74_. The largest allowed
          setting is normally _80_ in order to prevent very long lines
          from being sent in outgoing mail. When the mail is actually
          sent, trailing spaces will be stripped off of each line.
   _customized-hdrs_
          Add these custom headers when composing. Also possible to add
          default values to these custom headers or to any of the
          standard headers. This is a list variable. Each entry in the
          list is a header name (the actual header name that will appear
          in the message) followed by an optional colon and value. For
          example, if a Reply-to header was needed because it was
          different from the From address, that could be accomplished
          with:
          
     customized-hdrs=Reply-to: fred_flintstone@bedrock.net
          Leaving the optional value out allows the user to fill it in
          when composing a message. If it isn't filled in, it won't be
          included in the message.
   _default-composer-hdrs_
          Show only these headers (by default) when composing a message.
          This list may include headers defined in the _customized-hdrs_
          list.
   _default-fcc_
          The name of the folder to which all outgoing mail goes is set
          here. The compiled-in default is _sent-mail_ (UNIX) or
          _sentmail_ (PC). It can be set to "" (two double quotes with
          nothing between them) to turn off saving copies of outgoing
          mail. If _default-fcc_ is a relative file name, then it is
          relative to your default collection for saves (see
          folder-collections).
   _default-saved-msg-folder_
          This option determines the default folder name for _Saves_...
          If this is not a path name, it will be in the default
          collection for saves. Any valid folder specification, local or
          IMAP, is allowed. This default folder only applies when the
          saved-msg-name-rule doesn't override it. Unix _Pine_ default is
          normally _saved-messages_ in the default folder collection.
          _PC-Pine_ default is _SAVEMAIL_ (normally stored as
          _SAVEMAIL.MTX_).
   _disable-these-drivers_
          This variable is a list of mail drivers which will be disabled.
          The candidates for disabling are listed below. There may be
          more in the future if you compile _Pine_ with a newer version
          of the c-client library.
          + mbox
          + mbx
          + mh
          + mmdf
          + mtx
          + mx
          + news
          + phile
          + tenex
          + unix
          The _mbox_ driver enables the following behavior: if there is a
          file called mbox in your home directory, and if that file is
          either empty or in Unix mailbox format, then every time you
          open _INBOX_ the _mbox_ driver will automatically transfer mail
          from the system mail spool directory into the mbox file and
          delete it from the spool directory. If you disable the _mbox_
          driver, this will not happen.
          It is not recommended to disable the driver which supports the
          system default mailbox format. On most non-SCO systems, that
          driver is the _unix_ driver. On most SCO systems, it is the
          _mmdf_ driver. The system default driver may be configured to
          something else on your system; check with your system manager
          for additional information.
          It is most likely not very useful for you to disable any of the
          drivers other than possibly _mbox_. You could disable some of
          the others if you know for certain that you don't need them but
          the performance gain in doing so is very modest.
   _disable-these-authenticators_
          This variable is a list of SASL (Simple Authentication and
          Security Layer) authenticators which will be disabled. SASL is
          a mechanism for authenticating to IMAP, POP3, SMTP, and other
          network servers.
          _Pine_ matches its list of supported authenticators with the
          server to determine the most secure authenticator that is
          supported by both. If no matching authenticators are found,
          _Pine_ will revert to plaintext login (or, in the case of SMTP,
          will be unable to authenticate at all).
          The candidates for disabling are listed below. There may be
          more if you compile _Pine_ with additional authenticators
          and/or a newer version of the c-client library.
          + GSSAPI
          + CRAM-MD5
          + PLAIN
          + LOGIN
          Normally, you will not disable any authenticators. There are
          two exceptions:
         1. You use a broken server that advertises an authenticator, but
            does not actually implement it.
         2. You have a Kerberos-capable version of _Pine_ and the server
            is also Kerberos-capable, but you can not obtain Kerberos
            credentials on the server machine, thus you desire to disable
            GSSAPI (which in turn disables _Pine_'s Kerberos support).
          It is never necessary to disable authenticators, since _Pine_
          will try other authenticators before giving up. However,
          disabling the relevant authenticator avoids annoying error
          messages.
   _display-filters_
          This option defines a list of text-filtering commands (programs
          or scripts) that may be used to filter text portions of
          received messages prior to their use (e.g., presentation in the
          "Message Text" display screen). For security reasons, the full
          path name of the filter command must be specified.
          Display filters do not work with _PC-Pine_.
          The command is executed and the message is piped into its
          standard input. The standard output of the command is read back
          by _Pine_. The __TMPFILE__ token (see below) overrides this
          default behavior.
          The filter's use is based on the configured _trigger_ string.
          The format of a filter definition is:
          
                      <trigger> <command> <arguments>
          You can specify as many filters as you wish, separating them
          with a comma. Each filter can have only one trigger and
          command. Thus, two trigger strings which invoke the same
          command require separate filter specifications.
          The _trigger_ is simply text that, if found in the message,
          will invoke the associated command. If the trigger contains any
          space characters, it must be placed within quotes. Likewise,
          should you wish a filter to be invoked unconditionally, define
          the trigger as the null string, "" (two consecutive
          double-quote characters). If the trigger string is found
          anywhere in the text of the message the filter is invoked.
          Placing the trigger text within the tokens defined below
          changes where within the text the trigger must be before
          considering it a match.
          Trigger Modifying Tokens:
          
        __CHARSET(string)__
                This token tells _Pine_ to invoke the supplied command if
                the text is in a character set matching string (e.g.,
                ISO-8859-2 or ISO-2022-JP).
                
        __LEADING(string)__
                This token tells _Pine_ to invoke the supplied command if
                the enclosed string is found to be the first
                non-whitespace text.
                NOTE: Quotes are necessary if string contains the space
                character.
                
        __BEGINNING(string)__
                This token tells _Pine_ to invoke the supplied command if
                the enclosed string is found at the beginning of any line
                in the text.
                NOTE: Quotes are necessary if string contains the space
                character.
                
          The "command" and "arguments" portion is simply the command
          line to be invoked if the trigger string is found. Below are
          tokens that _Pine_ will recognize and replace with special
          values when the command is actually invoked.
          Command Modifying Tokens:
          
        __TMPFILE__
                When the command is executed, this token is replaced with
                the path and name of the temporary file containing the
                text to be filtered. _Pine_ expects the filter to replace
                this data with the filter's result. NOTE: Use of this
                token implies that the text to be filtered is not piped
                into standard input of the executed command and its
                standard output is ignored. _Pine_ restores the tty modes
                before invoking the filter in case the filter interacts
                with the user via its own standard input and output.
                
        __RESULTFILE__
                When the command is executed, this token is replaced with
                the path and name of a temporary file intended to contain
                a status message from the filter. _Pine_ displays this in
                the message status field.
                
        __DATAFILE__
                When the command is executed, this token is replaced with
                the path and name of a temporary file that _Pine_ creates
                once per session and deletes upon exit. The file is
                intended to be used by the filter to store state
                information between instances of the filter.
                
        __PREPENDKEY__
                When the command is executed, this token indicates that a
                random number will be passed down the input stream before
                the message text. This number could be used as a session
                key. It does not appear as a command-line argument. It is
                sent in this way to improve security. The number is
                unique to the current _Pine_ session and is only
                generated once per session.
                
          Performance caveat/considerations:
          Testing for the trigger and invoking the filter doesn't come
          for free. There is overhead associated with searching for the
          trigger string, testing for the filter's existence and actually
          piping the text through the filter. The impact can be reduced
          if the Trigger Modifying Tokens above are employed.
          Limitation:
          If Header Colors are being used, the sequences of bytes which
          indicate color changes will be contained in the text which is
          passed to the display-filter. If this causes problems you'll
          need to turn off Header Colors. The thirteen bytes which
          indicate a color change are the character \377 followed by \010
          for a foreground color or \011 for a background color. Then
          comes eleven characters of RGB data which looks something like
          255,  0,255, depending on the particular color, of course.
   _download-command_
          This option affects the behavior of the _Export_ command. It
          specifies a Unix program name, and any necessary command line
          arguments, that _Pine_ can use to transfer the exported message
          to your personal computer's disk.
   _download-command-prefix_
          This option is used in conjunction with the _download-command_
          option. It defines text to be written to the terminal emulator
          (via standard output) immediately prior to starting the
          download command. This is useful for integrated serial line
          file transfer agents that permit command passing (e.g.,
          Kermit's APC method).
   _editor_
          UNIX _Pine_ only. Sets the name of the alternate editor for
          composing mail (message text only, not headers). It will be
          invoked with the "^_" command or it will be invoked
          automatically if the enable-alternate-editor-implicitly feature
          is set.
   _empty-header-message_
          When sending, if all of the To, Cc, and Newsgroups fields are
          empty, _Pine_ will put a special address in the To line. The
          default value is "Undisclosed recipients: ;". The reason for
          this is to avoid embarrassment caused by some Internet mail
          transfer software that interprets a "missing" To: header as an
          error and replaces it with an Apparently-to: header that may
          contain the addresses you entered on the Bcc: line, defeating
          the purpose of the Bcc. You may change the part of this message
          that comes before the ": ;" by setting the
          _empty-header-message_ variable to something else.
   _fcc-name-rule_
          Determines default folder name for fcc when composing.
          Currently, _Pine_ will accept the values _default-fcc_,
          _by-recipient_, or _last-fcc-used_. If set to _default-fcc_,
          then _Pine_ will use the value defined in the default-fcc
          variable (which itself has a default) for the Fcc header field.
          If set to _by-recipient_, then _Pine_ will use the name of the
          recipient as a folder name for the fcc. The relevant recipient
          is the first address in the To field. If set to
          "last-fcc-used", then _Pine_ will offer to Fcc to whatever
          folder you used previously. In all cases, the field can still
          be edited after it is initially assigned. If the fcc field in
          the address book is set for the first To address, that value
          over-rides any value derived from this rule.
   _feature-list_
          This is a list of the many features (options) which may be
          turned on or off. There is a separate section titled
          Configuration Features which explains each of the features.
          There is some additional explanation about the _feature-list_
          variable itself in Feature List Variable.
   _file-directory_
          _PC-Pine_ only. This value affects the Composer's "^J Attach"
          command, the Attachment Index Screen's "S Save" command, and
          the Message Index's "E Export" command.
          Normally, when a filename is supplied that lacks a leading
          "path" component, _Pine_ assumes the file exists in the user's
          home directory. Under Windows operating systems, this
          definition isn't always clear. This feature allows you to
          explictly set where _Pine_ should look for files without a
          leading path.
          NOTE: this feature's value is ignored if either use-current-dir
          feature is set or the PINERC has a value for the operating-dir
          variable.
   _folder-collections_
          This is a list of one or more collections where saved mail is
          stored. See the sections describing folder collections and
          collection syntax for more information. The first collection in
          this list is the default collection for _Save_s, including
          default-fcc's.
   _folder-extension_
          _PC-Pine_ only. File extension used for local folder names.
          This is .MTX by default.
   _folder-sort-rule_
          This option controls the order in which folder list entries
          will be presented in the FOLDER LIST screen. Choose one of the
          following:
          
        _Alphabetical_
                sort by alphabetical name independent of type
                
        _Alpha-with-dirs-last_
                sort by alphabetical name grouping directory entries to
                the end of the list
                
        _Alpha-with-dirs-first_
                sort by alphabetical name grouping directory entries to
                the start of the list
                
          The normal default is _Alphabetical_.
   _font-name_
          Winsock version of _PC-Pine_ only.
   _font-size_
          Winsock version of _PC-Pine_ only.
   _font-style_
          Winsock version of _PC-Pine_ only.
   _forced-abook-entry_
          System-wide _Pine_ configuration files only. Force these
          address book entries into all writable personal address books.
          This is a list variable. Each item in the list has the form:
          
     Nickname | Fullname | Address
          with optional whitespace in all the obvious places.
   _form-letter-folder_
          A Form Letter Folder is a mail folder that is intended to
          contain messages that you have composed and that are intended
          to be sent in their original form repeatedly.
          Setting this variable will alter _Pine_'s usual behavior when
          you execute the Compose command. Normally, _Pine_ offers a
          chance to continue a postponed or interrupted message should
          one or the other exist. When this variable is set to a folder
          name that exists, _Pine_ will also offer the chance to select a
          message from the folder to insert into the composer, much like
          when continuing a postponed message. The difference, however,
          is that _Pine_ will not automatically delete the selected
          message from the Form Letter Folder.
          Setting this variable will also affect _Pine_'s behavior when
          you Postpone a message from the composer. Normally, _Pine_
          simply stashes the message away in your Postponed-Folder.
          Regardless of the specified folder's existence, _Pine_ will ask
          which folder you intend the message to be stored in. Choose the
          "F" option to store the message in your Form Letter Folder.
          This is the most common way to add a message to the folder.
          Another method of adding messages to the folder is via the
          _Pine_ composer's Fcc: field. If you are sending a message that
          you expect to send in the same form again, you can enter the
          Form Letter Folder's name in this field. _Pine_, as usual, will
          copy the message as it's sent. Note, when you later select this
          message from your Form Letter Folder, it will have the same
          recipients as the original message.
          To delete a message from the Form Letter Folder, you can either
          select the folder from a suitable FOLDER LIST screen, or use
          the Delete command in the MESSAGE INDEX offered when selecting
          from the folder as part of the Compose command. You can delete
          a Form Letter Folder just as any other folder from a suitable
          FOLDER LIST screen.
          You may find that the Roles facility introduced in _Pine_ 4.10
          can be used to replace the Form Letter Folder.
   _global-address-book_
          A list of shared address books. Each entry in the list is an
          optional nickname followed by a pathname or file name relative
          to the home directory. A SPACE character separates the nickname
          from the rest of the line. Instead of a local pathname or file
          name, a remote folder name can be given. This causes the
          address book to be a Remote address book. Remote folder syntax
          is discussed in Syntax for Remote Folders. This list will be
          added to the address-book list to arrive at the complete set of
          address books. Global address books are defined to be ReadOnly.
   _goto-default-rule_
          This value affects _Pine_'s behavior when using the _Goto_
          command. There are five possible values for this option:
          
        _folder-in-first-collection_
                _Pine_ will offer the most recently visited folder in the
                default collection found in the "Collection List" screen
                as the default.
                
        _inbox-or-folder-in-first-collection_
                If the current folder is _INBOX_, _Pine_ will offer the
                most recently visited folder in the default collection
                found in the "Collection List" screen. If the current
                folder is other than _INBOX_, _INBOX_ is offered as the
                default.
                
        _inbox-or-folder-in-recent-collection_
                This is _Pine_'s default behavior. If the current folder
                is _INBOX_, _Pine_ will offer the last open folder as the
                default. If the current folder is other than _INBOX_,
                _INBOX_ is offered as the default.
                
        _first-collection-with-inbox-default_
                Instead of offering the most recently visited folder in
                the default collection, the default collection is offered
                but with _INBOX_ as the default folder. If you type in a
                folder name it will be in the default collection. If you
                simply accept the default, however, your _INBOX_ will be
                opened.
                
        _most-recent-folder_
                The last accepted value simply causes the most recently
                opened folder to be offered as the default regardless of
                the currently opened folder.
                
          NOTE: The default while a newsgroup is open remains the same;
          the last open newsgroup.
   _image-viewer_
          This variable names the program to call for displaying parts of
          a MIME message that are of type IMAGE. If your system supports
          the _mailcap_ system, you don't need to set this variable.
   _inbox-path_
          This specifies the name of the folder to use for the _INBOX_.
          By default this is unset and the system's default is used. The
          most common reason for setting this is to open an IMAP mailbox
          for the _INBOX_. For example, _{imap5.u.example.edu}inbox_ will
          open the user's standard _INBOX_ on the mail server, _imap5_.
   _incoming-archive-folders_
          This is like read-message-folder, only more general. This is a
          list of folder pairs, with the first separated from the second
          in the pair by a space. The first folder in a pair is the
          folder you want to archive, and the second folder is the folder
          that read messages from the first should be moved to. Depending
          on how you define the auto-move-read-msgs feature, you may or
          may not be asked when you leave the first folder if you want
          read messages to be moved to the second folder. In either case,
          moving the messages means they will be deleted from the first
          folder.
          If these are not path names, they will be in the default
          collection for _Save_s. Any valid folder specification, local
          or remote (via IMAP), is allowed. There is no default.
   _incoming-folders_
          This is a list of one or more folders other than _INBOX_ that
          may receive new messages. This list is slightly special in that
          it is always expanded in the folder lister. In the future, it
          may become more special. For example, it would be nice if _Pine_
          would monitor the folders in this list for new mail.
   _incoming-startup-rule_
          This rule affects _Pine_'s behavior when opening the _INBOX_ or
          another folder from the "INCOMING MESSAGE FOLDERS". This rule
          tells _Pine_ which message to make the current message when an
          incoming folder is opened. There are seven possible values for
          this option:
          
        _first-unseen_
                The current message will be the first unseen message
                which has not been marked deleted, or the last message if
                all of the messages have been seen. This is the default
                setting.
                
        _first-recent_
                This is similar to _first-unseen_. Instead of first
                unseen it is the first recent message. A message is
                considered to be recent if it arrived since the last time
                the folder was open (by any mail client, not just the
                current one). So this option causes the current message
                to be set to the first undeleted-recent message, or the
                last message if none is both undeleted and recent.
                
        _first-important_
                This will result in the current message being set to the
                first message marked Important (but not Deleted). If no
                messages are marked Important, then it will be the last
                message.
                
        _first-important-or-unseen_
                This selects the minimum of the first unseen and the
                first important messages.
                
        _first-important-or-recent_
                This selects the first of the first recent and the first
                important messages.
                
        _first_
                Set the current message to the first undeleted message
                unless all are deleted. In that case set it to the last
                message.
                
        _last_
                Set the current message to the last undeleted message
                unless all are deleted. In that case set it to the last
                message.
                
   _index-answered-background-color_
   _index-answered-foreground-color_
   _index-deleted-background-color_
   _index-deleted-foreground-color_
   _index-important-background-color_
   _index-important-foreground-color_
   _index-new-background-color_
   _index-new-foreground-color_
   _index-recent-background-color_
   _index-recent-foreground-color_
   _index-to-me-background-color_
   _index-to-me-foreground-color_
   _index-unseen-background-color_
   _index-unseen-foreground-color_
          Index Colors.
   _index-format_
          This option is used to customize the content of lines in the
          MESSAGE INDEX screen. Each line is intended to convey some
          amount of immediately relevant information about each message
          in the current folder.
          _Pine_ provides a pre-defined set of informational fields with
          reasonable column widths automatically computed. You can,
          however, replace this default set by listing special tokens in
          the order you want them displayed.
          The list of available tokens is here.
          Spaces are used to separate listed tokens. Additionally, you
          can specify how much of the screen's width the taken's
          associated data should occupy on the index line by appending
          the token with a pair of parentheses enclosing either a number
          or percentage. For example, "SUBJECT(13)" means to allocate 13
          characters of space to the subject column, and "SUBJECT(20%)"
          means to allocate 20% of the available space to the subjects
          column, while plain "SUBJECT" means the system will attempt to
          figure out a reasonable amount of space.
          There is always one space between every pair of columns, so if
          you use fixed column widths (like 13) you should remember to
          take that into account. Several of the fields are virtually
          fixed-width, so it doesn't make much sense to specify the width
          for them. The fields STATUS, FULLSTATUS, MSGNO, the DATE
          fields, SIZE, and DESCRIPSIZE all fall into that category. You
          _may_ specify widths for those if you wish, but you're probably
          better off letting the system pick those widths.
          The default is equivalent to:
          
       index-format=STATUS MSGNO DATE FROMORTO(33%) SIZE SUBJECT(67%)
          This means that the four fields without percentages will be
          allocated first, and then 33% and 67% of the _remaining_ space
          will go to the from and subject fields. If one of those two
          fields is specified as a percentage and the other is left for
          the system to choose, then the percentage is taken as an
          absolute percentage of the screen, not of the space remaining
          after allocating the first four columns. It doesn't usually
          make sense to do it that way. If you leave off all the widths,
          then the subject and from fields (if both are present) are
          allocated space in a 2 to 1 ratio, which is almost exactly the
          same as the default.
          What you are most likely to do with this configuration option
          is to specify which fields appear at all, which order they
          appear in, and the percentage of screen that is used for the
          from and subject fields if you don't like the 2 to 1 default.
   _initial-keystroke-list_
          This is a comma-separated list of keystrokes which _Pine_
          executes on startup. Items in the list are usually just
          characters, but there are some special values. _SPACE,_ _TAB,_
          and _CR_ mean a space character, tab character, and a carriage
          return, respectively. _F1_ through _F12_ stand for the twelve
          function keys. _UP, DOWN, LEFT, _and_ RIGHT _stand for the
          arrow keys. Control characters are represented with _^<char>_.
          A restriction is that you can't mix function keys and character
          keys in this list even though you can, in some cases, mix them
          when running _Pine_. A user can always use only _character_
          keys in the startup list even if he or she is using _function_
          keys normally, or vice versa. If an element in this list is a
          string surrounded by double quotes (") then it will be expanded
          into the individual characters in the string, excluding the
          double quotes.
   _kblock-passwd-count_
          System-wide _Pine_ configuration files only. Number of times a
          user will have to enter a password when they run the keyboard
          lock command in the main menu.
   _keylabel-background-color_
   _keylabel-foreground-color_
          KeyLabel Color.
   _keyname-background-color_
   _keyname-foreground-color_
          KeyName Color.
   _last-time-prune-questioned_
          Personal configuration file only. This variable records the
          month the user was last asked if his or her _sent-mail_ folders
          should be pruned. The format is _yy.mm_. This is automatically
          updated by _Pine_ when the the pruning is done or declined. If
          a user wanted to make _Pine_ stop asking this question he or
          she could set this time to something far in the future. This
          may not be set in the system-wide configuration files. Note:
          The _yy_ year is actually the number of years since 1900, so it
          will be equal to 101 in the year 2001.
   _last-version-used_
          Personal configuration file only. This is set automatically by
          _Pine_. It is used to keep track of the last version of _Pine_
          that was run by the user. Whenever the version number
          increases, a new version message is printed out. This may not
          be set in the system-wide configuration files.
   _ldap-servers_
          This is only available if _Pine_ was linked with an LDAP
          library when it was compiled. This variable is normally managed
          by _Pine_ though it can be set in the system-wide configuration
          files as well as the personal configuration. It is a list
          variable. Each item in the list contains quite a bit of extra
          information besides just the server name. To put this into a
          system-wide config file the easiest thing to do is to configure
          a personal _Pine_ for the LDAP server then copy the
          configuration line into the system-wide config file. Each item
          in the list looks like:
          
     server_name[:port] "quoted stuff"
          The server_name is just a hostname and it is followed by an
          optional colon and port number. The default port is 389.
          Following the server name is a single SPACE character followed
          by a bunch of characters inside double quotes. The part inside
          the quotes is a set of _tag_ = _value_ pairs. Each tag is
          preceded by a slash (/) and followed by an equal sign. The
          value for that tag is the text up to the next slash. An example
          of some quoted stuff is:
          
     "/base=o=University of Washington, c=US/impl=0/.../nick=My Server"
          This would set the search base for this server to o=University
          of Washington, c=US, set the implicit bit to zero, and set the
          nickname for the server to My Server. All of the tags
          correspond directly to items in the Setup/Directory screen so
          experiment with that if you want to see what the possible tags
          and values are.
   _literal-signature_
          With this option your actual signature, as opposed to the name
          of a file containing your signature, is stored in the _Pine_
          configuration file. If this is defined it takes precedence over
          the _signature-file_ option.
          This is simply a different way to store the signature data. The
          signature is stored inside your _Pine_ configuration file
          instead of in a separate signature file. Tokens contained in
          the signature work the same way they do with the regular
          signature-file.
          The Setup/Signature command in _Pine_'s Main Menu will edit the
          _literal-signature_ by default. However, if no
          _literal-signature_ is defined and the file named in the
          _signature-file_ option exists, then the latter will be used
          instead. Compose (Reply, Forward, ...) will default to using
          the _literal-signature_ if defined, otherwise it will use the
          contents of the file named in _signature-file_.
          The _Pine_ composer is used to edit the literal-signature. The
          result of that edit is first converted to a C-style string
          before it is stored in the configuration file. In particular,
          the two character sequence \n (backslash followed by the
          character "n") will be used to signify a line-break in the
          signature. You don't have to enter the \n, but it will be
          visible in the SETUP CONFIGURATION window after you are done
          editing the signature.
   _mail-check-interval_
          This option specifies, in seconds, how often _Pine_ will check
          for new mail. If set to zero, new-mail checking is disabled.
          There is a minimum value, normally 15 seconds. A side effect of
          disabling mail checking is that there will be situations in
          which the user's IMAP connection will be broken due to
          inactivity timers on the server. Another side effect is that
          the user-input-timeout option won't work.
   _mail-directory_
          This variable was more important in previous versions of
          _Pine_. Now it is used only as the default for storing personal
          folders (and only if there are no folder-collections defined).
          The default value is _~/mail_ on UNIX and _$HOME\MAIL_ on a PC.
   _mailcap-search-path_
          This variable is used to replace _Pine_'s default mailcap file
          search path. It takes one or more file names (full paths must
          be specified) in which to look for mail capability data.
   _mimetype-search-path_
          This variable is used to replace _Pine_'s default mime.types
          file search path. It takes one or more file names (full paths
          must be specified) in which to look for file-name-extension to
          MIME type mapping data. See the Config Notes for details on
          _Pine_'s usage of the MIME.Types File.
   _new-version-threshold_
          When a new version of _Pine_ is run for the first time it
          offers a special explanatory screen to the user upon startup.
          This option helps control when and if that special screen
          appears for users that have previously run _Pine_. It takes as
          its value a _Pine_ version number. _Pine_ versions less than
          the specified value will supress this special screen while
          versions equal to or greater than that specified will behave
          normally.
   _news-active-file-path_
          This option tells _Pine_ where to look for the "active file"
          for newsgroups when accessing news locally, rather than via
          NNTP. The default path is usually /usr/lib/news/active.
   _news-collections_
          This is a list of collections where news folders are located.
          See the section describing collections for more information.
   _news-spool-directory_
          This option tells _Pine_ where to look for the "news spool" for
          newsgroups when accessing news locally, rather than via NNTP.
          The default path is usually /usr/spool/news.
   _newsrc-path_
          This option overrides the default name _Pine_ uses for your
          "newsrc" news status and subscription file. If set, _Pine_ will
          take this value as the full pathname for the desired newsrc
          file.
   _nntp-server_
          One or more NNTP servers (host name or IP address) which _Pine_
          will use for reading and sending news. If you read and post
          news to and from a single NNTP server, you can get away with
          only setting the _nntp-server_ variable and leaving the
          _news-collections_ variable unset.
   _normal-background-color_
   _normal-foreground-color_
          Normal Color.
   _operating-dir_
          System-wide _Pine_ configuration files only. This names the
          root of the tree to which the user is restricted when reading
          and writing folders and files. It is usually used in the _fixed_
          configuration file.
   _patterns-filters_
          Matching patterns and their corresponding actions are stored in
          this variable. These patterns are used with Filtering. This
          variable is normally maintained through the Setup/Rules/Filters
          configuration screen. It is a list variable. Each member of the
          list is a single pattern/action pair, or it can be a file which
          contains zero or more lines of pattern/action pairs. The only
          way to create a filters file is to use the InsertFile command
          in the Setup/Rules/Filters screen with a filename which doesn't
          yet exist. Then use the Shuffle command to move existing filter
          patterns into the file. This isn't very convenient but it isn't
          thought that many users will need this functionality. The
          purpose of filter files is for sharing filters.
   _patterns-indexcolors_
          Matching patterns and their corresponding actions are stored in
          this variable. These patterns are used for Index Line Colors.
          This variable is normally maintained through the
          Setup/Rules/Indexcolor configuration screen. It is a list
          variable. Each member of the list is a single pattern/action
          pair, or it can be a file which contains zero or more lines of
          pattern/action pairs. The only way to create a indexcolor file
          is to use the InsertFile command in the Setup/Rules/Indexcolor
          screen with a filename which doesn't yet exist. Then use the
          Shuffle command to move existing patterns into the file. This
          isn't very convenient but it isn't thought that many users will
          need this functionality. The purpose of indexcolor files is for
          sharing indexcolors.
   _patterns-other_
          Matching patterns and their corresponding actions are stored in
          this variable. These patterns are used with Miscellaneous Rules
          configuration. This variable is normally maintained through the
          Setup/Rules/Other configuration screen. It is a list variable.
          Each member of the list is a single pattern/action pair, or it
          can be a file which contains zero or more lines of
          pattern/action pairs. The only way to create a rules file is to
          use the InsertFile command in the Setup/Rules/Other screen with
          a filename which doesn't yet exist. Then use the Shuffle
          command to move existing rules into the file. This isn't very
          convenient but it isn't thought that many users will need this
          functionality.
   _patterns-roles_
          Matching patterns and their corresponding actions are stored in
          this variable. These patterns are used with Roles. This
          variable is normally maintained through the Setup/Rules/Roles
          configuration screen. It is a list variable. Each member of the
          list is a single pattern/action pair, or it can be a file which
          contains zero or more lines of pattern/action pairs. The only
          way to create a roles file is to use the InsertFile command in
          the Setup/Rules/Roles screen with a filename which doesn't yet
          exist. Then use the Shuffle command to move existing roles into
          the file. This isn't very convenient but it isn't thought that
          many users will need this functionality. The purpose of role
          files is for sharing roles.
   _patterns-scores_
          Matching patterns and their corresponding actions are stored in
          this variable. These patterns are used with Scoring. This
          variable is normally maintained through the
          Setup/Rules/SetScores configuration screen. It is a list
          variable. Each member of the list is a single pattern/action
          pair, or it can be a file which contains zero or more lines of
          pattern/action pairs. The only way to create a scores file is
          to use the InsertFile command in the Setup/Rules/SetScores
          screen with a filename which doesn't yet exist. Then use the
          Shuffle command to move existing scoring patterns into the
          file. This isn't very convenient but it isn't thought that many
          users will need this functionality. The purpose of scoring
          files is for sharing scoring rules.
   _personal-name_
          Personal configuration file only. User's full personal name. On
          UNIX systems, the default is taken from the accounts data base
          (/etc/passwd).
   _personal-print-category_
          Personal configuration file only. This is the category that the
          default print command belongs to. There are three categories.
          Category 1 is an attached printer which uses the ANSI escape
          sequence, category 2 is the standard system print command, and
          category 3 is the set of custom printer commands defined by the
          user. This just helps _Pine_ figure out where to put the cursor
          when the user runs the _Setup/Printer_ command. This is not
          used by _PC-Pine_.
   _personal-print-command_
          Personal configuration file only. This corresponds to the third
          category in the printer menu, the personally selected print
          commands. This variable contains the list of custom commands
          that the user has entered in the _Setup/Printer_ screen. This
          is not used by _PC-Pine_.
   _postponed-folder_
          The folder where postponed messages are stored. The default is
          _postponed-msgs_ (Unix) or _POSTPOND_ (PC).
   _print-font-name_
          Winsock version of _PC-Pine_ only.
   _print-font-size_
          Winsock version of _PC-Pine_ only.
   _print-font-style_
          Winsock version of _PC-Pine_ only.
   _printer_
          Personal configuration file only. This is the current setting
          for a user's printer. This variable is set from _Pine_'s
          _Setup/Printer_ screen.
   _prompt-background-color_
   _prompt-foreground-color_
          Prompt Color.
   _pruned-folders_
          This variable allows you to define a list of one or more
          folders that _Pine_ will offer to prune for you in the same way
          it automatically offers to prune your _sent-mail_ folder each
          month. That is, once a month for each folder listed, _Pine_
          will offer to move the contents of the folder to a new folder
          of the same name but with the previous month's date appended.
          _Pine_ will then look for any such date-appended folder names
          created for a previous month, and offer each one it finds for
          deletion. If you decline the first offer, no mail is moved and
          no new folder is created. Folders listed are assumed to exist,
          and the archive folders will be created, in the first
          collection defined by the folder-collections variable.
   _pruning-rule_
          By default, _Pine_ will ask at the beginning of each month
          whether or not you want to rename your sent-mail folder to a
          name like sent-mail-month-year. It will also ask whether you
          would like to delete old sent-mail folders. If you have defined
          read-message-folder or pruned-folders _Pine_ will also ask
          about pruning those folders. With this option you may provide
          an automatic answer to the rename questions and you may tell
          _Pine_ to not ask about deleting old folders.
   _quote1-background-color_
   _quote1-foreground-color_
   _quote2-background-color_
   _quote2-foreground-color_
   _quote3-background-color_
   _quote3-foreground-color_
          Quote Colors.
   _read-message-folder_
          If set, mail in the _INBOX_ that has been read but not deleted
          is moved here, or rather, the user is asked whether or not he
          or she wants to move it here upon quitting _Pine_.
   _remote-abook-history_
          Sets how many extra copies of remote address book data will be
          kept in each remote address book folder. The default is three.
          These extra copies are simply old versions of the data. Each
          time a change is made a new copy of the address book data is
          appended to the folder. Old copies are trimmed, if possible,
          when _Pine_ exits. An old copy can be put back into use by
          deleting and expunging newer versions of the data from the
          folder. Don't delete the first message from the folder. It is a
          special header message for the remote address book and it must
          be there. This is to prevent regular folders from being used as
          remote address book folders and having their data destroyed.
   _remote-abook-metafile_
          Personal configuration file only. This is usually set by _Pine_
          and is the name of a file that contains data about remote
          address books and remote configuration files.
   _remote-abook-validity_
          Sets the minimum number of minutes that a remote address book
          will be considered up to date. Whenever an entry contained in a
          remote address book is used, if more than this many minutes
          have passed since the last check the remote server will be
          queried to see if the address book has changed. If it has
          changed, the local copy is updated. The default value is five
          minutes. The special value of -1 means never check. The special
          value of zero means only check when the address book is first
          opened.
          No matter what the value, the validity check is always done
          when the address book is about to be changed by the user. The
          check can be initiated manually by typing _^L_ (control-L)
          while in the address book maintenance screen for the remote
          address book.
   _reply-indent-string_
          This variable specifies an aspect of _Pine_'s _Reply_ command.
          When a message is replied to and the text of the message is
          included, the included text usually has the string "> "
          prepended to each line indicating it is quoted text.
          This option specifies a different value for that string. If you
          wish to use a string which begins or ends with a space, enclose
          the string in double quotes.
          Besides simple text, the prepended string can be based on the
          message being replied to. The following tokens are substituted
          for the message's corresponding value:
          
        _FROM_
                This token gets replaced with the message sender's
                "username". At most six characters are used.
                
        _NICK_
                This token gets replaced with the nickname of the message
                sender's address as found in your addressbook. If no
                addressbook entry is found, Pine replaces the characters
                "_NICK_" with nothing. At most six characters are used.
                
        _INIT_
                This token gets replaced with the initials of the sender
                of the message.
                
          When the enable-reply-indent-string-editing feature is enabled,
          you are given the opportunity to edit the string, whether it is
          the default or one automatically generated using the above
          tokens.
   _reply-leadin_
          This variable specifies an aspect of _Pine_'s _Reply_ command.
          When a message is replied to and the text of the message is
          included, that text has an introductory line preceding it. The
          normal default if you don't set this variable looks something
          like:
          
                On Sat, 24 Oct 1998, Fred Flintstone wrote:
          where the day of the week is only included if it is available
          in the original message. You may replace this default with text
          of your own. The text may contain tokens which are replaced
          with text which depends on the message you are replying to. For
          example, the default is equivalent to:
          
                        On _DAYDATE_, _FROM_ wrote:
          The list of available tokens is here.
          For the adventurous, there is a way to conditionally include
          text based on whether or not a token would result in specific
          replacement text. For example, you could include some text
          based on whether or not the _NEWS_ token would result in any
          newsgroups if it was used. It's explained in detail here.
          If your _Reply-Leadin_ turns out to be longer than 80
          characters when replying to a particular message, it is
          shortened.
          In the very unlikely event that you want to include a literal
          token in the introduction line you must precede it with a
          backslash character. For example,
          
                           \_DAYDATE_ = _DAYDATE_
          would produce something like
          
                        _DAYDATE_ = Sat, 24 Oct 1998
          It is not possible to have a literal backslash followed by an
          expanded token.
   _reverse-background-color_
   _reverse-foreground-color_
          Reverse Color.
   _rsh-command_
          Sets the format of the command used to open a UNIX remote shell
          connection. The default is "%s %s -l %s exec /etc/r%sd". All
          four "%s" entries MUST exist in the provided command. The first
          is for the command's pathname, the second is for the host to
          connnect to, the third is for the user to connect as, and the
          fourth is for the connection method (typically imap).
   _rsh-open-timeout_
          Sets the time in seconds that _Pine_ will attempt to open a
          UNIX remote shell connection. The default is 15, the minimum
          non-zero value is 5, and the maximum is unlimited. If this is
          set to zero rsh connections will be completely disabled.
   _rsh-path_
          Sets the name of the command used to open a UNIX remote shell
          connection. The default is typically /usr/ucb/rsh.
   _saved-msg-name-rule_
          Determines default folder name when _Sav_ing. If set to
          _default-folder_ (which is the default setting), then _Pine_
          will offer the folder "saved-messages" (UNIX) or "SAVEMAIL"
          (PC) for _Sav_ing messages. The default folder offered in this
          way may be changed by using the configuration variable
          default-saved-msg-folder.
          If this rule is set to _last-folder-used_, _Pine_ offers to
          _Save_ to the folder you last successfully _Saved_ a message to
          (this session). The first time you _Save_ a message in a
          session, _Pine_ offers to _Save_ the message to the default
          folder.
          Choosing any of the _by-_ options causes _Pine_ to attempt to
          get the chosen option's value for the message being _Saved_.
          For example, if _by-from_ is chosen, _Pine_ attempts to get the
          value of who the message came from (i.e. the from address).
          _Pine_ then attempts to _Save_ the message to a folder matching
          that value. If _by-from_ is chosen and no value is obtained,
          _Pine_ uses _by-sender_. The opposite is also true. If
          _by-recipient_ was chosen and the message was posted to a
          newsgroup, _Pine_ will use the newsgroup name. If _by-replyto_
          is chosen and no value is obtained, _Pine_ uses _by-from_.
          If any of the "by-realname" options are chosen, _Pine_ will
          attempt to use the personal name part of the address instead of
          the mailbox part. If any of the "by-nick" options are chosen,
          the address is looked up in your address book and if found, the
          nickname for that entry is used. Only simple address book
          entries are checked, not distribution lists. Similarly, if any
          of the "by-fcc" options are chosen, the fcc from the
          corresponding address book entry is used. If by-realname, or
          the by-nick or by-fcc lookups result in no value, then if the
          chosen option ends with the "then-from", "then-sender",
          "then-replyto", or "then-recip" suffix, _Pine_ reverts to the
          same behavior as "by-from", "by-sender", "by-replyto", or
          "by-recip" depending on which option was specified. If the
          chosen option doesn't end with one of the "then-" suffixes,
          then _Pine_ reverts to the default folder when no match is
          found in the address book.
          Here is an example to make some of the options clearer. If the
          message is From
          
                    Fred Flintstone <flint@bedrock.org>
          and this rule is set to "by-from", then the default folder
          offered in the save dialog would be "flint".
          If this rule is set to "by-realname-of-from" then the default
          would be "Fred Flintstone".
          If this rule is set to "by-nick-of-from" then _Pine_ will
          search for the address "flint@bedrock.org" in your address
          book. If an entry is found and it has a nickname associated
          with it, that nickname will be offered as the default folder.
          If not, the default saved message folder will be offered as the
          default.
          If this rule is set to "by-fcc-of-from" then _Pine_ will search
          for the address "flint@bedrock.org" in your address book. If an
          entry is found and it has an Fcc associated with it, that Fcc
          will be offered as the default folder. If not, the default
          saved message folder will be offered as the default.
          If this rule is set to "by-nick-of-from-then-from" then _Pine_
          will search for the address "flint@bedrock.org" in your address
          book. If an entry is found and it has a nickname associated
          with it, that nickname will be offered as the default folder.
          If it is not found (or has no nickname) then the default
          offered will be the same as it would be for the "by-from" rule.
          That is, it would be "flint"
   _scroll-margin_
          This option controls when _Pine_'s line-by-line scrolling
          occurs. Typically, when a selected item is at the top or bottom
          screen edge and the UP or DOWN (and Ctrl-P or Ctrl-N) keys are
          pressed, the displayed items are scrolled down or up by a
          single line.
          This option allows you to tell _Pine_ the number of lines from
          the top and bottom screen edge that line-by-line scrolling
          should occur. For example, setting this value to one (1) will
          cause _Pine_ to scroll the display when you move to select an
          item on the display's top or bottom edge (instead of moving
          when you move off the edge of the screen).
          By default, this variable is zero (0), indicating that
          scrolling happens when you move up or down to select an item
          immediately off the display's top or bottom edge.
   _selectable-item-background-color_
   _selectable-item-foreground-color_
          Selectable-item Color.
   _sending-filters_
          This option defines a list of text-filtering commands (programs
          and scripts) that may be selectively invoked to process a
          message just before it is sent. If set, the Composer's _^X Send_
          command will allow you to select which filter (or none) to
          apply to the message before it is sent. For security reasons,
          the full path of the filter program must be specified.
          Sending filters do not work with _PC-Pine_.
          Command Modifying Tokens:
          
        __RECIPIENTS__
                When the command is executed, this token is replaced with
                the space delimited list of recipients of the message
                being sent.
                
        __TMPFILE__
                When the command is executed, this token is replaced with
                the path and name of the temporary file containing the
                text to be filtered. _Pine_ expects the filter to replace
                this data with the filter's result. NOTE: Use of this
                token implies that the text to be filtered is not piped
                into standard input of the executed command and its
                standard output is ignored. _Pine_ restores the tty modes
                before invoking the filter in case the filter interacts
                with the user via its own standard input and output.
                
        __RESULTFILE__
                When the command is executed, this token is replaced with
                the path and name of a temporary file intended to contain
                a status message from the filter. _Pine_ displays this in
                the message status field.
                
        __DATAFILE__
                When the command is executed, this token is replaced in
                the command line with the path and name of a temporary
                file that _Pine_ creates once per session and deletes
                upon exit. The file is intended to be used by the filter
                to store state information between instances of the
                filter.
                
        __PREPENDKEY__
                When the command is executed, this token indicates that a
                random number will be passed down the input stream before
                the message text. It is not included as a command-line
                argument. This number could be used as a session key. It
                is sent in this way to improve security. The number is
                unique to the current _Pine_ session and is only
                generated once per session.
                
        __INCLUDEALLHDRS__
                When the command is executed, this token indicates that
                the headers of the message will be passed down the input
                stream before the message text. It is not included as a
                command-line argument. The filter should, of course,
                remove the headers before returning control to _Pine_.
                
        __MIMETYPE__
                When the command is executed, this token is replaced in
                the command name with a temporary file name used to
                accept any new MIME Content-Type information necessitated
                by the output of the filter. Upon the filter's exit, if
                the file contains new MIME type information, _Pine_
                verifies its format and replaces the outgoing message's
                MIME type information with that contained in the file.
                This is basically a cheap way of sending something other
                than Text/Plain.
                
   _sendmail-path_
          This names the path to an alternative program, and any
          necessary arguments, to be used in posting mail messages. See
          the section on SMTP and Sendmail for more details.
   _signature-file_
          This is the name of a file which will be automatically inserted
          into outgoing messages. It typically contains information such
          as your name, email address and organizational affiliation.
          _Pine_ adds the signature into the message as soon as you enter
          the composer so you can choose to remove it or edit it on a
          message by message basis. Signature file placement in message
          replies is controlled by the signature-at-bottom setting in the
          feature list.
          This defaults to ~/.signature on UNIX and <PINERC
          directory>\PINE.SIG on a PC.
          To create or edit your signature file choose Setup from the
          Main Menu and then select S for Signature
          (Main/Setup/Signature). This puts you into the Signature Editor
          where you can enter a _few_ lines of text containing your
          identity and affiliation.
          If the filename is followed by a vertical bar (|) then instead
          of reading the contents of the file the file is assumed to be a
          program which will produce the text to be used on its standard
          output. The program can't have any arguments and doesn't
          receive any input from _Pine_, but the rest of the processing
          works as if the contents came from a file.
          Instead of storing the data in a local file, the signature data
          may be stored remotely in an IMAP folder. In order to do this,
          you must use a remote name for the file. A remote
          signature-file name might look like:
          
               {myimaphost.myschool.k12.wa.us}mail/signature
          or, if you have an SSL-capable version of _Pine_, you might try
          
      {myimaphost.myschool.k12.wa.us/user=loginname/ssl}mail/signature
          The syntax used here is the same as the syntax used for remote
          configuration files from the command line. Note that you may
          not access an existing signature file remotely, you have to
          create a new _folder_ which contains the signature data. If the
          name you use here for the signature file is a remote name, then
          when you edit the file from the Setup/Signature command the
          data will be stored remotely in the folder. You aren't required
          to do anything special to create the folder, it gets created
          automatically if you use a remote name.
          Besides regular text, the signature file may also contain (or a
          signature program may produce) tokens which are replaced with
          text which usually depends on the message you are replying to
          or forwarding. For example, if the signature file contains the
          token
          
                                   _DATE_
          anywhere in the text, then that token is replaced by the date
          the message you are replying to or forwarding was sent. If it
          contains
          
                                 _CURDATE_
          that is replaced with the current date. The first is an example
          of a token which depends on the message you are replying to (or
          forwarding) and the second is an example which doesn't depend
          on anything other than the current date. You have to be a
          little careful with this facility since tokens which depend on
          the message you are replying to or forwarding will be replaced
          by nothing in the case where you are composing a new message
          from scratch. The use of roles may help you in this respect. It
          allows you to use different signature files in different cases.
          The list of tokens available for use in the signature file is
          here.
          Instead of, or along with the use of _roles_ to give you
          different signature files in different situations, there is
          also a way to conditionally include text based on whether or
          not a token would result in specific replacement text. For
          example, you could include some text based on whether or not
          the _NEWS_ token would result in any newsgroups if it was used.
          This is explained in detail here. This isn't for the faint of
          heart.
          In the very unlikely event that you want to include a literal
          token in the signature you must precede it with a backslash
          character. For example,
          
                           \_DAYDATE_ = _DAYDATE_
          would produce something like
          
                        _DAYDATE_ = Sat, 24 Oct 1998
          It is not possible to have a literal backslash followed by an
          expanded token.
   _smtp-server_
          One or more SMTP servers (host name or IP address) which _Pine_
          will use for outgoing mail. If not set, _Pine_ passes outgoing
          email to the _sendmail_ program on the local machine. _PC-Pine_
          users must have this variable set in order to send mail as they
          have no _sendmail_ program. An alternate port may be specified
          by appending :port to the host name or IP address. See the SMTP
          Servers section for details.
   _sort-key_
          This variable sets up the default Message Index sorting. The
          default is to sort by arrival order (the order the messages
          arrived in the folder). It has the same functionality as the
          _-sort_ command line argument and the _$_ command in the
          "Folder Index". If a _sort-key_ is set, then all folders open
          during the session will have that as the default sort order.
   _speller_
          This option affects the behavior of the _^T_ (spell check)
          command in the Composer. It specifies the program invoked by
          _^T_ in the Composer. By default, _Pine_ uses the system's
          "spell" command. _Pine_ will use the command defined by this
          option (if any) instead. When invoking the spell-checking
          program, _Pine_ appends a tempfile name (where the message is
          passed) to the command line. _Pine_ expects the speller to
          correct the spelling in that file. When you exit from the
          speller program _Pine_ will read the tmpfile back into the
          composer.
          For Unix _Pine_ the program _ispell_ works well as an alternate
          spell checker. If your Unix system has _ispell_ it is probably
          reasonable to make it the default speller by configuring it as
          the default in the system configuration file,
          /usr/local/etc/pine.conf.
          If this option is not set, then the system's _spell_ command is
          used. The spell command does not work the same as the alternate
          speller. It produces a list of misspelled words on its standard
          output, instead, and doesn't take a tempfile as an argument.
          Don't set this speller option to the standard Unix spell
          command. That won't work. If you want to use the standard Unix
          spell command, set the speller option to nothing.
   _ssh-command_
          Sets the format of the command used to open a UNIX secure shell
          connection. The default is "%s %s -l %s exec /etc/r%sd". All
          four "%s" entries MUST exist in the provided command. The first
          is for the command's pathname, the second is for the host to
          connnect to, the third is for the user to connect as, and the
          fourth is for the connection method (typically imap).
   _ssh-open-timeout_
          Sets the time in seconds that _Pine_ will attempt to open a
          UNIX secure shell connection. The default is 15, the minimum
          non-zero value is 5, and the maximum is unlimited. If this is
          set to zero ssh connections will be completely disabled.
   _ssh-path_
          Sets the name of the command used to open a UNIX secure shell
          connection. The default is typically /usr/local/bin/ssh.
   _standard-printer_
          System-wide configuration file only. Specifies a list of
          commands for category 2 of the _Setup/Printer_ screen, the
          standard print command section. This is not used by _PC-Pine_.
   _status-background-color_
   _status-foreground-color_
          Status Color.
   _status-message-delay_
          If this is set to a positive number, it causes the cursor to
          move to the status line whenever a status message is printed
          and pause there for this many seconds. It will probably only be
          useful if the show-cursor feature is also turned on. Most users
          should leave this set to the default value of zero since its
          only effect is to slow things down.
   _tcp-open-timeout_
          Sets the time in seconds that _Pine_ will attempt to open a
          network connection. The default is 30, the minimum is 5, and
          the maximum is system defined (typically 75). If a connection
          has not completed within this many seconds _Pine_ will give up
          and consider it a failed connection.
   _tcp-query-timeout_
          When _Pine_ times out a network read or write it will normally
          just display a message saying "Still waiting". However, if
          enough time has elapsed since it started waiting it will offer
          to let you break the connection. That amount of time is set by
          this option, which defaults to 60 seconds, has a minimum of 5
          seconds, and a maximum of 1000 seconds.
   _tcp-read-warning-timeout_
          Sets the time in seconds that _Pine_ will wait for a network
          read before warning you that things are moving slowly and
          possibly giving you the option to break the connection. The
          default is 15 seconds. The minimum is 5 seconds and the
          maximumn is 1000 seconds.
   _tcp-write-warning-timeout_
          Sets the time in seconds that _Pine_ will wait for a network
          write before warning you that things are moving slowly and
          possibly giving you the option to break the connection. The
          default is 0 which means it is unset. If set to a non-zero
          value, the minimum is 5 and the maximum is 1000.
   _title-background-color_
   _title-foreground-color_
          Title Color.
   _upload-command_
          This option affects the behavior of the Composer's _^R_ (Read
          File) and _^J_ (Attach File, in the header) commands. It
          specifies a Unix program name, and any necessary command line
          arguments, that _Pine_ can use to transfer files from your
          personal computer into messages that you are composing.
   _upload-command-prefix_
          This option is used in conjunction with the _upload-command_
          option. It defines text to be written to the terminal emulator
          (via standard output) immediately prior to starting the upload
          command. This is useful for integrated serial line file
          transfer agents that permit command passing (e.g., Kermit's APC
          method).
   _url-viewers_
          List of programs to use to open Internet URLs. This value
          affects _Pine_'s handling of URLs that are found in the text of
          messages you read. Normally, only URLs _Pine_ can handle
          directly are automatically offered for selection in the
          "Message Text" screen. When one or more comma delimited Web
          browsers capable of deciphering URLs on their command line are
          added here, _Pine_ will choose the first available browser to
          display URLs it doesn't recognize.
          Additionally, to support various connection methods and
          browsers, each entry in this list can begin with the special
          token _TEST(test-string)_. The test-string is a shell command
          that _Pine_ will run and which must exit with a status of zero
          for _Pine_ to consider that browser for use (the other criteria
          is that the browser must exist as a full path or a path
          relative to your home directory).
          Now for an example:
          
     url-viewers=_TEST("test -n '${DISPLAY}'")_ /usr/local/bin/netscape,
     /usr/local/bin/lynx, C:\BIN\NETSCAPE.BAT
          This example shows that for the first browser in the list to be
          used the environment variable DISPLAY must be defined. If it
          is, then the file /usr/local/bin/netscape must exist. If either
          condition is not met, then the file /usr/local/bin/lynx must
          exist. If it doesn't, then the final path and file must exist.
          Note that the last entry is a DOS/Windows path. This is one way
          to support _Pine_ running on more than one architecture with
          the same configuration file.
   _use-only-domain-name_
          Can be set to _yes_ or _no._ Anything but _yes_ means _no._ If
          set to _yes_ the first label in the host name will be lopped
          off to get the domain name and the domain name will be used for
          outgoing mail and such. That is, if the host name is
          _carson.u.example.edu_ and this variable is set to _yes,_ then
          _u.example.edu_ will be used on outgoing mail. Only meaningful
          if user-domain is NOT set.
   _user-domain_
          Sets the domain or host name for the user, overriding the
          system host or domain name. See the domain name section.
   _user-id_
          _PC-Pine_ only and personal configuration file only. Sets the
          username that is placed on all outgoing messages. The username
          is the part of the address that comes before the "@".
   _user-input-timeout_
          If this is set to an integer greater than zero, then this is
          the number of _hours_ to wait for user input before _Pine_
          times out. If _Pine_ is in the midst of composing a message or
          is waiting for user response to a question, then it will not
          timeout. However, if _Pine_ is sitting idle waiting for the
          user to tell it what to do next and the user does not give any
          input for this many hours, _Pine_ will exit. No expunging or
          moving of read messages will take place. It will exit similarly
          to the way it would exit if it received a hangup signal. This
          may be useful for cleaning up unused _Pine_ sessions which have
          been forgotten by their owners. The _Pine_ developers envision
          system administrators setting this to a value of several hours
          (24?) so that it won't surprise a user who didn't want to be
          disconnected.
   _viewer-hdr-colors_
          This variable holds the optional Header Colors and patterns
          which have been defined by the user. This is usually modified
          by using the Header Colors section of the Setup Color screen.
   _viewer-hdrs_
          You may change the default list of headers that are viewed by
          listing the headers you want to view here. If the headers in
          your _viewer-hdrs_ list are present in the message, then they
          will be shown. The order of the headers you list will also be
          honored. If the special value _all-except_ is included as the
          first header in the _viewer-hdrs_ list, then all headers in the
          message except those in the list will be shown. The values are
          all case insensitive.
   _viewer-overlap_
          This option specifies an aspect of _Pine_'s Message Viewing
          screen. When the space bar is used to page forward in a
          message, the number of lines specified by the _viewer-overlap_
          variable will be repeated from the bottom of the screen. That
          is, if this was set to two lines, then the bottom two lines of
          the screen would be repeated on the top of the next screen. The
          normal default value is "2".
   _window-position_
          Winsock version of _PC-Pine_ only. Window position in the
          format: CxR+X+Yn Where C and R are the window size in
          characters and X and Y are the screen position of the top left
          corner of the window.
     _________________________________________________________________
   
Configuration Features

   There are several features (options) which may be turned off or on.
   The configuration variable feature-list is a list of all the features
   that are turned on or off. If the name of a feature is in the list it
   will be turned on. If the name of a feature with the characters no-
   prepended is in the list, it will turn the feature off. This is useful
   for overriding system-wide defaults. This is because, unlike all the
   other configuration variables, the _feature-list_ is additive. That
   is, first the system-wide _feature-list_ is read and then the user's
   _feature-list_ is read. This makes it possible for the system manager
   to turn some of the features on by default while still allowing the
   user to cancel that default. For example, if the system manager has
   turned on the _allow-talk_ feature by default then a user may turn it
   back off by including the feature _no-allow-talk_ in his or her
   personal configuration file. Of course, these details are usually
   handled by _Pine_ when the user turns an option on or off from inside
   the _Setup/Config_ screen.
   
   System managers should take some care when turning on features by
   default. Some of the documentation assumes that all of the features
   are off by default, so it could be confusing for a user if some are on
   by default instead.
   
   Here is an alphabetical list of possible features.
   _allow-changing-from_
          Prior to _Pine_ 4.00 there was a _compile_-time option called
          ALLOW_CHANGING_FROM. That has been replaced by a _runtime_
          feature. If this feature is turned on then the From line can be
          changed just like all the other header fields that can be
          changed. See the configuration variables customized-hdrs and
          default-composer-hdrs for more information on editing headers.
          Beginning with _Pine_ 4.30 the default value for this feature
          has been changed from OFF to ON, so that editing of From
          headers is now allowed by default.
   _allow-talk_
          Unix _Pine_ only. By default, permission for others to _talk_
          to your terminal is turned off when you are running _Pine_.
          When this feature is set, permission is instead turned on.
          Note: The _talk_ program has nothing to do with _Pine_ or
          email. The _talk_ daemon on your system will attempt to print a
          message on your screen when someone else is trying to contact
          you. If you wish to see these messages while you are running
          _Pine_, you should enable this feature.
          If you do enable this feature and see a _talk_ message, you
          must suspend or quit _Pine_ before you can respond.
   _alternate-compose-menu_
          This feature controls the menu that is displayed when Compose
          is selected. If set, a list of options will be presented, with
          each option representing the type of composition that could be
          used. This feature is most useful for users who want to avoid
          being prompted with each option separately, or who want to
          avoid the checking of remote postponed or form letter folders.
          The possible types of composition are:
          New, for starting a new composition. Note that if New is
          selected and roles are set, roles are checked for matches and
          applied according to the setting of the matching role.
          Interrupted, for continuing an interrupted composition. This
          option is only offered if an interrupted message folder is
          detected.
          Postponed, for continuing postponed compositions. This option
          is offered if a postponed-folder is set in the config
          _REGARDLESS OF_ whether or not the postponed folder actually
          exists. This option is especially handy for avoiding having to
          check for the existence of a remote postponed folder.
          Form, for using form letters. This option is offered if the
          form-letter-folder is set in the config, and is not checked for
          existence for reasons similar to those explained by the
          postponed option.
          setRole, for selecting a role to apply to a composition.
   _assume-slow-link_
          This feature affects _Pine_'s display routines. If set, the
          normal inverse-video cursor (used to highlight the current item
          in a list) will be replaced by an _arrow_ cursor and other
          screen update optimizations for low-speed links (e.g. 2400 bps
          dialup connections) will be activated. This might be useful if
          _you_ know you have a slow speed link but for some reason _Pine_
          doesn't know.
   _auto-move-read-msgs_
          This feature controls an aspect of _Pine_'s behavior upon
          quitting. If set, and the read-message-folder variable is also
          set, then _Pine_ will automatically transfer all read messages
          from the _INBOX_ to the designated folder and mark them as
          deleted in the _INBOX_. Messages in the _INBOX_ marked with an
          _N_ (meaning New, or unseen) are not affected.
   _auto-open-next-unread_
          This feature controls the behavior of the TAB key when
          traversing folders in the optional incoming-folders collection
          or in optional news-collections.
          When the TAB (Next New) key is pressed, and there are no more
          unseen messages in the current (incoming message or news)
          folder, _Pine_ will search the list of folders in the current
          collection for one containing New or Recent (new since the last
          time the folder was opened) messages. By default, when such a
          folder is found, _Pine_ will ask whether you wish to open the
          folder. If this feature is set, _Pine_ will automatically open
          the folder without prompting.
   _auto-unzoom-after-apply_
          If set, and if you are currently looking at a Zoomed Index view
          of selected messages, the _Apply_ command will do the operation
          you specify, but then will implicitly do an _UnZoom_, so that
          you will automatically be back in the normal Index view after
          the _Apply_.
   _auto-zoom-after-select_
          If set, the _; select_ command will automatically perform a
          _Zoom_ after the _select_ is complete.
   _check-newmail-when-quitting_
          If set, _Pine_ will check for new mail after you give the Quit
          command. If new mail has arrived since the previous check, you
          will be notified and given the choice of quitting or not
          quitting.
   _combined-addrbook-display_
          This feature affects the address book display screens.
          Normally, expanding an address book from the ADDRESS BOOK LIST
          screen will cause the remaining address books and directory
          servers to disappear from the screen, leaving only the entries
          of the expanded address book. If this feature is set, then the
          other address books will remain on the screen, so that all of
          the address books can be present at once.
          The way that commands work won't be changed. For example, the
          Select All command will select all of the entries in the
          current address book, not all of the entries in all of the
          address books. The WhereIs command will change a little. It
          will search through all of the text on the screen plus all of
          the entries from expanded address books.
          When this feature is set, the setting of the feature
          expanded-view-of-addressbooks has an effect.
   _combined-folder-display_
          This feature affects the folder list display screens. Normally,
          each folder list is viewed within its collection only. This
          command allows folder lists to be viewed within a single screen
          that combines the contents of all collections.
          The way that commands work won't be changed. For example, the
          Select All command will select all of the folders in the
          current collection, not all of the entries in all of the
          collections. The WhereIs command will change a little. It will
          search through all of the folders in the current collection as
          well as all the folder in any other expanded collection.
          When this feature is set, the setting of the feature
          expanded-view-of-folders has an effect.
   _combined-subdirectory-display_
          This feature affects the Folder List screen when the
          combined-folder-display feature is enabled. Normally, selecting
          a directory from the Folder List takes you into a new screen
          displaying only the contents of that directory.
          Enabling this feature will cause the contents of the selected
          directory to be displayed within the boundaries of the
          Collection it is a part of. All previously displayed
          collections will remain in the screen.
          The way that commands work won't be changed. For example, the
          Select All command will select all of the folders in the
          directory, as opposed to all of the entries in all of the
          collections. The WhereIs command will change a little. It will
          search through all of the folders in the current collection as
          well as all the folder in any other expanded collection.
   _compose-cut-from-cursor_
          If set, the _^K_ command in the composer will cut from the
          current cursor position to the end of the line, rather than
          cutting the entire line.
   _compose-maps-delete-key-to-ctrl-d_
          If set, Delete will be equivalent to ^D, and delete the current
          character. Normally _Pine_ defines the Delete key to be
          equivalent to ^H, which deletes the _previous_ character.
   _compose-rejects-unqualified-addrs_
          If set, unqualified names entered as addresses will be treated
          as errors unless they match an addressbook nickname or are
          looked up successfully on an LDAP server. _Pine_ will not
          attempt to turn them into complete addresses by adding your
          local domain (which _Pine_ normally does by default).
          A complete (fully-qualified) address is one containing a
          username followed by an _@_ symbol, followed by a host or
          domain name (e.g. _jsmith@nowhere.edu_). An unqualified name is
          one without the _@_ symbol and host or domain name (e.g.
          _jsmith_).
   _compose-send-offers-first-filter_
          If you have sending-filters configured, setting this feature
          will cause the first filter in the _sending-filters_ list to be
          offered as the default instead of _unfiltered_, the usual
          default.
   _compose-sets-newsgroup-without-confirm_
          If you enter the composer while reading a newsgroup, you will
          normally be prompted to determine whether you intend the new
          message to be posted to the current newsgroup or not. If this
          feature is set, _Pine_ will not prompt you in this situation,
          and will assume that you do indeed wish to post to the
          newsgroup you are reading.
   _confirm-role-even-for-default_
          If you have roles, when you Reply to or Forward a message, or
          Compose a new message, _Pine_ will search through your roles
          for one which matches. Normally, if no matches are found you
          will be placed into the composer with no opportunity to select
          a role. If this feature is set, then you will be asked to
          confirm that you don't want a role. This will give you the
          opportunity to select a role (with the ^T command). If you
          confirm no role with a Return, you will be placed in the
          composer with no role. You may also confirm with either an "N"
          or a "Y". These behave the same as if you pressed the Return.
          (The "N" and "Y" answers are available because they match what
          you might type if there was a role match.)
          If you are using the alternate form of the Compose command
          called "Role", then all of your roles will be available to you,
          independent of the value of this feauture and of the values set
          for all of Reply Use, Forward Use, and Compose Use.
   _continue-tab-without-confirm_
          Normally, when you use the TAB NextNew command and there is a
          problem checking a folder, you are asked whether you want to
          continue with the search in the following folder or not. This
          gives you a chance to stop the NextNew processing.
          If this feature is set you will not be asked. It will be
          assumed that you want to continue.
   _delete-skips-deleted_
          If set, this feature will cause the _Delete_ command to advance
          past other messages that are marked deleted. In other words,
          pressing _D_ will both mark the current message deleted and
          advance to the next message that is not marked deleted.
   _disable-busy-alarm_
          If set, the spinning bar that sometimes appears in the status
          line will not appear when _Pine_ is busy. This might be useful
          if it is suspected that the alarm(2) system calls that _Pine_
          uses to implement the busy spinner are suspected of causing a
          problem.
   _disable-config-cmd_
          If set, the configuration screen _Setup/Config_ will not be
          available at all.
   _disable-keyboard-lock-cmd_
          In the Main _Pine_ menu there is a Keyboard locking command
          (_KBLock_). If this feature is set, that command won't be
          available to the user.
   _disable-keymenu_
          If set, the command key menu that normally appears on the
          bottom two lines of the screen will not usually be there.
          Asking for help with _^G_ or _?_ will cause the key menu to
          appear instead of causing the help message to come up. If you
          want to actually see the help text, another _^G_ or _?_ will
          show it to you. After the key menu has popped up with the help
          key it will remain there for an _O Other_ command but will
          disappear if any other command is typed.
   _disable-password-caching_
          Normally, loginname/password combinations are cached in _Pine_
          so that the user does not have to enter the same password more
          than once in a session. A disadvantage to this approach is that
          the password must be stored in the memory image of the running
          _Pine_ in order that it can be reused. In the event that _Pine_
          crashes and produces a core dump, and that core dump is
          readable by others, the loginname and password could possibly
          be read from the core dump.
          If this hidden feature is set, then the passwords will not be
          cached and the user will have to retype the password whenever
          _Pine_ needs it. Even with this feature set there is still some
          chance that the core file will contain a password, so care
          should be taken to make the core files unreadable.
          NOTE: If PASSFILE caching is enabled, this does not disable it.
          That is a separate and independent feature.
   _disable-password-cmd_
          If set the _Newpassword_ command usually available under the
          _Setup_ command will not be available.
   _disable-pipes-in-sigs_
          If set it will be an error to append a vertical bar (|) to the
          name of a signature file. Appending a vertical bar normally
          causes the signature file to be executed to produce the
          signature.
   _disable-pipes-in-templates_
          If set it will be an error to append a vertical bar (|) to the
          name of a template file. Appending a vertical bar normally
          causes the signature file to be executed to produce the
          signature.
   _disable-roles-setup-cmd_
          If set the _Roles_ command usually available under the _Setup_
          command will not be available.
   _disable-roles-sig-edit_
          If set the roles editor in the _Setup/Roles_ command will not
          allow editing of signature files with the F subcommand.
   _disable-roles-template-edit_
          If set the roles editor in the _Setup/Roles_ command will not
          allow editing of template files with the F subcommand.
   _disable-shared-namespaces_
          If this hidden feature is set the automatic search for
          namespaces "ftp", "imapshared", and "imappublic" by the
          underlying library will be disabled. The reason this feature
          exists is because there are some implementations of system
          password lookup routines which are very slow when presented
          with a long loginname which does not exist. This feature could
          be set to prevent the delay at startup time when the names
          above are searched for in the password file.
   _disable-signature-edit-cmd_
          If set the _Signature_ editing command usually available under
          the _Setup_ command will not be available.
   _disable-take-last-comma-first_
          Normally, when _TakeAddr_ is used to copy an address from a
          message into an address book, _Pine_ will attempt to rewrite
          the full name of the address in the form:
          
     Last, First
          instead of
          
     First Last
          It does this because many people find it useful to sort by Last
          name instead of First name. If this feature is set, then the
          _TakeAddr_ command will not attempt to reverse the name in this
          manner.
   _enable-8bit-esmtp-negotiation_
          This feature affects _Pine_'s behavior when sending mail.
          Internet standards require that all electronic mail messages
          traversing the global Internet consist of 7bit ASCII characters
          unless a pair of cooperating mail transfer agents explicitly
          agree to allow 8bit messages. In general, then, exchanging
          messages in non-ASCII characters requires MIME encoding.
          However, there are now Internet standards that allow for
          unencoded 8bit exchange of messages between cooperating
          systems. Setting this feature tells _Pine_ to try to negotiate
          unencoded 8bit transmission during the sending process. Should
          the negotiation fail, _Pine_ will fall back to its ordinary
          encoding rules.
          Note, this feature relies on your system's mail transport agent
          or configured smtp-server having the negotiation mechanism
          introduced in "Extended SMTP" (ESMTP) and the specific
          extension called _8BITMIME_.
   _enable-8bit-nntp-posting_
          The Internet standard for exchanging USENET news messages
          (RFC-1036) specifies that USENET messages should conform to
          Internet mail standards and contain only 7bit characters, but
          much of the news transport software in use today is capable of
          successfully sending messages containing 8bit characters.
          Hence, many people believe that it is appropriate to send 8bit
          news messages without any MIME encoding.
          Moreover, there is no Internet standard for explicitly
          negotiating 8bit transfer, as there is for Internet email.
          Therefore, _Pine_ provides the option of posting unencoded 8bit
          news messages, though not as the default. Setting this feature
          will turn OFF _Pine_'s MIME encoding of newsgroup postings that
          contain 8bit characters.
          Note, articles may cross a path or pass through news transport
          software that is unsafe or even hostile to 8bit characters. At
          best this will only cause the posting to become garbled. The
          safest way to transmit 8bit characters is to leave _Pine_'s
          MIME encoding turned on, but recipients who lack MIME-aware
          tools are often annoyed when they receive MIME-encoded
          messages.
   _enable-aggregate-command-set_
          Setting this feature enables the commands and subcommands that
          relate to performing operations on more than one message at a
          time. We call these "aggregate operations". In particular, the
          _; Select_, _A Apply_, and _Z Zoom_ commands are enabled by
          this feature. _Select_ is used to _tag_ one or more messages
          meeting the specified criteria. _Apply_ can then be used to
          apply any message command to all of the selected/tagged
          messages. Further, the _Zoom_ command allows you to toggle the
          "Folder Index" view between just those Selected and all
          messages in the folder.
          This feature also enables the _^X_ subcommand in the "Folder
          Index" _WhereIs_ command which causes all messages matching the
          _WhereIs_ argument to become selected.
          You may also use aggregate operations in the address book
          screens where you are operating on address book entries instead
          of on messages.
   _enable-alternate-editor-cmd_
          If this feature is set, and the editor variable is not set,
          entering the _^__ (Control-underscore) key while composing a
          message will prompt you for the name of the editor you would
          like to use.
          If the environment variable $EDITOR is set, this value will be
          offered as a default. If the _editor_ variable is set, the _^__
          key will activate the specified editor without prompting, in
          which case it is not necessary to set the
          _enable-alternate-editor-cmd_ feature. This feature is not
          available in _PC-Pine_.
   _enable-alternate-editor-implicitly_
          If this feature and the editor variable are both set, _Pine_
          will automatically activate the specified editor when the
          cursor is moved from the header of the message being composed
          into the message text. For replies, the alternate editor will
          be activated immediately. If this feature is set but the
          _editor_ variable is not set, then _Pine_ will automatically
          ask for the name of an alternate editor when the cursor is
          moved out of the headers, or if a reply is being done. This
          feature is not available in _PC-Pine_.
   _enable-arrow-navigation_
          This feature controls the behavior of the left and right arrow
          keys. If set, the left and right arrow keys will operate like
          the usual navigation keys _<_ and _>_.
          If you set this feature, and do not like the changed behavior
          of the up/down arrow keys when navigating through the FOLDER
          LIST screen -- _first_ from column to column, if more than one
          folder is displayed per row, and _then_ from row to row -- you
          may either also wish to set the feature
          enable-arrow-navigation-relaxed, single-column-folder-list, or
          use the ^P/^N (instead of up/down arrow) keys to move up/down
          the list of folders in each column.
   _enable-arrow-navigation-relaxed_
          This feature controls the behavior of the left and right arrow
          keys in the FOLDER LIST screen when the enable-arrow-navigation
          feature is enabled.
          Normally, when the "enable-arrow-navigation" feature is set,
          the left and right arrow keys in the Folder List screen
          strictly track the commands bound to the _<_ and _>_ keys, and
          the up and down arrow keys move the hilite bar to the previous
          and next folder or directory name.
          When enabled, this feature returns the left, right, up and down
          arrow key's functionality in the FOLDER LIST screen to what it
          was before enabling "enable-arrow-navigation". In other words,
          left and right arrows move the hilite bar to the left or right,
          and the up and down arrows move it up or down.
   _enable-background-sending_
          If set, this feature enables a subcommand in the composer's
          _Send?_ confirmation prompt. The subcommand allows you to tell
          _Pine_ to handle the actual posting in the background. While
          this feature usually allows posting to appear to happen very
          fast, it has no affect on the actual delivery time it takes a
          message to arrive at its destination.
          This feature isn't supported on all systems. All DOS and
          Windows, as well as several Unix ports, do not recognize this
          feature.
          Error handling is significantly different when this feature is
          enabled. Any message posting failure results in the message
          being appended to your _Interrupted_ mail folder. When you type
          the _Compose_ command, _Pine_ will notice this folder and offer
          to extract any messages contained. Upon continuing a failed
          message, _Pine_ will display the nature of the failure in the
          status message line.
          Under extreme conditions, it is possible for message data to
          get lost. Do not enable this feature if you typically run close
          to any sort of disk-space limits or quotas.
   _enable-bounce-cmd_
          Setting this feature enables the _B Bounce_ command, which will
          prompt for an address and _remail_ the message to the new
          recipient. This command is used to re-direct messages that you
          have received in error, or need to be redirected for some other
          reason (e.g. list moderation). The final recipient will see a
          header indicating that you have Resent the msg, but the
          message's From: header will show the original author of the
          message, and replies to it will go back to that author, and not
          to you.
   _enable-cruise-mode_
          This feature affects _Pine_'s behavior when you hit the "Space
          Bar" at the end of a displayed message. Typically, _Pine_
          complains that the end of the text has already been reached.
          Setting this feature causes such keystrokes to be interpreted
          as if the _Tab_ key had been hit, thus taking you to the next
          _interesting_ message, or scanning ahead to the next incoming
          folder with _interesting_ messages.
   _enable-cruise-mode-delete_
          This feature modifies the behavior of _Pine_'s
          _enable-cruise-mode_ feature. Setting this feature causes _Pine_
          to implicitly delete read messages when it moves on to display
          the next _interesting_ message.
          NOTE: Beware when enabling this feature _and_ the
          expunge-without-confirm feature.
   _enable-delivery-status-notification_
          If set, this feature enables a subcommand in the composer's
          "Send?" confirmation prompt. The subcommand allows you to tell
          _Pine_ to request the type of Delivery Status Notification
          (DSN) which you would like. Most users will be happy with the
          default, and need not enable this feature. See the online help
          for more details.
          Note that this is not a method to request _READ_ receipts,
          which tells the sender when the receiver has read the message.
          In this case we're talking about notification of delivery to
          the mailbox, not notification that the message has been seen.
   _enable-dot-files_
          If set, files beginning with dot (".") will be visible in the
          file browser. For example, you'll be able to select them when
          using the browser to add an attachment to a message.
   _enable-dot-folders_
          If set, folders beginning with dot (".") may be added and
          viewed.
   _enable-exit-via-lessthan-command_
          If set, then on screens where there is an _Exit_ command but no
          _<_ command, the _<_ key will perform the same function as the
          _Exit_ command.
   _enable-fast-recent-test_
          If set, the TAB key behavior in Incoming folders or News
          collections is modified. By default, the TAB will cause each
          folder in the Incoming folders collection (or in the news
          collection) to be examined to see how many new messages have
          been delivered since the last time it was viewed. If this
          feature is set, the check is for any recent messages instead of
          the count of recent messages. This is much faster in many
          cases.
   _enable-flag-cmd_
          Setting this feature enables the _* Flag_ command, which allows
          you to manipulate the status flags associated with a message.
          By default, _Flag_ will set the _Important_ flag, which results
          in an asterisk being displayed in column one of the "Folder
          Index" for such messages.
   _enable-flag-screen-implicitly_
          This feature modifies the behavior of the _* Flag_ command
          (provided it too is enabled). By default, when the _* Flag_
          command is selected, _Pine_ offers a prompt to set one of
          several flags and also offers the option of entering the
          detailed flag manipulation screen via the _^T_ key. Enabling
          this feature causes _Pine_ to immediately enter the detailed
          flag screen rather than first offer the simple prompt.
   _enable-full-header-cmd_
          This feature enables the _H Full Headers_ command which toggles
          between the display of all headers in the message and the
          normal edited view of headers. The _Full Header_ command also
          controls which headers are included for _Export_, _Pipe_,
          _Print_, _Forward_, and _Reply_ functions. (For _Reply_, the
          _Full Header_ mode will respect the _include-headers-in-reply_
          feature setting.)
   _enable-goto-in-file-browser_
          Setting this causes _Pine_ to offer the _G Goto_ command in the
          file browser. This command allows you to explicitly set the
          displayed directory. _Pine_'s default behavior requires you to
          visit each related directory when moving between two distant
          directories.
   _enable-incoming-folders_
          If set, this feature defines a pseudo-folder collection called
          _INCOMING MESSAGE FOLDERS_. Initially, the only folder included
          in this collection will be your _INBOX_, which will no longer
          show up in your default saved-message folder collection.
   _enable-jump-shortcut_
          Setting this feature will allow you to enter a number (followed
          by RETURN) and jump to that message number, when in the "Folder
          Index" or "Message Text" screens. In other words, it obviates
          the need for typing the _J_ for the _Jump_ command.
   _enable-lame-list-mode_
          This feature modifies the method Pine uses to ask your IMAP
          server for folder names to display in the the FOLDER LIST
          screen. It is intended to compensate for a small set of IMAP
          servers that are programmed to ignore a part of the request,
          and thus respond to _Pine_'s query with nonsensical results.
          If you find that _Pine_ is erroneously displaying blank folder
          lists, try enabling this feature.
          NOTE: Enabling this feature has consequences for the Goto and
          Save commands. Many servers allow access to folders outside the
          area reserved for your personal folders via some reserved
          character, typically '#' (sharp), '~' (tilde) or '/' (slash).
          This mechanism allows, at the Goto and Save prompts, quick
          access to folders outside your personal folder collection
          without requiring a specific collection definition. This
          behavior will generally not be available when this feature is
          enabled.
   _enable-mail-check-cue_
          If set, this will cause an asterisk to appear in the upper
          left-hand corner of the screen whenever _Pine_ checks for new
          mail, and two asterisks whenever _Pine_ saves (checkpoints) the
          state of the current mailbox to disk.
   _enable-mailcap-param-substitution_
          If set, this will allow mailcap named parameter substitution to
          occur in mailcap entries. By default, this is turned off to
          prevent security problems which may occur with some incorrect
          mailcap configurations. For more information, RFC1524 and look
          for "named parameters" in the text of the RFC.
   _enable-mouse-in-xterm_
          This feature controls whether or not an X terminal mouse can be
          used with _Pine_. If set, and the $DISPLAY variable indicates
          that an X terminal is being used, the left mouse button on the
          mouse can be used to select text or commands.
          Note: if this feature is set, the behavior of X terminal
          cut-and-paste is also modified. It is necessary to hold the
          shift key down while clicking left or middle mouse buttons for
          the normal xterm cut/paste operations.
   _enable-msg-view-addresses_
          This feature modifies the behavior of _Pine_'s "Message Text"
          screen. Setting this feature causes _Pine_ to select possible
          email addresses from the displayed text and display them in
          boldface for selection.
          The first available email address is displayed in inverse. This
          is the "selected" address. Pressing _RETURN_ will cause _Pine_
          to enter the message composition screen with the To field
          filled in with the selected address.
          Use the up and down arrow keys to change which of the addresses
          displayed in boldface is the current selection.
   _enable-msg-view-attachments_
          This feature modifies the behavior of _Pine_'s "Message Text"
          screen. Setting this feature causes _Pine_ to present
          attachments in boldface. The first available attachment is
          displayed in inverse. This is the "selected" attachment.
          Pressing _RETURN_ will cause _Pine_ to display the selected
          attachment. Use the up and down arrow keys to change which of
          the attachments displayed in boldface is the current selection.
          Speaking of arrow keys, the Up and Down Arrows will select the
          next and previous attachments if one is available on the screen
          for selection. Otherwise, they will simply adjust the viewed
          text one line up or down.
          Similarly, when selectable items are present in a message, the
          Ctrl-F key can be used to select the next item in the message
          independent of which portion of the viewed message is currently
          displayed. The Ctrl-B key can be used to select the previous
          item in the same way.
   _enable-msg-view-forced-arrows_
          This feature modifies Up and Down arrow key behavior in
          _Pine_'s "Message Text" screen when selectable Attachments,
          URL's, or web-hostnames are presented. _Pine_'s usual behavior
          is to move to the next or previous selectable item if currently
          displayed or simply to adjust the screen view by one line if
          the next selectable line is off the screen.
          Setting this feature causes the Up and Down arrow keys to
          behave as if no selectable items were present in the message.
          Note, the _Ctrl-F_ (next selectable item) and _Ctrl-B_
          (previous selectable item) functionality is unchanged.
   _enable-msg-view-urls_
          This feature modifies the behavior of _Pine_'s "Message Text"
          screen. Setting this feature causes _Pine_ to select possible
          URL's from the displayed text and display them in boldface for
          selection.
          The first available URL is displayed in inverse. This is the
          "selected" URL. Pressing _RETURN_ will cause _Pine_ to display
          the selected URL via either built-in means as with mailto:,
          imap:, news:, and nntp:, or via an external application as
          defined by the url-viewers variable.
          Use the up and down arrow keys to change which of the URLs
          displayed in boldface is the current selection.
   _enable-msg-view-web-hostnames_
          This feature modifies the behavior of _Pine_'s "Message Text"
          screen. Setting this feature causes _Pine_ to select possible
          web hostnames from the displayed text and display them in
          boldface for selection.
          The first available hostname is displayed in inverse. This is
          the "selected" hostname. Pressing _RETURN_ will cause _Pine_ to
          display the selected hostname via an external application as
          defined by the url-viewers variable.
          Use the up and down arrow keys to change which of the hostnames
          displayed in boldface is the current selection.
   _enable-newmail-in-xterm-icon_
          This feature controls whether or not _Pine_ will attempt to
          announce new mail arrival when it is running in an X terminal
          window and that window is iconified. If set, and the $DISPLAY
          variable indicates that an X terminal is being used, _Pine_
          will send appropriate escape sequences to the X terminal to
          modify the label on _Pine_'s icon to indicate that new mail has
          arrived.
   _enable-partial-match-lists_
          This feature affects the subcommands available when _Sav_ing or
          Opening a new folder. If set, the subcommand _^X ListMatches_
          will be available. This command allows you to type in a
          substring of the folder you are looking for and when you type
          _^X_ it will display all folders which contain that substring
          in their names.
   _enable-print-via-y-command_
          By default, _Pine_'s print command is available by pressing the
          _%_ key. In recent versions prior to 4.00, the print command
          was accessed by pressing the _Y_ key.
          Enabling this feature will cause _Pine_ to recognize both the
          old command, _Y_, and the new _%_ method for invoking printing.
          Note, key menu labels are not changed as a result of enabling
          this feature.
   _enable-reply-indent-string-editing_
          This feature affects the Reply command's "Include original
          message in Reply?" prompt. When enabled, it causes the "Edit
          Indent String" sub-command to appear which allows you to edit
          the string _Pine_ would otherwise use to denote included text
          from the message being replied to.
          Thus, you can change _Pine_'s default message quote character
          (usually an angle bracket) on a per message basis. So you could
          change your quoted message to look, for example, like this:
On Tues, 26 Jan 1999, John Q. Smith wrote:

John: I just wanted to say hello and to congratulate you
John: on a job well done!
          The configuration option "reply-indent-string" may be used to
          change what appears as the default string to be edited.
          NOTE: Edited reply-indent-strings only apply to the message
          currently being replied to.
   _enable-rules-under-take_
          Normally, the Take command takes addresses from a message and
          helps you put them into your Address Book. If you use Rules for
          Indexcolors, Roles, Filtering, or Scoring; you may find it
          useful to be able to Take information from a message's headers
          and put it into a new Rule. When this feature is set, you will
          be given an extra prompt which gives you the choice to Take
          into the Address Book or Take into a rule.
   _enable-search-and-replace_
          If set _Pine_'s composer offers the _R Replace_ command option
          inside the _W WhereIs_ command.
   _enable-sigdashes_
          If set and a _signature-file_ exists, the line consisting of
          the three characters "-- " (dash dash space) is included before
          the signature. This only happens if the signature doesn't
          already contain such a line.
          In addition, when you Reply or Followup to a message containing
          one of these special lines and choose to include its text,
          _Pine_ will observe the convention of not including text beyond
          the special line in your reply.
   _enable-suspend_
          Setting this feature will allow you to type _^Z_ and
          temporarily suspend _Pine_. Not available on _PC-Pine_.
   _enable-tab-completion_
          This feature enables the _TAB_ key when at a prompt for a
          filename. In this case, _TAB_ will cause the partial name
          already entered to be automatically completed, provided the
          partial name is unambiguous.
   _enable-take-export_
          Normally, the Take command takes addresses from a message and
          helps you put them into your Address Book. When this feature is
          set, you will be given an extra prompt which gives you the
          choice to Take addresses into a file instead of your Address
          Book. Only the user@domain_name part of the address is put in
          the file.
   _enable-tray-icon_
          _PC-Pine_ only.
   _enable-unix-pipe-cmd_
          This feature enables the _| Pipe_ command that sends the
          current message to the specified Unix command for external
          processing. Not available on _PC-Pine_.
   _enable-verbose-smtp-posting_
          This feature controls an aspect of _Pine_'s message sending.
          When enabled, _Pine_ will send a VERB (i.e., VERBose) command
          early in the posting process intended to cause the server SMTP
          to provide a more detailed account of the transaction. This
          feature is typically only useful to system administrators and
          other support personel as an aid in troublshooting problems.
          Note, this feature relies on a specific capability of the
          system's mail transport agent or configured smtp-server.
   _expanded-view-of-addressbooks_
          If multiple address books (either personal or global) are
          defined, and you wish to have them all expanded implicitly upon
          entering the ADDRESS BOOK screen, then set this feature. This
          feature will have no effect unless the feature
          combined-addrbook-display is also set.
   _expanded-view-of-distribution-lists_
          If this feature is set, then distribution lists in the address
          book screen will always be expanded automatically.
   _expanded-view-of-folders_
          If multiple folder collections are defined, and you wish to
          have them all expanded implicitly upon entering the FOLDER LIST
          screen, then set this feature. This feature will have no effect
          unless the feature combined-folder-display is also set.
   _expose-hidden-config_
          The purpose of this feature is to allow you to change
          configuration features and variables which are normally hidden.
          This is particularly useful if you are using a remote
          configuration file, where it is difficult to edit the file
          manually, but it may also be used on a local pinerc
          configuration file.
          If set, most configuration variables and features which are
          normally hidden from view will show up in the
          Setup/Configuration screen. They will be at the bottom of the
          configuration screen. You can find them by searching for the
          word "hidden".
          Note that this is an advanced feature which should be used with
          care. The reason that this part of the configuration is
          normally hidden is because there is a significant potential for
          causing problems if you change these variables. If something
          breaks after a change try changing it back to see if that is
          what is causing the problem. There are also some variables
          which are normally hidden because they are manipulated through
          _Pine_ in other ways. For example, the "address-book" variable
          is normally set using the Setup/AddressBooks screen, so there
          is little reason to edit it directly. The "incoming-folders"
          variable is normally changed by using the Add, Delete, and
          Rename commands in the FOLDER LIST screen, and the
          "last-time-prune-questioned" variable is normally used
          internally by _Pine_ and not set directly by the user.
   _expunge-only-manually_
          Normally, when you close a folder which contains deleted
          messages you are asked if you want to expunge those messages
          from the folder permanently. If this feature is set, you won't
          be asked and the deleted messages will remain in the folder. If
          you choose to set this feature you will have to expunge the
          messages manually using the eXpunge command, which you can use
          while in the MESSAGE INDEX screen. If you do not expunge
          deleted messages the size of your folder will continue to
          increase until you are out of disk space.
   _expunge-without-confirm_
          If set, you will not be prompted to confirm your intent before
          the expunge takes place. Actually, you will still be prompted
          for confirmation if the folder is not the _INBOX_ folder or
          another folder in the Incoming Folders collection. See the
          _expunge-without-confirm-everywhere_ feature which follows.
   _expunge-without-confirm-everywhere_
          The regular _expunge-without-confirm_ feature actually only
          works for the _INBOX_ folder and for other folders in the
          "Incoming Folders" collection. If this feature is set then you
          also won't be prompted to confirm expunges for all other
          folders.
   _fcc-on-bounce_
          If set, normal Fcc (File Carbon Copy) processing will be done
          for bounced messages, just as if you had composed a message to
          the address you are bouncing to. If not set, no Fcc of the
          message will be saved.
   _fcc-only-without-confirm_
          This features controls an aspect of Pine's composer. The only
          time this feature will be used is if you attempt to send mail
          which has no recipients but does have an Fcc. Normally, Pine
          will ask if you really mean to copy the message only to the
          Fcc. That is, it asks if you really meant to have no
          recipients. If this feature is set, you will _not_ be prompted
          to confirm your intent to make only a copy of a message with no
          recipients.
   _fcc-without-attachments_
          This features controls the way FCC's (File Carbon Copies) are
          made of the messages you send.
          Normally, _Pine_ saves an exact copy of your message as it was
          sent. When this feature is enabled, the "body" of the message
          you send (the text you type in the composer) is preserved in
          the copy as before, however all attachments are replaced with
          text explaining what had been sent rather than the attachments
          themselves.
          This feature also affects _Pine_'s "Send ?" confirmation prompt
          in that a new "^F Fcc Attchmnts" option becomes available which
          allows you to interactively set whether or not attachments are
          saved to the Fcc'd copy.
   _include-attachments-in-reply_
          If set, any MIME attachments that were part of the original
          message will automatically be included in a _Reply_.
   _include-header-in-reply_
          If set, and a message being replied to is included in the
          _Reply_, then headers from that message will also be part of
          the reply.
   _include-text-in-reply_
          Normally, _Pine_ will ask whether you wish to include the
          original message in your _Reply_. If this feature is set and
          the feature enable-reply-indent-string-editing is _not_ set,
          then the original message will be included in the reply
          automatically, without prompting.
   _ldap-result-to-addrbook-add_
          This is only available if _Pine_ was linked with an LDAP
          library when it was compiled. If both the per-directory-server
          option use-implicitly-from-composer and this feature are set,
          then when an implicit directory lookup is done from the
          composer you will automatically be prompted to add the result
          of the directory lookup to your address book.
   _mark-for-cc_
          This feature affects Pine's MESSAGE INDEX display. By default,
          a '+' is displayed in the first column if the message is
          addressed directly to you. When this feature is set and the
          message is not addressed to you, then a '-' character is
          displayed if the message is instead Cc'd directly to you.
   _news-approximates-new-status_
          This feature causes certain messages to be marked as _New_ in
          the "Folder Index" of newsgroups.
          When opening a newsgroup, _Pine_ will consult your _newsrc_
          file and determine the last message you have previously
          disposed of via the _D_ key. If this feature is set, any
          subsequent messages will be shown in the Index with an _N_, and
          the first of these messages will be highlighted. Although this
          is only an approximation of true _New_ or _Unseen_ status, it
          provides a useful cue to distinguish more-or-less recent
          messages from those you have seen previously, but are not yet
          ready to mark deleted.
          Background: your _newsrc_ file (used to store message status
          information for newsgroups) is only capable of storing a single
          flag, and _Pine_ uses this to record whether or not you are
          "done with" a message, as indicated by marking the message as
          _Deleted_. Unfortunately, this means that _Pine_ has no way to
          record exactly which messages you have previously seen, so it
          normally does not show the _N_ status flag for any messages in
          a newsgroup. This feature enables a starting _approximation_ of
          seen/unseen status that may be useful.
   _news-deletes-across-groups_
          This feature controls what _Pine_ does when you delete a
          message in a newsgroup that appears in more than one newsgroup.
          Such a message is sometimes termed a "crossposting" in that it
          was posted across several newsgroups.
          _Pine_'s default behavior when you delete such a message is to
          remove only the copy in the current newsgroup from view when
          you use the "Exclude" command or the next time you visit the
          newsgroup.
          Enabling this feature causes _Pine_ to remove every occurrence
          of the message from all newsgroups it appears in and to which
          you are subscribed.
          NOTE: As currently implemented, enabling this feature may
          increase the time it takes the Expunge command and newsgroup
          closing to complete.
   _news-offers-catchup-on-close_
          This feature controls what _Pine_ does as it closes a
          newsgroup. When set, _Pine_ will offer to delete all messages
          from the newsgroup as you are quitting _Pine_ or opening a new
          folder.
          This feature is useful if you typically read all the
          interesting messages in a newsgroup each time you open it. This
          feature saves you from having to delete each message in a
          newsgroup as you read it or from selecting all the messages and
          doing an aggregate delete before you move on to the next folder
          or newsgroup.
   _news-post-without-validation_
          This feature controls whether the NNTP server is queried as
          newsgroups are entered for posting. Validation over slow links
          (e.g. dialup using SLIP or PPP) can cause delays. Set this
          feature to eliminate such delays.
   _news-read-in-newsrc-order_
          This feature controls the order that newsgroups will be
          presented. If set, they will be presented in the same order as
          they occur in your _newsrc_ file. If not set, the newsgroups
          will be presented in alphabetical order.
   _pass-control-characters-as-is_
          If set, all characters in a message will be sent to the screen.
          Normally, control characters are automatically suppressed in
          order to avoid inadvertently changing terminal setup
          parameters.
   _prefer-plain-text_
          A message being viewed may contain alternate versions of the
          same content. Those alternate versions are ordered by the
          sending software such that the first alternative is the least
          preferred and the last alternative is the most preferred. Pine
          will normally display the most-preferred version that it knows
          how to display. This is most often encountered where the two
          alternate versions are a plain text version and an HTML
          version, with the HTML version listed last as the most
          preferred.
          If this option is set, then any plain text version will be
          preferred to all other versions.
   _preserve-start-stop-characters_
          This feature controls how special control key characters,
          typically _^S_ and _^Q_, are interpreted when input to _Pine_.
          These characters are known as the "start" and "stop" characters
          and are sometimes used in communications paths to control data
          flow between devices that operate at different speeds.
          By default, _Pine_ turns the system's handling of these special
          characters off except during printing. However, if you see
          _Pine_ reporting input errors such as:
          
     [ Command "^Q" not defined for this screen. ]
          and, at the same time, see your display become garbled, then it
          is likely that setting this option will solve the problem. Be
          aware, though, that enabling this feature will also cause _Pine_
          to ostensibly "hang" whenever the _Ctrl-S_ key combination is
          entered as the system is now interpreting such input as a "stop
          output" command. To "start output" again, simply type _Ctrl-Q_.
   _print-formfeed-between-messages_
          Setting this feature causes a formfeed to be printed between
          messages when printing multiple messages with the _Apply Print_
          command.
   _print-includes-from-line_
          If this feature is set, then the Unix mail style From line is
          included at the start of each message that is printed. This
          line looks something like the following, with the address
          replaced by the address from the From line of the message being
          printed:
          
     From user@domain.somewhere.com Mon May 13 14:11:06 1996
   _print-index-enabled_
          This feature controls the behavior of the _Print_ command when
          in the "Folder Index" screen. If set, the _Print_ command will
          give you a prompt asking if you wish to print the message
          index, or the currently highlighted message. If not set, the
          message will be printed.
   _print-offers-custom-cmd-prompt_
          When this feature is set, the _Print_ command will have an
          additional subcommand called _C CustomPrint_. If selected, you
          will have the opportunity to enter any system print command,
          instead of being restricted to using those that have been
          previously configured in the _Setup/Printer_ screen.
   _quell-berkeley-format-timezone_
          POSIX mandates a timezone in UNIX mailbox format folder
          delimiters (the line which begins with From ). Some versions of
          Berkeley mail have trouble with this, and don't recognize the
          line as a message delimiter. If this feature is set, the
          timezone will be left off the delimiter line.
   _quell-content-id_
          This feature changes the behavior of _Pine_ when sending
          messages. It is intended to work around a bug in Microsoft's
          Outlook XP mail user agent. As of this writing, Microsoft has
          acknowledged the bug but has not added it to the Knowledge
          Base. We have been told that there will be a post-SP1 hotfix
          for Outlook XP. This particular bug has bug fix number
          OfficeQFE:4781. The nature of the bug is that messages with
          attachments which contain a Content-ID header (which standard
          _Pine_ attachments do) do not show the attachment indicator (a
          paperclip) when viewed with Outlook XP. So the user has no
          indication that the message contains an attachment.
          If this feature is set then _Pine_ will remove most Content-ID
          headers before sending a message. If an attachment is of type
          MESSAGE, then the existing Content-ID headers inside the
          message will be left intact. This would only happen with _Pine_
          if a message was forwarded as an attachment or if a message
          with a message attached was forwarded. Similarly if an
          attachment of type MULTIPART/ALTERNATIVE is forwarded, the
          Content-ID headers of the alternative parts will not be
          removed.
          Because the Content-ID header is a standard part of MIME it is
          possible that setting this feature will break something. For
          example, if an attachment has a Content-ID header which is
          necessary for the correct functioning of that attachment, it is
          possible that _Pine_ may remove that header when the attachment
          is forwarded. However, it seems fairly safe at this time.
   _quell-dead-letter-on-cancel_
          This feature affects _Pine_'s behavior when you cancel a
          message being composed. _Pine_'s usual behavior is to write the
          canceled message to a file named dead.letter in your home
          directory (under UNIX; DEADLETR under WINDOWS/DOS) overwriting
          any previous message. Under some conditions (some routine),
          this can introduce a noticeable delay.
          Setting this feature will cause _Pine_ NOT to write canceled
          compositions into the file called dead.letter.
   _quell-empty-directories_
          This feature causes _Pine_ to remove from the display any
          directories that do not contain at least one file or directory.
          This can be useful to prevent overly cluttered folder lists
          when a collection is stored on a server that treats all names
          as both a folder and a directory.
          Note, enabling this feature can cause surprising behavior! For
          example, you can still use Add to create a directory, but
          unless you immediately enter that directory and create a
          folder, that newly created directory may not be displayed next
          time you enter the folder list.
   _quell-extra-post-prompt_
          This feature causes _Pine_ to skip the extra question about
          posting a message which may go to thousands of readers when you
          are about to post to a newsgroup.
   _quell-folder-internal-msg_
          This feature determines whether or not _Pine_ will create
          "pseudo messages" in folders that are in standard Unix or MMDF
          format.
          _Pine_ will normally create these pseudo messages when they are
          not already present in a standard Unix or MMDF folder. Their
          purpose is to record certain mailbox state data needed for
          correct IMAP and POP server operation, and also for _Pine_ to
          be able to mark messages as Answered when the Reply has been
          postponed.
          Sites which do not use IMAP/POP for remote mail access, and
          which need to support mail tools that are adversely affected by
          the presence of the pseudo-messages (e.g. some mail
          notification tools) may enable this feature to tell _Pine_ not
          to create them. Note that _Pine_'s "Answered" flag capability
          will be adversely affected if this is done.
          Note too that, even if this feature is enabled, _Pine_ will not
          remove pseudo-messages when it encounters them (e.g. those
          created by UW's imapd or ipopd servers.) This feature has no
          effect on folders that are not in standard Unix or MMDF format,
          as pseudo-messages are not needed in the other formats to
          record mailbox state information.
   _quell-imap-envelope-update_
          In the MESSAGE INDEX screen, if the open folder is being
          accessed using IMAP, _Pine_ normally tries to paint the index
          lines on the screen as soon as the information arrives from the
          IMAP server. This means that the index information makes it
          onto the screen more quickly than it otherwise would. This
          sometimes results in behavior that bothers some users. For
          example, when paging to a new page of the index, it may be
          possible for the lines to be painted on the screen in a random
          order, rather than from top to bottom.
          Setting this feature causes _Pine_ to wait for all of the
          information to be gathered before it paints the index screen.
          Once it collects all of the information, the screen will be
          painted quickly from top to bottom.
   _quell-lock-failure-warnings_
          This feature affects _Pine_'s behavior when it encounters a
          problem acquiring a mail folder lock. Typically, a secondary
          file associated with the mail folder being opened is created as
          part of the locking process. On some systems, such file
          creation has been administratively precluded by the system
          configuration.
          _Pine_ issues a warning when such failures occur, which can
          become bothersome if the system is configured to disallow such
          actions. Setting this feature causes _Pine_ to remain silent
          when this part of lock creation fails.
          WARNING: systems that have been configured in a way that
          precludes locking introduce some risk of mail folder corruption
          when more than one program attempts to modify the mail folder.
          This is most likely to occur to one's _INBOX_ or other
          "Incoming Message Folder".
   _quell-news-envelope-update_
          In the MESSAGE INDEX screen, if the open folder is being
          accessed using NNTP (News), _Pine_ normally tries to paint the
          index lines on the screen as soon as the information arrives
          from the NNTP server. This means that the index information
          makes it onto the screen more quickly than it otherwise would.
          This sometimes results in behavior that bothers some users. For
          example, when paging to a new page of the index, it may be
          possible for the lines to be painted on the screen in a random
          order, rather than from top to bottom.
          Setting this feature causes _Pine_ to wait for all of the
          information to be gathered before it paints the index screen.
          Once it collects all of the information, the screen will be
          painted quickly from top to bottom.
   _quell-partial-fetching_
          Partial fetching is a feature of the IMAP protocol. By default,
          _Pine_ will use partial fetching when copying the contents of a
          message or attachment from the IMAP server to _Pine_. This
          means that the fetch will be done in many small chunks instead
          of one big chunk. The main benefit of this approach is that the
          fetch becomes interruptible. That is, the user can type _^C_ to
          stop the fetch early. In some cases partial fetching may cause
          a performance problem so that the fetching of data takes
          significantly longer when partial fetching is used. Turning on
          this feature will turn off partial fetching.
   _quell-ssl-largeblocks_
          This feature (_PC-Pine_ only) changes the behavior of fetching
          messages and attachments so that the message data is fetched in
          chunks no larger than 12K bytes. This works around a bug in
          Microsoft's SSL/TLS support. Some versions of Microsoft SSL are
          not able to read full-sized (16K) SSL/TLS packets. Some servers
          will send such packets and this will cause _PC-Pine_ to crash
          with the error
          
              incomplete SecBuffer exceeds maximum buffer size
          Microsoft is aware of the problem and has developed a hotfix
          for it, but as of this writing the hotfix has not yet been
          added to the Knowledge Base.
   _quell-status-message-beeping_
          If set status messages will never emit a beep.
   _quell-user-lookup-in-passwd-file_
          This feature controls an aspect of _Pine_'s Composer, and if
          needed, will usually be set by the system manager in _Pine_'s
          system-wide configuration file. Specifically, if this feature
          is set, _Pine_ will not attempt to look in the system password
          file to find a Full Name for the entered address.
          Normally, names you enter into address fields (e.g. To: or Cc:)
          are checked against your address book(s) to see if they match
          an address book nickname. Failing that, (in Unix _Pine_) the
          name is then checked against the Unix password file. If the
          entered name matches a username in the system password file,
          _Pine_ extracts the corresponding Full Name information for
          that individual, and adds that to the address being entered.
          However, password file matching can have surprising (incorrect)
          results if other users of the system do not receive mail at the
          domain you are using. That is, if either the user-domain or
          use-only-domain-name option is set such that the administrative
          domain of other users on the system isn't accurately reflected,
          _Pine_ should be told that a password file match is
          coincidental, and Full Name info will be incorrect. For
          example, a personal name from the password file could get
          falsely paired with the entered name as it is turned into an
          address in the configured domain.
          If you are seeing this behavior, enabling this feature will
          prevent Unix _Pine_ from looking up names in the password file
          to find the Full Name for incomplete addresses you enter.
   _quit-without-confirm_
          This feature controls whether or not _Pine_ will ask for
          confirmation when a _Quit_ command is received.
   _reply-always-uses-reply-to_
          If set, _Pine_ will not prompt when a message being replied to
          contains a _Reply-To:_ header value, but will simply use its
          value (as opposed to using the _From:_ field's value).
   _quell-berkeley-format-timezone_
          Versions of _Pine_ prior to 4.20 would write Berkeley format
          message delimiters with a trailing timezone offset. On rare
          occurances this can cause an incompatibility with other mail
          access utilities. Enabling this hidden feature will cause _Pine_
          to refrain from writing this timezone to the "From " delimiter.
   _save-aggregates-copy-sequence_
          This feature will optimize an aggregate copy operation, if
          possible, by issuing a single IMAP _COPY_ command with a list
          of the messages to be copied. This may save network traffic
          when the source and destination folders are on the same IMAP
          server. _However, many IMAP servers (including the UW IMAP
          server) do not preserve the order of messages when this
          optimization is applied._ If this feature is not enabled, or if
          the folders are on different IMAP servers, or the folders are
          local and in different formats, _Pine_ will copy each message
          individually.
   _save-will-advance_
          If set, _Save_ will (in addition to copying the current message
          to the designated folder) also advance to the next message.
   _save-will-not-delete_
          If set, _Save_ will not mark the message Deleted (its default
          behavior) after it has been copied to the designated folder.
   _save-will-quote-leading-froms_
          This feature controls an aspect of the _Save_ command (and also
          the way outgoing messages are saved to an FCC folder). If set,
          _Pine_ will add a leading > character in front of message lines
          beginning with "From" when they are saved to another folder,
          including lines syntactically distinguishable from the type of
          message separator line commonly used on Unix systems.
          The default behavior is that a > will be prepended only to
          lines beginning with "From " that might otherwise be confused
          with a message separator line on Unix systems. If _Pine_ is the
          only mail program you use, this default is reasonable. If
          another program you use has trouble displaying a message with
          an unquoted From saved by _Pine_, you should enable this
          feature. This feature only applies to the common Unix mailbox
          format that uses message separator lines beginning with "From
          ". If _Pine_ has been configured to use a different mailbox
          format (possibly incompatible with other mail programs), then
          this issue does not arise, and the feature is irrelevant.
   _select-without-confirm_
          This feature controls an aspect of _Pine_'s _Save_, _Export_,
          and _Goto_ commands. These commands all take text input to
          specify the name of the folder or file to be used, but allow
          you to press _^T_ for a list of possible names. If set, the
          selected name will be used immediately, without further
          opportunity to confirm or edit the name.
   _separate-folder-and-directory-display_
          This feature affects folder collections wherein a folder and
          directory can have the same name. By default, _Pine_ displays
          them only once, denoting that it is both a folder and directory
          by appending the folder name with the hierarchy character
          enclosed in square brackets.
          Enabling this feature will cause _Pine_ to display such names
          separately marking the name representing a directory with a
          trailing hierarchy delimiter (typically the slash, "/",
          character).
          The feature also alters the command set slightly. By default,
          the right-arrow descends into the directory, while hitting the
          Return key will cause the folder by that name to be opened.
          With this feature set, the Return key will open the hilited
          folder, or enter the hilited directory.
   _show-cursor_
          If set, the system cursor will move to convenient locations in
          the displays. For example, to the beginning of the status field
          of the highlighted index line, or to the highlighted word after
          a successful _WhereIs_ command. It is intended to draw your
          attention to the _interesting_ spot on the screen.
   _show-plain-text-internally_
          This feature modifies the method Pine uses to display
          Text/Plain MIME attachments from the Attachment Index screen.
          Normally, the "View" command searches for any externally
          defined (usually via the Mailcap file) viewer, and displays the
          selected text within that viewer.
          Enabling this feature causes Pine to ignore any external viewer
          settings and always display text with Pine's internal viewer.
   _show-selected-in-boldface_
          This feature controls an aspect of _Pine_'s aggregate operation
          commands; in particular, the _Select_ and _WhereIs_ commands.
          _Select_ and _WhereIs_ (with the _^X_ subcommand) will search
          the current folder for messages meeting a specified criteria,
          and _tag_ the resulting messages with an _X_ in the first
          column of the applicable lines in the "Folder Index". If this
          feature is set, instead of using the _X_ to denote a selected
          message, _Pine_ will attempt to display those index lines in
          boldface. Whether this is preferable to the _X_ will depend on
          personal taste and the type of terminal being used.
   _signature-at-bottom_
          If this feature is set, and a message being _Repl_ied to is
          being included in the reply, then the contents of the signature
          file (if any) will be inserted after the included message. This
          feature does not affect the results of a _Forward_ command.
   _single-column-folder-list_
          If set, the "Folder List" screen will list one folder per line
          instead of several per line.
   _strip-from-sigdashes-on-reply_
          This feature doesn't do anything if the feature
          enable-sigdashes is turned on. However, if the
          _enable-sigdashes_ feature is not turned on, then turning on
          this feature enables support for the convention of not
          including text beyond the sigdashes line when Replying or
          Following up to a message and including the text of that
          message.
          In other words, this is a way to turn on the signature
          stripping behavior without also turning on the dashes-adding
          behavior.
   _tab-visits-next-new-message-only_
          This feature affects _Pine_'s behavior when using the _TAB_ key
          to move from one message to the next. _Pine_'s usual behavior
          is to select the next _Unread_ message or message flagged as
          _Important_.
          Setting this feature causes _Pine_ to skip the messages flagged
          as _Important_, and select _Unread_ messages exclusively. Tab
          behavior when there are no new messages left to select remains
          unchanged.
   _termdef-takes-precedence_
          In some versions of _Pine_ before 4.00 there was a compile-time
          macro called _TERMCAP_WINS_ which could be set to cause the
          _termcap_ or _terminfo_ definitions to be used instead of the
          built in definitions. Beginning with 4.00 this hidden runtime
          feature can be turned on to accomplish the same thing.
   _try-alternative-authentication-driver-first_
          This feature affects how _Pine_ connects to IMAP servers. It's
          utility has largely been overtaken by events, but it may still
          be useful in some circumstances. If you only connect to modern
          IMAP servers that support "TLS" you can ignore this feature.
          Details:
          By default, _Pine_ will attempt to connect to an IMAP server on
          the normal IMAP service port (143), and if the server offers
          "Transport Layer Security" (TLS) and _Pine_ has been compiled
          with encryption capability, then a secure (encrypted) session
          will be negotiated.
          With this feature enabled, before connecting on the normal IMAP
          port, _Pine_ will first attempt to connect to an alternate IMAP
          service port (993) used specifically for encrypted IMAP
          sessions via the Secure Sockets Layer (SSL) method. If the SSL
          attempt fails, _Pine_ will then try the default behavior
          described in the previous paragraph.
          TLS negotiation on the normal port is preferred, and supersedes
          the use of SSL on port 993, but older servers may not provide
          TLS support. This feature may be convenient when accessing IMAP
          servers that do not support TLS, but do support SSL connections
          on port 993. However, it is important to understand that with
          this feature enabled, _Pine_ will _attempt_ to make a secure
          connection if that is possible, but it will proceed to make an
          insecure connection if that is the only option offered by the
          server, or if the _Pine_ in question has been built without
          encryption capability.
          Note that this feature specifies a per-user (or system-wide)
          default behavior, but host/folder specification flags may be
          used to control the behavior of any specific connection. This
          feature interacts with some of the possible host/folder path
          specification flags as follows:
          The /tls host flag, for example,
          
                           {foo.bar.com/tls}INBOX
          will over-ride this feature for the specified host by bypassing
          the SSL connection attempt. Moreover, with /tls specified, the
          connection attempt will fail if the service on port 143 does
          not offer TLS support.
          The /ssl host flag, for example,
          
                           {foo.bar.com/ssl}INBOX
          will insist on an SSL connection for the specified host, and
          will fail if the SSL service on port 993 is not available.
          _Pine_ will not subsequently retry a connection on port 143 if
          /ssl is specified.
   _use-current-dir_
          This feature controls an aspect of several commands. If set,
          your "current working directory" will be used instead of your
          home directory for all of the following operations:
          + _Export_ in the "Folder Index" and "Message Text" screens
          + Attachment _Save_ in the "Message Text" and "Attachment Text"
            screens
          + _^R_ file inclusion in the Composer
          + _^J_ file attachment in the Composer
   _use-function-keys_
          This feature specifies that _Pine_ will respond to function
          keys instead of the normal single-letter commands. In this
          mode, the key menus at the bottom of each screen will show
          function key designations instead of the normal mnemonic key.
   _use-sender-not-x-sender_
          Normally _Pine_ on Unix adds a header line labeled
          _X-X-Sender_, if the sender is different from the _From:_ line.
          The standard specifies that this header line should be labeled
          _Sender_, not _X-X-Sender_. Setting this feature causes _Sender_
          to be used instead of _X-X-Sender_. The standard also states
          that the data associated with this header field should not be
          used as a Reply address. Unfortunately, certain implementations
          of mail list management servers will use the Sender address for
          such purposes. These implementations often even recognize the
          _X-Sender_ fields as being equivalent to the _Sender_ field,
          and use it if present. This is why Pine defaults to
          _X-X-Sender_.
          Note, _PC-Pine_ always adds either an _X-X-Sender_ line if
          there is an open, remote mailbox, or an _X-Warning:
          UNAuthenticated User_ otherwise
   _use-subshell-for-suspend_
          This feature affects _Pine_'s behavior when process suspension
          is enabled and then activated via the _^Z_ key. _Pine_
          suspension allows one to temporarily interact with the
          operating system command "shell" without quitting _Pine_, and
          then subsequently resume the still-active _Pine_ session.
          When the _enable-suspend_ feature is set and subsequently the
          _^Z_ key is pressed, _Pine_ will normally suspend itself and
          return temporary control to _Pine_'s parent shell process.
          However, if this feature is set, _Pine_ will instead create an
          inferior subshell process. This is useful when the parent
          process is not intended to be used interactively. Examples
          include invoking _Pine_ via the -e argument of the Unix _xterm_
          program, or via a menu system.
          Note that one typically resumes a suspended _Pine_ by entering
          the Unix _fg_ command, but if this feature is set, it will be
          necessary to enter the _exit_ command instead.
   _vertical-folder-list_
          This feature controls an aspect of Pine's FOLDER LIST screen.
          If set, the folders will be listed alphabetically down the
          columns rather than across the columns as is the default.
          
Hidden Config Variables and Features

   There are several configuration variables and features which are
   normally hidden from the user. That is, they don't appear on any of
   the configuration screens. Some of these are suppressed because they
   are intended to be used by system administrators, and in fact may only
   be set in system-wide configuration files. Others are available to
   users but are thought to be of such little value to most users that
   their presence on the Config screens would cause more confusion than
   help. Those features may only be set by hand editing the configuration
   file. You may set the feature expose-hidden-config to cause most of
   these hidden variables and features to show up in the Setup/Config
   screen.
   
  Hidden Variables Not Settable by Users
  
   These variables are settable only in system-wide configuration files.
     * bugs-additional-data
     * bugs-address
     * bugs-fullname
     * forced-abook-entry
     * kblock-passwd-count
     * local-address
     * local-fullname
     * mail-directory
     * standard-printer
     * suggest-address
     * suggest-fullname
       
  Hidden Variables Which are Settable by Users
  
   These variables are not shown to users but are settable by means of
   hand editing the personal configuration file. This first group is
   usually maintained by _Pine_ and there will usually be no reason to
   edit them by hand.
     * last-version-used
     * patterns-filters
     * patterns-indexcolors
     * patterns-roles
     * patterns-scores
     * remote-abook-metafile
       
   This group is usually correct but may be changed by system managers or
   users in special cases.
     * disable-these-authenticators
     * disable-these-drivers
     * last-time-prune-questioned
     * new-version-threshold
     * remote-abook-history
     * remote-abook-validity
     * rsh-command
     * rsh-open-timeout
     * rsh-path
     * save-aggregates-copy-sequence
     * sendmail-path
     * ssh-command
     * ssh-open-timeout
     * ssh-path
     * tcp-open-timeout
     * tcp-query-timeout
     * tcp-read-warning-timeout
     * tcp-write-warning-timeout
     * use-function-keys
       
   System managers are usually interested in setting these in the
   system-wide configuration files, though users may set them if they
   wish.
     * operating-dir
     * user-input-timeout
       
  Hidden Features Which are Settable by Users
  
   These are _features_ (as opposed to variables) which users or system
   administrators may set. Some of them only make sense for
   administrators. To turn these on manually, the configuration file
   should be edited and the feature added to the _feature-list_ variable.
   You may set the feature expose-hidden-config to cause these hidden
   features to show up in the Setup/Config screen. They will be at the
   bottom of the screen.
     * allow-changing-from
     * disable-busy-alarm
     * disable-config-cmd
     * disable-keyboard-lock-cmd
     * disable-password-caching
     * disable-password-cmd
     * disable-pipes-in-sigs
     * disable-pipes-in-templates
     * disable-roles-setup-cmd
     * disable-roles-sig-edit
     * disable-roles-template-edit
     * disable-shared-namespaces
     * disable-signature-edit-cmd
     * enable-mailcap-param-substitution
     * quell-berkeley-format-timezone
     * quell-imap-envelope-update
     * quell-news-envelope-update
     * quell-partial-fetching
     * save-aggregates-copy-sequence
     * termdef-takes-precedence
       
Retired Variables and Features

   Variables and features that are no longer used by the current _Pine_
   version. When an obsolete variable is encountered, its value is
   applied to any new corresponding setting. The replaced values include:
   
   _compose-mime_
   _elm-style-save_
          Replaced by _saved-msg-name-rule_
   _expanded-view-of-addressbooks_
          This one was retired in 4.00 but made a comeback in 4.10. This
          is now an active feature.
   _expanded-view-of-folders_
          This one was retired in 4.00 but made a comeback in 4.10. This
          is now an active feature.
   _feature-level_
          Replaced by _feature-list._
   _header-in-reply_
          Replaced by _include-header-in-reply_ in the _feature-list._
   _old-style-reply_
          Replaced by _signature-at-bottom_ in the _feature-list._
   _use-old-unix-format-write_
          No replacement.
   _patterns_
          Replaced by four separate patterns variables: _patterns-roles_,
          _patterns-filters_, _patterns-scores_, and
          _patterns-indexcolors_.
   _save-by-sender_
          Replaced by _saved-msg-name-rule._
   _show-all-characters_
          No replacement, it always works this way now.
          
Tokens for Index and Replying

   This set of special tokens may be used in the index-format option, in
   the reply-leadin option, in signature files, and in template files
   used in roles.
   
   The tokens are used as they appear below for the _Index-Format_
   option, but they must be surrounded by underscores for the
   _Reply-Leadin_ option, and in signature and template files.
   
  _Tokens Available for all Cases_
  
   DATE
          This token represents the date on which the message was sent,
          according to the "Date" header field. It has the format MMM DD.
          For example, "Oct 23".
          
   SMARTDATE
          This token represents the date on which the message was sent,
          according to the "Date" header field. It is "Today" if the
          message was sent today, "Yesterday" for yesterday, "Wednesday"
          if it was last Wednesday, and so on. If the message is from
          more than six months ago it includes the year, as well. There
          is no adjustment made for different time zones, so you'll get
          the day the message was sent according to the time zone the
          sender was in.
          
   SMARTTIME
          This token represents the most relevant elements of the date on
          which the message was sent (according to the "Date" header
          field), in a compact form. If the message was sent today, only
          the time is used (e.g. "9:22am", "10:07pm"); if it was sent
          during the past week, the day of the week and the hour are used
          (e.g. "Wed09am", "Thu10pm"); other dates are given as date,
          month, and year (e.g. "23Aug00", "9Apr98"). There is no
          adjustment made for different time zones, so you'll get the
          day/time the message was sent according to the time zone the
          sender was in.
          
   SMARTDATETIME
          This is a combination of SMARTDATE and SMARTTIME. It is
          SMARTDATE unless the SMARTDATE value is "Today", in which case
          it is SMARTTIME.
          
   LONGDATE
          This token represents the date on which the message was sent,
          according to the "Date" header field. It has the format MMM DD,
          YYYY. For example, "Oct 23, 1998".
          
   DATEISO
          This token represents the date on which the message was sent,
          according to the "Date" header field. It has the format
          YYYY-MM-DD. For example, "1998-10-23".
          
   SHORTDATEISO
          This token represents the date on which the message was sent,
          according to the "Date" header field. It has the format
          YY-MM-DD. For example, "98-10-23".
          
   SHORTDATE1
          This token represents the date on which the message was sent,
          according to the "Date" header field. It has the format
          MM/DD/YY. For example, "10/23/98".
          
   SHORTDATE2
          This token represents the date on which the message was sent,
          according to the "Date" header field. It has the format
          DD/MM/YY. For example, "23/10/98".
          
   SHORTDATE3
          This token represents the date on which the message was sent,
          according to the "Date" header field. It has the format
          DD.MM.YY. For example, "23.10.98".
          
   SHORTDATE4
          This token represents the date on which the message was sent,
          according to the "Date" header field. It has the format
          YY.MM.DD. For example, "98.10.23".
          
   TIME24
          This token represents the time at which the message was sent,
          according to the "Date" header field. There is no adjustment
          made for different time zones, so you'll get the time the
          message was sent according to the time zone the sender was in.
          It has the format HH:MM. For example, "17:28".
          
   TIME12
          This token represents the time at which the message was sent,
          according to the "Date" header field. This time is for a 12
          hour clock. It has the format HH:MMpm. For example, "5:28pm" or
          "11:13am".
          
   TIMEZONE
          This token represents the numeric timezone from the "Date"
          header field. It has the format [+-]HHMM. For example, "-0800".
          
   SUBJECT
          This token represents the Subject the sender gave the message.
          
   FROM
          This token represents the personal name (or email address if
          the name is unavailable) of the person specified in the
          message's "From:" header field.
          
   SENDER
          This token represents the personal name (or email address) of
          the person listed in the message's "Sender:" header field.
          
   TO
          This token represents the personal names (or email addresses if
          the names are unavailable) of the persons specified in the
          message's "To:" header field.
          
   NEWSANDTO
          This token represents the newsgroups from the message's
          "Newsgroups:" header field _and_ the personal names (or email
          addresses if the names are unavailable) of the persons
          specified in the message's "To:" header field.
          
   TOANDNEWS
          Same as "NEWSANDTO" except in the opposite order.
          
   NEWS
          This token represents the newsgroups from the message's
          "Newsgroups:" header field.
          
   CC
          This token represents the personal names (or email addresses if
          the names are unavailable) of the persons specified in the
          message's "Cc:" header field.
          
   RECIPS
          This token represents the personal names (or email addresses if
          the names are unavailable) of the persons specified in both the
          message's "To:" header field and the message's "Cc:" header
          field.
          
   NEWSANDRECIPS
          This token represents the newsgroups from the message's
          "Newsgroups:" header field _and_ the personal names (or email
          addresses if the names are unavailable) of the persons
          specified in the message's "To:" and "Cc:" header fields.
          
   RECIPSANDNEWS
          Same as "NEWSANDRECIPS" except in the opposite order.
          
   MONTHABBREV
          This token represents the month the message was sent, according
          to the "Date" header field. For example, "Oct".
          
  _Tokens Available Only for Index-Format_
  
   MSGNO
          This token represents the message's current position in the
          folder which, of course, may change as the folder is sorted or
          new mail arrives.
          
   STATUS
          This token represents a three character wide field displaying
          various aspects of the message's state. The first character is
          either blank, a '*' for message marked Important, or a '+'
          indicating a message addressed directly to you (as opposed to
          your having received it via a mailing list, for example). When
          the feature mark-for-cc is set, if the first character would
          have been blank then it will instead be a '-' if the message is
          cc'd to you. The second character is typically blank, though
          the arrow cursor may occupy it if the assume-slow-link feature
          is set, or you actually are on a slow link. The third character
          is either the letter 'D' if the message is deleted, 'A' if it
          is answered (but not deleted), or 'N' if it is new (but not
          deleted or answered), or blank if it is neither deleted,
          answered nor new.
          
   FULLSTATUS
          This token represents a less abbreviated alternative to the
          "STATUS" field. It is six characters wide. The first character
          is '+', '-', or blank, the second blank, the third either '*'
          or blank, the fourth 'N' or blank, the fifth 'A' or blank, and
          the sixth character is either 'D' or blank.
          
   IMAPSTATUS
          This token represents an even less abbreviated alternative to
          the "FULLSTATUS" field. It differs in only the fourth character
          which is either an 'N' if the message is new to this folder
          since the last time it was opened _and_ it has not been viewed,
          an 'R' if the message is new to the folder and has been viewed
          (Recent), a 'U' if the message is not new to the folder since
          it was last opened _but_ has not been viewed (Unseen), or a
          blank if the message has been in the folder since it was last
          opened and has been viewed.
          
   SIZE
          This token represents the total size, in bytes, of the message.
          If a "K" (Kilobyte) follows the number, the size is
          approximately 1,000 times that many bytes (rounded to the
          nearest 1,000). If an "M" (Megabyte) follows the number, the
          size is approximately 1,000,000 times that many bytes. Commas
          are not used in this field. This field is seven characters
          wide, including the enclosing parentheses. Sizes are rounded
          when "K" or "M" is present. The progression of sizes used looks
          like:
          
          0 1 ... 9999 10K ... 999K 1.0M ... 99.9M 100M ... 2000M
                                      
   SIZECOMMA
          This token represents the total size, in bytes, of the message.
          If a "K" (Kilobyte) follows the number, the size is
          approximately 1,000 times that many bytes (rounded to the
          nearest 1,000). If an "M" (Megabyte) follows the number, the
          size is approximately 1,000,000 times that many bytes. Commas
          are used if the number shown is 1,000 or greater. The SIZECOMMA
          field is one character wider than the SIZE field. Sizes are
          rounded when "K" or "M" is present. The progression of sizes
          used looks like:
          
     0 1 ... 99,999 100K ... 9,999K 10.0M ... 999.9M 1,000M ... 2,000M
                                      
   KSIZE
          This token represents the total size of the message, expressed
          in kilobytes or megabytes, as most appropriate. These are 1,024
          byte kilobytes and 1,024 x 1,024 byte megabytes. The
          progression of sizes used looks like:
          
               0K 1K ... 1023K 1.0M ... 99.9M 100M ... 2047M
                                      
   SIZENARROW
          This token represents the total size, in bytes, of the message.
          If a "K" (Kilobyte) follows the number, the size is
          approximately 1,000 times that many bytes. If an "M" (Megabyte)
          follows the number, the size is approximately 1,000,000 times
          that many bytes. If a "G" (Gigabyte) follows the number, the
          size is approximately 1,000,000,000 times that many bytes. This
          field uses only five characters of screen width, including the
          enclosing parentheses. The progression of sizes used looks
          like:
          
      0 1 ... 999 1K ... 99K .1M ... .9M 1M ... 99M .1G ... .9G 1G 2G
                                      
   DESCRIPSIZE
          This token is intended to represent a more useful description
          of the message than just its size, but it isn't very useful at
          this point. The plus sign in this view means there are
          attachments. Note that including this token in the
          "Index-Format" could slow down the display a little while _Pine_
          collects the necessary information.
          
   ATT
          This is a one column wide field which represents the number of
          attachments a message has. It will be blank if there are no
          attachments, a single digit for one to nine attachments, or an
          asterisk for more than nine. Note that including this token in
          the "Index-Format" could slow down the display a little while
          _Pine_ collects the necessary information.
          
   FROMORTO
          This token represents _either_ the personal name (or email
          address) of the person listed in the message's "From:" header
          field, _or_, if that address is yours or one of your alternate
          addresses, the first person specified in the message's "To:"
          header field with the prefix "To: " prepended. If the from
          address is yours and there is also no "To" address, _Pine_ will
          use the address on the "Cc" line. If there is no address there,
          either, _Pine_ will look for a newsgroup name from the
          "Newsgroups" header field and put that after the "To: " prefix.
          
   FROMORTONOTNEWS
          This is almost the same as _FROMORTO_. The difference is that
          newsgroups aren't considered. When a message is from you,
          doesn't have a To or Cc, and does have a Newsgroups header;
          this token will be your name instead of the name of the
          newsgroup (like it would be with FROMORTO).
          
   SCORE
          This gives the score of each message. This will be six columns
          wide to accomodate the widest possible score. You will probably
          want to use the index-format fixed-field width feature to limit
          the width of the field to the widest score that you use (e.g.
          SCORE(3) if your scores are always between 0 and 999). If you
          have not defined any score rules the scores will all be zero.
          If any of your score rules contain AllText patterns (a pattern
          that is searched for in the entire message) then including
          SCORE in the index-format may slow down the display of the
          MESSAGE INDEX screen.
          
  _Tokens Available for all but Index-Format_
  
   ADDRESS
          This is similar to the "FROM" token, only it is always the
          email address, never the personal name. For example,
          "mailbox@domain".
          
   MAILBOX
          This is the same as the "ADDRESS" except that the domain part
          of the address is left off. For example, "mailbox".
          
   INIT
          This token represents the initials from the personal name of
          the person specified in the message's "From:" header field. If
          there is no personal name, it is blank.
          
   DAYDATE
          This token represents the date on which the message was sent,
          according to the "Date" header field. It looks like "Sat, 23
          Oct 1998" unless the day of the week is not available, in which
          case it looks like "23 Oct 1998".
          
   DAY
          This token represents the day of the month on which the message
          was sent, according to the "Date" header field. For example,
          "23" or "9".
          
   DAY2DIGIT
          This token represents the day of the month on which the message
          was sent, according to the "Date" header field. For example,
          "23" or "09". It is always 2 digits.
          
   DAYORDINAL
          This token represents the ordinal number which is the day of
          the month on which the message was sent, according to the
          "Date" header field. For example, "23rd" or "9th".
          
   MONTHLONG
          This token represents the month in which the message was sent,
          according to the "Date" header field. For example, "October".
          
   MONTH
          This token represents the month in which the message was sent,
          according to the "Date" header field. For example, "10" or "9".
          
   MONTH2DIGIT
          This token represents the month in which the message was sent,
          according to the "Date" header field. For example, "10" or
          "09". It is always 2 digits.
          
   YEAR
          This token represents the year the message was sent, according
          to the "Date" header field. For example, "1998" or "2001".
          
   YEAR2DIGIT
          This token represents the year the message was sent, according
          to the "Date" header field. For example, "98" or "01". It is
          always 2 digits.
          
   MSGID
          This token represents the message ID of the message.
          
   CURDATE
          This token represents the current date. It has the format MMM
          DD. For example, "Oct 23".
          
   CURDATEISO
          This token represents the current date. It has the format
          YYYY-MM-DD. For example, "1998-10-23".
          
   CURDATEISOS
          This token represents the current date. It has the format
          YY-MM-DD. For example, "98-10-23".
          
   CURTIME24
          This token represents the current time. It has the format
          HH:MM. For example, "17:28".
          
   CURTIME12
          This token represents the current time. This time is for a 12
          hour clock. It has the format HH:MMpm. For example, "5:28pm" or
          "11:13am".
          
  _Token Available Only for Templates and Signatures_
  
   CURSORPOS
          This token is different from the others. When it is replaced it
          is replaced with nothing, but it sets a _Pine_ internal
          variable which tells the composer to start with the cursor
          positioned at the position where this token was. If both the
          template file and the signature file contain a "CURSORPOS"
          token, then the position in the template file is used. If there
          is a template file and neither it nor the signature file
          contains a "CURSORPOS" token, then the cursor is positioned
          after the end of the contents of the template file when the
          composer starts up.
          
Conditional Inclusion of Text for Reply-Leadin, Signatures, and Templates

   Conditional text inclusion may be used with the Reply-Leadin option,
   in signature files, and in template files used in roles. It may _not_
   be used with the _Index-Format_ option.
   
   There is a limited if-else capability for including text. The if-else
   condition is based on whether or not a given token would result in
   replacement text you specify. The syntax of this conditional inclusion
   is
   
           _token_(match_this, if_matched [ , if_not_matched ] )
                                      
   The left parenthesis must follow the underscore immediately, with no
   intervening space. It means the token is expanded and the results of
   that expansion are compared against the "match_this" argument. If
   there is an exact match, then the "if_matched" text is used as the
   replacement text. Otherwise, the "if_not_matched" text is used. One of
   the most useful values for the "match_this" argument is the empty
   string, "". In that case the expansion is compared against the empty
   string.
   
   Here's an example to make it clearer. This text could be included in
   one of your template files:
   
         _NEWS_("", "I'm replying to email","I'm replying to news")
                                      
   If that is included in a template file which you are using while
   replying to a message (because you chose to use the role it was part
   of), and that message has a newsgroup header and a newsgroup in that
   header, then the text
   
                            I'm replying to news
                                      
   will be included in the message you are about to compose. On the other
   hand, if the message you are replying to does not have a newsgroup,
   then the text
   
                           I'm replying to email
                                      
   would be included instead. This would also work in signature files and
   in the "Reply-Leadin" option. If the "match_this", "if_matched", or
   "if_not_matched" arguments contain spaces, parentheses, or commas;
   they have to be quoted with double quotation marks (like in the
   example above). If you want to include a literal quote in the text you
   must escape the quote by preceding it with a backslash character. If
   you want to include a literal backslash character you must escape it
   by preceding it with another backslash.
   
   The comma followed by "if_not_matched" is optional. If there is no
   "if_not_matched" present then no text is included if the not_matched
   case is true. Here's another example:
   
           _NEWS_("", "", "This msg was seen in group: _NEWS_.")
                                      
   Here you can see that tokens may appear in the arguments. The same is
   true for tokens with the conditional parentheses. They may appear in
   arguments, though you do have to be careful to get the quoting and
   escaping of nested double quotes correct. If this was in the signature
   file being used and you were replying to a message sent to
   comp.mail.pine the resulting text would be:
   
                This msg was seen in group: comp.mail.pine.
                                      
   If you were replying to a message which wasn't sent to any newsgroup
   the resulting text would be a single blank line. The reason you'd get
   a blank line is because the end of the line is outside of the
   conditional, so is always included. If you wanted to get rid of that
   blank line you could do so by moving the end of line inside the
   conditional. In other words, it's ok to have multi-line "if_matched"
   or "if_not_matched" arguments. The text just continues until the next
   double quotation, even if it's not on the same line.
   
   Here's one more (contrived) example illustrating a matching argument
   which is not the empty string.
   
        _SMARTDATE_("Today", _SMARTDATE_, "On _DATE_") _FROM_ wrote:
                                      
   If this was the value of your "Reply-Leadin" option and you were
   replying to a message which was sent today, then the value of the
   "Reply-Leadin" would be
   
                        Today Fred Flintstone wrote:
                                      
   But if you were replying to a message sent on Oct. 27 (and that wasn't
   today) you would get
   
                      On Oct 27 Fred Flintstone wrote:
                                      
Per Server Directory Configuration

   This is only available if _Pine_ was linked with an LDAP library when
   it was compiled. If that's the case, there will be a Directory option
   underneath the Setup command on the Main Menu. Each server that is
   defined there has several configuration variables which control the
   behavior when using it.
   _ldap-server_
          This is the name of the host where an LDAP server is running.
          To find out whether your organization has its own LDAP server,
          contact its computing support staff.
   _search-base_
          This is the search base to be used on this server. It functions
          as a filter by restricting your searches in the LDAP server
          database to the specified contents of the specified fields.
          Without it, searches submitted to this directory server may
          fail. It might be something like:
      O = <Your Organization Name>, C = US
          or it might be blank. (Some LDAP servers actually ignore
          anything specified here.)
          If in doubt what parameters you should specify here, contact
          the maintainers of the LDAP server.
   _port_
          This is the TCP port number to be used with this LDAP server.
          If you leave this blank port 389 will be used.
   _nickname_
          This is a nickname to be used in displays. If you don't supply
          a nickname the server name from "ldap-server" will be used
          instead. This option is strictly for your convenience.
   _use-implicitly-from-composer_
          Set this feature to have lookups done to this server implicitly
          from the composer. If an address doesn't look like a
          fully-qualified address, it will be looked up in your address
          books, and if it doesn't match a nickname there, then it will
          be looked up on the LDAP servers which have this feature set.
          Also see the LDAP feature lookup-addrbook-contents and the
          Setup/Config feature ldap-result-to-addrbook-add.
   _lookup-addrbook-contents_
          Normally implicit LDAP lookups from the composer are done only
          for the strings you type in from the composer screen. In other
          words, you type in something in the To or CC field and press
          return, then the string is looked up. First that string is
          looked up in your address books. If a match is found there,
          then the results of that match are looked up again. If you
          place a string in your address book that you want to have
          looked up on the LDAP directory server, you need to turn on
          this feature. If you set this feature for a server, you almost
          always will also want to set the use-implicitly-from-composer
          feature. An example might serve to best illustrate this
          feature.
          If an LDAP lookup of "William Clinton" normally returns an
          entry with an address of pres@whitehouse.gov, then you might
          put an entry in your address book that looks like:
    Nickname     Address
    bill         "William Clinton"
          Now, when you type "bill" into an address field in the composer
          _Pine_ will find the "bill" entry in your address book. It will
          replace "bill" with "William Clinton". It will then search for
          an entry with that nickname in your address book and not find
          one. If this feature is set, _Pine_ will then attempt to lookup
          "William Clinton" on the LDAP server and find the entry with
          address pres@whitehouse.gov.
          A better way to accomplish the same thing is probably to use
          the feature save-search-criteria-not-result.
   _save-search-criteria-not-result_
          Normally when you save the results of an LDAP directory lookup
          to your address book the _results_ of the lookup are saved. If
          this feature is set and the entry being saved was found on this
          directory server, then the search _criteria_ is saved instead
          of the _results_ of the search. When this address book entry is
          used in the future, instead of copying the results from the
          address book the directory lookup will be done again. This
          could be useful if the copied result might become stale because
          the data on the directory server changes (for example, the
          entry's email address changes). You probably don't want to set
          this feature if the server is at all slow or unreliable.
          The way this actually works is that instead of saving the email
          address in your address book, _Pine_ saves enough information
          to look up the same directory entry again. In particular, it
          saves the server name and the distinguished name of the entry.
          It's possible that the server administrators might change the
          format of distinguished names on the server, or that the entry
          might be removed from the server. If _Pine_ notices this, you
          will be warned and a backup copy of the email address will be
          used. You may want to create a new entry in this case, since
          you will get the annoying warning every time you use the old
          entry. You may do that by Saving the entry to a new nickname in
          the same address book. You will be asked whether or not you
          want to use the backup email address.
          A related feature in the Setup/Config screen is
          ldap-result-to-addrbook-add.
   _disable-ad-hoc-space-substitution_
          Spaces in your input are normally handled specially. Each space
          character is replaced by
     * <SPACE>
          in the search query (but not by "* <SPACE> *"). The reason this
          is done is so the input string
     Greg Donald
          (which is converted to "Greg* Donald") will match the names
          "Greg Donald", "Gregory Donald", "Greg F. Donald", and "Gregory
          F Donald"; but it won't match "Greg McDonald". If the
          "Search-Rule" you were using was "begins-with", then it would
          also match the name "Greg Donaldson".
          Turning on this feature will disable this substitution.
   _search-type_
          This affects the way that LDAP searches are done. In
          particular, this tells the server where to look for the string
          to be matched. If set to "name" then the string that is being
          searched for will be compared with the string in the "Name"
          field on the server (technically, it is the "commonname" field
          on the server). "Surname" means we're looking for a match in
          the "Surname" field on the server (actually the "sn" field).
          "Givenname" really is "givenname" and "email" is the electronic
          mail address (this is actually the field called "mail" or
          "electronicmail" on the server). The other three types are
          combinations of the types listed so far. "Name-or-email" means
          the string should appear in either the "name" field OR the
          "email" field. Likewise, "surname-or-givenname" means "surname"
          OR "givenname" and "sur-or-given-or-name-or-email" means the
          obvious thing.
          This search _type_ is combined with the search rule to form the
          actual search query.
          The usual default value for this option is
          "sur-or-given-or-name-or-email". This type of search may be
          slow on some servers. Try "name-or-email", which is often
          faster, or just "name" if the performance seems to be a
          problem.
          Some servers have been configured with different attribute
          names for these four fields. In other words, instead of using
          the attribute name "mail" for the email address field, the
          server might be configured to use something else, for example,
          "rfc822mail" or "internetemailaddress". _Pine_ can be
          configured to use these different attribute names by using the
          four per-server configuration options:
          + email-attribute
          + name-attribute
          + surname-attribute
          + givenname-attribute
   _search-rule_
          This affects the way that LDAP searches are done. If set to
          "equals" then only exact matches count. "Contains" means that
          the string you type in is a substring of what you are matching
          against. "Begins-with" and "ends-with" mean that the string
          starts or ends with the string you type in.
          Spaces in your input are normally handled specially, but you
          can turn that special handling off with the
          disable-ad-hoc-space-substitution feature.
          The usual default value for this option is _begins-with_.
   _email-attribute_
          This is the name of the attribute which is searched for when
          looking for an email address. The default value for this option
          is "mail" or "electronicmail". If the server you are using uses
          a different attribute name for the email address, put that
          attribute name here.
          This will affect the search filter used if your Search-Type is
          one that contains a search for "email". It will also cause the
          attribute value matching this attribute name to be used as the
          email address when you look up an entry from the composer.
   _name-attribute_
          This is the name of the attribute which is searched for when
          looking for the name of the entry. The default value for this
          option is "cn", which stands for common name. If the server you
          are using uses a different attribute name for the name, put
          that attribute name here. This will affect the search filter
          used if your Search-Type is one that contains a search for
          "name".
   _surname-attribute_
          This is the name of the attribute which is searched for when
          looking for the surname of the entry. The default value for
          this option is "sn". If the server you are using uses a
          different attribute name for the surname, put that attribute
          name here. This will affect the search filter used if your
          Search-Type is one that contains a search for "surname".
   _givenname-attribute_
          This is the name of the attribute which is searched for when
          looking for the given name of the entry. The default value for
          this option is "givenname". If the server you are using uses a
          different attribute name for the given name, put that attribute
          name here. This will affect the search filter used if your
          Search-Type is one that contains a search for "givenname".
   _timelimit_
          This places a limit on the number of seconds the LDAP search
          will continue. The default is 30 seconds. A value of 0 means no
          limit. Note that some servers may place limits of their own on
          searches.
   _sizelimit_
          This places a limit on the number of entries returned by the
          LDAP server. A value of 0 means no limit. The default is 0.
          Note that some servers may place limits of their own on
          searches.
   _custom-search-filter_
          This one is for advanced users only! If you define this, then
          the search-type and search-rule defined are both ignored.
          However, the feature disable-ad-hoc-space-substitution is still
          in effect. That is, the space substitution will take place even
          in a custom filter unless you disable it.
          If your LDAP service stops working and you suspect it might be
          because of your custom filter, just delete this filter and try
          using the _search-type_ and _search-rule_ instead. Another
          option that sometimes causes trouble is the search-base option.
          This variable may be set to the string representation of an
          LDAP search filter (see RFC1960). In the places where you want
          the address string to be substituted in, put a '%s' in this
          filter string. Here are some examples:
          A "Search-Type" of "name" with "Search-Rule" of "begins-with"
          is equivalent to the "custom-search-filter"
     (cn=%s*)
          When you try to match against the string "string" the program
          replaces the "%s" with "string" (without the quotes). You may
          have multiple "%s"'s and they will all be replaced with the
          string. There is a limit of 10 "%s"'s.
          A "Search-Type" of "name-or-email" with "Search-Rule" of
          "contains" is equivalent to
     (|(cn=*%s*)(mail=*%s*))
          If your server uses a different attribute _name_ than _Pine_
          uses by default, (for example, it uses "rfc822mail" instead of
          "mail"), then you may be able to use one or more of the four
          attribute configuration options instead of defining a custom
          filter:
          + email-attribute
          + name-attribute
          + surname-attribute
          + givenname-attribute
          
Color Configuration

   If the terminal or terminal emulator you are using is capable of using
   color (see color-style option), or if you are using _PC-Pine_, then it
   is possible to set up _Pine_ so that various parts of the display will
   be shown in colors you configure. This is done using the Setup Color
   screen. The Setup Color screen is divided into four broad sections:
   Options, General Colors, Index Colors, and Header Colors. In addition
   to these four categories you may also color lines in the MESSAGE INDEX
   screen by configuring the Index Line Color.
   
   Each color is defined as a foreground color (the color of the actual
   text) and a background color (the color of the area behind the text).
   
  Color Options
  
   _current-indexline-style_
          This option affects the colors used to display the current line
          in the MESSAGE INDEX screen. If you do not have Index Line
          Colors defined, then this option will have no effect.
          
          The available options include:
          
        flip-colors
                This is the default. If an index line is colored because
                it matches one of your Index Color Rules, then its colors
                will be reversed when it is the currently highlighted
                line. For example, if the line is normally red text on a
                blue background, then when it is the current line it will
                be drawn as blue text on a red background.
                
                The rest of the option values all revert to this
                flip-colors behavior if there is no Reverse Color
                defined.
                
        reverse
                With this option the Reverse color is always used to
                highlight the current line.
                
        reverse-fg
                The foreground part of the Reverse Color is used to
                highlight the current line. If this would cause the text
                to be unreadable (because the foreground and background
                colors are the same) or if it would cause no change in
                the color of the index line, then the colors are flipped
                instead.
                
                Some people think this works particularly well if you use
                different background colors to emphasize "interesting"
                lines, but always with the same Normal foreground color,
                and you use a different foreground color for the Reverse
                Color.
                
        reverse-fg-no-ambiguity
                With the "reverse-fg" rule above, it is possible that the
                resulting color will be exactly the same as the regular
                Reverse Color. That can lead to some possible confusion
                because an "interesting" line which is the current line
                will be displayed exactly the same as a non-interesting
                line which is current. You can't tell whether the line is
                just a regular current line or if it is an "interesting"
                current line by looking at the color. Setting the option
                to this value removes that ambiguity. It is the same as
                the "reverse-fg" setting unless the resulting interesting
                current line would look just like a non-interesting
                current line. In that case, the interesting line's colors
                are simply flipped (like in the default behavior).
                
                As an alternative way to preserve the line's
                interestingness in this case, you may find that using
                both a different foreground and a different background
                color for the interesting line will help.
                
        reverse-bg
                The background part of the Reverse Color is used to
                highlight the current line. If this would cause the text
                to be unreadable (because the foreground and background
                colors are the same) or if it would cause no change in
                the color of the index line, then the colors are flipped
                instead.
                
                Some people think this works particularly well if you use
                different foreground colors to emphasize "interesting"
                lines, but always with the same Normal background color,
                and you use a different background color for the Reverse
                Color.
                
        reverse-bg-no-ambiguity
                As with the "reverse-fg" case, the "reverse-bg" rule may
                also result in a color which is exactly the same as the
                regular Reverse Color. Setting the option to this value
                removes that ambiguity. It is the same as the
                "reverse-bg" setting unless the resulting current line
                has the same color as the Reverse Color. In that case,
                the interesting line's colors are simply flipped (like in
                the default behavior).
                
  General Colors
  
   _Normal Color_
          This is the color which most of the screen is painted in.
   _Reverse Color_
          The color _Pine_ uses for reverse video characters. Actually,
          the name is misleading. This used to be reverse video and so
          the name remains. It is still used to highlight certain parts
          of the screen but the color may be set to whatever you'd like.
   _Title Color_
          The color _Pine_ uses for the titlebar (the top line on the
          screen). By default, the Title Color is the same as the Reverse
          Color.
   _Status Color_
          The color _Pine_ uses for messages written to the status
          message line near the bottom of the screen. By default, the
          Status Color is the same as the Reverse Color.
   _KeyLabel Color_
          The color _Pine_ uses for the labels of the commands in the
          two-line menu at the bottom of the screen. The label is the
          long name, for example, "PrevMsg". By default, the KeyLabel
          Color is the same as the Normal Color.
   _KeyName Color_
          The color _Pine_ uses for the names of the commands in the
          two-line menu at the bottom of the screen. The KeyName is the
          shorter name in the menu. For example, the "W" before the
          "WhereIs". By default, the KeyName Color is the same as the
          Normal Color.
   _Selectable-item Color_
          The color _Pine_ uses for displaying selectable items, such as
          URLs. By default, the Selectable-item Color is the same as the
          Normal Color, except it is also Bold.
   _Quote Colors_
          The colors _Pine_ uses for coloring quoted text in the MESSAGE
          TEXT screen. If a line begins with a > character (or space
          followed by >) it is considered a quote. That line will be
          given the Quote1 Color (first level quote). If there is a
          second level of quoting then the Quote2 Color will be used.
          _Pine_ considers there to be a second level of quoting if that
          first > is followed by another > (or space followed by >). If
          there are characters other than whitespace and > signs, then it
          isn't considered another level of quoting. Similarly, if there
          is a third level of quoting the Quote3 Color will be used. If
          there are more levels after that the Quote Colors are reused.
          If you define all three colors then it would repeat like
          Color1, Color2, Color3, Color1, Color2, Color3, ... If you only
          define the first two it would be Color1, Color2, Color1,
          Color2, ... If you define only the Quote1 Color, then the
          entire quote would be that color regardless of the quoting
          levels. By default, the Quote Colors are not defined.
   _Prompt Color_
          The color _Pine_ uses for confirmation prompts and questions
          which appear in the status message line near the bottom of the
          screen. By default, the Prompt Color is the same as the Reverse
          Color.
          
  Index Colors
  
   You may add color to the single character symbols which give the
   status of each message in the MESSAGE INDEX. By default the characters
   "+", "*", "D", "A", and "N" show up near the left hand side of the
   screen, depending on whether the message is addressed to you, and
   whether the message is marked Important, is Deleted, is Answered, or
   is New. You may set the color of those symbols. By default, all of
   these symbols are drawn with the same color as the rest of the index
   line they are a part of.
   
   Besides coloring the message status symbols, you may also color the
   entire index line. This is done by using the Index Line Color
   configuration screen.
   
   _Index-to-me Symbol Color_
          The color used for drawing the "+" symbol which signifies a
          message is addressed directly to you.
   _Index-important Symbol Color_
          The color used for drawing the "*" symbol which signifies a
          message has been flagged Important.
   _Index-deleted Symbol Color_
          The color used for drawing the "D" symbol which signifies a
          message has been marked Deleted.
   _Index-answered Symbol Color_
          The color used for drawing the "A" symbol which signifies a
          message has been answered.
   _Index-new Symbol Color_
          The color used for drawing the "N" symbol which signifies a
          message is New.
   _Index-recent Symbol Color_
          The color used for drawing the "R" symbol which signifies a
          message is Recent (only visible if the "IMAPSTATUS" token is
          part of the index-format option).
   _Index-unseen Symbol Color_
          The color used for drawing the "U" symbol which signifies a
          message is Unseen (only visible if the "IMAPSTATUS" token is
          part of the index-format option).
          
  Header Colors
  
   You may add color to the header fields in the MESSAGE TEXT screen. For
   example, you may set the color of the contents of the Subject field or
   the From field.
   
   For Header Colors, there is an additional line on the configuration
   screen labeled "Pattern to match". If you leave that blank, then the
   whole field for that header will always be colored. However, if you
   give a pattern to match, the coloring will only take place if there is
   a match for that pattern in the value of the field. For example, if
   you are working on a color for the Subject header and you fill in a
   pattern of "important", then only Subjects which contain the word
   "important" will be colored. For address fields like From or To, a
   pattern match will cause only the addresses which match the pattern to
   be colored.
   
   If the pattern you enter is a comma-separated list of patterns, then
   coloring happens if any of those patterns matches.
   
  Index Line Colors
  
   You may color whole index lines by using roles. This isn't configured
   in the Setup Colors screen, but is configured in the Setup Rules
   IndexColor screen.
   
Index Line Color Configuration

   Index Line Color causes lines in the MESSAGE INDEX screen to be
   colored. This action is only available if your terminal is capable of
   displaying color and color display has been enabled with the
   Color-Style option. (In PC-Pine, color is always enabled so there is
   no option to turn on.)
   
   Each rule has a "Pattern", which is used to decide which of the rules
   is used; and the color which is used if the Pattern matches a
   particular message.
   
  Rule Patterns
  
   In order to determine whether or not a message matches a rule the
   message is compared with the rule's Pattern. These Patterns are the
   same for use with Roles, Filtering, Index Coloring, and Scoring, so
   are described in only one place, "here".
   
  Index Line Color
  
   This is the color that index lines are colored when there is a
   matching Pattern. This colors the whole index line, except possibly
   the status letters which may be colored separately using the Setup
   Kolor screen.
   
Role Configuration

   You may play different roles depending on who you are replying to. For
   example, if you are replying to a message addressed to _help-desk_ you
   may be acting as a Help Desk Worker. That role may require that you
   use a different return address and/or a different signature.
   
   Roles are optional. If you set up roles they work like this: Each role
   has a set of "Uses", which indicate whether or not a role is eligible
   to be considered for a particular use; a "Pattern", which is used to
   decide which of the eligible roles is used; and a set of "Actions",
   which are taken when that role is used. When you reply to a message,
   the message you are replying to is compared with the Patterns of the
   roles marked as eligible for use when replying. The comparisons start
   with the first eligible role and keep going until there is a match. If
   a match is found, the matching role's Actions are taken.
   
  Role Uses
  
   There are three types of use to be configured; one for Replying, one
   for Forwarding, and one for Composing. These indicate whether or not
   you want a role to be considered when you type the Reply, Forward, or
   Compose commands. (The Role command is an alternate form of the
   Compose command, and it is not affected by these settings.) Each of
   these Use types has three possible values. The value "Never" means
   that the role will never be considered as a candidate for use with the
   corresponding command. For example, if you set a role's Reply Use to
   Never, then when you Reply to a message, the role won't even be
   considered. (That isn't quite true. If the message you are replying to
   matches some other role which requires confirmation, then there will
   be a ^T command available which allows you to select a role from all
   of your roles, not just the reply-eligible roles.)
   
   The options "With confirmation" and "Without confirmation" both mean
   that you do want to consider this role when using the corresponding
   command. For either of these settings the role's Pattern will be
   checked to see if it matches the message. For Reply Use, the message
   used to compare the Patterns with is the message being replied to. For
   Forward Use, the message used to compare the Pattern with is the
   message being forwarded. For Compose Use, there is no message, so the
   parts of the Pattern which depend on a message (everything other than
   Current Folder Type) are ignored. In all cases, the Current Folder is
   checked if defined, and the Score Interval is checked if defined. If
   there is a match then this role will either be used without
   confirmation or will be the default when confirmation is asked for,
   depending on which of the two options is selected. If confirmation is
   requested, you will have a chance to choose No Role instead of the
   offered role, or to change the role to any one of your other roles
   (with the ^T command).
   
  Role Patterns
  
   In order to determine whether or not a message matches a role the
   message is compared with the Role Pattern. These Patterns are the same
   for use with Roles, Filtering, Index Coloring, and Scoring, so are
   described in only one place, "here".
   
   Since header patterns and AllText patterns which are unset are
   ignored, a role which has all header patterns unset, the AllText
   pattern unset, the Score Interval unset, and the Current Folder Type
   set to "Any" may be used as a default role. It should be put last in
   the list of roles since the matching starts at the beginning and
   proceeds until one of the roles is a match. If no roles at all match,
   then _Pine_ will use its regular methods of defining the role. If you
   wanted to, you could define a different "default" role for Replying,
   Forwarding, Composing, and Index Line Color by setting the "Use"
   fields appropriately.
   
  Role Actions
  
   Once a role match is found, the role's Actions are taken. For each
   role there are several possible actions that may be defined. They are
   actions to set the From address, the Reply-To address, the Fcc, the
   Signature file, and the Template file.
   
    Initialize Setttings Using Role
    
   This is a power user feature. You will usually want to leave this
   field empty. The value of this field is the nickname of another one of
   your roles. The action values from that other role are used as the
   initial values of the action items for this role. If you put something
   in any of the action fields for this role, that will override whatever
   was in the corresponding field of the initializer role. The fields
   affected by this field are the fields labeled "Set From", "Set
   Reply-To", "Set Other Headers", "Set Fcc", "Set LiteralSig", "Set
   Signature", and "Set Template".
   
   You might use this field if the "action" part of one of your roles is
   something you want to use in more than one role. Instead of filling in
   those action values again for each role, you may give the nickname of
   the role where the values are filled in. It's just a shortcut way to
   define role actions.
   
   Here's an example to help explain how this works. Suppose you have a
   role with nickname "role1" and role1 has (among other things)
   
                         Set Signature = sig_file1
                                      
   set. If in "role2" you set "Initialize settings using role" to
   "role1", then role2 will inherit the Set Signature value from role1 by
   default (and any of the three other action values that are set). So if
   role2 had
   
                              Set Signature =
                                      
   defined, the signature file used with role2 would be "sig-file1".
   However, if role2 had
   
                         Set Signature = sig_file2
                                      
   defined, then the signature file used with role2 would be "sig-file2".
   
   If you wish, you may choose a nickname from your list of roles by
   using the "T" command.
   
    Set From
    
   This field consists of a single address which will be used as the From
   address on the message you are sending. This should be a
   fully-qualified address like
   
                          Full Name <user@domain>
                                      
   or just
   
                                user@domain
                                      
   If this is left blank, then the normal From address will be used.
   
    Set Reply-To
    
   The Reply-To address is the address used on the Reply-To line of the
   message you are sending. You don't need a Reply-To address unless it
   is different from the From address. This should be a fully-qualified
   address like
   
                          Full Name <user@domain>
                                      
   or just
   
                                user@domain
                                      
   If this is left blank, then there won't be a Reply-To address unless
   you have configured one specially with the customized-hdrs
   configuration option.
   
    Set Other-Hdrs
    
   This field gives you a way to set values for headers besides "From"
   and "Reply-To". If you want to set either of those, use the specific
   "Set From" and "Set Reply-To" settings.
   
   This field is similar to the customized-hdrs option. Each header you
   specify here must include the header tag ("To:", "Approved:", etc.)
   and may optionally include a value for that header. In order to see
   these headers when you compose using this role you must use the rich
   header command. Here's an example which shows how you might set the To
   address.
   
                Set Other Hdrs = To: Full Name <user@domain>
                                      
   Headers set in this way are different from headers set with the
   customized-hdrs option in that the value you give for a header here
   will replace any value that already exists. For example, if you are
   Replying to a message there will already be at least one address in
   the To header (the address you are Replying to). However, if you Reply
   using a role which sets the To header, that role's To header value
   will be used instead. The customized-hdrs headers are defaults.
   
   Limitation: Because commas are used to separate the list of Other
   Headers, it is not possible to have the value of a header contain a
   comma; nor is there currently an "escape" mechanism provided to make
   this work.
   
    Set Fcc
    
   This field consists of a single folder name which will be used in the
   Fcc field of the message you are sending. You may put anything here
   that you would normally type into the Fcc field from the composer.
   
   In addition, an fcc of "" (two double quotation marks) means no Fcc.
   
   A blank field here means that _Pine_ will use its normal rules for
   deciding the default value of the Fcc field. For many roles, perhaps
   most, it may make more sense for you to use the other _Pine_
   facilities for setting the Fcc. In particular, if you want the Fcc to
   depend on who you are sending the message to then the fcc-name-rule is
   probably more useful. In that case, you would want to leave the Fcc
   field here blank. However, if you have a role that depends on who the
   message you are replying to was From, or what address that message was
   sent to; then it might make sense to set the Fcc for that role here.
   
    Set LiteralSig
    
   This field contains the actual text for your signature, as opposed to
   the name of a file containing your signature. If this is defined it
   takes precedence over any value set in the _Set Signature_ field.
   
   This is simply a different way to store the signature. The signature
   is stored inside your Pine configuration file instead of in a separate
   signature file. Tokens work the same way they do with _Set Signature_.
   
   The two character sequence \n (backslash followed by the character n)
   will be used to signify a line-break in your signature. You don't have
   to enter the \n, but it will be visible in the CHANGE THIS ROLE RULE
   window after you are done editing the signature.
   
    Set Signature
    
   The Signature is the name of a file to be used as the signature file
   when this role is being used. If the filename is followed by a
   vertical bar (|) then instead of reading the contents of the file the
   file is assumed to be a program which will produce the text to be used
   on its standard output. The program can't have any arguments and
   doesn't receive any input from _Pine_, but the rest of the processing
   works as if the contents came from a file.
   
   Signature files may be stored remotely on an IMAP server. In order to
   do that you just give the file a remote name. This works just like the
   regular signature-file option which is configured from the
   Setup/Configuration screen. A remote signature file name might look
   like:
   
                  {myimaphost.myschool.k12.wa.us}mail/sig3
                                      
   or, if you have an SSL-capable version of _Pine_, you might try
   
        {myimaphost.myschool.k12.wa.us/user=loginname/ssl}mail/sig3
                                      
   Once you have named the remote signature file you create its contents
   by using the "F" "editFile" command when the cursor is on the "Set
   Signature" line of the role editor.
   
   Besides containing regular text, a signature file may also contain (or
   a signature program may produce) tokens which are replaced with text
   which depends on the message you are replying to or forwarding. The
   tokens all look like _word_ (a word surrounded by underscores). For
   example, if the token
   
                                   _DATE_
                                      
   is included in the text of the signature file, then when you reply to
   or forward a message, the token will be replaced with the actual date
   the message you are replying to or forwarding was sent.
   
   If you use a role which has a signature file for a plain composition
   (that is, not a reply or forward) then there is no original message,
   so any tokens which depend on the message will be replaced with
   nothing. So if you want a signature file to be useful for new
   compositions it shouldn't include any of the tokens which depend on
   the message being replied to or forwarded.
   
   The list of available tokens is here.
   
   Actually, for the adventurous, there is a way to conditionally include
   text based on whether or not a token would result in specific
   replacement text. For example, you could include some text based on
   whether or not the _NEWS_ token would result in any newsgroups if it
   was used. It's explained in detail here.
   
   In the very unlikely event that you want to include a literal token in
   a signature file, you must precede it with a backslash character. For
   example, to include the literal text _DATE_ you must actually use
   \_DATE_. It is not possible to have a literal backslash followed by an
   expanded token.
   
   A blank field here means that _Pine_ will use its normal rules for
   deciding which file (if any) to use for the signature file.
   
    Set Template
    
   A Template is the name of a file to be included in the message when
   this role is being used. The template file is a file which is included
   at the top of the message you are composing.
   
   If the filename is followed by a vertical bar (|) then instead of
   reading the contents of the file the file is assumed to be a program
   which will produce the text to be used on its standard output. The
   program can't have any arguments and doesn't receive any input from
   _Pine_, but the rest of the processing works as if the contents came
   from a file.
   
   Template files may be stored remotely on an IMAP server. In order to
   do that you just give the file a remote name. This works just like the
   regular signature-file option which is configured from the
   Setup/Configuration screen. A remote template file name might look
   like:
   
                 {myimaphost.myschool.k12.wa.us}mail/templ3
                                      
   or, if you have an SSL-capable version of _Pine_, you might try
   
       {myimaphost.myschool.k12.wa.us/user=loginname/ssl}mail/templ3
                                      
   Once you have named the remote template file you create its contents
   by using the "F" "editFile" command when the cursor is on the "Set
   Template" line of the role editor.
   
   Besides containing regular text, a template file may also contain (or
   a template file program may produce) tokens which are replaced with
   text which depends on the message you are replying to or forwarding.
   The tokens all look like _word_ (a word surrounded by underscores).
   For example, if the token
   
                                   _DATE_
                                      
   is included in the text of the template file, then when you reply to
   or forward a message, the token will be replaced with the actual date
   the message you are replying to or forwarding was sent.
   
   If you use a role which has a template file for a plain composition
   (that is, not a reply or forward) then there is no original message,
   so any tokens which depend on the message will be replaced with
   nothing. So if you want a template file to be useful for new
   compositions it shouldn't include any of the tokens which depend on
   the message being replied to or forwarded.
   
   The list of available tokens is here.
   
   Actually, for the adventurous, there is a way to conditionally include
   text based on whether or not a token would result in specific
   replacement text. For example, you could include some text based on
   whether or not the _NEWS_ token would result in any newsgroups if it
   was used. It's explained in detail here.
   
   In the very unlikely event that you want to include a literal token in
   a template file, you must precede it with a backslash character. For
   example, to include the literal text _DATE_ you must actually use
   \_DATE_. It is not possible to have a literal backslash followed by an
   expanded token.
   
   A blank field here means that _Pine_ will not use a template file when
   this role is being used.
   
   If any of the actions are left unset, then the action depends on what
   is present in the "Initialize settings using role" field. If you've
   listed the nickname of another one of your roles there, then the
   corresponding action from that role will be used here. If that action
   is also blank, or if there is no nickname specified, then _Pine_ will
   do whatever it normally does to set these actions. This depends on
   other configuration options and features you've set.
   
Filtering Configuration

   The software which actually delivers mail (the stuff that happens
   before _Pine_ is involved) for you is in a better position to do mail
   filtering than _Pine_ itself. If possible, you may want to look into
   using that sort of mail filtering to deliver mail to different
   folders, delete it, or forward it. However, if you'd like _Pine_ to
   help with this, _Pine_'s filtering is for you.
   
   Filtering is a way to automatically move certain messages from one
   folder to another or to delete messages. It can also be used to set
   message status bits (Important, Deleted, New, Answered). _Pine_
   doesn't have the ability to forward mail to another address.
   
   Each filtering rule has a "Pattern" and a "Filter Action". When a
   folder is opened, when new mail arrives in an open folder, or when
   mail is Expunged from a folder; each message is compared with the
   Patterns of your filtering rules. The comparisons start with the first
   rule and keep going until there is a match. If a match is found, the
   message may be deleted or moved, depending on the setting of the
   Filter Action. If the message is not deleted, it may have its status
   altered.
   
   For efficiency, each message is usually only checked once. When new
   mail arrives, the new messages are checked but not the old. There are
   some exceptions to this rule. The expunge command will cause all
   messages to be rechecked, as will editing of the filtering rules.
   
   _NOTE:_ When setting up a Pattern used to delete messages, it is
   recommended that you test the Pattern first with a "Move" folder
   specified in case unintended matches occur. Messages that are deleted
   will be removed from the folder and _unrecoverable_ from within _Pine_
   after the next Expunge command or once the folder being filtered has
   been closed.
   
  Filter Patterns
  
   In order to determine whether or not a message matches a filter the
   message is compared with the Filter's Pattern. These Patterns are the
   same for use with Roles, Filtering, Index Coloring, Scoring, and Other
   Rules, so are described in only one place, "here".
   
   Since filtering is a potentially destructive action, if you have a
   filtering Pattern with nothing other than Current Folder Type set,
   that filtering rule is ignored.
   
  Filter Actions
  
   Once a filter match is found for a particular message, there are some
   actions which may be taken. First, the message may have its status
   changed. This is the same message status that you can manipulate
   manually using the Flag Command. There are four elements of message
   status that you can control. You can set or clear the Important
   status, the New status, the Deleted status, and the Answered status.
   Of course, if the filter is going to delete the message, then there is
   no point in setting message status.
   
   Second, the filter may delete or move the message. Deleting the
   message marks it Deleted and removes it from view. It is effectively
   gone forever (though it technically is still there until the next
   expunge command, which may happen implicitly). Moving the message
   moves it from the open folder into the folder listed on the "to
   Folder" line of the filter configuration. If you list more than one
   folder name (separated by commas) then the message will be copied to
   each of those folders. In any case, if "Delete" or "Move" is set then
   the message is removed from the current folder. If you just want to
   set the messages status without deleting it from the folder, then set
   the filter action to "Just Set Message Status".
   
   (There is no way to do a Copy instead of a Move, due to the
   difficulties involved in keeping track of whether or not a message has
   already been copied.)
   
    Move-only-if-deleted option
    
   If you have specified a Move to Folder to filter messages into, then
   this option has an effect. If this option is set then messages will
   only be moved into the specified folder if they aren't already marked
   deleted. This might be useful if you have more than one _Pine_ session
   running simultaneously and you don't want messages to be filtered into
   a folder more than once. This method is not foolproof. There may be
   cases where a message gets marked deleted and so it is never filtered
   into the folder. For example, if you deleted it in another _Pine_ or
   another mail program that didn't know about the filtering rule.
   
   This option has no effect if the Filter Action is not set to Move.
   
Scoring Configuration

   Most people will not use scores at all, but if you do use them, here's
   how they work in Pine. Using this screen, you may define Scoring
   rules. The score for a message is calculated by looking at every Score
   rule defined and adding up the Score Values for the ones which match
   the message. If there are no matches for a message, it has a score of
   zero. Message scores may be used a couple of ways in Pine.
   
  Sorting by Score
  
   One of the methods you may use to sort message indexes is to sort by
   score. The scores of all the messages in a folder will be calculated
   and then the index will be ordered by placing the messages in order of
   ascending or descending score.
   
  Scores for use in Patterns
  
   The Patterns used for Roles, Index Line Coloring, and Filtering have a
   category labeled "Score Interval". When a message is being compared
   with a Pattern to check for a match, if the Score Interval is set only
   messages which have a score somewhere in the interval are a match.
   
  Scoring Rule Patterns
  
   In order to determine whether or not a message matches a scoring rule
   the message is compared with the rule's Pattern. These Patterns are
   the same for use with Roles, Filtering, Index Coloring, and Scoring,
   so are described in only one place, "here".
   
   Actually, Scoring rule Patterns are slightly different from the other
   types of Patterns because Scoring rule Patterns don't contain a Score
   Interval. In other words, when calculating the score for a message,
   which is done by looking at the Scoring rule Patterns, scores aren't
   used.
   
  Score Value
  
   This is the value that will be added to the score for a message if the
   rule's Pattern is a match. Each individual Score Value is an integer
   between -100 and 100, and the values from matching rules are added
   together to get a message's score.
   
Other Rules Configuration

   Using this screen, you may define configuration Rules which don't fit
   nicely into the other Rules categories.
   
  Other Rule Patterns
  
   Other Rules are a little different from the rest of the Rules because
   they depend only on the current folder, and not on a particular
   message. In order to determine whether or not a rule's actions should
   be applied the current folder is compared with the rule's Pattern,
   which consists of only the Current Folder Type. Current Folder Type
   works the same for Other Rules as it does for Roles, Filtering, Index
   Coloring, and Scoring. Keep in mind that the only part of the Pattern
   which applies to Other Rules is the Current Folder Type when looking
   at the description of Patterns given "here".
   
  Other Rule Actions
  
   Once a pattern match is found, the rule's Actions are taken. Neither
   of the following two rule's depends on a message for its match. That
   means that all the parts of the Pattern which depend on matching an
   attribute of a message are ignored. So the only part of the Pattern
   that matters for these Actions is the Current Folder Type.
   
    Set Sort Order
    
   When you enter a new folder, these rules will be checked to see if you
   have set a sort order which is different from your default sort order.
   The default is set in the Setup/Config screen with the Sort-Key
   option. If the Sort Order action is set, then the folder will be
   displayed sorted in that sort order instead of in the default order.
   
   A possible point of confusion arises when you change the configuration
   of the Sort Order for the currently open folder. The folder will
   normally be re-sorted when you go back to viewing the index. However,
   if you have manually sorted the folder with the Sort command, it will
   not be re-sorted.
   
    Set Index Format
    
   When you enter a new folder, these rules will be checked to see if you
   have set an Index Format which is different from your default Index
   Format, which is set with the Index-Format option. If so, the index
   will be displayed with this format instead of the default.
   
    Set Startup Rule
    
   When you enter a new folder, these rules will be checked to see if you
   have set a startup rule which is different from the default startup
   rule. The default for incoming folders is set in the Setup/Config
   screen with the "incoming-startup-rule" option. The default for
   folders other than INBOX that are not part of your incoming collection
   (see enable-incoming-folders feature) is to start with the last
   message in the folder. If the Startup Rule is set to something other
   than "default", then the rule will determine which message will be the
   current message when the folder is first opened.
   
   The various startup rule possibilities work the same here as they do
   in the incoming collection, except that the folder can be any specific
   folder or any folder type.
   
Patterns

   Patterns are used with Roles, Filtering, Index Coloring, and Scoring.
   Patterns are compared with a message to see if there is a match. For
   Filtering, the messages being checked are all the messages in the
   folder, one at a time. For Index Line Coloring, each message which is
   visible on the screen is checked for matches with the Index Coloring
   Patterns. Roles are used with the Reply, Forward, and Compose
   commands. For Reply, the message used to compare the Pattern with is
   the message being replied to; for Forward, the message used to compare
   the Pattern with is the message being forwarded; and for Compose,
   there is no message, so the parts of the Pattern which depend on a
   message (everything other than Current Folder Type) are not used. Only
   the Current Folder Type matters for Compose. For Scoring, the message
   being scored is compared with all of the Score Patterns, and the Score
   Values from the ones that match are added together to get the
   message's score. For Other Rules, there is no message. Only the
   Current Folder Type is checked for Other Rules.
   
   Each Pattern has several possible parts, all of which are optional. In
   order for there to be a match, _ALL_ of the _defined_ parts of the
   Pattern must match the message. If a part is not defined it is
   considered a match. For example, if the To pattern is not defined it
   will be displayed as
   
                        To pattern = <No Value Set>
                                      
   That is considered a match because it is not defined. This means that
   the Pattern with nothing defined is a match if the Current Folder Type
   matches, but there is an exception. Because filtering is a potentially
   destructive action, filtering Patterns with nothing other than Current
   Folder Type defined are ignored. If you really want a filtering
   Pattern to match all messages (subject to Current Folder Type) the
   best way to do it is to define a Score interval which includes all
   possible scores. This would be the score interval (-INF,INF). This can
   be used even if you haven't defined any rules to Set Scores.
   
   There are six predefined header patterns called the To, From, Sender,
   Cc, News, and Subject patterns. Besides those six predefined header
   patterns, you may add additional header patterns with header
   fieldnames of your choosing. You add an extra header pattern by
   placing the cursor on one of the patterns while in the role editor and
   using the "eXtraHdr" command. The Recip pattern is a header pattern
   which stands for Recipient (To OR Cc) and the Partic pattern is a
   header pattern which stands for Participant (From OR To OR Cc).
   (Defining the Recip pattern does not have the same effect as defining
   both the To and Cc patterns. Recip is To _OR_ Cc, not To _AND_ Cc.)
   Similar to the header patterns is the AllText pattern. Instead of
   comparing this pattern's text against only the contents of a
   particular header field, the text for the AllText pattern is compared
   with text anywhere in the message's header or body.
   
   The contents of each of these header patterns (or the AllText pattern)
   may be a complete email address, part of an address, or a random set
   of characters to match against. It may also be a comma-separated list
   of such patterns, which means you are looking for a match against the
   first pattern in the list _OR_ the second pattern _OR_ the third and
   so on. For example, a Subject pattern equal to
   
 Subject pattern = urgent, emergency, alert

   would match all messages with a subject which contained at least one
   of those words. It would also match subjects containing the words
   "alerts" or "Urgently". (It is not possible to specify two patterns
   which must _BOTH_ be present for a match. It is only possible to
   specify that _EITHER_ pattern1 _OR_ pattern2 must be present, and that
   is exactly what the comma-separated list does.)
   
   The "Current Folder Type" and the "Score Interval" are also part of
   the Pattern, although the "Score Interval" is not used when checking
   for matches for Scoring. There are also four similar settings which
   relate to the status of the message. These settings rely on the
   message being New or not, Deleted or not, Answered or not, and
   Important or not.
   
  Parts of a Pattern
  
    Header patterns
    
   A header pattern is simply text which is searched for in the
   corresponding header field. For example, if a Pattern has a From
   header pattern with the value "@company.com", then only messages which
   have a From header which contains the text "@company.com" will be
   possible matches. Matches don't have to be exact. For example, if the
   relevant field of a message contains the text "mailbox@domain"
   somewhere in it, then header patterns of "box", or "x@d", or
   "mailbox@domain" are all matches.
   
   All parts of the Pattern must match so, for example, if a message
   matches a defined From pattern, it still must be checked against the
   other parts of the Pattern which have been defined. The To header
   pattern is a slightly special case. If the message being checked has a
   Resent-To header, the addresses there are used in place of the
   addresses in the To header. This is only true for the To header.
   Resent-cc and Resent-From headers are never used unless you add them
   with the eXtraHdrs command.
   
   If you want to check for the presence of a header field but don't care
   about its value, then the empty pattern which you get by entering a
   pair of double quotes ("") should match any message which has the
   corresponding header field.
   
    AllText patterns
    
   AllText patterns are just like header patterns except that the text is
   searched for anywhere in the message's headers or body, not just in
   the contents of a particular header field.
   
   If there is more than one header pattern or AllText pattern for which
   you want to take the same action there is a shorthand notation which
   may be used. Any of these patterns may be a comma-separated list of
   patterns instead of just a single pattern. If any one of the patterns
   in the list matches the message then it is considered a match. For
   example, if "company1" and "company2" both required you to use the
   same role when replying to messages, you might have a To pattern which
   looks like
   
                         company1.com,company2.com
                                      
   This means that if the mail you are replying to was addressed to
   either "anything@company1.com" or "anything@company2.com", then this
   Pattern is a match and the same actions will be taken.
   
   A technicality: Since comma is the character used to separate multiple
   values in a header or AllText pattern field, you have to escape comma
   with a backslash (\) if you want to include a literal comma in one of
   those fields. The same is true for the backslash character itself,
   which must be escaped with another backslash to make it literal. It's
   unlikely you'll ever need to enter a literal comma or backslash in any
   of the patterns.
   
    Current Folder Type
    
   The "Current Folder Type" may be set to one of four different values:
   "Any", "News", "Email", or "Specific". If the value is set to "News",
   then the Pattern will only match if the currently open folder is a
   newsgroup. The value "Email" only matches if the current folder is not
   news and the value "Any" causes any folder to match. If the value of
   "Current Folder Type" is set to "Specific", then you must fill in a
   value for "Folder", which is on the line below the "Specific" line. In
   this case you will only get a match if the currently open folder is
   the specific folder you list. You may give a comma-separated list of
   folders instead of just a single folder name, in which case the
   Pattern will match if the open folder is any one of the folders in the
   list. The name of each folder in the list may be either "INBOX", the
   technical specification of the folder (like what appears in your
   configuration file) or, if the folder is one of your incoming folders,
   it may be the nickname you've given the folder. Here are a couple
   samples of specific folder names:
   
                   {monet.art.nowhere.edu}mail/art-class
                                      
                 {news.myisp.com/nntp}#news.comp.mail.pine
                                      
   The easiest way to fill in the "Folder" field is to use the "T"
   command which is available when the "Folder" line is hilighted, or to
   use the "Take" command with the configuration feature
   "enable-rules-under-take" turned on.
   
   When reading a newsgroup, there may be a performance penalty incurred
   when collecting the information necessary to check whether or not a
   Pattern matches a message. For this reason, the default Current Folder
   Type is set to "Email". If you have Patterns with a Current Folder
   Type of either "Any" or "News" and those Patterns are used for Index
   Line Coloring or Scoring, you may experience slower screen redrawing
   in the MESSAGE INDEX screen when in a newsgroup.
   
    Score Interval
    
   The "Score Interval" may be set to an interval of message scores which
   should be considered a match. Like the other parts of the Pattern, if
   it is unset it will be ignored. The Score Interval looks like
   
                           (min_score,max_score)
                                      
   where "min_score" and "max_score" are integers between -32000 and
   32000. The special values "-INF" and "INF" may be used for the min and
   max values to represent negative and positive infinity.
   
   When there is a Score Interval defined, it is a match if the score for
   the message is contained in the interval. The interval includes both
   endpoints. The score for a message is calculated by looking at every
   Score rule defined and adding up the Score Values for the ones which
   match the message. When deciding whether or not a Pattern matches a
   message for purposes of calculating the score, the Score Interval is
   ignored.
   
    Message Status
    
   There are four separate message status settings. By default, all four
   are set to the value "Don't care", which will match any message. The
   value "Yes" means that the particular status must be true for a match,
   and the value "No" means that the particular status must not be true
   for a match. For example, one of the four Message Status settings is
   whether a message is marked Important or not. A "Yes" means that the
   message must be Important to be considered a match and "No" means that
   the message must not be Important to be considered a match. The same
   is true of the other three message status settings which depend on
   whether or not the message is New; whether the message has been
   Answered or not; and whether the message has been Deleted or not.
   
  Help Configuring Pattern Fields
  
   _nickname_
          This is a nickname to help you. You should have a different
          nickname for each role you define. The nickname will be used in
          the SETUP ROLE RULES screen to allow you to pick a role to
          edit. It will also be used when you send a message to let you
          know you are sending with a different role than you use by
          default, and it will be useful for choosing a role when
          composing with the Role command or when composing with one of
          the Role Uses set to With Confirmation. This field is not used
          in the outgoing message.
   _To pattern_
          If this pattern is non-blank, then for this role to be
          considered a match, at least one of the recipients from the To
          line of the message being replied to or forwarded must match
          this pattern. In the case of the Compose command, this pattern
          and the other header patterns are ignored. If this pattern is a
          comma-separated list of patterns, then at least one of the
          recipients must match at least one of the patterns. (Any other
          non-blank parts of the Pattern must match, too.) If the message
          being replied to or forwarded has a Resent-To header line, then
          that is used in place of the To line.
   _From pattern_
          This is just like the To pattern except that it is compared
          with the address from the From header of the message being
          replied to or forwarded instead of the addresses from the To
          header.
   _Sender pattern_
          This is just like the To pattern except that it is compared
          with the address from the Sender header of the message being
          replied to or forwarded instead of the addresses from the To
          header. If there is no Sender header, then the From header is
          used instead.
   _Cc pattern_
          This is just like the To pattern except that it is compared
          with the address from the CC header of the message being
          replied to or forwarded instead of the addresses from the To
          header.
   _News pattern_
          If this pattern is non-blank, then for this role to be
          considered a match, at least one of the newsgroups from the
          Newsgroups line of the message must match this pattern. If this
          pattern is a comma-separated list of patterns, then at least
          one of the newsgroups must match at least one of the patterns.
          (Any other non-blank parts of the Pattern must match, too.)
   _Subject pattern_
          This is similar to the other header patterns. It is compared
          with the contents from the Subject of the message being replied
          to or forwarded.
          If you enter non-ascii characters in this field then the search
          will be done using the character set you have defined with the
          "character-set" configuration variable. (The truly
          sophisticated may use an alternate character set for a search
          by entering the MIME encoding of the header string here.)
   _Extra header patterns_
          There isn't actually a field called Extra header patterns, but
          you may add extra header patterns by moving the cursor to one
          of the header patterns and using the "eXtraHdr" command to add
          a new header pattern. You would do this if the six predefined
          header patterns don't cover the header you want to use for
          pattern matching. Once you've added an extra header pattern,
          you use it just like the Subject pattern. Of course, it is
          compared with the contents from the particular header field of
          the message being replied to or forwarded rather than the
          contents from the subject field. To remove an extra header
          pattern from a role, use the &quotRemoveHdr" command on the
          highlighted extra header.
          If you enter non-ascii characters in this field then the search
          will be done using the character set you have defined with the
          "character-set" configuration variable. (The truly
          sophisticated may use an alternate character set for a search
          by entering the MIME encoding of the header string here.)
   _Recipient pattern_
          This is just like the To pattern except that it is compared
          with the addresses from both the To header and the Cc header
          instead of just the addresses from the To header. It's
          equivalent to having two different rules; one with a To pattern
          and the other with the same Cc pattern.
   _Participant pattern_
          This is just like the To pattern except that it is compared
          with the addresses from the To header, the Cc header, and the
          From header instead of just the addresses from the To header.
          It's equivalent to having three different rules; one with a To
          pattern, another with the same Cc pattern, and another with the
          same From pattern.
   _AllText pattern_
          This is similar to the header patterns. Instead of comparing
          with text in a particular header field it is compared with all
          of the text in the message header and body.
          If you enter non-ascii characters in this field then the search
          will be done using the character set you have defined with the
          "character-set" configuration variable. (The truly
          sophisticated may use an alternate character set for a search
          by entering the MIME encoding of the header string here.)
   _Score Interval_
          The Score Interval, if defined, is part of the Pattern. If you
          use this, it should be set to something like:
          
                           (min_score,max_score)
          where "min_score" and "max_score" are integers between -32000
          and 32000. The special values "-INF" and "INF" can be used for
          the min and max values. These represent negative and positive
          infinity.
          When there is a Score Interval defined, it is a match if the
          score for the message is contained in the interval. The
          interval includes both endpoints. The score for a message is
          calculated by looking at every scoring rule defined and adding
          up the Score Values for the rules which match the message.
   _Current Folder Type_
          The Current Folder Type is part of the Pattern. It refers to
          the type of the currently open folder, which is the folder you
          were last looking at from the MESSAGE INDEX or MESSAGE TEXT
          screen. In order for a pattern to be considered a match, the
          current folder must be of the type you set here. The three
          types "Any", "News", and "Email" are all what you might think.
          If the Current Folder Type for a Pattern is set to "News", for
          example, then that will only be a match if the current folder
          is a newsgroup and the rest of the Pattern matches. The value
          "Specific" may be used when you want to limit the match to a
          specific folder (not just a specific type of folder), or to a
          list of specific folders. In order to match a specific folder
          you must Select the "Specific" button _AND_ you must fill in
          the name (or comma-separated list of names) of the folder in
          the "Folder" field. If the current folder is any of the folders
          in the list, that is considered a match. The name of each
          folder in the list may be either "INBOX", the technical
          specification of the folder (like what appears in your
          configuration file) or, if the folder is one of your incoming
          folders, it may be the nickname you've given the folder. Here
          are a couple samples of specific folder names:
          
                   {monet.art.nowhere.edu}mail/art-class
          
                 {news.myisp.com/nntp}#news.comp.mail.pine
          The easiest way to fill in the "Folder" field is to use the T
          command which is available when the "Folder" line is hilighted.
          Note that you won't be able to edit the "Folder" line unless
          the Current Folder Type is set to "Specific", and any value
          that "Folder" has is ignored unless the type is set to
          "Specific".
          When reading a newsgroup, there may be a performance penalty
          incurred when collecting the information necessary to check a
          Pattern. For this reason, the default Current Folder Type is
          set to "Email". For example, a role with a non-Normal Index
          Line Color and a Current Folder Type of "Any" or "News" may
          cause the MESSAGE INDEX screen to draw more slowly when in a
          newsgroup.
   _Message Status Important_
          This part of the Pattern may have one of three possible values.
          The default value is "Don't care", which matches any message.
          The other two values are "Yes", which means the message must be
          flagged "Important" in order to be a match; or "No", which
          means the message must _not_ be flagged "Important" in order to
          be considered a match.
   _Message Status New_
          This part of the Pattern may have one of three possible values.
          The default value is "Don't care", which matches any message.
          The other two values are "Yes", which means the message must be
          "New" in order to be a match; or "No", which means the message
          must _not_ be "New" in order to be a match. "New" is the same
          as _Unseen_ and not "New" is the same as _Seen_.
   _Message Status Deleted_
          This part of the Pattern may have one of three possible values.
          The default value is "Don't care", which matches any message.
          The other two values are "Yes", which means the message must be
          marked "Deleted" in order to be a match; or "No", which means
          the message must _not_ be marked "Deleted" in order to be a
          match.
          If you are thinking of using this part of the Pattern as a way
          to prevent messages from being filtered more than once in a
          Filter Pattern, take a look at the Filter Option
          "move-only-if-not-deleted" instead. It should work better than
          using this field since it will hide the filtered messages even
          if they are already Deleted.
   _Message Status Answered_
          This part of the Pattern may have one of three possible values.
          The default value is "Don't care", which matches any message.
          The other two values are "Yes", which means the message must be
          marked "Answered" in order to be a match; or "No", which means
          the message must _not_ be marked "Answered" in order to be a
          match.
     _________________________________________________________________

                    Notes on Configuration and Preferences
                                       
Pine in Function Key Mode

   The standard _Pine_ uses alphabetic keys for most commands, and
   control keys in the composer. Despite possible appearances, the
   current bindings are the result of much discussion and thought. All
   the commands in the composer are single control characters. This keeps
   things very neat and simple for users. Two character commands in the
   composer are a possibility, but we're trying to avoid them because of
   the added complexity for the user.
   
   _Pine_ can also operate in a function-key mode. To go into this mode
   invoke _pine -k_ or (on some UNIX systems) _pinef._ On a UNIX system,
   you can link or copy the _Pine_ executable to _pinef_ to install
   _pinef._ Alternatively, users and systems administrators can set the
   _use-function-keys_ feature in the personal or system-wide _Pine_
   configuration file. The command menus at the bottom of the screen will
   show _F1-F12 _instead of the alphabetic commands. In addition, the
   help screens will be written in terms of function keys and not
   alphabetic keys.
   
   One of the results of using _Pine_ in function-key mode is that users
   can only choose from twelve commands at any given time. In
   alphabetic-key mode, a user can press a key for a command (say, q to
   quit) and that command can be fulfilled. In function-key mode, the
   command must be visible on the bottom key-menu in order to be used.
   There are some screens where four screens of commands are operational;
   function-key users can get to all of them, just not all at once.
     _________________________________________________________________
   
Domain Settings

   _Pine_ uses the default domain for a few different tasks. First, it is
   tacked onto the user-id for outgoing email. Second, it is tacked onto
   all "local" (unqualified) addresses in the "To:" or "Cc:" fields of
   messages being composed (unless they are found in the address book or
   on an LDAP server). The domain name is also used to generate
   message-id lines for each outgoing message and to allow _Pine_ to
   check if an address is that of the current _Pine_ user.
   
   _Pine_ determines the domain name according to whichever of these it
   finds. The list here is in decreasing order of precedence.
    1. Value of the variable user-domain in the system fixed
       configuration file
    2. Value of the variable _user-domain_ in the personal configuration
       file
    3. Value of the variable _user-domain_ in the system-wide
       configuration file
    4. Value from an external database (DNS, /etc/hosts, NIS) as modified
       by a system fixed configuration file if use-only-domain-name set
       to _yes_
    5. Value from an external database (DNS, /etc/hosts, NIS) as modified
       by a personal configuration file if _use-only-domain-name_ set to
       _yes_
    6. Value from an external database (DNS, /etc/hosts, NIS) as modified
       by a system configuration file if _use-only-domain-name_ set to
       _yes_
    7. Unmodified value (host name) from an external database
       
   The easiest way for this system to work is for _PC-Pine_ users and
   UNIX _Pine_ system administrators to set the _user-domain_ variable.
   The variable _use-only-domain-name_ is helpful if your site
   supports/requires hostless addressing, but for some reason you don't
   want to use the _user-domain_ variable.
     _________________________________________________________________
   
Syntax for Collections

   In many environments, it is quite common to have collections of
   archived mail on various hosts around the network. Using the folder
   collections facility in _Pine_, access to these archives is just as
   simple as access to folders on _Pine_'s local disk.
   
   "Collection" is the word we use in _Pine_ to describe a set of
   folders. A collection corresponds loosely to a "directory" containing
   mail folders. Folders within a defined collection can be manipulated
   (opened, saved-to, etc) using just their simple name. Any number of
   folder collections can be defined, and _Pine_ will adjust its menus
   and prompts to help navigate them.
   
   The way collections are defined in _Pine_ is with the
   folder-collections variable in the _Pine_ configuration file.
   _Folder-collections_ takes a list of one or more collections, each
   (optionally) preceded by a user-defined logical name (label). Once
   collections are defined, _Pine_ adjusts its menus and behavior to
   allow choosing files by their simple name within the collection.
   
   Consider the following:
   folder-collections=  Local-Mail      C:\MAIL\[],
                        Remote-Mail     {imap.u.example.edu}mail/[]

   The example shows two collections defined (a comma separated list;
   newlines in the list are OK if there's one or more spaces before the
   next entry), one local and one remote. Each collection is a
   space-delimited pair of elements-first an optional logical-name and
   second the collection specifier. The logical-name can have spaces if
   it has quotes around it (but keeping the logical name short and
   descriptive works best). _Pine_ will use the logical-name (if
   provided) to reference all folders in the collection, so the user
   never has to see the ugliness of the collection specifier.
   
   The collection specifier can be thought of as an extended IMAP format
   (see the Remote Folders section for a description of IMAP format
   names). Basically, a pair of square-brackets are placed in the fully
   qualified IMAP path where the simple folder name (the part without the
   host name and path) would appear. Like IMAP, the path can be either
   fully qualified (i.e., with a leading '/') or relative to your home
   directory.
   
   An advanced feature of this notation is that a pattern within the
   square brackets allows the user to define a collection to be a subset
   of a directory. For example, a collection defined with the specifier:
        M-Mail          C:MAIL/[m*]

   will provide a view in the folder lister of all folders in the PC's
   "C:MAIL" directory that start with the letter 'm' (case insensitive
   under DOS, of course). Further, the wildcard matching will honor
   characters trailing the '*' in the pattern.
   
   From within _Pine_, the "Folder List" display will be adjusted to
   allow browsing of the folders in any defined collection. Even more,
   you'll notice in the _Goto_ and _Save_ commands a pair of sub-commands
   to rotate through the list of logical collection names, so only a
   simple name need be input in order to operate on a folder in any
   collection.
   
   The first collection specified in the _folder-collections_ has special
   significance. That folder is the "default collection for saves". By
   default, in cases where the user does not specify which collection
   should be used to _Save_ a message, the default collection for saves
   will be used. Also, if the default-fcc is a relative file name, then
   it is relative to the default collection for saves. (See also
   saved-msg-name-rule.
   
   The notion of collections encompasses both email folders and news
   reading. The variable news-collections uses nearly the same format as
   _folder-collections_. Newsgroups can be defined for convenient access
   via either IMAP or NNTP. There are advantages and disadvantages to
   both access methods. In the IMAP case, your news environment state is
   maintained on the server and, thus, will be seen by any client. The
   downside is that, at the moment, you must have an account on the
   server. In the NNTP case, server access is mostly anonymous and no
   state/accounting need be maintained on it. The downside is that each
   client, for now, must individually maintain news environment state.
   
   An example pinerc entry might be:
     news-collections=  Remote-State    {news.u.example.edu}#news.[],
                        Local-State     {news.u.example.edu/nntp}#news.[]

   Only newsgroups to which you are subscribed are included in the
   collection.
   
   The pattern matching facility can be applied so as to define a news
   collection which is a subset of all the newsgroups you subscribe to.
   For example, this could be a valid collection:
                        Newsfeed-News   {news.u.example.edu/nntp}#news.[clari.*
]

   Collection handling is a tough problem to solve in a general way, and
   the explanation of the syntax is a bit ugly. The upside is, hopefully,
   that for a little complexity in the _Pine_ configuration file you get
   simple management of multiple folders in diverse locations.
   
   As of _Pine_ 4.00, collection setup is handled by the
   _Setup/collectionList_ screen instead of requiring hand editing of the
   configuration file.
     _________________________________________________________________
   
Syntax for Remote Folders

   Remote folders are distinguished from local folders by a leading host
   name bracketed by '{' and '}'. The path and folder name immediately
   following the closing bracket, '}', is interpreted by the IMAP server
   and is in a form compatible with that server (i.e., path delimiters
   and naming syntax relative to that server).
   
   Typically, a folder name without any path description is understood to
   reside in the user's "home directory" (i.e., in some way the user's
   personal, writable file area), as are incomplete path designations.
   However, the IMAP specification does not require that unqualified
   folder names live in one's home directory, so some IMAP servers may
   require fully qualified names. An example of a remote folder
   specification would be,
        {host.dept.washington.edu}mail/saved-messages

   This example simply specifies a folder named ``saved-messages'' on the
   imap server ``host.dept.washington.edu'', in the ``mail'' subdirectory
   of the user's home directory. Easy isn't it?
   
   To confuse things a bit, qualifiers are permitted within the brackets
   following the host name. These qualifiers consist of a slash ('/')
   character followed by a keyword or keyword and value, and have the
   effect of modifying how the connection is made to the host specified.
   An example of such a specification might be,
        {news.u.washington.edu/nntp}#news.comp.mail.mime

   This specifies an altogether different access method: access via the
   Network News Transport Protocol (NNTP).
   
   Some other possible qualifiers are /user=username, which says to login
   as user _username_; /secure, which says to use the most secure
   authentication method supported by _Pine_ and the server and fail to
   connect if that authentication fails; /imap; /pop3; /debug; /ssl,
   which says to use a secure SSL connection; /novalidate-cert, which
   tells _Pine_ to not attempt to validate certificates from SSL server;
   and /anonymous.
   
   There is also an optional :portnum following the hostname. This would
   specify a non-standard port number to connect to.
     _________________________________________________________________
   
Sorting a Folder

   The mail index may be sorted by arrival, date, subject, from, size,
   score, to, or cc order. Each sort order can also be reversed. The _$_
   command will prompt the user for the sort order. The sort order can
   also be specified on the command line with the _-sort_ flag or
   (equivalently) with the sort-key variable in the _pinerc_ file. When a
   user changes folders, the sort order will go back to the original sort
   order. The command line (_-sort_) or configuration file sort
   specification (_sort-key_) changes the original sort order.
   
   When a folder is sorted and new mail arrives in the folder it will be
   inserted in its properly sorted place. This can be a little odd when
   the folder is sorted by something like the subject. It can also be a
   little slow if you are viewing a large, sorted _INBOX_, since the
   _INBOX_ will have to be re-sorted whenever new mail arrives.
   
   The sorts are all independent of case and ignore leading or trailing
   white space. There are actually two forms of subject sort. One called
   _Subject_ and the other called _OrderedSubj_. They both ignore "Re:"
   at the beginning and "(fwd)" at the end of the subjects. _Subject_
   sorts all the subjects alphabetically. _OrderedSubj_ sorts by subjects
   alphabetically, groups messages with the same subject
   (pseudo-threads), then sorts the groups by the date of the first
   message of the group. Sorting by _Thread_ was added after _OrderedSubj_
   and is usually a better method. Thread sorting uses information in the
   message headers References, Message-ID, and Subject. It is possible
   the sort will be slightly slower with a Thread sort than with an
   OrderedSubj sort. The sort by sender sorts by the user-id (part before
   the "@"), not the full name. The arrival sort is no sort at all and
   the date sort depends on the format of the date. Some dates are in
   strange formats and are unparsable. The time zone is also taken into
   account.
   
   Sorting large mail folders can be very slow since it requires fetching
   all the headers of the mail messages. With UNIX _Pine_, only the first
   sort is slow since _Pine_ keeps a copy of all the headers. One
   exception is sorting in reverse arrival order. This is fast because no
   headers have to be examined. _Pine_ will show progress as it is
   sorting.
     _________________________________________________________________
   
Alternate Editor

   In the _Pine_ composer you can use any text editor, such as _vi_ or
   _emacs,_ for composing the message text. The addresses and subject
   still must be edited using the standard _Pine_ composer. If you
   include the feature enable-alternate-editor-cmd in your _pinerc_ you
   can type _^__ while in the body of the message in the composer and be
   prompted for the editor. If you also set the editor variable in your
   _pinerc_ then _^__ will invoke the configured editor when you type it.
   
   Turning on the feature enable-alternate-editor-implicitly will
   automatically invoke the editor you have defined with the _editor_
   variable whenever you enter the body of a message you are composing.
   For example, when you move out of the last header line and into the
   body of the message, the alternate editor will be automatically
   invoked.
   
   We know that many people would like to use the alternate editor to
   edit the mail header as well. We considered several designs for this
   and didn't come up with one that we liked and that was easy to
   implement. One of the main problems is that you lose access to the
   address book.
     _________________________________________________________________
   
Signatures and Signature Placement

   If the file _~/.signature_ (UNIX) or _<PINERC_directory>\PINE.SIG (PC)
   exists, it will be included in all outgoing messages. It is included
   before composition starts so that the user has a chance to edit it out
   if he or she likes. The file name for the signature can be changed by
   setting the signature-file variable in the _pinerc_. If the feature
   enable-sigdashes is turned on then the line consisting of the three
   characters "-- " is prepended to the signature file. When Replying or
   Forwarding a message different signatures my be automatically included
   by configuring them in the Roles setup screen. It's easy to include
   different signatures by hand, by having multiple signature files
   (_.sig1, .sig2, .sig3, etc_) and choosing to include (^R in the
   composer) the correct one for the message being sent.
   
   _Pine_'s default behavior encourages a user to put his or her
   contribution before the inclusion of the original text of the message
   being forwarded or replied to, This is contrary to some conventions,
   but makes the conversation more readable when a long original message
   is included in a reply for context. The reader doesn't have to scroll
   through the original text that he or she has probably already seen to
   find the new text. If the reader wishes to see the old message(s), the
   reader can scroll further into the message. Users who prefer to add
   their input at the end of a message should set the signature-at-bottom
   feature. The signature will then be appended to the end of the message
   after any included text. This feature applies when _Reply_ing, not
   when _Forward_ing.
     _________________________________________________________________
   
Feature List Variable

   _Pine_ used to have _feature levels_ for users with different amounts
   of experience. We found that this was too restrictive. _Pine_ now has
   a feature-list instead. Each user may pick and choose which features
   they would like enabled (simple to do in the _Setup/Config_ screen).
   There is a short description of each in Configuration Features. There
   is also a short on-line help explaining the effect of each of the
   features in the _Setup/Config_ screen. When the cursor is highlighting
   a feature, the _?_ command will show the help text for that feature.
   Features don't have values, they are just turned on or off. They are
   all off by default.
   
   The _feature-list_ variable is different from all other configuration
   variables in that its value is additive. That is, the system-wide
   configuration file can have some features turned on by default. The
   user can select other features in their personal configuration file
   and those features will be _added_ to the set of features turned on in
   the system-wide configuration file. (With all other configuration
   variables, the user's values _replace_ the system-wide values.)
   Likewise, additional features may be set on the command-line with the
   argument "-feature-list=". These will be added to the others.
   
   The treatment of _feature-list_ in the system-wide _fixed_
   configuration file is also different from other variables. The system
   management can fix the value of individual features by placing them in
   the fixed configuration file. Users will not be able to alter those
   features, but will still be able to set the other non-restricted
   features the way they like.
   
   Because _feature-list_ is additive, there is a way to turn features
   off as well as on. Prepending the prefix "no-" to any feature sets it
   to off. This is useful for over-riding the system-wide default in the
   personal configuration file or for over-riding the system-wide default
   or the personal configuration value on the command line. For example,
   if the system-wide default configuration has the _quit-without-confirm_
   feature set, the user can over-ride that (and turn it off) by
   including _no-quit-without-confirm_ in the personal configuration file
   or by giving the command line argument
   _-feature-list=no-quit-without-confirm._ More features (options) will
   no doubt continue to be added.
     _________________________________________________________________
   
Configuration Inheritance

   We start with an explanation of how configuration works in hopes of
   making it easier to describe how inheritance works.
   
   _Pine_ uses a hierarchy of configuration values from different
   locations. There are five ways in which each configuration option
   (configuration variable) can be set. In increasing order of precedence
   they are:
   
    1. the system-wide configuration file.
    2. the personal configuration file
    3. the personal exceptions file
    4. a command line argument
    5. the system-wide _fixed_ configuration file (Unix _Pine_ only)
       
   The fixed configuration file is normally
   /usr/local/etc/pine.conf.fixed.
   
   The system-wide configuration file is normally
   /usr/local/etc/pine.conf for Unix _Pine_ and is normally not set for
   _PC-Pine_. For _PC-Pine_, if the environment variable _$PINECONF_ is
   set, that is used for the system-wide configuration. This location can
   be set or changed on the command line with the -P flag. The
   system-wide configuration file can be either a local file or a remote
   configuration folder.
   
   For Unix _Pine_, the personal configuration file is normally the file
   .pinerc in the user's home directory. This can be changed with the -p
   command line flag. For _PC-Pine_, the personal configuration file is
   in $PINERC or <PineRC registry value> or $HOME\PINE\PINERC or
   <PINE.EXE dir>\PINERC. This can be changed with the -p command line
   flag. If -p or $PINERC is used, the configuration data may be in a
   local file or a remote config folder.
   
   For Unix _Pine_, the personal exceptions configuration file is
   specified with the "-x exceptions_config" command line argument.
   "Exceptions_config" may be either a local file or a remote
   configuration folder. If there is no "-x" command line option, _Pine_
   will look for the file ".pinercex" in the same local directory that
   the regular config file is located in. If the regular config file is
   remote then Unix _Pine_ looks in the home directory for ".pinercex".
   
   For _PC-Pine_, the personal exceptions configuration file is specified
   with the "-x exceptions_config" command line argument. If there is no
   "-x" command line argument the environment variable $PINERCEX may be
   set to the name of the "exceptions_config" instead.
   "Exceptions_config" may be either a local file or a remote
   configuration folder. If there is no "-x" command line option and
   $PINERCEX is not set, _PC-Pine_ will look for the file "PINERCEX" in
   the same local directory that the regular config file is located in.
   If the regular config file is remote then _PC-Pine_ looks in the local
   directory specified by the "-aux local_directory" command line
   argument, or the directory $HOME\PINE, or in <PINE.EXE directory> for
   a file named "PINERCEX".
   
   To reiterate, the value of a configuration option is taken from the
   last location in the list above in which it is set. Or, thinking about
   it slightly differently, a default value for an option is established
   in the system-wide configuration file (or in the source code if there
   is no value in the system-wide file). That default remains in effect
   until and unless it is overridden by a value in a location further
   down the list, in which case a new "default" value is established. As
   we continue down the list of locations we either retain the value at
   each step or establish a new value. The value that is still set after
   going through the whole list of configuration locations is the one
   that is used.
   
   So, for example, if an option is set in the system-wide configuration
   file and in the personal configuration file, but is not set in the
   exceptions, on the command line, or in the fixed file; then the value
   from the personal configuration file is the one that is used. Or, if
   it is set in the system-wide config, in the personal config, not in
   the exceptions, but is set on the command line; then the value on the
   command line is used.
   
   Finally we get to inheritance. For configuration options which are
   lists, like "smtp-server" or "incoming-folders", the inheritance
   mechanism makes it possible to _combine_ the values from different
   locations instead of _replacing_ the value. This is true of all
   configuration lists other than the "feature-list", for which you may
   already set whatever you want at any configuration location (by using
   the "no-" prefix if necessary).
   
   To use inheritance, set the first item in a configuration list to the
   token "INHERIT". If the first item is "INHERIT", then instead of
   replacing the default value established so far, the rest of the list
   is appended to the default value established so far and that is the
   new value.
   
   Here is an example which may make it clearer. Suppose we have:
   
 System-wide config :   smtp-server = smtp1.corp.com, smtp2.corp.com
 Personal config    :   smtp-server = INHERIT, mysmtp.home
 Exceptions config  :   smtp-server = <No Value Set>
 Command line       :   smtp-server = <No Value Set>
 Fixed config       :   smtp-server = <No Value Set>

   This would result in an effective smtp-server option of
   
 smtp-server = smtp1.corp.com, smtp2.corp.com, mysmtp.home

   The "INHERIT" token can be used in any of the configuration files and
   the effect cascades. For example, if we change the above example to:
   
 System-wide config :   smtp-server = smtp1.corp.com, smtp2.corp.com
 Personal config    :   smtp-server = INHERIT, mysmtp.home
 Exceptions config  :   smtp-server = INHERIT, yoursmtp.org
 Command line       :   smtp-server = <No Value Set>
 Fixed config       :   smtp-server = <No Value Set>

   This would result in:
   
 smtp-server = smtp1.corp.com, smtp2.corp.com, mysmtp.home, yoursmtp.org

   Unset variables are skipped over (the default value is carried
   forward) so that, for example:
   
 System-wide config :   smtp-server = smtp1.corp.com, smtp2.corp.com
 Personal config    :   smtp-server = <No Value Set>
 Exceptions config  :   smtp-server = INHERIT, yoursmtp.org
 Command line       :   smtp-server = <No Value Set>
 Fixed config       :   smtp-server = <No Value Set>

   produces:
   
 smtp-server = smtp1.corp.com, smtp2.corp.com, yoursmtp.org

   If any later configuration location has a value set (for a particular
   list option) which does _not_ begin with "INHERIT", then that value
   replaces whatever value has been defined up to that point. In other
   words, that cancels out any previous inheritance.
   
 System-wide config :   smtp-server = smtp1.corp.com, smtp2.corp.com
 Personal config    :   smtp-server = INHERIT, mysmtp.org
 Exceptions config  :   smtp-server = yoursmtp.org
 Command line       :   smtp-server = <No Value Set>
 Fixed config       :   smtp-server = <No Value Set>

   results in:
   
 smtp-server = yoursmtp.org

   For some configuration options, like "viewer-hdr-colors" or
   "patterns-roles", it is difficult to insert the value "INHERIT" into
   the list of values for the option using the normal Setup tools. In
   other words, the color setting screen (for example) does not provide a
   way to input the text "INHERIT" as the first item in the
   viewer-hdr-colors option. The way to do this is to either edit the
   pinerc file directly and manually insert it, or turn on the
   "expose-hidden-config" feature and insert it using the Setup/Config
   screen.
     _________________________________________________________________
   
SMTP Servers

   It is sometimes desirable to set smtp-server=localhost instead of
   setting sendmail-path to overcome the inability to negotiate ESMTP
   options when _sendmail_ is invoked with the _-t_ option. Sendmail can
   also be subject to unacceptable delays due to slow DNS lookups and
   other problems.
   
   It is sometimes desireable to configure an SMTP server on a port other
   than the default port 25. This may be used to provide an alternate
   service that is optimized for a particular environment or provides
   different features from the port 25 server. An example would be a
   program that negotiates ESMTP options and queues a message, but does
   not attempt to deliver messages. This would avoid delays frequently
   encountered when invoking _sendmail_ directly.
   
   A typical configuration would consist of
     * A program that implements the SMTP or ESMTP protocol via stdio.
     * An entry in /etc/services for the alternate service.
     * An entry in /etc/inetd.conf for the alternate service.
     * An entry in /usr/local/etc/pine.conf,
       /usr/local/etc/pine.conf.fixed or ~/.pinerc.
     _________________________________________________________________
   
MIME.Types file

   _Pine_'s MIME-TYPE support is based on code contributed by Hans
   Drexler &LT;drexler@mpi.nl&GT;. _Pine_ assigns MIME Content-Types
   according to file name extensions found in the system-wide files
   /usr/local/etc/mime.types and /etc/mime.types, and a user specific
   ~/.mime.types file.
   
   In DOS and OS/2, _Pine_ looks in the same directory as the PINERC file
   and the same dir as PINE.EXE. This is similar to the UNIX situation
   with personal config info coming before potentially shared config
   data. An alternate search path can be specified by setting the
   mimetype-search-path variable in the user or system-wide configuration
   or by setting the MIMETYPES environment variable.
   
   These files specify file extensions that will be connected to a mime
   type. Lines beginning with a '#' character are treated as comments and
   ignored. All other lines are treated as a mime type definition. The
   first word is a _type/subtype_ specification. All following words are
   file _extensions_ belonging to that type/subtype. Words are separated
   by whitespace characters. If a file extension occurs more than once,
   then the first definition determines the file type and subtype. A
   couple sample lines from a mime.types file follow:
   
image/gif         gif
text/html         html htm
video/mpeg        mpeg mpg mpe
     _________________________________________________________________
   
Color Details

   UNIX _Pine_ may display color if the terminal or terminal emulator you
   are using is capable of displaying colors. If the terminal supports
   ANSI color escape sequences you will be able to turn color on using
   the color-style option and setting it to the value _force-ansi-8color_
   or _force-ansi-16color_. If instead you'd like _Pine_ to automatically
   detect whether or not you are on a color terminal, set _color-style_
   to _use-termdef_ _and_ configure the termcap entry to describe your
   terminal's color capabilities.
   
   If the _color-style_ option is set to _use-termdef_, _Pine_ looks in
   the terminal capabilities database, TERMINFO or TERMCAP, depending on
   how _Pine_ was compiled, to decide whether or not your terminal is
   capable of color. For TERMINFO compiled _Pine_s, the capabilities that
   are used for color are "colors", "setaf", "setab", "op", and "bce". If
   you have a terminal with color capabilities described by the "scp"
   capability, _Pine_ does not support it. The capabilities "setf" and
   "setb" may be used instead of "setaf" and "setab". The capability
   "bce" is optional and is used as an optimization, the other
   capabilities are required. For TERMCAP compiled _Pine_s, the
   capabilities that are used for color are "Co", "AF", "AB", "op", and
   "ut". The capabilities "Sf" and "Sb" may be used instead of "AF" and
   "AB", though this isn't a useful feature.
   
   Here are some short descriptions of the capabilities listed above. The
   TERMINFO name is listed, followed by the TERMCAP name in parentheses.
   _colors_ (_Co_)
          The number of different colors.
   _setaf_ (_AF_)
          Set ANSI foreground color.
   _setab_ (_AB_)
          Set ANSI background color.
   _setf_ (_Sf_)
          Set foreground color. Alternate form of _setaf_.
   _setb_ (_Sb_)
          Set background color. Alternate form of _setab_.
   _op_ (_op_)
          Set default pair to its original value.
   _bce_ (_ut_)
          Screen is erased with current background color instead of
          default background.
          
   A standard ANSI terminal which supports color will have a TERMINFO
   entry which contains:
  colors#8
  setaf=\E[3%p1%dm
  setab=\E[4%p1%dm
  op=\E[39;49m
  bce

   or the TERMCAP equivalent:
  Co#8
  AF=\E[3%dm
  AB=\E[4%dm
  op=\E[39;49m
  ut

   If there are eight colors, the program uses colors 0, 1, ..., 7. For
   an ANSI terminal, the foreground color is set by sending the escape
   sequence "Escape LeftBracket 3 color_number m" to the terminal. The
   background color is set by sending the sequence "Escape LeftBracket 4
   color_number m". ANSI colors zero through seven are defined to be
   "black", "red", "green", "yellow", "blue", "magenta", "cyan", and
   "white". Some terminal emulators will swap blue and red and swap
   yellow and cyan. The capabilities "setf" and "setb" are usually
   designed for those terminals so that they will flip the color numbers
   1 and 4 and the numbers 3 and 6 to compensate for this. _Pine_ will
   use the ANSI versions of the capabilities if they exist, and will use
   the non-ANSI versions (setf and setb) if the ANSI versions don't
   exist. Here's a version which does the flipping. This can only be used
   with TERMINFO _Pine_s, because of the arithmetic, which is not
   supported by TERMCAP.
  colors#8
  setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m
  setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m
  op=\E[39;49m
  bce

   Some terminal emulators are capable of displaying eight more colors
   when the foreground colors 30-37 are replaced with 90-97 and the
   background colors 40-47 are replaced with 100-107. These terminals
   require a fancy termcap entry which can take foreground colors 0, 1,
   ..., 15 and map that into 30, 31, ..., 37, 90, 91, ..., 97, and
   similarly for the background colors. Here is a terminfo entry which
   will do just that:
  colors#16
  setaf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%dm
  setab=%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%dm
  op=\E[39;49m
  bce

   and here is the termcap equivalent:
  Co#16
  AF=\E[%i%i%>\001\034%>\045\064%dm
  AB=\E[%i%i%>\001\046%>\057\064%dm
  op=\E[39;49m
  ut

   This is a terminfo entry for 16 colors that also does the color
   flipping:
  colors#16
  setf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%
{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m
  setb=%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%
{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m
  op=\E[39;49m
  bce

   If you are always using the same display it probably won't matter to
   you if the color pairs red/blue and cyan/yellow are flipped, since
   you'll always be seeing them flipped. You will get different defaults
   than on a display with them not flipped, but that's about all. If you
   are trying to use the same pinerc file from displays with different
   color characteristics, or from _Pine_ and _PC-Pine_, you will have to
   be more careful. The colors numbered 0 through 7 may be used portably
   between different systems if you are careful to make them correspond
   to the ANSI order mentioned above. You can check this by looking at a
   color configuration screen for one of the colors. The first eight
   colors should be in the order above. If they aren't, you could fix
   that by modifying your termcap entry on the UNIX system. This is not
   possible if your system uses TERMCAP instead of TERMINFO.
     _________________________________________________________________
   
Additional Notes on PC-Pine

   Below are a few odds and ends worth mentioning about _PC-Pine_. They
   have to do with DOS-specific behavior that is either necessary or
   useful (and sometimes both!).
   
   As _PC-Pine_ runs in an environment with limited access control,
   accounting or auditing, an additional line is automatically inserted
   into the header of mail messages generated by _PC-Pine_:
        X-Sender: <userid>@<imap.host>

   By popular demand of system administrators, _PC-Pine_ has been
   modified to prevent sending messages until the user has successfully
   logged into a remote mail server. Even though _PC-Pine_ cannot prevent
   users from changing the apparent identity of the sender of a message,
   the IMAP server login name and host name included in the _X-Sender_
   line provide some level of traceability by the recipient. However,
   this should not be considered a rigorous form of authentication. It is
   extremely lightweight, and is not a replacement for true
   authentication.
   
   Hand in hand with authentication and accounting is user information.
   Since _PC-Pine_ has no user database to consult for _user-id_,
   _personal-name_, etc., necessary information must be provided by the
   user/installer before _PC-Pine_ can properly construct the "From"
   address required for outbound messages. _PC-Pine_ will, by default,
   prompt for the requisite pieces as they are needed. This information
   corresponds to the _PINERC_ variables user-id, personal-name,
   user-domain, and smtp-server.
   
   The user is then asked whether or not this information should
   automatically be saved to the _PINERC_. This is useful behavior in
   general, but can lead to problems in a lab or other shared
   environment. Hence, these prompts and automatic saving of
   configuration can be turned off on an entry by entry basis by setting
   any of the above values in the _PINERC_ to the null string (i.e., a
   pair of double quotes). This means that the user will be prompted for
   the information once during each _Pine_ session, and no opportunity to
   save them in the _PINERC_ will be offered.
   
   Along similar lines, a feature allowing automatic login to the
   imap-server containing the user's _INBOX_ has also been requested.
   This feature is not enabled by default, but requires the existence of
   the file named _PINE.PWD_ in the same directory as the _PINERC_. Even
   with the existence of this file, the user must still acknowledge a
   prompt before the password is saved to the file. If _PC-Pine_ is
   configured to access several different IMAP servers, each password
   entered will be kept (associated with the corresponding host name) in
   memory during the current session, and optionally, in the _PINE.PWD_
   file for use in subsequent sessions.
   
   _WARNING_! Use this feature with caution! It effectively makes the
   user's mail no more secure than the physical security of the machine
   running _PC-Pine_. What's more, while the password is cloaked by a
   mild (some might say, feeble) encryption scheme, it is nonetheless
   sitting in a file on the PC's disk and subject to cracking by anyone
   with access to it. _BEWARE_!
   
   Another feature of DOS is the lack of standard scratch area for
   temporary files. During the course of a session, _PC-Pine_ may require
   numerous temporary files (large message texts, various caches, etc.).
   Where to create them can be a problem, particularly when running under
   certain network operating systems. _PC-Pine_ observes the _TMPDIR_,
   _TMP_, and _TEMP_ environment variables, and creates temporary files
   in the directory specified by either. In their absence, _PC-Pine_
   creates these files in the root of the current working drive. Some
   temporary files have to be created in the same directory as the file
   they are a temporary copy of. For example, a pinerc file or a address
   book file.

                               Behind the Scenes
                                       
   Many people ask how certain _Pine_ features are implemented. This
   section outlines some of the details.
   
Address Books

   Beginning with _Pine_ 4.00 there are two types of address book
   storage. There are _local_ address books, which are the address books
   that are stored in a local file (the address books _Pine_ has had all
   along); and there are _remote_ address books, which are stored on an
   IMAP server.
   
    Information About Remote Address Books
    
     NOTE: The remote address book capability does not allow you to
     access an existing local address book from a remote system! That
     is, you can't set the remote address book to something like
     {remote.host}.addressbook and expect to access the existing
     .addressbook _file_ on remote.host. Instead, you need to create a
     new remote address book in a new, previously unused remote mail
     _folder_. Then you can use the _Select_ and _Apply Save_ commands
     in the address book screen to _Save_ all of the entries from an
     existing local address book to the new remote address book.
     
   Beginning with _Pine_ 4.00 there is a new type of address book called
   a remote address book. A remote address book is stored in a mail
   folder on an IMAP server. A _Pine_ remote address book is just like a
   _Pine_ local address book in that it is not interoperable with other
   email clients. The folder is a regular folder containing mail messages
   but those messages are special. The first message must be a pine
   remote address book header message which contains the header
   _x-pine-addrbook_. The last message in the folder contains the address
   book data. In between the first and the last message are old versions
   of the address book data. The address book data is simply stored in
   the message as it would be on disk, with no MIME encoding. When it is
   used the data from the last message in the folder is copied to a local
   file and then that file is used exactly like a local address book file
   is used. When a change is made the modified local file is appended to
   the remote folder in a new message. In other words, the local file is
   just a cache copy of the data in the remote folder. Each client which
   uses the remote address book will have its own cache copy of the data.
   Whenever a copy is done the entire address book is copied, not just
   the entries which have changed.
   
   _Pine_ can tell that the remote data has changed by one of several
   methods. If the date contained in the Date header of the last message
   has changed then it knows it has changed. If the UID of the last
   message has changed, or the number of messages in the folder has
   changed, it knows that it has changed. When _Pine_ discovers the
   folder has changed it gets a new copy and puts it in the local cache
   file.
   
   There is a new configuration file variable for remote address books
   called remote-abook-metafile. The variable is the name of a file in
   which information about remote address books is stored. There is one
   line in the metafile for each remote address book. The information
   stored there is the name of the cache file and information to help
   figure out when the remote folder has changed. If the metafile or any
   of the cache files is deleted then _Pine_ will rebuild them the next
   time it runs.
   
   Remote address books have names that look just like regular remote
   mail folder names. For example:
   
     {host.domain}foldername
     
   _Pine_ decides whether or not an address book is remote simply by
   looking at the first character of the address book name and comparing
   it to '_{_'.
   
    Information About All Address Books
    
   The address book is named, by default, .addressbook in the user's Unix
   home directory, or in the case of _PC-Pine_, ADDRBOOK, in the same
   directory as the PINERC file. There may be more than one address book,
   and the default name can be overridden via an entry in any of the
   _Pine_ configuration files. The two configuration variables
   address-book and global-address-book are used to specify the names of
   the address books. Each of these variables is a list variable. The
   total set of address books for a user is the combination of all the
   address books specified in these two lists. Each entry in the list is
   an optional nickname followed by an address book name. The nickname is
   everything up to the last space before the file name. The
   _global-address-book_ list will typically be configured in the
   system-wide configuration file, though a user may override it like
   most other variables. Address books which are listed in the
   _global-address-book_ variable are forced read-only, and are typically
   shared among multiple users.
   
   Local address books (or local cache files for remote address books)
   are simple text files with lines in the format:
   
     <nickname>TAB<fullname>TAB<address>TAB<fcc>TAB<comments>
     
   The last two fields are optional. A "line" may be made up of multiple
   actual lines in the file by using continuation lines, which are lines
   beginning with SPACE characters. The line breaks may be after TABs or
   in between addresses in a distribution list. Each _actual_ line in the
   file must be less than 1000 characters in length.
   
   Nicknames (the first field) are short names that the user types
   instead of typing in the full address. There are several characters
   which aren't allowed in nicknames in order to avoid ambiguity when
   parsing the address (SPACE, COMMA, @, ", ;, :, (, ), [, ], <, >, \).
   Nicknames aren't required. In fact, none of the fields is required.
   
   The _fullname_ field is usually stored as Last_name, First_name, in
   order that a sort on the fullname field comes out sorted by Last_name.
   If there is an unquoted comma in the fullname, _Pine_ will flip the
   first and last name around and get rid of the comma when using the
   entry in a composition. It isn't required that there be a comma,
   that's only useful if the user wants the entries to sort on last
   names.
   
   The _address_ field takes one of two forms, depending on whether the
   entry is a single (simple) address or a distribution list. For a
   simple entry, the address field is an RFC 822 address. This could be
   either the email-address part of the address, i.e., the part that goes
   inside the brackets (<>), or it could be a full RFC 822 address. The
   phrase part of the address (the fullname) is used unless there is a
   fullname present in the fullname field of the address book entry. In
   that case, the fullname of the address book entry replaces the
   fullname of the address. For a distribution list, the <address> is in
   the format:
   
     "(" <address>, <address>, <address>, ... ")"
     
   The only purpose for the parentheses around the list of addresses is
   to make it easier for the parsing routines to tell that it is a simple
   entry instead of a list. The two are displayed differently and treated
   slightly differently in some cases, though most of the distinction has
   disappeared. Each of the addresses in a list can be a full RFC 822
   address with fullname included, or it may be just the simple
   email-address part of the address. This allows the user to have a list
   which includes the fullnames of all the list members. In both the
   simple and list cases, addresses may also be other nicknames which
   appear in this address book or in one of the other address books.
   (Those nicknames are searched for by looking through the address books
   in the order they appear in the address book screen, with the first
   match winning.) Lists may be nested. If addresses refer to each other
   in a loop (for example, list A includes list B which includes list A
   again) this is detected and flagged. In that case, the address will be
   changed to "**** address loop ****".
   
   The optional _fcc_ field is a folder name, just like the fcc field in
   the composer headers. If the first address in the To field of a
   composition comes from an address book entry with an fcc field, then
   that fcc is placed in the fcc header in the composer.
   
   The _comments_ field is just a free text field for storing comments
   about an entry. By default, neither the fcc nor the comments field is
   shown on the screen in the address book screen. You may make those
   fields visible by configuring the variable addressbook-formats. They
   are also searched when you use the _WhereIs_ command in the address
   book screen and are visible when you _View_ or _Update_ an entry.
   
   The address book is displayed in the order that it is stored. When the
   user chooses a different sorting criterion, the data is actually
   sorted and stored, as opposed to showing a sorted view of the data.
   
   When the address book is written out, it is first written to a
   temporary file and if that write is successful it is renamed. This
   guards against errors writing the file that might destroy the whole
   address book. The address book is re-written after each change. If the
   address book is a remote address book, the file is then appended to
   the remote mail folder using IMAP.
   
   The end-of-line character(s) in the address book file are those native
   to the system writing it. So it is <LF> on Unix and <CR><LF> on PC's.
   However, both Unix and PC versions of _Pine_ can read either format,
   so it should be possible to share a read-only address book among the
   two populations (using NFS, for example). The end-of-line character
   for the LookUp file is always just <LF>, even on a PC.
     _________________________________________________________________
   
  Address Book Lookup File
  
   Starting in 3.90 there is an additional file for each address book,
   called the LookUp file. It usually has the same name as the address
   book file with the suffix ".lu" appended. (It might have a different
   name if a file name length restriction prohibited that name.) This
   file is created and maintained by _Pine_. If it is deleted, _Pine_
   will recreate it next time it runs. Its purpose is to speed up lookups
   for large address books and to reduce memory requirements for large
   address books. A fairly detailed description of how it is used is
   given in src/pine/adrbklib.h.
   
   The lookup file changes whenever the address book itself is changed.
   If it doesn't exist, _Pine_ attempts to create it. If _Pine_ doesn't
   have permission to create the lookup file with the standard name, it
   will create a temporary version in a temp directory. You want to avoid
   this since it would have to be rebuilt every time _Pine_ was run, and
   rebuilding takes a significant time for a large address book. So, if
   you're going to have a shared address book in a read-only directory,
   it is highly desirable to create the lookup file so that the users
   sharing it won't have to each create a copy in a temp directory. You
   can do that by running _Pine_ and accessing the address book under a
   user id which does have permission to write the file or by using the
   _-create_lu_ command line argument to _Pine_. If users may be using a
   shared address book that needs updating, it is best to _move_ the old
   address book to another name rather than copying over it since the
   file may be opened by running _Pine_s. It is also best to make the
   lookup file for the new addrbook before moving it and the address book
   file into place, otherwise users may get stuck attempting to
   initialize the new lookup file. The lookup file contains a timestamp
   which records the mtime of the address book file when the lookup file
   was last updated. Whenever a user runs _Pine_ the current mtime of the
   address book is checked against this timestamp and if they differ,
   _Pine_ will want to rebuild the lookup file. Because of this, it isn't
   a good idea to build the lookup file and then _copy_ the address book
   and lookup file into place. You should move it or copy it in some way
   which preserves the address book file's mtime (e.g., use _mv_ or
   _tar_).
   
    Validity Checking of Address Books
    
   There is no file locking done on _Pine_ address books, however, there
   is considerable validity checking done to make sure that the address
   book hasn't changed unexpectedly. Whenever the address book is about
   to be changed, a check is made to see if the file is newer than when
   we read it or the remote address book folder has changed since we last
   copied it. If either of these is true, the change is aborted.
   
   There is an automatic, behind-the-scene check that happens every so
   often, also. For example, if someone else changes one of the address
   books that you have configured, your _Pine_'s copy of the address book
   will usually be updated automatically without you noticing. This
   checking happens at the same time as new mail checking takes place,
   unless you are actively using the address book, in which case it
   happens more frequently.
   
   Another sort of validity check is that the lookup file contains a
   timestamp internally that is supposed to match the time that the
   address book file itself was last modified. If the lookup file
   timestamp doesn't match the date of the address book file, a new
   lookup file is built. If you are having trouble, it is always ok to
   remove the lookup file and restart. _Pine_ will automatically rebuild
   the lookup file.
   
   One other validity check happens when looking up an entry in the
   address book file. An entry is looked up by first getting an offset
   into the address book file from the lookup file. A seek to that
   location is done and then the entry is read. An entry should be at the
   start of a line. If it isn't, something is wrong. In that case, the
   lookup file is rebuilt and the operation is repeated if possible.
     _________________________________________________________________
   
Remote Configuration

   Beginning with _Pine_ 4.30, configuration information may be stored
   remotely. Remote configuration information is stored in a folder on an
   IMAP server. This should be a folder which is used only for storing
   the configuration information. In other words, it should be a folder
   which didn't exist before.
   
   Remote configuration folders are very similar to remote address book
   folders. They both consist of a header message, which serves to
   identify the type of folder; the last message, which contains the
   data; and intermediate messages, which contain old versions of the
   data. The first message must contain the header _x-pine-pinerc_.
   
   When a remote configuration is being used, the folder is checked to
   make sure it is a remote configuration folder, then the data contained
   in the last message is copied to a temporary file. That file is
   treated just like any regular local configuration file from that point
   on. Whenever a configuration change is made, the entire file is copied
   back to the IMAP server and is appended to the folder as a new
   message.
   
   Because remote configuration folders are so similar to remote address
   books, the configuration variable remote-abook-metafile is used by
   both.
   
   Remote configuration folders have names that look just like regular
   remote mail folder names. For example:
   
     {host.domain}mypinerc
     
   _Pine_ decides whether or not a configuration file is remote simply by
   looking at the first character of the name and comparing it to '_{_'.
     _________________________________________________________________
   
Checkpointing

   Periodically _Pine_ will save the whole mail folder to disk to prevent
   loss of any mail or mail status in the case that it gets interrupted,
   disconnected, or crashes. The period of time _Pine_ waits to do the
   checkpoint is calculated to be minimally intrusive. The timing can be
   changed (but usually isn't) at compile time. Folder checkpointing
   happens for both local folders and those being accessed with IMAP. The
   delays are divided into three categories:
   
   Good Time:
          This occurs when _Pine_ has been idle for more than 30 seconds.
          In this case _Pine_ will checkpoint if 12 changes to the file
          have been made or at least one change has been made and a
          checkpoint hasn't been done for five minutes.
   Bad Time:
          This occurs just after _Pine_ has executed some command. _Pine_
          will checkpoint if there are 36 outstanding changes to the mail
          file or at least one change and no checkpoint for ten minutes.
   Very Bad Time:
          Done when composing a message. In this case, _Pine_ will only
          checkpoint if at least 48 changes have been made or at least
          one change has been made in the last twenty minutes with no
          checkpoint.
     _________________________________________________________________
   
Debug Files

   If Unix _Pine_ is compiled with the compiler _DEBUG_ option on (the
   default), then _Pine_ will produce debugging output to a file. The
   file is normally .pine-debugX in the user's home directory where _X_
   goes from 1 to 4. Number 1 is always the most recent session and 4 the
   oldest. Four are saved because often the user has gone in and out of
   _Pine_ a few times after a problem has occurred before the expert
   actually gets to look at it. The amount of output in the debug files
   varies with the debug level set when _Pine_ is compiled and/or as a
   command line flag. The default is level 2. This shows very general
   things and records errors. Level 9 produces copious amounts of output
   for each keystroke.
   
   _PC-Pine_ creates a single debug file named PINEDEBG.TXT in the same
   directory as the PINERC file.
     _________________________________________________________________
   
Filters

   _Pine_ is not designed to process email messages as they are
   delivered; rather _Pine_ depends on the fact that some other program
   (sendmail, etc) will deliver messages and _Pine_ simply reads the
   email folders which that other program creates. For this reason, _Pine_
   cannot filter incoming email into different folders. It can, however,
   work alongside most of the programs available over the Internet which
   perform this task. _Pine_ is known to operate successfully with the
   _Elm_ _filter_ program and with _procmail_.
   
   _Pine_ allows users to specify a set of incoming-folders. _Pine_ will
   separate out all the folders listed as _incoming-folders_ and offer
   convenient access to these. We hope that in the future _Pine_ will be
   able to offer new message counts for all of the incoming folders, but
   we haven't done this so far because of the performance penalty.
     _________________________________________________________________
   
Folder Formats and Name Extensions

   A folder is a group of messages. The default format used by Unix _Pine_
   is the Berkeley mail format. It is also used by the standard _mail_
   command and by _elm._ Unix _Pine_ also understands message folders in
   other formats, such as Tenex, MH, MMDF, and Netnews.
   
   _PC-Pine_ reads and writes local (PC) folders in a special format
   similar to the Tenex format. Near as we can tell, _PC-Pine_ is the
   only program to use this format. Beginning with version 3.90, _PC-Pine_
   includes a ReadOnly driver for the Berkeley mailbox format in
   addition. That means that you can import Unix mail folders, or mount
   them via NFS or SMB, and _PC-Pine_ can read them --but not modify
   them.
   
   Extensions. In the past, file name extensions have been significant in
   both Unix _Pine_ and _PC-Pine_, but this has caused more problems than
   it solved. Therefore, on Unix _Pine_ extensions no longer have any
   special meaning, and this is the trend for _PC-Pine_ as well.
   
   By default, _PC-Pine_ adds ".MTX" to the name of any local (PC)
   folders that are referenced, and suppresses the extension from the
   "Folder List" display. Now that _PC-Pine_ can read more than one
   folder format, the MTX extension no longer implies a particular
   format, and is largely irrelevant. By using the folder_extension
   option, you can change this behavior. In particular, you may set
   _folder-extension_ to the "null string" (a pair of double quotes)
   which tells _PC-Pine_ to neither add nor hide-from-view _any_ folder
   name extension.
   
   The reason you might wish to over-ride the MTX default is that recent
   versions of _PC-Pine_ have the ability to open (albeit ReadOnly)
   normal Unix mail folders. Since it might be inconvenient to rename all
   of them to have an MTX extension, it is possible with this option to
   switch _PC-Pine_'s behavior so that such folders can be seen and
   accessed without changing their names. However, doing this means that
   your existing _PC-Pine_ local folders will have apparently changed
   their names. For example, if you had a local folder named "FOO" it
   will now appear in the "Folder List" as "FOO.MTX". If you wish to save
   additional messages to that folder, you will need to enter the full
   name, "FOO.MTX" at the _Save_ prompt. Likewise for _GoTo_.
   
   If you wish to permanently avoid having to deal with folder name
   extensions, you will need to set this option to the null string by
   entering two double- quote marks, and you will need to rename your
   existing local folders to not have an MTX extension. In DOS this can
   be done in one command, once you have changed to your mail directory:
   RENAME *.MTX *.
   
   We don't know why you might wish to, but you could also use this
   option to tell _PC-Pine_ to use an extension other than MTX. In this
   case, enter the three characters you desire to use in lieu of "MTX".
   Note that your existing folders will need to be renamed to correspond
   to this new extension.
   
   Berkeley Mail Format
          This format comes to us from the ancient UNIX mail program,
          _/bin/mail._ (Note that this doesn't have anything to do with
          Berkeley, but we call it the Berkeley mail file format anyway.)
          This program was actually used to interactively read mail at
          one time, and is still used on many systems as the local
          delivery agent. In the Berkeley mail format, a folder is a
          simple text file. Each message (including the first) must start
          with a separator line which takes approximately the form:
          
     From juser@u.example.edu Wed Aug 11 14:32:33 1993
          Each message ends with two blank lines. There are actually
          several different variations in the date part of the string,
          twenty at last count. Because of the format of the separators,
          lines in the mail message beginning with "From ", space
          included, risk being confused as message separator lines. Some
          mail programs will interpret any line beginning with "From " as
          a message separator, while others --including _Pine_-- will not
          be confused unless the line really looks like a message
          separator, complete with address and date. Such lines will be
          modified to begin with ">From ". In deference to other mail
          programs, you may also set the save-will-quote-leading-froms
          feature, in which case any line beginning with "From " will be
          modified as above. If you see this occasionally in incoming
          mail messages, the culprit is not _Pine_ but the message
          delivery program being used at your site.
          You can fool _Pine_ into thinking a file is a mail folder by
          copying a suitable message separator from a real folder to the
          beginning of the file and wherever you want message boundaries.
          The vast majority of _INBOX_es _Pine_ reads and folders it
          writes are of this format.
   Tenex and MTX Formats
          Like the Berkeley format, the Tenex folder format uses a single
          file per folder. Historically, the name of Tenex-format folders
          ended with _.txt_, but this rule is no longer enforced. The
          file format consists of a header line followed by the message
          text for each message. The header is in one of two forms:
          
     dd-mmm-yy hh:mm:ss-zzz,n;ffffffffffff
     dd-mmm-yyyy hh:mm:ss sssss,n;ffffffffffff
          and is immediately followed by a newline (and the message
          text). The fields in the formats are:

        dd      two-digit day of month (leading space if a single-digit day)

        mmm     three-letter English month name (Jan, Feb, etc.)

        yy      two-digit year in 20th century (obsolete)

        yyyy    four-digit year

        hh      two-digit hour in 24-hour clock (leading zero if single-digit)

        mm      two-digit minute (leading zero)

        ss      two-digit second (leading zero)

        zzz     three-letter North American time zone (obsolete)

        sssss   signed four-digit international time zone as in RFC 822

        n       one or more digits of the size of the following message in

                bytes

        ffffffffffff

                twelve-digit octal flags value

          Punctuation is as given above.
          The time in the header is the time that message was written to
          the folder. The flags are interpreted as follows: the high
          order 30 bits are used to indicate user flags, the next two
          bits are reserved for future usage, the low four bits are used
          for system flags (010 = answered, 04 = flagged urgent, 02 =
          deleted, 01 = seen).
          If a Tenex-format (or empty) file named _mail.txt_ exists in a
          _Pine_ user's home directory, this triggers special processing
          in _Pine_. When _INBOX_ is opened, mail is automatically moved
          from _/usr/spool/mail_ into _mail.txt_ in the user's home
          directory.
          The format used by _PC-Pine_ is identical to the Tenex format,
          with two exceptions: the folder name ends with _.MTX_ instead
          of _.txt_ (this is a requirement in the MTX format), and
          DOS-style CR/LF newlines are used instead of UNIX-style LF
          newlines.
   Netnews Format
          The netnews format is a ReadOnly format which uses directories
          under /usr/spool/news as folders. The /usr/spool/news/ prefix
          is removed and all subsequent ``/'' (slash) characters are
          changed to ``.'' (period). For example, the netnews folder name
          _comp.mail.misc_ refers to the directory name
          /usr/spool/news/comp/mail/misc. In addition, the news folder
          name must appear in the file /usr/lib/news/active for it to be
          recognized. Individual messages are stored as files in that
          directory, with file names being the ASCII form of a number
          assigned to that message. The default locations above can be
          changed with the config variables news-spool-directory and
          news-active-file-path.
     _________________________________________________________________
   
Folder Locking

   There are two kinds of locking which _Pine_ has to worry about. The
   first might be called program-contention locking. This affects the
   times when a program is performing actual updates on a folder. An
   update might be a message delivery program appending a message
   (_sendmail_ delivering a message to an _INBOX_), status changes
   (checkpoints by _Pine_ every few minutes) or deletion of messages (an
   expunge in _Pine_). For moderate sized mail messages, these operations
   should not last for more than a few seconds. The second kind of
   locking has to do with user-contention situations. This would be the
   case when one folder is shared by a group of people or even when one
   person starts multiple email sessions all of which access the same
   folders and _INBOX_.
   
   There are two standard locking mechanisms which handle
   program-contention locking. To be on the safe side, _Pine_ implements
   both of them. The older mechanism places a file _xxxx.lock_ (where
   _xxxx_ is the name of the file being locked) in the same directory as
   the file being locked. This makes use of the fact that directory
   operations are atomic in UNIX and mostly works across NFS. There are
   involved algorithms used to determine if a lock has been held for an
   excessive amount of time and should be broken. The second
   program-contention locking mechanism uses the _flock()_ system call on
   the mailbox. This is much more efficient and the locks can't get stuck
   because they go away when the process that created them dies. This is
   usually found on 4BSD and related machines.
   
   In addition to these, _Pine_--through the c-client library--provides
   robust locking which prevents several users (or several instances of
   the same user) having a mail file open (for update) at once. This
   user-contention lock is held the entire time that the folder is in
   use.
   
   With IMAPd 7.3(63) and _Pine_ 3.84 and higher, the second _Pine_
   session which attempts to open a particular folder (usually _INBOX_)
   with _Pine_ will ``win''. That is to say, the second session will have
   read/write access to the folder. The first user's folder will become
   read-only. (Note that this is exactly the opposite of the behavior
   prior to _Pine_ 3.84 where the second open was read-only. Having the
   latest open be read-write seems to match more closely with what users
   would like to have happen in this situation.) _Pine_'s additional
   locking is only effective against multiple uses of _Pine_ or other
   programs using the c-client library, such as _MailManager, ms, IMAPd
   _and a few others. Beginning with _Pine_ 3.85, there is a _-o_ command
   line flag to intentionally open a mailbox read-only.
   
   _Pine_ locking on UNIX systems works by creating lock files in _/tmp_
   of the form _\usr\spool\mail\joe. _The system call _flock()_ is then
   used on these files; the existence of the file alone does not
   constitute a lock. This lock is created when the folder is opened and
   destroyed when it is closed. When the folder is actually being
   written, the standard UNIX locks are also created.
   
   If a folder is modified by some other program while _Pine_ has it
   open, _Pine_ will give up on that mail file, concluding it's best not
   to do any further reads or writes. This can happen if another mailer
   that doesn't observe _Pine_'s user-contention locks (e.g. _elm_ or
   _mail)_ is run while _Pine_ has the mail folder open. _Pine_
   checkpoints files every few minutes, so little data can be lost in
   these situations.
   
   _PC-Pine_ does not do any folder locking. It depends on IMAP servers
   to handle locking of remote folders. It is assumed that only one _Pine_
   session can be running on the PC at a time, so there is no contention
   issue around folders on the PC itself.
     _________________________________________________________________
   
INBOX and Special Folders

   The _INBOX_ folder is treated specially. It is normally kept open
   constantly so that the arrival of new mail can be detected. The name
   _INBOX_ refers to wherever new mail is retrieved on the system. If the
   inbox-path variable is set, then _INBOX_ refers to that. IMAP servers
   understand the concept of _INBOX_, so specifying the folder
   _{imap.u.example.edu}INBOX_ is meaningful. The case of the word _INBOX_
   is not important, but _Pine_ tends to display it in all capital
   letters.
   
   The folders for sent mail and saved messages folders are also somewhat
   special. They are automatically created if they are absent and
   recreated if they are deleted.
     _________________________________________________________________
   
Internal Help Files

   The file pine.hlp in the pine subdirectory of the distribution
   contains all the help text for _Pine_. On UNIX, it is compiled right
   into the _Pine_ binary as strings. This is done to simplify
   installation and configuration. The pine.hlp file is in a special
   format that is documented at the beginning of the file. It is divided
   into sections, each with a name that winds up being referenced as a
   global variable. This file is processed by two awk scripts and turned
   into C files that are compiled into _Pine_.
   
   _PC-Pine_, which tries to run on machines with as little as 640k of
   memory, leaves the _Pine_ help text out of the executable. PINE.EXE,
   PINE.HLP, and PINE.NDX are all needed for _PC-Pine_'s help system.
     _________________________________________________________________
   
International Character Sets

   While _Pine_ was designed in the U.S. and used mostly for
   English-language correspondence, it is a goal for _Pine_ to handle
   email in almost any language. Many sites outside of the U.S. run _Pine_
   in their native language. The default character set for _Pine_ is
   US-ASCII. That can be changed in the personal or system-wide
   configuration file with the variable character-set.
   
   When reading incoming email, _Pine_ allows all character sets to pass
   through. _Pine_ doesn't actually display the characters but simply
   passes them through; it is up to the actual display device to show the
   characters correctly. When composing email, _Pine_ will accept input
   in any language and tag the message according to the _character-set_
   variable. Again, it is up to the input device to generate the correct
   sequences for the character set being used.
   
   With the exception of UNICODE-1-1-UTF-7, the outgoing message is
   checked to see if it is all US-ASCII text (and contains no escape
   characters). In that case, the text will be labeled as US-ASCII even
   if the _character-set_ variable is set to something else. The theory
   is that every reasonable character set will have US-ASCII as a subset,
   and that it makes sense to label the text with the
   lowest-common-denominator label so that more mailers will be able to
   display it. Text in the UNICODE-1-1-UTF-7 character set is never
   re-labeled as US-ASCII. If the outgoing message is not all US-ASCII
   text, then it will be labeled with the _character-set_ variable set by
   the user. If the user has not set the _character-set_ variable then it
   will be labeled as _X-UNKNOWN-CHARSET_.
   
   _BUG_: If you prepare a UNICODE-1-1 document and read it into the
   composer with _^R_, _Pine_ may mistreat it. If your document, when
   misviewed as 8-bit bytes, does not contain any individual bytes
   greater than 0x7f base 16, then _Pine_ will re-label your outgoing
   message as US-ASCII, even if your message is really in Unicode
   Cyrillic, Arabic, or Thai. On the other hand, if your UNICODE-1-1,
   when misviewed as 8-bit bytes, does contain at least one individual
   byte greater than 0x7f base 16, as is likely for Unicode
   French/German/Spanish, Greek, Japanese, and Chinese, then _Pine_ will
   retain the UNICODE-1-1 label.
   
   The character sets are:
   
     US-ASCII Standard 7 bit English characters
     ISO-8859-1 8 bit European "latin 1" character set
     ISO-8859-2 8 bit European "latin 2" character set
     ISO-8859-3 8 bit European "latin 3" character set
     ISO-8859-4 8 bit European "latin 4" character set
     ISO-8859-5 8 bit Latin and Cyrillic
     ISO-8859-6 8 bit Latin and Arabic
     ISO-8859-7 8 bit Latin and Greek
     ISO-8859-8 8 bit Latin and Hebrew
     ISO-8859-9 8 bit European "latin 5" character set
     ISO-8859-10 8 bit European "latin 6" character set
     KOI8-R 8 bit Latin and Russian
     VISCII 8 bit Latin and Vietnamese
     ISO-2022-JP Latin and Japanese
     ISO-2022-KR Latin and Korean
     UNICODE-1-1 Unicode
     UNICODE-1-1-UTF-7 Mail-safe Unicode
     ISO-2022-JP-2 Multilingual
     
   Earlier versions of _Pine_ made use of the character set tags
   associated with text in MIME to decide if the text should be displayed
   or not. Depending on the character set tag and the _character-set_
   variable in _Pine_, the text was either displayed as is, displayed
   with some characters filtered out, or not displayed at all. The
   current version uses a much simpler algorithm in order to maximize the
   chance that useful contents are readable by the user. It simply
   displays _all_ messages of type text and makes no attempt to filter
   out characters that may be in the wrong character set. If the text is
   tagged as something other than US-ASCII and the tag does not match the
   character set that the _character-set_ variable is set to, then a
   warning is printed at the start of the message. In that case, it is
   possible that the text will be displayed incorrectly. For example, if
   the text is one variant of ISO-8859 and the display device is another
   variant, some of the characters may show up on the screen as the wrong
   character. Or if the text is Japanese and the display device is not,
   some parts of the message may be total gibberish (which will look like
   ASCII gibberish). On the other hand, the parts of the Japanese message
   that really are US-ASCII will be readable in the midst of the
   gibberish.
   
   In the case of _PC-Pine_, the character values cannot be passed
   through to the display device unaltered since MS-DOS uses various
   non-standard character sets called "Code Pages".
   
   The mapping between DOS Code Page and standard character set is
   controlled by the _character-set_ variable in the PINERC file and the
   PC's installed Code Page. _PC-Pine_ will automatically map common
   characters in IBM Code Pages 437, 850, 860, 863, and 865 to ISO-8859-1
   and back when the PINERC has _character-set=ISO-8859-1_. _Pine_ will
   also map common characters for IBM Code Page 866 to ISO-8859-5 and
   back when _character-set=ISO-8859-5_. The mappings are bi-directional,
   and applied to all saved text attachments in the defined character
   set, messages exported, etc.
   
   Alternatively, the translation tables can be configured externally and
   applied at run time whenever the _character-set_ variable is set to
   something other then "US-ASCII" (the default). _PC-Pine_ looks in the
   text file pointed to by the environment variable ISO_TO_CP for the
   table to use for mapping text matching the type defined by the
   _character-set_ variable into the local Code Page value. _PC-Pine_
   looks in the text file pointed to by the environment variable
   CP_TO_ISO for the table to use for mapping text in the local Code Page
   into outbound text tagged with the _character-set_ variable's value.
   
   A text file containing a character set mapping table is expected to
   contain 256 elements where each element is a decimal number separated
   from the next element by white-space (space, tab or newline, but no
   commas!). The index of the element is the character's value in the
   source character set, and the element's value is the corresponding
   character's value in the destination character set.
     _________________________________________________________________
   
Interrupted and Postponed Messages

   If the user is composing mail and is interrupted by being disconnected
   (SIGHUP, SIGTERM or end of file on the standard input), _Pine_ will
   save the interrupted composition and allow the user to continue it
   when he or she resumes _Pine_. As the next _Pine_ session starts, a
   message will be given that an interrupted message can be continued. To
   continue the interrupted message, simply go into the composer. To get
   rid of the interrupted message, go into the composer and then cancel
   the message with _^C._
   
   Composition of half-done messages may be postponed to a later time by
   giving the _^O_ command. Other messages can be composed while
   postponed messages wait. All of the postponed messages are kept in a
   single folder. Postponing is a good way to quickly reference other
   messages while composing.
     _________________________________________________________________
   
Message Status

   The c-client library allows for several flags or status marks to be
   set for each message. _Pine_ uses four of these flags: UNSEEN,
   DELETED, ANSWERED, and FLAGGED. The N in _Pine_'s FOLDER INDEX means
   that a message is unseen-it has not been read from this folder yet.
   The D means that a message is marked for deletion. Messages marked
   with D are removed when the user _Expunges_ the folder (which usually
   happens when the folder is closed or the user quits _Pine_). The A in
   _Pine_'s FOLDER INDEX means that the message has been replied-to. The
   * in _Pine_'s FOLDER INDEX means that the message has been ``flagged''
   as important. That is, the user used the _Flag_ command to turn the
   FLAGGED flag on. This flag can mean whatever the user wants it to
   mean. It is just a way to mark some messages as being different from
   others. It will usually probably be used to mark a message as somehow
   being ``important''. For Berkeley format folders, the message status
   is written into the email folder itself on the header lines marked
   Status: and X-Status. In Tenex and _PC-Pine_'s MTX folder formats, the
   status goes into the 36-bit octal flags.
     _________________________________________________________________
   
MIME: Reading a Message

   _Pine_ should be able to handle just about any MIME message. When a
   MIME message is received, _Pine_ will display a list of all the parts,
   their types and sizes. It will display the attachments when possible
   and appropriate and allow users to _Save_ all other attachments.
   
   Starting with version 3.90, _Pine_ honors the "mailcap" configuration
   system for specifying external programs for handling attachments. The
   mailcap file maps MIME attachment types to the external programs
   loaded on your system which can display and/or print the file. A
   sample mailcap file comes bundled with the _Pine_ distribution. It
   includes comments which explain the syntax you need to use for
   mailcap. With the mailcap file, any program (mail readers,
   newsreaders, WWW clients) can use the same configuration for handling
   MIME-encoded data.
   
   If a MAILCAPSenvironment variable is defined, _Pine_ will use that to
   look for one or more mailcap files, which are combined. In the absence
   of MAILCAPS, Unix _Pine_ will look for a personal mailcap file in
   ~/.mailcap and combine that with a system-wide file in /etc/mailcap.
   _PC-Pine_ will look for a file named MAILCAP in the same directory as
   the PINERC file, and/or the directory containing the PINE.EXE
   executable.
   
   Messages which include _rich text_ or _enriched text_ in the main body
   will be displayed in a very limited way (it will show bold and
   underlining).
   
   If _Pine_ sees a MIME message part tagged as type IMAGE, and _Pine_'s
   image-viewer configuration variable is set, _Pine_ will attempt to
   send that attachment to the named image viewing program. In the case
   of UNIX _Pine_, the DISPLAY environment variable is checked to see if
   an X-terminal is being used (which can handle the images). If the
   _image-viewer_ variable is not set, _Pine_ uses the _mailcap_ system
   to determine what to do with IMAGE types, just as it does for any
   other non-TEXT type, e.g. type APPLICATION. For MIME's generic "catch
   all" type, APPLICATION/OCTET-STREAM, the _mailcap_ file will probably
   not specify any action, but _Pine_ users may always _Save_ any MIME
   attachment to a file.
   
   MIME type "text/plain" is handled a little bit differently than the
   other types. If you are viewing the main body part in the MESSAGE TEXT
   viewing screen, then _Pine_ will use its internal viewer to display
   it. This happens even if there is a mailcap description which matches
   this particular type. If it is labeled as having a character set other
   than the one you are using, it will still be displayed by the internal
   viewer (perhaps incorrectly), though you will get a warning message
   prepended to the message in the viewing screen. However, if you view a
   part of type "text/plain" from the ATTACHMENT INDEX screen, then _Pine_
   will check the mailcap database for a matching entry and use it in
   preference to its internal viewer.
   
   Some text attachments, specifically those which are just other email
   messages forwarded as MIME messages, are displayed as part of the main
   body of the message. This distinction allows easy display when
   possible (the forward as MIME case) and use of an attachment viewer
   when that is desirable (the plain text file attachment case).
   
   If the parts of a multipart message are alternate versions of the same
   thing _Pine_ will select and display the one best suited. For parts of
   type "message/external-body", the parameters showing the retrieval
   method will be displayed, and the retrieval process is automated.
   Messages of type "message/partial" are not currently supported.
     _________________________________________________________________
   
MIME: Sending a Message

   There are two important factors when trying to include an attachment
   in a message: encoding and labeling. _Pine_ has rules for both of
   these which try to assure that the message goes out in a form that is
   robust and can be handled by other MIME mail readers.
   
   MIME has two ways of encoding data-Quoted-Printable and Base64.
   Quoted-Printable leaves the ASCII text alone and only changes 8-bit
   characters to "=" followed by the hex digits. For example, "=09" is a
   tab. It has the advantage that it is mostly readable and that it
   allows for end of line conversions between unlike systems. Base64
   encoding is similar to _uuencode_ or _btoa_ and just encodes a raw bit
   stream. This encoding is designed to get text and binary files through
   even the most improperly implemented and configured gateways intact,
   even those that distort uuencoded data.
   
   _All_ attachments are encoded using Base64 encoding. This is so that
   the attachment will arrive at the other end looking exactly like it
   did when it was sent. Since Base64 is completely unreadable except by
   MIME-capable mailers or programs, there is an obvious tradeoff being
   made here. We chose to ensure absolutely reliable transport of
   attachments at the cost of requiring a MIME-capable mailer to read
   them. If the user doesn't want absolute integrity he or she may always
   _include_ text (with the _^R_ command) in the body of a message
   instead of attaching it. With this policy, the only time
   quoted-printable encoding is used is when the main body of a message
   includes special foreign language characters.
   
   When an attachment is to be sent, _Pine_ sniffs through it to try to
   set the right label (content-type and subtype). An attachment with any
   lines longer than 500 characters in it or more than 10% of the
   characters are 8-bit it will be considered binary data. _Pine_ will
   recognize (and correctly label) a few special types including GIF,
   JPEG, PostScript, and some audio formats. Another method which can be
   more robust and flexible for determining the content-type and subtype
   is to base it on the file extension. This method uses a MIME.Types
   File.
   
   If it is not binary data (has only a small proportion of 8-bit
   characters in it,) the attachment is considered 8-bit text. 8-bit text
   attachments are labeled "text/plain" with charset set to the value of
   the user's _character-set_ variable. If an attachment is ASCII (no
   8-bit characters) and contains no _ESCAPE, ^N, _or _^O_ characters
   (the characters used by some international character sets), then it is
   considered plain ASCII text. Such attachments are given the MIME label
   "text/plain; charset=US-ASCII", regardless of the setting of the
   user's _character-set_ variable.
   
   All other attachments are unrecognized and therefore given the generic
   MIME label "application/octet-stream".
     _________________________________________________________________
   
New Mail Notification

   _Pine_ checks for new mail in the _INBOX_ and in the currently open
   folder every two and a half minutes by default. It used to be 30
   seconds instead of 150 seconds, but we increased it in order to reduce
   the load on large systems with lots of _Pine_ users. The value can be
   changed at compile-time in the pine/os.h file. This value can be
   changed with the variable mail-check-interval. A new mail check can be
   forced by redrawing the screen with a _^L_.
   
   When there is new mail, the message(s) will appear in the index, the
   screen will beep, and a notice showing the sender and subject will be
   displayed. If there has been more than one new message since you last
   issued a command to _Pine_, the notice will show the count of new
   messages and the sender of the most recent one.
   
   Questions have arisen about the interaction between _Pine_ and
   external mail notification routines (biff, csh, login). Firstly and
   unfortunately, we have found no PC based program that will check for
   email on an IMAP server when _PC-Pine_ is not running. If you find
   one, please tell us.
   
   The UNIX case is more complicated. _Pine_ sets the modification and
   access time on a file every time it performs a write operation (status
   change or expunge). You need to see which of these your email
   notification program is looking at to know how it will behave with
   _Pine_.
     _________________________________________________________________
   
NFS

   It is possible to access mail folders on _NFS_ mounted volumes with
   _Pine_, but there are some drawbacks to doing this, especially in the
   case of incoming-message folders that may be concurrently updated by
   _Pine_ and the system's mail delivery agent. One concern is that
   _Pine_'s user-contention locks don't work because _/tmp_ is usually
   not shared, and even if it was, _flock()_ doesn't work across _NFS._
   
   The implementation of the standard UNIX ".lock" file locking has been
   modified to work with _NFS_ as follows. Standard hitching post locking
   is used so first a uniquely named file is created, usually something
   like _xxxx.host.time.pid._ Then a link to it is created named
   _xxxx.lock_ where the folder being locked is _xxxx._ This file
   constitutes the lock. This is a standard UNIX locking scheme. After
   the link returns, a _stat(2)_ is done on the file. If the file has two
   links, it is concluded that the lock succeeded and it is safe to
   proceed.
   
   In order to minimize the risks of locking failures via _NFS_, we
   strongly recommend using IMAP rather than _NFS_ to access remote
   incoming message folders, e.g. your _INBOX_. However, it is generally
   safe to access personal saved-message folders via _NFS_ since it is
   unlikely that more than one process will be updating those folders at
   any given time. Still, some problems may occur when two _Pine_
   sessions try to access the same mail folder from different hosts
   without using IMAP. Imagine the scenario: _Pine_-A performs a write
   that changes the folder. _Pine_-B then attempts to perform a write on
   the same folder. _Pine_-B will get upset that the file has been
   changed from underneath it and abort operations on the folder.
   _Pine_-B will continue to display mail from the folder that it has in
   its internal cache, but it will not read or write any further data.
   The only thing that will be lost out of the _Pine_-B session when this
   happens is the last few status changes.
   
   If other mail readers besides _Pine_ are involved, all bets are off.
   Typically, mailers don't take any precautions against a user opening a
   mailbox more than once and no special precautions are taken to prevent
   _NFS_ problems.
     _________________________________________________________________
   
Printers and Printing

   UNIX _Pine_ can print to the standard UNIX line printers or to generic
   printers attached to ANSI terminals using the escape sequences to turn
   the printer on and off. The user has a choice of three printers in the
   configuration.
   
   The first setting, _attached-to-ansi_, makes use of escape sequences
   on ANSI/VT100 terminals. It uses "<ESC>[5i" to begin directing all
   output sent to the terminal to the printer and then "<ESC>[4i" to
   return to normal. _Pine_ will send these escape sequences if the
   printer is set to _attached-to-ansi._ This works with most ANSI/VT100
   emulators on Macs and PCs such as kermit, NCSA telnet, VersaTerm Pro,
   and WinQVT. Various terminal emulators implement the print feature
   differently. For example, NCSA telnet requires "capfile = PRN" in the
   _config.tel_ file. Attached-to-ansi printing doesn't work at all with
   the telnet provided with PC-NFS. There is also a closely related
   method called _attached-to-ansi-no-formfeed_ which is the same except
   for the lack of formfeed character at the end of the print job.
   
   _Attached-to-wyse_ and _attached-to-wyse-no-formfeed_ are very similar
   to "attached-to-ansi". The only difference is in the control
   characters sent to turn the printer on and off. The Wyse version uses
   Ctrl-R for on, and Ctrl-T for off.
   
   The second selection is the standard UNIX print command. The default
   is _lpr_, but it can be changed on a system basis to anything so
   desired in /usr/local/etc/pine.conf.
   
   The third selection is the user's personal choice for a UNIX print
   command. The text to be printed is piped into the command. _Enscript_
   or _lpr_ with options are popular choices. The actual command is
   retained even if one of the other print selections is used for a
   while.
   
   Both the second and third sections are actually lists of possible
   commands rather than single commands.
   
   If you have a PostScript printer attached to a PC or Macintosh, then
   you will need to use a utility called _ansiprt_ to get printouts on
   your printer. _Ansiprt_ source code and details can be found in the
   ./contrib directory of the _Pine_ distribution.
   
   The three printer choices are for UNIX _Pine_ only. _PC-Pine_ can only
   print to the locally attached printer. All printing on _PC-Pine_ is
   done via ROM BIOS Print Services (Int 17h). After verifying the
   existence of a local printer via the BIOS Equipment-List Service (Int
   11h), it simply sends the message text, character by character, to the
   first printer found using ASCII CR and LF at the end of lines and
   followed by an ASCII FF. Note, some system adjustments using the PC's
   "MODE" command may be required if the printer is not on the first
   parallel port. _PC-Pine_ cannot generate PostScript, so printing to
   exclusively PostScript printers does not work.
   
   _PC-Pine_ for Winsock uses the MS-Windows printer interface. A _Pine_
   print command will bring up a standard MS-Windows printer dialog box.
     _________________________________________________________________
   
Save and Export

   _Pine_ users get two options for moving messages in _Pine_: _Save_ and
   _Export_. _Save_ is used when the message should remain ``in the _Pine_
   realm.'' Saved messages include the complete header (including header
   lines normally hidden by _Pine_), are placed in a _Pine_ folder
   collection and accumulate in a standard folder format which _Pine_ can
   read. In contrast, the _Export_ command is used to write the contents
   of a message to a file for use outside of _Pine_. Messages which have
   been exported are placed in the user's home directory (unless the
   feature use-current-dir is turned on), not in a _Pine_ folder
   collection. Unless FullHeaderMode is toggled on, all delivery-oriented
   headers are stripped from the message. Even with _Export_, _Pine_
   retains message separators so that multiple messages can accumulate in
   a single file and subsequently be accessed as a folder. On UNIX
   systems, the _Export_ command pays attention to the standard _umask_
   for the setting of the file permissions.
     _________________________________________________________________
   
Sent Mail

   _Pine_'s default behavior is to keep a copy of each outgoing message
   in a special "sent mail" folder. This folder is also called the fcc
   for "file carbon copy". The existence, location and name of the sent
   mail folder are all configurable. Sent mail archiving can be turned
   off by setting the configuration variable default-fcc="". The sent
   mail folder is assumed to be in the default collection for _Save_s,
   which is the first collection named in folder-collections. The name of
   the folder can be chosen by entering a name in _default-fcc_. With
   _PC-Pine_, this can be a bit complicated. If the default collection
   for _Save_s is local (DOS), then the _default-fcc_ needs to be
   SENTMAIL, which is syntax for a DOS file. However, if the default
   collection for _Save_s is remote, then the _default-fcc_ needs to be
   sent-mail to match the UNIX syntax.
   
   The configuration variable fcc-name-rule also plays a role in
   selecting the folder to save sent mail in.
   
   A danger here is that the sent mail could grow without bound. For this
   reason, we thought it useful to encourage the users to periodically
   prune their sent mail folder. The first time _Pine_ is used each month
   it will offer to archive all messages sent from the month before.
   _Pine_ also offers to delete all the sent mail archive folders which
   are more than 1 month old. If the user or system has disabled sent
   mail archiving (by setting the configuration variable
   _default-fcc=""_) there will be no pruning question.
     _________________________________________________________________
   
Spell Checker

   Spell checking is available for UNIX _Pine_ only. We could not find an
   appropriate PC based spell checker to hook into _PC-Pine_. Even UNIX
   _Pine_ depends on the system for its spell checking and dictionary.
   _Pico_, the text editor, uses the same spell checking scheme as
   _Pine_.
   
   Lines beginning with ">" (usually messages included in replies) are
   not checked. The message text to be checked is on the standard input
   and the incorrect words are expected on the standard output.
   
   The default spell checker is UNIX _spell_. You can replace this by
   setting the speller configuration variable. _Pine_ also respects the
   environment variable SPELL. The spelling checker reads its words from
   a standard dictionary on the system. Below is a description,
   contributed by Bob Hurt, of how you can create your own personal
   dictionary with additional ``correct'' words.
   
   Step 1:
          Make a file with all the words you want to include in your new
          dictionary. I did mine with one word per line in alphabetical
          order. Caps don't matter at all, as far as I know.
   Step 2:
          At the UNIX prompt, type "cat [word file] | spellin
          /usr/dict/hlista > [new dict name]" where [word file] is the
          file you just created and [new dict name] is the name of the
          new dictionary that _Pine_ will look at instead of the standard
          _/usr/dict/hlista._ I named my word file _.bobwords_ and my
          dictionary _.bobspell_ so I don't have to see them when I do a
          _ls_ command (_ls_ doesn't list "dot" files). I also put the
          above command into my _.alias_ file as the command _makedict_
          so I can add a word to my word file and easily recreate my
          dictionary. NOTE: the new dictionary is in something called a
          "hashed" format, and can't be read normally.
   Step 3:
          Check your new dictionary. At the UNIX prompt, type "cat [word
          file] | spellout [new dict name]" If you did everything
          correctly, it should just give you another prompt. If it lists
          any of the words in your file, something is wrong. I can try to
          help if all else fails.
   Step 4:
          Now you have to tell UNIX to use your dictionary instead of the
          standard one by setting the environment variable _SPELL_ to
          access your dictionary. Go into your _.login_ or _.cshrc_ file
          in your home directory (it doesn't seem to make a difference
          which one you use) and add the line
          
     setenv SPELL "spell -d [new dict name]"
          I also created an alias for _SPELL_ in my _.alias_ file so I
          can use the UNIX _spell_ command to spell-check a file outside
          of _Pine_. (The _.alias_ line is: alias spell 'spell -d [new
          dict name]')
   Step 5:
          Now you need to logoff and log back on to let UNIX look at your
          _.login_ (or _.cshrc_) file.
          
   Here is an alternative method suggested by Zachary Leber:
   
          Create a list (e.g. _.zachwords_) with the upper case followed
          by lower case words, sorted alphabetically.
          Add this line to _.cshrc_:
          
     setenv SPELL 'spell +/home/ie/rsa/.zachwords'
          The limitation here is that the path must be absolute (e.g.
          _+~/.zachwords_ doesn't work).
          My man pages for spell show this + flag to be an easy way to do
          the exception list. This way you don't have to bother with hash
          lists or rehashing, and it seems to work across several
          platforms.
     _________________________________________________________________
   
Terminal Emulation and Key Mapping

   _Pine_ has been designed to require as little as possible from the
   terminal. At the minimum, _Pine_ requires cursor positioning, clear to
   end of line, and inverse video. Unfortunately, there are terminals
   that are missing some of these such as a vt52. _Pine_ makes no
   assumptions as to whether the terminal wraps or doesn't wrap. If the
   terminal has other capabilities it may use some of them. _Pine_ won't
   run well on older terminals that require a space on the screen to
   change video attributes, such as the Televideo 925. One can get around
   this on some terminals by using "protected field" mode. The terminal
   can be made to go into protected mode for reverse video, and then
   reverse video is assigned to protected mode.
   
   _Pine_ handles screens of most any size and resizing on the fly. It
   catches SIGWINCH and does the appropriate thing. A screen one line
   high will display only the new mail notification. Screens that are
   less than ten columns wide don't format very nicely or work well, but
   will function fine again once resized to something large. _Pine_ sets
   an internal maximum screen size (currently 170x200) and decides to use
   either _termcap_ or _terminfo_ when it is compiled.
   
   On the input side of things, _Pine_ uses all the standard keys, most
   of the control keys and (in function-key mode) the function keys.
   _Pine_ avoids certain control keys, specifically ^S, ^Q, ^H, and _^\_
   because they have other meanings outside of _Pine_ (they control data
   flow, etc.) _^H_ is treated the same as the _delete_ key, so the
   _backspace_ or _delete_ keys always works regardless of any
   configuration. There is a feature _compose-maps-delete-key-to-ctrl-d_
   which makes the delete key behave like ^D rather than ^H (deletes
   current character instead of previous character).
   
   Sometimes a communications program or communications server in between
   you and the other end will eat certain control characters. There is a
   work-around when you need it. If you type two escape characters
   followed by a character that will be interpreted as the character with
   the control key depressed. For example, _ESC ESC T_ is equivalent to
   _^T_.
   
   When a function key is pressed and _Pine_ is in regular (non-function
   key) mode, _Pine_ traps escape sequences for a number of common
   function keys so users don't get an error message or have an
   unexpected command executed for each character in the function key's
   escape sequence. _Pine_ expects the following escape sequences from
   terminals defined as VT100:
   
     ANSI/VT100
     F1: <ESC>OP
     F2: <ESC>OQ
     F3: <ESC>OR
     F4: <ESC>OS
     F5: <ESC>Op
     F6: <ESC>Oq
     F7: <ESC>Or
     F8: <ESC>Os
     F9: <ESC>Ot
     F10: <ESC>Ou
     F11: <ESC>Ov
     
   Arrow keys are a special case. _Pine_ has the escape sequences for a
   number of conventions for arrow keys hard coded and does not use
   _termcap_ to discover them. This is because _termcap_ is sometimes
   incorrect, and because many users have PC's running terminal emulators
   that don't conform exactly to what they claim to emulate. In some
   versions of _Pine_ before 4.00 there was a compile-time macro called
   TERMCAP_WINS which could be set to cause the _termcap_ or _terminfo_
   definitions to be used instead of the built in definitions. Beginning
   with 4.00 there is a hidden runtime feature which can be turned on to
   accomplish the same thing. The feature is called
   termdef-takes-precedence and it can be set in any of the _Pine_
   configuration files. Some arrow keys on old terminals send single
   control characters like _^K_ (one even sends _^\_). These arrow keys
   will not work with _Pine_. The most popular escape sequences for arrow
   keys are:
   
     Up: <ESC>[A <ESC>?x <ESC>A <ESC>OA
     Down: <ESC>[B <ESC>?r <ESC>B <ESC>OB
     Right: <ESC>[C <ESC>?v <ESC>C <ESC>OC
     Left: <ESC>[D <ESC>?t <ESC>D <ESC>OD
     
   It is possible to configure an NCD X-terminal so that some of the
   special keys operate. Brad Greer contributes these instructions:
   
   1.
          In your _.Xdefaults_ file, include the following
          "translations", using lower hex values:
          
     Pine*VT100.Translations: #override \n\
     <Key>Delete: string(0x04) \n\
     <Key>End: string(0x05) \n\
     <Key>Escape: string(0x03) \n\
     <Key>Home: string(0x01) \n\
     <Key>Next: string(0x16) \n\
     <Key>Prior: string(0x19) \n\
     <Key>KP_Enter: string(0x18) \n\
   2.
          Start up _Pine_ from an _xterm,_ and specify a "resource name".
          This resource name will allow the user to specify resources for
          _Pine_ (that deviate from the defaults). For example, _xterm
          -name Pine -e pine &_ (the resource name _Pine_ corresponds to
          the translations just added in the _.Xdefaults_ file).

                      Notes for Porting and Modification
                                       
Porting Pine to Other Platforms

   Substantial effort has gone into making _Pine_/_Pico_ portable. There
   are still, of course, a number of machine dependencies. Some of the
   ports are well-tested and some are untested. In particular, the most
   heavily used ports are the Ultrix, AIX, NeXT, Windows, and Dec Unix
   ports.
   
   Each platform is given a three letter name (see the file
   doc/pine-ports). Make up a new one for your new port. We've attempted
   to bring all potential platform dependencies into the files:
   {pico,pine}/osdep/os-xxx.h, {pico,pine}/osdep/os-xxx.ic, and
   {pico,pine}/makefile.xxx, where _xxx_ is the three letter name of the
   port. Thus any new port will hopefully just result in new versions of
   these files and some notes for the _pine-ports_ file. There are
   separate dependencies in the c-client source, but that is handled in
   separate documentation there. Regrettably, the source code is also
   full of instances of _ifdef DOS_. Most of these are due to memory
   limit problems on _DOS_ as opposed to actual system dependencies.
   
   The makefiles are kept as simple and straight-forward as possible,
   because many previous attempts at automatically figuring out what to
   do seem to have become complex and ineffective in what they set out to
   do: which is to make compiling and installing the program easy. Each
   port is for a specific hardware/software platform, also because past
   attempts to generalize on versions of Unix or some CPU architecture
   don't seem to have gained much. Thus, there is a separate makefile for
   each platform that calls the appropriate compiler and linker with the
   appropriate flags. Most of these makefiles are pretty similar. The
   makefile also specifies which of the _os-xxx.c_ and _os-xxx.h_ files
   to use. It is the root from which most platform dependencies are
   selected. In most cases the makefile also defines a symbol named after
   the platform on which there can be dependencies in the source code,
   though we've tried to minimize relying on this where reasonable. When
   different "ports" are very similar, it is sometimes possible to use
   the same pine code (for example) with only a small change in the
   c-client or pico code. In those cases, that kind of dependency is
   reflected in the top-level _build_ script. The _build_ script can
   usually be used to invoke the various makes correctly. It may set some
   variables before running make so look to see what _build_ does before
   trying a make in one of the subdirectories. This is especially true if
   LDAP is being included.
   
   It is almost always easier to start with an existing port when trying
   to port to a new system. There is a port called _gen_ (generic) which
   may be a good starting point. On the other hand, if another port is
   close to what you want, start with it instead.
   
   The file pico/osdep/os-xxx.h contains most of the general platform
   dependent _#include_'s and _#defines_. There are a number of _Pine_
   configuration settings that are defined in pine/osdep/os-xxx.h, as
   well, such as the place it looks for certain files, defaults for the
   printer and folder names, the maximum screen size, and so on. Start by
   looking at the generic pico/osdep/os-gen.h file and comparing it to
   some of the specific os-xxx.h files there.
   
   The osdep/os-xxx.c files contain functions that are potentially
   platform dependent. Again, the idea is to gather all the dependencies
   in one place. We use a complicated looking method to produce the
   _os-xxx.c_ files from a set of included files. Each included file
   usually contains a single implementation method and we've found that
   there are usually only two or three different methods in the ports
   we've done so far. Hopefully, coming up with an os-xxx.c for a new
   port will usually be a matter of including the right set of these
   already written functions. This is done by writing a new os-xxx.ic
   file in the osdep subdirectories. Starting with the generic os-gen.ic,
   as you did with the os-gen.h file above, may be a useful strategy.
   
   We strongly encourage that no changes be made to the general source
   when porting and that all changes be contained in the system dependent
   files if possible. The object is to maintain source code integrity and
   assimilate ports to new platforms rapidly. The more conventional way
   to do this is with a large collection of _#ifdefs_. The problem with
   this is that adding a port for a new platform implies changing the
   source code for all the other platforms and thereby risks breaking
   them. (We readily admit that there are still too many _ifdefs_ in the
   code.)
   
   If you do port _Pine_ to a new platform we hope that you will send us
   the changes required so that we may attempt to include it in a later
   release. Thanks!
     _________________________________________________________________
   
Test Checklist

   The following is a checklist of some things to check when testing a
   new port:
   
   ___
          Sending mail, check that headers are correct
   ___
          Sending mail with attachments
   ___
          Sending mail with SMTP server
   ___
          Sending mail without SMTP server
   ___
          Sending mail with list of two SMTP servers, first one doesn't
          answer
   ___
          Replying to and forwarding a message
   ___
          Postponing messages under composition
   ___
          Composer operations
   ___
          Alternate editor, _enable-alternate-editor-implicitly_
   ___
          Make sure local user names are expanded
   ___
          Test spelling checker
   ___
          Catching of SIGHUP while message is being composed
   ___
          Setting of variables in .pinerc
   ___
          New mail notification. Should happen with _Pine_ idle to check
          timeouts
   ___
          Reading mail (attachments, MIME, MIME with mailcap viewers)
   ___
          Deleting, undeleting, expunging, sorting
   ___
          Expunge to empty folder
   ___
          Make sure that _~_ expansion works in config files
   ___
          Make sure that $VAR expansion works in config files
   ___
          Save message to folder, check error conditions such as
          permission denied
   ___
          Export message with FullHeaderMode on and off
   ___
          Checkpointing (see the section on checkpointing)
   ___
          Open IMAP and RIMAP folders
   ___
          Default-fcc on remote IMAP server
   ___
          Fcc-name-rule, fcc in addrbook (while composing)
   ___
          Test opening bogus folders: invalid format, no permission
   ___
          Open a USENET news group, list in folder-lister, read news,
          post news
   ___
          Command line arguments
   ___
          Change password
   ___
          Lock keyboard
   ___
          Address book operations (edit, delete, add, lists, whereis,
          composeto)
   ___
          ReadOnly address book
   ___
          Look at addrbook, change addrbook-sort-rule in Config, go back
          to addrbook screen
   ___
          No permission to write in same directory as addrbook, should
          create addrbook.lu in a temp directory
   ___
          Multiple address books
   ___
          Address book loops from one addrbook to another and back
   ___
          TakeAddr command with one address, with multiple addresses
   ___
          TakeAddr command with ReadOnly address books
   ___
          TakeAddr command with one of two address books ReadOnly
   ___
          Send mail with empty address book
   ___
          Config Screen operation, does pinerc get written?
   ___
          Make sure SIGTSTP, ^Z works
   ___
          Sent-mail pruning (set back _last-time-prune-questioned_
          variable)
   ___
          Printing using all three printer configurations, various
          screens
   ___
          View help text and news
   ___
          Folder list operations (rename, create, delete...)
   ___
          Saved-msg-name-rule
   ___
          Screen redrawing in various screens (^L)
   ___
          Window resizing in various screens
   ___
          Error messages for incorrect terminal types (try "foo" and
          "vt52")
   ___
          Reading of /usr/local/etc/pine.conf
   ___
          Fixing variables and features in /usr/local/etc/pine.conf.fixed
   ___
          Flag command (check message status changed in mail folder)
   ___
          Initial-keystroke-list
   ___
          Aggregate operations (save, delete, export, takeaddr, ...)
   ___
          Build xxx from scratch, build clean
