Pine Technical Notes: Configuration and Preferences

# 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/lib/pine.conf` or `/usr/local/lib/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.) 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 `$HOME\PINE\PINERC` or `<PINE.EXE` dir`>\PINERC`.

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 a 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 configuration file (which is usually set from the Config screen)
4. the system-wide configuration file
5. default in the source code.

So, system-wide fixed settings always take precedence over command line flags, which take precedence over per-user settings, which take precedence over system-wide configuration settings, which take precedence over source code defaults. PC-Pine has the same list, except that it does not use a system-wide fixed configuration file.

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.

## 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. 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 added to 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.

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.

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.

  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:

  _RECIPIENTS_
    When the command is executed, this token is replaced with the space delimited list of recipients of the message being displayed.
  _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.

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 Saves, 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. 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 three possible values for this option:

  inbox-or-folder-in-recent-collection
    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.

  inbox-or-folder-in-first-collection
    The second accepted value is a variation on the default which again offers INBOX if it isn't currently open, but otherwise offers the most recently visited folder in the first collection found in the "Folder List" screen.

  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-messages 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 Saves. 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 three 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
    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-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.

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.

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
  PC-Pine only. Currently, Pine will accept the colors black, blue, green, cyan, red, magenta, yellow, or white.

normal-foreground-color
  PC-Pine only. See normal-background-color for possible colors.

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
  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/Roles configuration screen. This variable is a list. 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/Roles screen with a filename which doesn't yet exist. Then use the Shuffle command to move existing roles from your pinerc 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.

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.

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.

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.

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, that text usually has the string "> " prepended to each line to indicate quoting.

  This variable 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.

  You can also include the sender's name in the prepended string. The first occurrence of "_FROM_" in the reply-indent-string will be replaced with the "username" portion (part before the @) of the address being replied to.

  The normal default is "> ".

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.

reverse-background-color
  PC-Pine only. See normal-background-color for possible colors.

reverse-foreground-color
  PC-Pine only. See normal-background-color for possible colors.

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 Saving. If set to default-folder (which is the default setting), then Pine will offer the folder "saved-messages" (UNIX) or "SAVEMAIL" (PC) for Saving 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 any of the by-nick- options are chosen, the resulting address is looked up in the user's address books and if found, the nickname for that entry is used. Similarly, if any of the by-fcc- options are chosen, the fcc from the corresponding address book entry is used. If no value is found in the address book, then if the chosen option ends with the "-then-from", "-then-sender", or "-then-recip" suffix, Pine reverts to the same behavior as by-from, by-sender or by-recipient 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.

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.

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.

  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
  Names the file to be included as the signature. This defaults to `~/.signature` on UNIX and <PINERC directory>`\PINE.SIG` on a PC.

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.

  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.

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-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.

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-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.

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.

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-messages
  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.

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.

confirm-role-even-for-default
  If you have roles, when you reply or forward a message Pine will search through your roles for one which matches the message. Normally, if no matches are found you will be placed into the composer with no opportunity to select a non-default role. If this feature is set, then you will be asked to confirm the role selection even in this case. That is, the default role selected will be the default role (no role at all) and you will have the opportunity to change that.

compose-sets-newsgroup-without-confirm
  If you enter the composer while reading a news group, 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.

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-cmd
  If set the Newpassword command usually available under the Setup command will not be available.

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 ^T subcommand.

disable-roles-template-edit
  If set the roles editor in the Setup/Roles command will not allow editing of template files with the ^T subcommand.

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-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 Saving 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.

  NOTE: Edited reply-indent-strings only apply to the message currently being replied to.

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-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.

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, 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.

news-approximates-new-status
  This feature causes certain messages to be marked as New in the "Folder Index" of news groups.

  When opening a news group, 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 news groups) 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 news group. 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-post-without-validation
  This feature controls whether the NNTP server is queried as news groups 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 news groups 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.

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-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-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-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.

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.

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).

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 Replied 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.

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 adds a header line labeled X-Sender, if the sender is different from the From: line. The standard specifies that this header line should be labeled Sender, not X-Sender. Setting this feature causes Sender to be used instead of X-Sender.

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 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.

### 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 should be no reason to edit them.

- last-version-used
- patterns
- remote-abook-metafile

This group is usually correct but may be changed by system managers or users in special cases.

- disable-these-drivers
- last-time-prune-questioned
- new-version-threshold
- remote-abook-history
- rsh-command
- rsh-open-timeout
- rsh-path
- save-aggregates-copy-sequence
- sendmail-path
- tcp-open-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.

- allow-changing-from
- disable-busy-alarm
- disable-config-cmd
- disable-keyboard-lock-cmd
- disable-password-cmd
- disable-roles-setup-cmd
- disable-roles-sig-edit
- disable-roles-template-edit
- disable-signature-edit-cmd
- quell-imap-envelope-update
- quell-partial-fetching
- save-aggregates-copy-sequence
- termdef-takes-precedence

## Retired Variables

Variables 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 and a comment is placed before it noting that it is no longer in used. 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.
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.
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".
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".
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.
CURDATE
  This token represents the current date. It has the format MMM DD. For example, "Oct 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".
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). 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.
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 the personal name (or email address) of either 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.

### Tokens Available for all but Index-Format

NEWSANDTO
  This token represents the news groups 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 news groups 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 news groups 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.
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".
DAYDATE
  This token represents the date on which the message was sent, according to the "Date" header field. It looks like "Sat, 24 Oct 1998" unless the day of the week is not available, in which case it looks like "24 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, "24".
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".
YEAR
  This token represents the year the message was sent, according to the "Date" header field. For example, "1998".
MSGID
  This token represents the message ID of the message.

### Tokens 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 news group 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 news group, 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 inside the "if_matched" or "if_not_matched" arguments. The same is true for tokens with the conditional parentheses. They may appear inside the "if_matched" or "if_not_matched", 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 news group 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

## 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 patterns which are used to decide which role is used and a set of actions which are taken when that role is used. When you reply to a message, the recipients to which the message you are replying was sent are compared with your role patterns. The comparisons start with the first role rule and keep going until there is a match, so the order is significant. If a match is found, the matching role's actions are taken.

### Role Patterns

Each rule has six possible patterns called the To, From, Sender, Cc, News, and Subject patterns. In order for there to be a match, all six patterns must match the corresponding fields in the replied to message. A blank pattern automatically counts as a match. A pattern which isn't blank has to match at least one of the addresses in its category (in the case of the five address patterns) to be considered a match. For example, if a role has a To pattern of "address1" then it is considered a match if the message being replied to was sent to "address1" and "address2". (If the message 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.)

Patterns are simply strings which are searched for in the corresponding header field. Matching is always a substring match, matches don't have to be exact. In other words, if a field has the text "mailbox@domain" in it, then the patterns "box@", or "x@d", or "mailbox@domain" are all matches.

The empty pattern which you get by entering a pair of double quotes ("") should match any message which has the corresponding field. You could use this, for example, to define a default news role when responding to a message sent to any news group. You would put the empty pattern in the news-pattern field. Some IMAP servers may not consider an empty string a match. If you find that this is happening to you, try putting in some other character which is sure to be in the field you're searching. For example, a news-pattern equal to

`.`

should match any newsgroup, since all news groups have dots in their names. And a To pattern consisting of

`@`

should match any message which you received by email.

Since patterns which are blank are considered matches, a role which has all six patterns blank can be used as a default role. It should be put last in the list of role rules since the matching starts at the beginning and proceeds until one of the rules is a match. If no rules at all match, then Pine will use its regular methods of defining the role.

If there is more than one pattern for which you want to take the same action there is a shorthand notation which may be used. Any of the patterns may be a comma-separated list of patterns instead of just a single pattern. If any of the patterns in the list match any of the addresses in 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`

That means that if the mail you are replying to was addressed to either "anything@company1.com" or "anything@company2.com", then the same actions would be taken. Note that this is NOT a way to specify that you want to match an address in either the To field or the Cc field. To do that you'll need to define two separate roles, one for the To field match and another for the Cc field match. You may find that the field called "Initialize settings using role" is useful in this case. (You'll see that field when editing a role. It's right above the "Set From" line.) That allows you to put the role's actions in one role and then refer to them from another with just the nickname of the first role. It's just a way to avoid entering the same actions twice.

### Role Actions

Once a role match is found, the role's actions are taken. For each role there are four possible actions that may be defined. They are actions to set the From address, the Fcc, the Signature file, and the Template file.

The From address is the address used on the From line of the message you are sending.

The Fcc is used as the Fcc for the message you are sending.

The Sig is the name of a file to be used as the signature file when this role is being used. If the name of the file has a vertical bar following it (|) then it is assumed that the file is a program that should be run to produce the signature.

A Template is the name of a file to be included in the message when this role is being used. If the name of the file has a vertical bar following it (|) then it is assumed that the file is a program that should be run to produce the template. Both signature files and template files (or the output of signature programs and template file programs) may contain special tokens which are replaced with contents which depend on the message being replied to or forwarded. See the help for the individual fields for more information on template tokens.

If any of the actions are left blank, 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.

The Shuffle command allows you to change the order of the roles. You may move the currently highlighted role up or down in the list. The order of the roles is important since the roles are tested for a match starting with the first role and continuing until a match is found. You should place the roles with more specific patterns near the beginning of the list, and those with more general patterns near the end so that the more specific matches will happen when appropriate.

The InsertFile command allows you to add a roles file to your configuration. Usually, your roles will be contained in your Pine configuration file. If you wish, some or all of your roles may be stored in a separate file. If a roles file already exists (maybe it was made by somebody else using Pine), you may insert it before the currently highlighted role rule. You may also insert an empty file or a file which does not yet exist. Once you have an empty roles file in your configuration, you may use the Shuffle command to move roles into it. The RemoveFile command removes the roles file from your roles configuration.

### Help Configuring Role 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 ROLES 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. It is also used when confirming a role. 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 must match this pattern. 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 patterns must match, too.) If the message being replied to has a Resent-To header line, then that is used in place of the To line.

  If you leave all of the patterns blank, that matches any message.

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 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 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 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 news groups from the Newsgroups line of the message being replied to must match this pattern. If this pattern is a comma-separated list of patterns, then at least one of the news groups must match at least one of the patterns. (Any other non-blank patterns must match, too.)

  Since all news groups contain a dot, the News pattern which consists of a single dot will match whenever the message contains a Newsgroups header and at least one news group. This can be used to define a default news role when responding to a message sent to any news group.

  If you leave all of the patterns blank, that matches any message.

Subject pattern
  This is just like the other patterns except that it is compared with the contents from the Subject of the message being replied to.

  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.)

Initialize settings 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 (the four items that begin with "set-") 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 Fcc", "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 describes part of the action to be taken if the patterns for this role are a match. 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 Fcc
  This describes part of the action to be taken if the patterns for this role are a match. 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 Signature
  This describes part of the action to be taken if the patterns for this role are a match. This field consists of a filename which will be used as the signature file when using this role.

  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.

  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.

  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
  This describes part of the action to be taken if the patterns for this role are a match. This field consists of a filename which will be used as the template file when using this role. 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.

  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.

  A blank field here means that Pine will not use a template file when this role is being used.

Reply Use
  This option determines how this particular role will be used when Replying to a message. There are three possible values for this option. The default setting is that this role will never be a candidate for use when Replying. Even if the pattern matches the message being replied to, this role will not be used.

  The second and third options will cause this role's pattern to be compared with the message being replied to. If there is a match (and it's the first match), then this role will either be used without confirmation or will be the default when confirmation is asked for, depending on which option is selected.

  If confirmation is requested, you will have a chance to manually change the role to one of your other Reply roles.

  You won't be prompted for confirmation if none of your roles patterns match the message. In other words, if the default role selected is just your default Pine role (as opposed to a role you've defined in the Setup/Roles screen) then you will not be prompted. This is independent of the value of the current option. The confirm-role-even-for-default feature may be used to change this behavior.

Forward Use
  This option determines how this particular role will be used when Forwarding a message. There are three possible values for this option. The default setting is that this role will never be a candidate for use when Forwarding. Even if the pattern matches the message being forwarded, this role will not be used.

  The second and third options will cause this role's pattern to be compared with the message being forwarded to see if there is a match. If there is a match (and it's the first match), then this role will either be used without confirmation or will be the default when confirmation is asked for, depending on which option is selected.

  If confirmation is requested, you will have a chance to manually change the role to one of your other Forward roles.

  You won't be prompted for confirmation if none of your roles patterns match the message. In other words, if the default role selected is just your default Pine role (as opposed to a role you've defined in the Setup/Roles screen) then you will not be prompted. This is independent of the value of the current option. The confirm-role-even-for-default feature may be used to change this behavior.