Subject: Differences between Pine 3.89 and Pine 3.90

From: Barry Cornelius <[email-masked]>
Date: Tue, 30 Aug 1994 14:39:08 +0100 (BST)

1.  Introduction

Pine 3.90 and Pico 2.4 have recently been released by the Pine
development team at the University of Washington.  For Pine 3.90, my
"executive summary" is:
   The user interface of Pine 3.90 for "elementary"-use (i.e., for a
   person who does not alter his/her .pinerc file) has changed very
   little.  However, Pine 3.90 has quite a few new features which many
   of our users will love.

The original version of this document was produced for use within my 
department at the University of Durham.  I thought that it might be 
useful to send this slightly revised form to the comp.mail.pine 
newsgroup.  Note: in some places, it covers the same material as the 
"Secrets of Pine 3.90" document.

The remainder of this document has two purposes:
   (a) to identify those parts of Pine's user interface that has changed
       for users who don't configure Pine;
   (b) to illustrate how to make use of the features that are new in
       Pine 3.90.
Purpose (a) is tackled in Sections 2 to 5, and the remaining sections
cover the new features.  In order to use any of the new features you
will need to know how to get to the "Config Screen": this is covered in
Section 6.

Here is an index to the topics raised in this document:
   2.  Postponing more than one message
   3.  Exporting a message to a file
   4.  Saving and viewing attachments
   5.  Moving to the start or the end of a file/message
   6.  Configuring Pine using the "Config Screen"
   7.  Using an alternative editor automatically
   8.  Using more than one addressbook
   9.  Displaying the full headers of a message
   10. Supplying your own headers
   11. Controlling what headers get displayed when composing
   12. Using aggregate commands
   13. Accessing Usenet News from Pine
   14. Piping a message to a Unix command
   15. Bouncing a message to another user
   16. Changing a message's status flag in the folder index

2.  Postponing more than one message

In Pine 3.90, you can postpone more than one message.  The user
interface is roughly the same as in previous versions of Pine except
when you come to retrieve a message having previously postponed more
than one message.  In this case, you will be presented with an index
of postponed messages, and asked which one you would like to retrieve.
Note: you will find that the postponed messages are stored in a folder
called "postponed-msgs".

3.  Exporting a message to a file

If you export a message to a file and the file already exists, in
previous versions of Pine you can either cancel the operation or
append the message to the file.  Pine 3.90 gives you the choice of
cancelling the operation, appending to the file or overwriting the
file.

4.  Saving and viewing attachments

In Pine 3.90, the user interface for saving and viewing attachments is
slightly different from that in previous versions.

5.  Moving to the start or the end of a file/message

In previous versions of Pico and Pine, you can use either W or Ctrl-W
(depending on the context) to find the first line containing a string.
In the new versions, you can follow the W or Ctrl-W by Ctrl-Y to move
to the top line of a file/message/folder-index or Ctrl-V to move to
the end of a file/message/folder-index.

Here's a useful example.  If you are editing a file/message, and you
want to delete from the current point to the end of the file, press:
   (a) Ctrl-Carat, i.e., Ctrl-^ (which is often Ctrl-Shift-6) 
       in order to set a mark;
   (b) Ctrl-W followed by Ctrl-V to move to the end of the file;
   (c) Ctrl-K to cut the marked text.

6.  Configuring Pine using the "Config Screen"

In previous versions of Pine, you had to alter the .pinerc file if you
wanted to configure Pine.  In Pine 3.90, you can configure Pine by
going to the Setup Configuration Screen (which is called the "Config
Screen" in this document).  To find this screen, go to the Main Menu,
press S followed by C.

>From the Config Screen, you can change the settings of some of Pine's
variables.  If you are uncertain as to the purpose of a variable (or a
value), move the cursor so that the appropriate line of the Config
Screen is highlighted, and press ? (for Help).  Any changes that you
make to the Config Screen will eventually be written to your .pinerc
file.  For many changes, the change that you want will be effected
immediately: however, for other changes you will need to leave Pine
and then re-start it.

7.  Using an alternative editor automatically

By default, Pine puts you into the Pico editor when you are editing
the body of a message.  In previous versions of Pine, you can say that
you want to use a different editor by including the value
enable-alternate-editor-cmd in the feature-list variable.  When
editing, you can press Ctrl-Underscore to get into the alternative
editor.

With Pine 3.90, you don't need to press Ctrl-Underscore: you can
automatically go into your alternative editor as soon as if you move
the cursor into the body of the message.  In order to enable this
facility, you need to include enable-alternate-editor-implicitly in
the feature-list variable.  To do this, go to the Config Screen (see
Section 6), move the cursor down to enable-alternate-editor-implicitly
and press X.

So the difference between these two is as follows.  If you have set
enable-alternate-editor-cmd, you choose when you want to use your
alternative editor by using Ctrl-Underscore.  If you have set
enable-alternate-editor-implicitly, you always go into the alternative
editor when you move into the body of the message.

For either to work you also need to indicate the name of your
favourite editor: the best way to do this is to set Pine's editor
variable.  So, re-visit the Config Screen, moving down to the line
starting "editor =".  This line is almost at the bottom of the Options
Menu.  Press A (for "Add Value") and then type in the name of your
favourite editor: vi, emacs, axe, xedit and ed are all known to work.
If you have your own special editor, and the setting of Unix's PATH
variable does not mention the directory containing the editor, you can
type in the full pathname for the file containing the binary of the
editor, e.g. ~/tools/eddie

8.  Using more than one addressbook

In previous versions of Pine, you were able to store a list of
mail-aliases in a file called .addressbook.  With Pine 3.90, by
setting the addressbook variable you can have several addressbooks and
can choose the names of the files for these addressbooks.  

To do this, go to the Config Screen (see Section 6) and then move the
cursor down to the line beginning "addressbook=".  Press A (for Add
Text) and then type in a comma-separated list, where each entry in the
list can consist of a nickname followed by a space followed by the
name of the file containing the addressbook.  For example:
   B J C .myaddressbook,Project-X project-x/etc/addressbook
refers to the two files .myaddressbook and project-x/etc/addressbook.

When Pine wants to determine whether an address is a nickname, it will
search these addressbooks in the order that they have given in the
above list.  To speed up the "look-up", Pine also creates an
additional file (with extension .lu) for each addressbook.  If it is
unable to create this file in the same directory as the addressbook,
it will create a temporary look-up file in /usr/tmp or /tmp.

Besides personal addressbooks, Pine 3.90 also allows one or more
global addressbooks.  This is done by configuring the variable
global-address-book.  Global addressbooks can be used by system
administrators to set up site-wide addressbooks.  When searching
addressbooks, personal addressbooks are searched before global
addressbooks.

9.  Displaying the full headers of a message

As in previous versions of Pine, if you want to see the full headers
of a message, you have to do two things:
(a) The feature-list variable should include enable-full-header-cmd.
    To do this, go to the Config Screen (see Section 6), move the
    cursor down to enable-full-header-cmd and press X.
(b) When you go to a folder index or you are viewing the contents of a
    message, press the H command.  It is a "toggle": press H again to
    switch it off.
In Pine 3.90, if you can currently see the full headers of a message,
then, when you forward a message, it will ask you whether you want to
forward the message as a MIME attachment.  The full headers will also
be printed/exported if you use the Y or E command.

10. Supplying your own headers

You can supply your own headers or set default values for the standard
headers by setting the customized-hdrs variable.  To set this
variable, go to the Config Screen (see Section 6) and then move the
cursor down to the line beginning "customized-hdrs =".  Press A (for
Add Text) followed by a comma-separated list of the names of the
headers that you want to be included, e.g.:
   Bcc:[email-masked]

11. Controlling what headers get displayed when composing

You can control what headers are displayed on the screen when you are
composing a message by setting the default-composer-hdrs variable.  To
set this variable, go to the Config Screen (see Section 6) and then move
the cursor down to the line beginning "default-composer-hdrs =".
Press A (for Add Text) followed by a comma-separated list of the names
of the headers that you want to be displayed, e.g.:
   To,Cc,Bcc,Subject

12. Using aggregate commands

The A, Z and ; commands form the "aggregate command set".  The ;
command allows you to select all the messages that match some
criteria; the A command allows to apply some command to each of the
selected messages; and the Z command allows you to zoom in on the
selected messages by changing the folder index temporarily so that
only these messages are displayed.  In order to use any of these
commands, you need to have enable-aggregate-command-set included in
the setting of the feature-list variable.  To do this, go to the
Config Screen (see Section 6) and then move the cursor down to the line
containing enable-aggregate-command-set and press X.

Here are some more details about the aggregate commands.

The ; command selects messages in the folder index according to a
criterion that you choose.  It can be one of the following: (a) all
messages, (b) a list or a range of message numbers, (c) messages
containing a particular string within the From, To, Cc or Subject
lines or within the entire text of the message, (d) the current
message, (e) messages on/before/since a specified date, (f) messages
that have a status flag of new/deleted/answered/important.

Having chosen the criterion, the selected messages are indicated in
the folder index by a X in the first column (unless the
show-selected-in-boldface feature has been chosen).  There is another
way in which you can show which messages have been selected: if you
issue a Z command after a ; command it will temporarily restrict the
folder index to the selected messages --- pressing Z again returns you
to the full folder index.

If you have already used a ; command (to select a set of messages),
then, if you type ; command again, Pine will ask you whether you want
to (i) unselect all the selected messages, (ii) unselect the current
message, (iii) add more messages to the set of selected messages, (iv)
remove some messages from the set of selected messages.  If you choose
(iii) or (iv), then you can indicate the criterion by which messages
are added to, or removed from, the current selection.  Once again, the
criterion can be any of those labelled (a) to (f) above.

Having selected a set of messages, you can use the A command to apply
any of the following operations to the set of selected messages: save,
export, print, delete, undelete, reply, forward, takeaddr, flag or
pipe.

13. Accessing Usenet News from Pine

In previous versions of Pine, you were able to read the newsgroups of
Usenet News.  In Pine 3.90, there are additional facilities, e.g., you
can subscribe/unsubscribe to newsgroups and post articles to
newsgroups.

In order to access Usenet News, you should go to the Config Screen (see
Section 6), move the cursor down to the line starting "nntp-server =",
press A (for Add Text) and then type the address of an nntpserver:
   newsserver.site.domain 
Note that it is not necessary to set the news-collections variable.
Although optional, I believe it is also useful to include
expanded-view-of-folders in the setting of the feature-list variable.
To do this, move down to expanded-view-of-folders, and press X.

You will now need to leave Pine, and re-start it.  If you then press L
to get the folder-list you will see a section headed News-collection.
If you move to this section, you can press A followed by the name of a
newsgroup in order to subscribe to that newsgroup.  If you are
uncertain about the name, then follow the A by Ctrl-T in order to list
the names of all the newsgroups.  If you press W at this point, you
can find out those newsgroups whose names contain a particular string.

The information about which newsgroups you are subscribed to is
written to the file .newsrc.  If you don't want your subscribed
newsgroups to be displayed in alphabetical order, you may set the
news-read-in-newsrc-order feature.  To do this, go to the Config Screen
(see Section 6) and then move the cursor down to the line containing
news-read-in-newsrc-order and press X.  You also need to edit your
.newsrc file so that the lines appear in the order that you wish to
look at the newsgroups.

Once you have subscribed to the newsgroups which you think you may be
interested, you can use them just like mail folders.  

When you have read an article, you can use the D command to record the
fact that you have already seen it.  This information is also stored
in the .newsrc file.  In this way, the article will not be presented
to you the next time you read Usenet News.

If you already have the folder for a newsgroup open, you can use the C
command to post an article to the newsgroup.  If you want to follow-up
an existing article, or you want to reply to the sender of an article,
use the R command.

Although Pine does not have a command to "catch up" in a newsgroup
(that is, to mark all the articles as deleted), you can use Pine's new
aggregate command set (see Section 12) to do this.  Pressing the four
keys ;aad will cause all the articles in the current folder to be
marked as deleted.  So these articles will not be shown the next time
you enter the newsgroup.

14. Piping a message to a Unix command

When you are in a folder index or have a message displayed on the
screen, you can pass the current message to the standard input of a
Unix command by using | which is Pine's "pipe" command.  In order to
use this command, the feature-list variable must contain the value
enable-unix-pipe-cmd.  To do this, go to the Config Screen (see
Section 6) and then move the cursor down to the line containing
enable-unix-pipe-cmd and press X.

15. Bouncing a message to another user

If user-1 sends a message to you but it really should have gone to
user-2, then, in Pine 3.90, you can use the B command to "bounce" the
message to user-2.  The effect is that user-2 will receive a message
as if it were from user-1 but with some additional lines indicating
that has been resent by you.  In order to use the B command, your
feature-list variable needs to include enable-bounce-cmd.  To do this,
go to the Config Screen (see Section 6) and then move the cursor down
to enable-bounce-cmd and press X.

16. Changing a message's status flag in the folder index

You can change the status flag shown for a message in the folder index
by * which is the flag command.  Besides the normal flags of N, D, U,
you can also set a flag to I meaning Important.  In order to use this
command, the feature-list variable must contain the value
enable-flag-cmd.  To do this, go to the Config Screen (see Section 6)
and then move the cursor down to the line containing enable-flag-cmd
and press X.

--
Barry Cornelius                      Telephone: (0191 or +44 191) 374 4717
IT Service, Science Site,    IT Service Office: (0191 or +44 191) 374 2892   
University of Durham,                      Fax: (0191 or +44 191) 374 3741
Durham, DH1 3LE, UK                   E-mail: [email-masked]