[comp.mail.elm] Elm will become a HP-UX standard

kawaji@hpycla.HP.COM (Toshiyuki Kawaji) (09/26/88)

My name is Toshiyuki Kawaji.
I am an employee of Hewlett-Packard and am the Project Manager in
the HP-UX Execution Laboratory in Japan.

Our group has the charter for Elm, which will become  a  standard
command  within  HP-UX.   We  are  planning  to  make significant
changes to Elm, which will be explained further below.

We are aware of the effort the USENET is making to  fix  bugs  in
and  add  features  to  Elm.   However, we do not wish to see Elm
fragment.  Therefore, we are hoping that we can come to some kind
of compromise.

If you are agreed, we will provide full support for Elm under the
HP-UX  operating system.  We would be glad to incorporate changes
from the USENET into  our  master  source  tree.   We  will  also
provide our latest code (with these fixes) to the USENET, free of
charge.  Thus, the USENET will get the fixes for and  from  other
operating  systems,  plus full backing and support from HP if you
are running HP-UX.

Our target user is the novice UNIX  user  rather  than  the  more
experienced  because  of  Elm's user-friendly nature.  Given this
assumption, we are planning to make significant  changes  to  the
Elm  system.  Some command-line options to elm have been deleted,
some commands have been subsumed into a single command, and  some
of the utility specifications have changed.

Here is our current set of  programs  that  we  are  choosing  to
incorporate  into  the  Elm system.  Note that some programs have
been renamed so as not to conflict with other existing programs.

	from ------------> mailfrom
	readmsg ---------> readmail
	newalias-----+
	checkalias---+---> elmalias
	listalias----+

Currently, we are working on debugging the version of  Elm  known
as  2.01  Alpha.   We  plan  to  have  our current implementation
finished by the end of 1988.

We know that you are currently working on a "leaked"  version  of
Elm  known  as 2.0 gamma, fixing bugs and adding features.  While
we are happy that you are all working together, we think that  it
would  be  better for all concerned if bug fixes and enhancements
began with a single, standard version of Elm.  If you  think  you
can  wait  until we have implemented our changes to Elm, we would
be happy to begin distribution  of  source,  and  coordinate  bug
fixes and testing for non-HP-UX systems.

What follows are the current manual pages for the new Elm system.
We welcome any comments you may have.
We would be happy  to  discuss  this  proposal  or  any  counter-
proposals you may have.

I can be reached at 
			..!hplabs!hp-pcd!hpycla!kawaji
			or	kawaji@hpycla.HP.COM

Toshiyuki Kawaji
HP- NSG/ISD/USO/UXL

-------------------- cut here ------------------------------------

# This is a shell archive.  Remove anything before this line,
# then unpack it by saving it in a file and typing "sh file".
#
# Wrapped by kawaji at hpyclg on Mon Sep 26 12:44:17 1988
#
# This archive contains:
#	NOTICE		elm.1		elmalias.1	mailfrom.1	
#	newmail.1	readmail.1	
#

LANG=""; export LANG

echo x - NOTICE
cat >NOTICE <<'@EOF'

                              NOTICE

     The information, documentation and software ("materials")
provided herewith are subject to change without notice.

     THESE MATERIALS ARE  PROVIDED  "AS  IS",  WITH  ALL  DEFECTS
WHETHER  LATENT  OR  PATENT.   HEWLETT-PACKARD  COMPANY  MAKES NO
WARRANTY OF ANY KIND  WITH  REGARD  TO  THESE  MATERIALS  WHETHER
EXPRESS  OR  IMPLIED,  INCLUDING  BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES  OF  MERCHANTABILITY  AND  FITNESS  FOR  A  PARTICULAR
PURPOSE.   HEWLETT-PACKARD COMPANY SHALL NOT BE LIABLE FOR ERRORS
CONTAINED IN THESE MATERIALS OR FOR DAMAGES OF ANY KIND,  WHETHER
INCIDENTAL,   CONSEQUENTIAL,   EXEMPLARY,   SPECIAL,   DIRECT  OR
INDIRECT, IN CONNECTION WITH THE FURNISHING, PERFORMANCE  OR  USE
OF   THESE   MATERIALS.    HEWLETT-PACKARD   COMPANY  ASSUMES  NO
RESPONSIBILITY FOR THE USE OR RELIABILITY OF THESE MATERIALS.

     These materials contain proprietary  information  which  are
protected by copyright.  All rights are reserved.  No part of the
materials may be used, copied, modified, or  distributed  without
the  prior  written consent of Hewlett-Packard Company, except as
provided below.  Recipients may, without further permission, use,
copy,   modify  and  distribute  the  materials  for  non-profit,
educational purposes.  Recipients may also use, copy, modify  and
distribute  these  materials  provided  the  fees charged for the
materials is nominal, or if bundled with other software, the fees
charged for the bundled package is the same regardless of whether
these materials are included.  Every copy made of these materials
must  include  this  notice, the copyright notices, and any other
notices recognizing the contributions of authors included  herein
or in the materials.

     (c) Copyright Hewlett-Packard Company, 1986, 1987, 1988
     (c) Copyright Yokogawa-Hewlett-Packard Ltd., 1988
     Acknowledgment is made to Dave Taylor for his creation of
     the original version of this software.



@EOF

chmod 640 NOTICE

echo x - elm.1
cat >elm.1 <<'@EOF'
.TH ELM UTIL "" "" 
.ad b
.SH NAME
elm \- process mail through screen\-oriented interface
.SH SYNOPSIS
.B elm
[
.B \-akKmz
] [
.B \-f
.I folder
]
.br
.B elm
[
.B \-s
.I subject
]
.I address-list
.br
.B elm\ \-h
.SH DESCRIPTION
.I Elm 
is screen\-oriented electric mail processing system.
In interactive use, the main header index and mini-menu of commands are
displayed upon initial invocation and at any point when
the program is waiting for input.
.P
There are three main ways to use \fIelm\fR: explicitly to send a
single message by invoking the program with a list of mail
addresses, with the program then prompting for the subject,
message body, and so on; as a convenient way to send files
or the output of commands via command line redirection; or as
an interactive mail interface program(see EXAMPLES).
.PP
The following options are recognized:
.PP
.TP 15
.B \-a
Arrow - force the arrow cursor (instead of the inverse bar).
.TP 15
.BR \-f \ \fIfolder\fR
File - read specified file rather than the incoming mailbox.
.TP 15
.BR \-h
Help - give a list of starting options.
.TP 15
.B \-k
Softkeys off - disable use of softkeys(function keys).
.TP 15
.B \-K
Keypad + softkeys off - disable use of softkeys and arrow cursor keys.
If your terminal doesn't have HP2622 function key protocols, you must
use this option.
.TP 15
.B \-m
Menu off - Use the extra lines for more message headers.
.TP 15
.BR \-s \ \fIsubject\fR
Subject - specify subject for a message to mail.
.TP 15
.B \-z
Zero - don't enter \fIelm\fR if no mail is pending.
.PP
You can get screen-oriented interface when you invoke \fIelm\fR
without address-list.
Invoking \fIelm\fR as a interactive mailer, you get into command mode.
In command mode, every command(see also COMMANDS) entered is executed 
for the message that has current message pointer(inverse bar or arrow)
and some commands can operate on 'tagged' messages, too.
So when you execute a command, you set the pointer to the message 
and input the character for the command.
.PP
On the header index page, status of the message is always indicated.
The status field composed of three different character fields,
with the first one indicating temporary status:
.TP 15
D
For a \fIdeleted\fR message.
.TP 15
E
For an \fIexpired\fR message.
This flag is set according to the header field "\fIExpires:\fR".
If the date of this field is older than the day, this flag
will appear. The following date formats are examples of what is 
understood:
.br
1). Mon, 11 Jun 88
.br
2). Jun 11, 88
.br
3). 11 Jun, 88
.br
4). 880611HHMMZ   <- X.400 format
.TP 15
N
For a \fInew\fR message.
.PP
The second character denotes permanent status:
.PP
.TP 15
C
For \fIconfidential\fR mail.
If "\fISensitivity: 3\fR" of the user defined header field
is attached, this can appear and the message is considered company
confidential, as per the ISO X.400 standard.
.TP 15
U
For \fIurgent\fR mail.
This flag is set if the message contains a "\fIPriority:\fR".
.TP 15
P
For \fIprivate\fR mail.
This flag is associated with the header field "\fISensitivity:\fR" also.
This is set for "\fISensitivity: 2\fR" of the user defined header
field only. 
.TP 15
A
For messages that have an explicit action associated with them
through inclusion of the "\fIAction: \fR" header field.
.TP 15
F
For a \fIform\fR letter.
.P
When a message has more than one status flag set of a particular
type, the highest precedent indicator will be displayed on the
index page. For example, of a \fIform\fR letter is also marked as
\fIcompany confidential\fR, the `C' will be displayed, rather than
the `F' status character.
.br
The third character of the status field can be a ``+'' to
indicated that the message is \fItagged\fR too.(See also COMMANDS)
.PP
When sending a message, \fIelm\fR will use the editor specified
in your \fI.elm/elmrc\fR file(see CUSTOMIZATION), the editor listed
as $EDITOR in your environment, or the default of ``\fBvi(1)\fR''.
If `\fIbuiltin\fR' is specified as your editor, you will also have
a large set of commands available while composing your message
(see TILDE ESCAPES).
.PP
If you have a \fB$HOME/.elm/elmheaders\fR file, \fIelm\fR will
automatically read in the contents of the file and add it
to the headers of all outbound mail(good for having an 
`Organization:' field, or `Phone:' field, etc). \fIElm\fR also
supports the use of backquotes in the \fIelmheaders\fR file,
so an entry like:
.IP
Operating System: `uname -srv`
.PP
will work fine.
.PP
\fIElm\fR has its own alias system, and supports two classes of
aliases; personal and system-wide. Personal aliases are specific
to a single user and system aliases are good for everyone on a
specific machine(see also \fBelmalias(UTIL)\fR).
To enter the elm alias mode, use the \fBA\fR)lias command at the
main command prompt. From there, you will be able to create and save
an alias for the current message, check personal and system-wide
aliases, and other options(see ALIAS COMMANDS).
.PP
At invoking time, \fIelm\fR can read customized 
variables from file \fB$HOME/.elm/elmrc\fR to initialize parameters. 
This file can be saved from within \fIelm\fR and some of
these variables can be modified also by command \fBO\fR)ption.
(See also CUSTOMIZATION)
.PP
.SH FORMS MODE
One feature that is unique to \fIelm\fR is the ability to compose and
reply to \fIform\fR letters and other types of forms.
.PP
Creating a form message is quite simple: first you must enable
forms mode by adding "\fBforms=ON\fR" to your \fB$HOME/.elm/elmrc\fR(see
CUSTOMIZATION). Then, when you compose the message, each field to be
filled in by recipient should have a colon(`:') followed by
either the number of spaces allowed for the field or a newline, which 
indicates fields through the end of the line. Additionally, if a colon
appears on a line by itself, the recipient will be prompted for 
multi-line input.
.PP
Upon reception of a form message, the user is allowed to reply
(but not group reply), at which time \fIelm\fR will prompt
the user for each field, with any text present between the fields 
displayed as appropriate.
.PP
A simple form message is:
.PP
----
.IP
On-Line Phone and Address Database
.PP
.IP
Please fill out and return as soon as possible.
.PP
.IP
Name:
.IP
Manager:
.IP
Department:                         Division:
.PP
.IP
Your home address
.br
:
.PP
.IP
home phone number:
.PP
.IP
Thank you for your cooperation.
.PP
----
.PP
.SH COMMANDS
.TP 15
.B ?
Help.  This command used once puts you in the \fIexplain key\fR
mode, where any key you press will result in a one-line description
of the key.  Pressed again at this point will produce a summary 
listing for each command available.
<escape> or ` . ' will leave the help mode and return you to the
main menu level.
.TP 15
.B !
Shell.  This allows you to send a command to the shell without
leaving \fIelm\fR.
.TP 15
.B |
Pipe.  This command allows you to pipe the current message
or the set of \fItagged\fR messages
through other filters as you desire.  The shell used for
the entire command will be either the one specified in
your \fI.elm/elmrc\fR file, or, if none, \fI/bin/sh\fR.
.TP 15
.B +
Next index page. This displays next header index page, if possible.
.TP 15
.B \-
Previous index page. This displays previous header index page, if
possible.
.TP 15
.B =
Set current to 1. This set current message pointer to first message.
.TP 15
.B *
Set current to last. This set current message pointer to last message.
.TP 15
.B \/
Pattern match.  This command, on the top level, allows 
you to search through all the \fIfrom\fR and \fIsubject\fR lines of
the current mailbox. 
If the first character of the
pattern is a `/', then the program will try to match the
specified pattern against \fIany\fR line in the mailbox.
Both searches are case insensitive.
.TP 15
.B <n>
Specify new current message.  Typing in the number of the message
will result in the 
.I elm
program producing the prompt ``Set current to : n'', where `n' is
the number entered.  
Note that changing the current message to a message not on the 
current page of headers will result in a new page
being displayed.
.TP 15
.B <return>
Read current message. After entering, screen is cleared and the 
current message is displayed by the pager specified in system
or \fBpager\fR(see also CUSTOMIZATION).
.TP 15
.B "<"
Scan message for calendar entries.  A rather novel feature of 
the \fIelm\fR mailer is the ability to automatically incorporate
calendar/agenda information from a mail message into the user's
calendar file.  This is done quite simply; any message that has
either the pattern;
.br
-> \fIcalendar entry\fR
.br
or
.br
- \fImulti-line\fR
.br
- \fIcalendar entry\fR
.br
will be automatically added to the user's \fBcalendar\fR file
with stripping '->' or '-' if the `<'
command is used. (See also CUSTOMIZATION)
.TP 15
.B a
Alias.  The \fIalias\fR command is a way by which more complex mail
addresses can be shortened for the mail user. 
In alias mode, it provides command \fBa\fR for making alias for current
message, \fBp\fR for checking a user alias, \fBs\fR for checking system
aliases, \fBm\fR for making a new alias and \fBd\fR for deleting alias
(see also ALIAS COMMANDS).
.TP 15
.B b
Bounce mail.  This ``remails'' mail to someone else in such a
way as to make the return address the original sender rather
than you (as opposed to the \fIforward\fR command, which makes
the return address \fIyou\fR rather than the original sender).
.TP 15
.B c
Change mailbox.  Specifying this command allows you to change
the mailbox file that is currently being read. 
As with the \fIsave\fR command, this command expands filenames
with `~' being your home directory and `=' being your
\fBmaildir\fR directory, if defined.(See also CUSTOMIZATION)
This command also allows the
special character `!' to be used to allow you to change to
the default incoming mailbox.
.TP 15
.BR d , \ u
Delete and Undelete.  Neither of these two commands have any prompts
and indicate their action by either adding a `D' to the current
message index entry (indicating deletion pending) or removing
the `D' (indicating that the message isn't queued for deletion).
.TP 15
.B "<control>-D  "
This command allows you to easily mark for deletion all messages 
that have a specific pattern.  After <control>-D is pressed,
the program will prompt for the string to match (it
matches either the \fIfrom\fR or \fIsubject\fR lines of
the message).
.TP 15
.B "<control>-U  "
This is the direct opposite command to the previous. All messages
that match the specified pattern can have any mark for deletion 
removed by using this command.
.TP 15
.B f
Forward.  Allows you to forward the current message to 
another person. This copies the message into the edit
buffer and allows you to add their own message too.
(see \fIbounce\fR above, too)
.TP 15
.B "g"
Group reply.  Identical to \fIreply\fR below, except that the
response is mailed to \fIall recipients\fR of the original
message (see also CUSTOMIZATION \fIalternatives\fR)
.TP 15
.B h
Same as \fB<return>\fR, but message is displayed with all headers.
.TP 15
.BR j , \ k
These two keys work similarly to what they would do in \fBvi(1)\fR or
any of the other screen oriented programs.
The \fBj\fR key moves the current message pointer down to the next 
message and the \fBk\fR key moves back to the previous message.
.TP 15
.B l
Limit.  This specifies a subset of the existing
messages to be dealt with. It's valid for subject, from and to field.
To set the criteria, enter
.BI \"subject \ string\", \"from \ string\"
or
.BI \"to \ string\".
To clear all the criteria and get back to the `regular' display, simply
enter "\fIall\fR" as the limiting criteria. 
.TP 15
.B "<control>-L"
Rewrite the screen. If the screen is confused, you can redraw 
screen with this command.
.TP 15
.B m
Mail.  Send mail to a specified user. 
.TP 15
.B n
Next message.  See also \fB<return>\fR.
.TP 15
.B o
Options.  This allows you to alter the settings
of a number of option values. (See also CUSTOMIZATION)
.TP 15
.B p
Print.  This allows you to print out the current
message or the tagged messages to a previously defined printing 
method \fBprint\fR.(See also CUSTOMIZATION)
.TP 15
.B q
Quit. Quit \fIelm\fR, processing messages as you like. 
When reading your incoming mail, you can choose to keep the 
undeleted mail in the incoming mailbox or move it to an `mbox'
file specified by \fBmaildir\fR in \fB$HOME/.elm/elmrc\fR file.
You can also decide whether or not to actually delete messages
previously marked for deletion.
(See also CUSTOMIZATION)
.TP 15
.B "<control>-Q",DEL
Exit. Same as `\fBx\fR'. 
This allows you to leave \fIelm\fR in the quickest possible 
manner without any changing the \fImailbox\fR.
.TP 15
.B r
Reply.  Reply to the author of the current message.  If
the \fBautocopy\fR(see also CUSTOMIZATION) is not specified, 
you can specify 
whether a copy of the source message is to be copied into the edit
buffer, or not.  If copied in, all lines from the message are 
with the prefix character sequence defined as \fBprefix\fR
(see also CUSTOMIZATION).
.TP 15
.B s
Save to file.  This command allows the current message or set of
tagged messages to be copied 
into a user specified file or folder. 
After saving a file, each message is marked for deletion and,
if saving just one message,
the current message pointer is incremented.
.TP 15
.B t
Tag.  Tag the current message for operation `\fB|\fR', `\fBp\fR'
or `\fBs\fR'.
.TP 15
.B "<control>-T  "
Tag all messages containing the specified pattern.  Since tagging
messages can occur on screens other than the one being viewed, the 
\fIelm\fR will first check to see if any messages are currently
\fItagged\fR and ask you if you'd like to remove those tags.  After
that, it will, similar to the \fB<control>-D\fR function
to set criteria(see \fB<control>-D\fR).
.TP 15
.B x
Exit.  
This allows you to leave \fIelm\fR in the quickest possible 
manner without any changing the \fImailbox\fR.
.PP
.SH "TILDE ESCAPE"
.TP 15
.B "~?"
Print a brief help menu.
.TP 15
.B "~b"
Change the Blind-Carbon-Copy list.
.TP 15
.B "~c"
Change the Carbon-Copy list.
.TP 15
.B "~e"
Invoke $EDITOR in your environment on the message, if possible.
.TP 15
.B "~f" \fIoptions\fR
Add the specified list of messages, or current. This uses
\fBreadmail(UTIL)\fR and all options for \fBreadmail(UTIL)\fR
are available.
.TP 15
.B "~h"
Change all the available headers (To, Cc, Bcc, and Subject)
.TP 15
.B "~m" \fIoptions\fR
same as \fB~f\fR, but with the current `prefix'. 
.TP 15
.B "~o"
Invoke a user specified editor on the message.
.TP 15
.B "~p"
print out the message as typed in so far.
.TP 15
.B "~r" \fIfilename\fR
Include (read in) the contents of the specified file.
.TP 15
.B "~s"
Change the Subject line.
.TP 15
.B "~t"
Change the To list.
.TP 15
.B "~v"
Invoke $VISUAL in your environment on the message if possible.
.TP 15
.B "~<" \fIcommand\fR
execute the specified shell command, entering the output
of the command into the editor buffer upon completion.
(for example "~< who" will include the output of
the \fIwho(1)\fR command in your message)
.TP 15
.B "~!" \fIcommand\fR
execute a shell command if one is given (as in "~!ls") or
give you a shell (either your shell setting as a \fBshell\fR(see
also CUSTOMIZATION) or $SHELL in your environment).
.TP 15
.B "~~"
Add a line prefixed by a single "~" character.
.PP
.SH "ALIAS COMMANDS"
.TP 15
.B a
Alias current message.  
This allows you to create an alias that has the
return address of the current message as the address field of
the alias.  It prompts for a unique alias name. 
.TP 15
.B d
Delete user alias.  This prompts for alias name to be deleted.
The alias is deleted from your alias_text file
(\fB$HOME/.elm/aliases.text\fR).
.TP 15
.B m
Make user alias.  This will prompt for a unique alias name and
then for an address.  The information provided will be added
to your individual alias_text file (\fB$HOME/.elm/aliases.text\fR) and 
then added to the database.
.TP 15
.B p
Check personal alias.  This is a simple way of checking what is in the
alias database. It prompts for an alias name, and returns the address
or the list of addresses associated with that name or the error 
message "alias not found" as appropriate.  
.TP 15
.B s
Check system alias.  This is for checking what aliases are installed
yet as system aliases. All the system aliases are listed.
.TP 15
.B r
Return.  Return to the main level of 
.I elm
program.
.PP
.SH "CUSTOMIZATION"
Like many other programs, \fIelm\fR also has the ability to read in
a `rc' file automatically for personal configuration. The file should
be called \fB$HOME/.elm/elmrc\fR and can contain any combination
of the following.
.PP
\fBString Variables\fR
.TP 15
.B "alternatives"
This is a list of other machine/username combinations
that you receive mail from (forwarded).  This is used 
when the \fIgroup reply\fR feature is invoked to ensure that
you don't send yourself a copy of the outbound message.
No default.
.TP 15
.B "calendar"
Name of calendar file.
This is used in conjunction with the scan message for
calendar entries command '\fB<\fR'. 
Default is \fB$HOME/calendar\fR. 
.TP 15
.B "editor"
The editor to use when typing in new mail. You can also select
\fBnone\fR or \fBbuiltin\fR for builtin editor.
Builtin editor is available for all mail that doesn't already 
have text in the buffer(in replying, mailing with a 
\fBsignature\fR, etc).
Default is the \fB$EDITOR\fR in your current environment,
or \fBvi(1)\fR if not.
.TP 15
.B "escape"
Escape character used in \fBbuiltin\fR editor.
Default is tilde(`\fB~\fR').
.TP 15
.B "fullname"
This is the name the mailer will use when sending mail 
from you.  
Default is the "gecos" field from the \fI/etc/passwd\fR file.
.TP 15
.B "mailbox"
This is where to put incoming mail after you've read it.
When you answer \fIno\fR (`n') to the ``keep messages in 
incoming mailbox?'' prompt, this
is where the messages go.
Default is \fB$HOME/mbox\fR.
.TP 15
.B  "maildir"
This is the default mail directory, and is used to expand filenames
in \fIelm\fR when specified using the `=' metacharacter.  That
is, if you save to file \fI=/archive\fR then the `=' will be expanded
to the current value of \fBmaildir\fR.
Default is \fB$HOME/Mail\fR.
.TP 15
.B "pager"
This defines the program to be used to display each message. 
This can be changed while within the \fIelm\fR
program by selecting the appropriate entry in the \fBO\fR)ption Menu.
Default is '\fIbuiltin\fR'.
.TP 15
.B "prefix"
Value of prefix for included line.
When you \fIreply\fR to a message or \fIforward\fR a message to another person,
you can optionally include the original message. 
This prefix indicates the included line.
Default is "\fB>\ \fR".
.TP 15
.B "print"
The command to run when \fBp\fR)rint command is executed.
This indicates how to print out a message.  There are two
possible formats for this string, either a command that
can have a filename affixed to (as a suffix) and then
sent to the system for execution, or a string that 
contains the meta-sequence `%s' which will be replaced
by the name of the message file and then also sent to the
shell.
Default is "pr %s | lp".
.TP 15
.B "savemail"
This is where outgoing mail will have a copy silently saved.
This will only be used if the \fBcopy\fR flag
is turned on.  Also note that if the \fBsavename\fR feature
is enabled then this filename may be ignored since the program
first looks for a mailbox that has the same name as the login
of the person you're sending to, using that instead if
found.
Default is \fB$HOME/mbox\fR.
.TP 15
.B "shell"
This defines the shell to use when doing '\fB!\fR' escapes and
such.  
Default is \fB$SHELL\fR in your current environment.
.TP 15
.B "signature"
This file, if defined, will be automatically appended to all
outbound mail before the editor is invoked.  Furthermore, 
if you'd like a different "signature" file for \fIlocal\fR
mail and \fIremote\fR mail (remote being via other hosts), 
you can alternatively define two variables, \fIlocalsignature\fR
and \fIremotesignature\fR, to have the same functionality.
No default.
.TP 15
.B "sortby"
When reading mailboxes, 
either incoming or specified, you can have them sorted by any
number of different ways.  This can be changed without leaving
the \fIelm\fR by changing the \fIS)orting criteria field\fR
in \fBo\fR)ption mode, but it can also be predefined to 
any of `\fIfrom', `sent', `received', `subject', `lines\fR' or 
`\fIstatus\fR'.
Each of these fields can also optionally be prefixed with the
sequence `\fIreverse\-\fR' to reverse the order of the sort. 
Default is \fBreceived\fR.
.TP 15
.B "weedout"
When specifying this option, you can then list headers that
you don't want to see when you are reading mail.
This is effective with \fBweed\fR is ON.
This list can continue for as many lines as desired, as 
long as the continued lines all have leading indentation.
Default is \fI">From" "In-Reply-To:" "References:" "Newgroups:"
"Received:" "Apparently-To:" "Message-Id:" "Content-Type:"
"From" "Mailer:"\fR.
.PP
\fBNumeric Variables\fR
.TP 15
.B "timeout"
This is the interval between resynchronizing.
\fIElm\fR internally resynchronize every this interval seconds.
Default is 600 seconds (10 minutes).
.TP 15
.B "userlevel"
This is what the program uses to determine the relative level of
sophistication of the user. The values are 0 for a new user (the
default), 1 for someone familiar with \fIelm\fR 
user, and 2 for experts. 
.PP
.B  "Boolean Variables"
.TP 15
.B "alwaysdelete"
When set, this changes the default answer
of the prompt "Delete messages?" to the indicated value. 
Default is ON for YES.
.TP 15
.B "alwaysleave"
This changes the default answer on the "keep mail in incoming mailbox?"
prompt to the value indicated. 
Default is ON for YES.
.TP 15
.B "arrow"
This is identical in function to the `-a' command line option.
Default is OFF.
.TP 15
.B "ask"
This allows you to tell the \fIelm\fR that 
you would rather not be asked "Delete message?" and such each time you 
leave the program, and instead it should just use the values of
\fBalwaysdelete\fR and \fBalwaysleave\fR without prompting.
Default is ON.
.TP 15
.B "askbcc"
If turned on, it will appear the prompt "Blind-Copies-To:"
for each message. If this is off, user can add "bcc" list by
\fB~b\fR in the builtin editor or using header editor.
Default is OFF.
.TP 15
.B "askcc"
If turned off, this allows you to send mail without being
presented the "Copies-To:" prompt for each message. This
still allows the user to explicitly include addresses in the "cc"
list via either \fB~c\fR in the builtin editor, or via using the
screen-oriented header editor.
Default is ON.
.TP 15
.B "autocopy"
This is a boolean flag, and if set automatically copies
the text of the message you are replying to into the edit
buffer.  Default is OFF.
.TP 15
.B "copy"
This, in combination with the \fBsavemail\fR option, will
allow you to have silent copies of all outgoing mail
made on the outbound step.  
Default is OFF.
.TP 15
.B "expand"
If this flag is on, tabs in your message written are expanded to 
spaces. This will enable that your message is displayed in the 
same layout as you write on the screen having different tab setting.
Default is ON.
.TP 15
.B "forms"
This allows you to mail forms.
Default is OFF.
.TP 15
.B "keep"
The mail system has a habit of deleting mailboxes when you have
removed everything from them.  With this option turned on, it will
instead preserve them as zero-byte files.  Default is OFF.
.TP 15
.B "keypad"
If on, this tells \fIelm\fR that you have
an HP terminal and enables
the <NEXT>, <PREV>, <HOME> and <SHIFT-HOME> keys.  Default is ON.
.TP 15
.B "menus"
If turned off, this will inhibit the menu display on all of the 
screen displays within the \fIelm\fR program.  Default is ON.
.TP 15
.B "movepage"
If this is enabled then commands that move through the
mailbox by pages (the \fB\+\fR and \fB\-\fR keys)
will also move the current message pointer to the
top of that page of messages.  If this is turned off 
then moving through the pages doesn't alter the
current message pointer location.
Default is OFF.
.TP 15
.B "names"
Show only the user names when expanding aliases, rather than the
name and electronic mail address on the "To:" field when you
send mail.
Default is OFF.
.TP 15
.B "noheader"
This tells the mailer not to include the 
headers of messages when copying a message into a file
buffer for replying to or forwarding.
Default is ON.
.TP 15
.B "pointnew"
If this is turned on, the mailer will be automatically 
pointing to the first new message in your mailbox when started, instead
of at message #1.  This is only used for the incoming mailbox since
other mailboxes are assumed not to have `new' and `old' mail.
Default is ON.
.TP 15
.B "resolve"
With this option enabled, as
soon as mail is `dealt with' \fIelm\fR moves you to the
next message in the mailbox, with deletion, undeletion,
saving a message and forwarding a message.
Default is ON.
.TP 15
.B "savename"
When the user \fIsaves\fR the messages, \fIelm\fR uses 
filename to save to that is the \fIlogin name\fR of the
person who sent you the message rather than \fIsavemail\fR value.
Similarly, when sending mail out,
instead of just blindly saving it to the \fIsavemail\fR file, \fIelm\fR
will first try to save it to a file that is the \fIlogin name\fR of the 
person who is to receive the mail.
If the file doesn't already exist on outbound mail, then it will 
save the mail in the \fIsavemail\fR file.
Default is ON.
.TP 15
.B "skipdeleted"
If this flag is on, current message pointer skips the message with
deleted flag "D" by \fBj\fR or \fBk\fR command.
Default is OFF.
.TP 15
.B "softkeys"
If on, this tells \fIelm\fR that you have an HP terminal with the
HP 2622 function key protocol and that you would like to have them available
while in the program. Default is ON.
.TP 15
.B "titles"
Using with the flag \fBweed\fR, this flag allows you
to have the first line of a message
titled with:
.br
.br
Message \fIN/M\fP from \fIusername\fP''\fIdate\fP at \fItime\fR 
.br
.br
where all the information has been previously extracted
from the message.
Default is ON.
.TP 15
.B "warnings"
The mailer likes to warn you when you send mail to a machine that cannot
be directly accessed.
Setting this flag will allow you to effectively
shut off all the warning messages.  Default is ON.
.TP 15
.B "weed"
This is a boolean flag that, in combination with the
\fBweedout\fR list, allows you to custom define the set of
headers you would like to not have displayed while reading
messages.  
Default is ON.
.PP
.SH EXAMPLES
If you invoke \fIelm\fR with a list of addresses to send to,
you can send a message to them without any overhead of the main system
being loaded. \fIElm\fR will then prompt for Subject, Copies, 
Blind-Copies, and then drop you in your editor to compose the message:
.PP
.IP
.B $\ elm\ taylor
.IP
To: taylor(Dave Taylor)
.IP
Subject:\ \fBthis is test\fR
.IP
Copies To: \fB<return>\fR
.IP
Blind-Copies To: \fB<return>\fR
.PP
.IP
.I ...invokes editor, message composed, then...
.PP
.IP
Your options now are:
.IP
S)end the message, E)dit it again, change/add H)eaders or F)orget it
.PP
.IP
What is your choice? \fBs\fR
.PP
.IP
mail sent!
.PP
\fIElm\fR can send files or the output of commands via command
line redirection:
.PP
.IP
.B $\ elm\ taylor < help.c
.PP
This will read in the file and transmit it to the specified people.
A subject may be specified with "-s \fIsubject\fR" as an option to 
\fIelm\fR:
.PP
.IP
.B $\ elm\ \-s\ "File help.c transmission" taylor < help.c
.PP
.SH AUTHOR
.I elm
was developed by Dave Taylor, Hewlett-Packard Company.
.SH FILES
.TP 15
/usr/mail
Directory for incoming mail
.br
(mode "755", group ID "mail")
.TP 15
/usr/mail/\fIusername\fR.lock
Lock for mail directory
.TP 15
/usr/mail/\fIusername\fR
Incoming mailbox for the \fIuser\fR.
.br
(mode "660", group ID "mail")
.TP 15
/usr/lib/nls/n-computer/elm.cat
Location of the message catalogue
.TP 15
$HOME/.elm
Directory for \fIelm\fR
.TP 15
$HOME/.elm/elmrc
Personal customized file
.TP 15
$HOME/.elm/elmheaders
Contents of additional headers.
.TP 15
/usr/lib/elm/elm_help.0
Help file for main screen
.TP 15
/usr/lib/elm/elm_help.1
Help file for alias screen
.TP 15
/usr/lib/elm/elm_help.2
Help file for option screen
.TP 15
/usr/lib/elm/elmrc-info
Comment file for .elm/elmrc file
.TP 15
/usr/mail/.elm
Directory for system alias of \fIelm\fR
.TP 15
/usr/mail/.elm/aliases.hash 
System alias hash table
.TP 15
/usr/mail/.elm/aliases.data 
System alias data table
.TP 15
/usr/mail/.elm/aliases.text
System alias text file
.TP 15
$HOME/.elm/aliases.hash
User alias hash table
.TP 15
$HOME/.elm/aliases.data    
User alias data table
.TP 15
$HOME/.elm/aliases.text 
User alias text file
.TP 15
/tmp/snd.\fIpid\fR and \fIpid+1\fR
Outgoing mail edit buffer
.TP 15
/tmp/form.\fIpid\fR
Editor buffer for form message
.TP 15
/tmp/print.\fIpid\fR
Temporary file for printing message
.TP 15
/tmp/alias.\fIpid\fR
Temporary file for deleting alias
.TP 15
$HOME/.elm/readmail
Used by \fBreadmail(UTIL)\fR program
.TP 15
/tmp/mbox.\fIlogname\fR	 
Temporary mbox for \fIuser\fR
.TP 15
$HOME/Cancelled.mail
Cancelled message of non-interactive use.
.SH SEE ALSO
elmalias(UTIL),
mailfrom(UTIL),
newmail(UTIL),
readmail(UTIL),
vi(1).
.SH INTERNATIONAL SUPPORT
8- and 16-bit data, messages; 8-bit file names.
@EOF

chmod 666 elm.1

echo x - elmalias.1
cat >elmalias.1 <<'@EOF'
.TH ELMALIAS UTIL "" "" 
.ad b
.SH NAME
elmalias \- create and verify elm user and system aliases
.SH SYNOPSIS
.B elmalias
[
.B \-q
]
.br
.B elmalias -c 
.I alias-list
.br
.B elmalias -l 
[ 
.I regular\-expression
]
.SH DESCRIPTION
.I Elmalias
is the utility for setting, checking and listing aliases.
If no options are given to the program it will attempt to
install a new set of personal aliases.
.br
Possible starting options are:
.TP 15 
.BI \-c \ alias-list
Check alias - check aliases in personal or system alias file.
.TP 15
.BI \-l \ regular-expression
List alias - list aliases available for the user.
.TP 15
.B \-q
Set system aliases - install the system-level alias set
for all elm users on the machine. This command is only available
for system administrators.
.PP
To install aliases, the program will either look for a file
called \fB$HOME/.elm/aliases.text\fR (for personal aliases) or a
file \fB/usr/mail/.elm/aliases.text\fR (if invoked by a system 
administrator). Installation is complete when the program has 
created two other elm data files: \fBaliases.hash\fR and \fB
aliases.data\fR, both in the same directory as the \fBaliases.text\fR
file.
.PP
The format of alias-text file is:
.PP
.IP
\fIalias\fR [, \fIalias, ...\fR] = [ \fIfullname\fR = ] \fIaddress\fR [, \fIaddress, ...\fR]
.PP
Addresses can be explicit routing or addressing information
for a specific mailbox (eg. "user@host.domain") or another
alias. If more than one alias is listed as the first part 
of the line, all will have the same value. If more than one
address is listed, the specific alias will be assumed to be 
a group rather than individual alias.  (See EXAMPLES)
.PP
Invoking with option \fB-c\fR checks the alias indicated by
\fIalias-list\fR. This checks the user file first, and then the system
alias file to try to find the specified alias or aliases.  If found, 
the value of the alias is printed out, otherwise an error message
is generated.
.PP
Finally, invoking with option \fB-l\fR 
outputs a line per alias in both the user and the system 
aliases.  Each line is of the form:
.PP
.IP
\fIalias\fR     \fIaddress\fR   (\fIfullname\fR)
.PP
If an optional \fIregular-expression\fR is used, just the aliases
that match the specified expression are listed.  If not, 
they are all listed. \fIregular expression\fR is the same as 
\fBegrep(1)\fR of the shell.
.br
The output is always sorted alphabetically.
.SH EXAMPLES
A simple example \fBaliases.text\fR file:
.PP
.IP
# sample alias file
.PP
.IP
mom			= my_mother@a.computer
.IP
dad,father,pop = Father	= host!otherhost!dad
.PP
.IP
parents			= mom, dad
.PP
listing this file would result in:
.PP
.IP
dad	host!otherhost!dad (Father)
.IP
father	host!otherhost!dad (Father)
.IP
mom	my_mother@a.computer
.IP
parents	mom,dad
.IP
pop	host!otherhost!dad (Father)
.SH AUTHOR
.I elmalias
was developed by Dave Taylor, Hewlett-Packard Company.
.SH FILES
.TP 15
$HOME/.elm/aliases.text
Alias source for user 
.TP 15
$HOME/.elm/aliases.hash  
Alias hash table for user
.TP 15
$HOME/.elm/aliases.data  
Alias data file for user
.TP 15
/usr/mail/.elm/aliases.text 
Alias source for system
.TP 15
/usr/mail/.elm/aliases.hash
Alias hash table for system
.TP 15
/usr/mail/.elm/aliases.data 
Alias data file for system
.SH SEE ALSO
elm(UTIL),
egrep(1).
.SH WARNING
Note that the precedence of aliases is user file then system
file.  This means that a user can 'overload' an alias by having
one defined in the system file also defined in theirs.  This
shouldn't turn out to be a problem, but is something for
the system administrator to keep in mind when creating the
system alias file.
@EOF

chmod 666 elmalias.1

echo x - mailfrom.1
cat >mailfrom.1 <<'@EOF'
.TH MAILFROM UTIL "" "" 
.ad b
.SH NAME
mailfrom - summarize mail folders by subject and sender
.SH SYNOPSIS
.B mailfrom
[
.B \-n
] [
.I filename
]
.SH DESCRIPTION
.I Mailfrom
outputs a line per message in the folder specified, or the 
users incoming mailbox of the form;
.PP
.IP
\fIfrom\fR  \fIsubject\fR
.PP
If a \fIfilename\fR is specified, the program reads that file
rather than the incoming mailbox. 
If it's not possible to access the specified file due to its
permission, it only returns the message "No mail".
.PP
Furthermore, if the option \fB-n\fR is specified, the headers
will be numbered using the same numbering scheme that, for
example, \fBreadmail(UTIL)\fR will understand.
.SH AUTHOR
.I mailfrom
was developed by Dave Taylor, Hewlett-Packard Company.
.SH SEE ALSO
elm(UTIL),
readmail(UTIL).
@EOF

chmod 666 mailfrom.1

echo x - newmail.1
cat >newmail.1 <<'@EOF'
.TH NEWMAIL UTIL "" ""
.SH NAME
newmail - notify users of new mail in mailboxes
.SH SYNOPSIS
.B newmail
[
.BI \-i \ interval
] [
.B \-w
] [
.I file-spec...
]
.SH DESCRIPTION
.I Newmail
is a program to monitor of the user's incoming or specified mailbox.
Without any options, \fInewmail\fR runs and get itself into
background with default interval, 60 seconds, to monitor incoming
mailbox,
Other options are:
.TP 15
.BI \-i \ interval
This changes the frequency that the program checks the mailbox
to the interval specified, in seconds.
.TP 15
.B \-w
This is for running the program within a window, since it has
a more succinct output format and also runs in foreground rather
than background.
.PP
The basic operation is that the program checks the incoming or 
specified mailbox each \fIinterval\fR seconds and lists
any new mail that has arrived in any of the mailboxes,
indicating the sender name, and the subject of the message.
.br
Following message will appear at invoking time.
.PP
.IP
Newmail started: folder \fIfoldername\fR
.PP
Each entry displayed can be in a number of different formats
depending on the mode of the program 
and the status of the message.  If you're 
running it as a "window" (with \fB\-w\fR option)
then the output will be similar to:
.PP
.IP
\fBNew mail from\fR \fIsender name\fR - \fIsubject of message\fR
.IP
\fBPRIORITY mail from\fR \fIsender name\fR - \fIsubject of message\fR
.PP
where \fIsender name\fR is either the name of the person sending it,
if available (the ARPA 'From:' line) or some other brief
indication of origin. If there
is no subject, the message "(No Subject Specified)" will appear on
the screen. If you check more than one mailboxes, the output lines
are prefixed by the folder-name or prefix string specified by file-spec.
.br
If the message is a "priority" message(that is, it has
a field in the header "Priority:"), then the line will 
be \fBPRIORITY mail\fR instead of \fBNew mail\fR.
.PP
If you are running \fInewmail\fR without the \fB\-w\fR option,
then the output is more suitable for popping up on an otherwise
active screen, and will be formatted:
.PP
.IP
\fB>> New mail from\fR \fIsender name\fR - \fIsubject of message\fR
.IP
\fB>> PRIORITY mail from\fR \fIsender name\fR - \fIsubject of message\fR
.PP
In this case, the output lines are prefixed when monitoring some
mailboxes, too.
.PP
\fIfile-spec\fR are made up of two components, the \fIfolder name\fR
and the \fIprefix-string\fR. The latter of which can always be omitted.
The format is \fIfoldername=prefix-string\fR. The metacharacters
such as \fB+\fR, \fB=\fR and \B%\fR which indicate the folder
directory in \fBelm(UTIL)\fR(see also \fBelm(UTIL)\fR) is available 
to specify the folder name.  (See also EXAMPLES)
.PP
\fINewmail\fR will run until the user log out or explicitly kill
it, and can internally reset 
itself if the mailbox shrink in size and 
then grow again.
.SH EXAMPLES
Some example invocations:
.PP
.IP
$ \fBnewmail\fR
.PP
will check your incoming mailbox every 60 seconds.
.PP
.IP
$ \fBnewmail  -i  15 joe root\fR
.PP
will check the incoming mailbox for ``joe'' and ``root'' 
every 15 seconds for new mail.
.PP
.IP
$ \fBnewmail "mary=Mary" +postmaster=POBOX /tmp/mbox\fR
.PP
will monitor the incoming mailbox for user ``mary'', prefixing all
messages with the string ``Mary'', and the folder in your \fBmaildir\fR
(see also elm(UTIL)) called ``postmaster'', prefixing all of those 
messages with ``POBOX'', and folder ``/tmp/mbox''.
.SH AUTHOR
.I newmail
was developed by Dave Taylor, Hewlett-Packard Company.
.SH WARNING
Note: If you change the interval to less than 10 seconds,
the program will warn them that it isn't recommended.
.br
\fIInterval\fR must be less than 
.if n 2^32.
.if t 2\u\s-232\s+2\d.
seconds
because \fInewmail\fR
calls \fBsleep(3C)\fR in it.
@EOF

chmod 666 newmail.1

echo x - readmail.1
cat >readmail.1 <<'@EOF'
.TH READMAIL UTIL "" ""
.SH NAME
readmail - read mail from specified mailbox
.SH SYNOPSIS
.B readmail 
[ \fB\-p\fR ]
[ \fB\-n\fR ]
[ \fB\-f\fI filename\fR ]
[ \fB\-h\fR ]
.br
.B readmail
[ \fB\-p\fR ]
[ \fB\-n\fR ]
[ \fB\-f\fI filename\fR ]
[ \fB\-h\fR ]
.I number-list
.br
.B readmail 
[ \fB\-p\fR ]
[ \fB\-n\fR ]
[ \fB\-f\fI filename\fR ]
[ \fB\-h\fR ]
.I pattern
.SH DESCRIPTION
.I Readmail
is a program that gives you the functionality of
the \fBmailx(1)\fR "~r" command from the editor of your choice.  There
are three different ways of using the program.
.PP
First off, if you are actually creating a reply to a message
from within \fBelm(UTIL)\fR then \fIreadmail\fR without any
arguments will include a summary of the headers and the body 
of the message being replied
to.  If the you aren't currently editing a message the program will
return an error.
.PP
Secondly, if you want to include certain messages, you can
specify them by listing their ordinal locations in the 
mail file (that is, their "message numbers")
up to 25 at a time.  The \fImeta-\fRnumber '$' is understood to mean
the last message in the mailfile.  Similarly, '*' is understood to
represent every message in the file (that is, 1 2 3 4 5 ... $)
.PP
Finally, you can also specify a pattern that occurs in one of
the messages as a way of including it.  This pattern can be
typed in directly (no quotes) if the words are separated by a 
single space in the actual message.  The pattern matching is case
sensitive, so "Hello" and "hello" are not the same thing.
.PP
Other options are:
.TP 15
.B \-f \fIfolder\fR
This indicates that you would rather use the file specified
for the operations specified rather than the incoming mailbox.
.TP 15
.B \-h
This instructs the program to include the entire header
of the matched message or messages when displaying their
text.  (default is to display the \fIFrom: Date:\fR and
\fISubject:\fR lines only)
.TP 15
.B \-n
This instructs the program to exclude all
headers.  This is used mostly for extracting files mailed and
such.
.TP
.B \-p
This indicates that the program should
put form-feeds (control-L) between message headers.
This is very useful for printing sets of messages.
.SH EXAMPLES
First off, to use this from within \fBvi(1)\fR to include the text
of the current message at the end of the edit buffer, you could
use the command;
.PP
.IP
!!readmail
.PP
(when you hit the second '!', the editor will put you
at the bottom of the screen with the '!' prompt)
.PP
Another convenient use of the command is via a \fBcsh(1)\fR alias
similar to:
.PP
.IP
alias rd        'readmail $ | page'
.PP
which then makes it very easy, in conjunction with a program
like \fBnewmail(1)\fR to peruse your mail as it arrives without
necessarily spending the time involved in invoking a mail 
system.
.SH AUTHOR
.I readmail
was developed by Dave Taylor, Hewlett-Packard Company.
.SH FILES
.TP 15
/usr/mail/\fIusername\fR
The incoming mailbox
.TP 15
$HOME/.elm/readmail
The temporary file for \fBelm(UTIL)\fR
.SH SEE ALSO
elm(UTIL),
mailx(1),
newmail(UTIL),
vi(1).
.SH NOTE
For performance reasons when the program is given a list of
message numbers to display, it will sort them in ascending order,
so "1 3 2" would output identically to "1 2 3".
@EOF

chmod 666 readmail.1

exit 0

mechjgh@tness7.UUCP (Greg Hackney ) (09/28/88)

In article <1000004@hpycla.HP.COM> kawaji@hpycla.HP.COM (Toshiyuki Kawaji) writes:
>My name is Toshiyuki Kawaji.
>I am an employee of Hewlett-Packard and am the Project Manager in
>the HP-UX Execution Laboratory in Japan.
>Our group has the charter for Elm, which will become  a  standard
>command  within  HP-UX.
>If you are agreed, we will provide full support for Elm under the
>HP-UX  operating system.

My personal comments (as a member of the test and development team) are....

Elm has been turned over to the public trust by David Taylor,
specifically to public domain in the comp.sources.unix netnews
group. This group, in a public process, has selected a coordinator
and has a test team and development team. This team has released
Elm2.1 to the comp.unix.sources moderator, and is already working
on Elm version 2.2. (This code does not include any proprietary x.400
code that was "leaked".)

I believe the group would like to continue ownership and control of the Elm
product, but would certainly appreciate your participation on the
test and development teams.

Future comments should be referred to Sydney Weinstein (syd@dsinc.UUCP)
the current Elm Coordinator.

Greg Hackney                    | Internet: hack%tness7.UUCP@bellcore.com
Southwestern Bell Telephone Co. | UUCP:     {backbone}!bellcore!tness7!hack
Dallas, Texas                   |

taylor@limbo.ptp.hp.com (Dave Taylor) (09/29/88)

Greg Hackney writes:

> Elm has been turned over to the public trust by Dave Taylor,
> specifically to public domain in the comp.sources.unix netnews
> group. 

And:

> This code does not include any proprietary x.400 code that was "leaked".

In the interest of only answering this once;

	I have *not* released The Elm Mail System into the public
	domain.  The Elm Mail System has *never* been in the public
	domain.

	What I have done, however, is explicitly allowed people to
	have *free* access to the source, and have explicitly
	stated that modifications should be posted to a public
	place.

	I have attached the original legal NOTICE shipped with
	the software to this memo.

	However, lest you think we're in dire straits, it *is* true
	that I `signed over the rights' to the Usenet Trust (or
	some such gig).  What this means is that *future development
	by that group is governed by the rules of that group*.  They
	cannot, obviously, either morally, ethically or legally 
	backtrack and attempt to change the copyright or legal
	status of the original source.

	If the Usenet Trust decided that they wanted to take their
	version and sell it, well, that'd be fine.  They could *not*
	however prohibit others from going back to the last `free'
	version and duplicating their efforts, then giving it away.

	In some sense I feel that this is the situation we're in with
	HP and the group here.  In my view we have an unprecedented
	situation, where a large corporation is willing to go through
	the significant effort involved in bringing the code up to
	Hewlett-Packard Release Quality and THEN RELEASE THAT VERSION
	OF THE SOURCE TO THE PUBLIC.

	Instead of us fighting about which version should be the base
	version, I suggest that we try to be a bit more constructive
	and have the HP people send a copy of their modifications to
	the Usenet folks, and the Usenet people arrange for a very up-
	to-date copy of their version of Elm to be transferred to HP
	in Japan.

	Then let's consider the time and effort involved, keeping in
	mind that the two groups *do* have different goals.

	---

	Also, as far as the 'leaked' version, I won't comment on whether
	2.0 made it out through legitimate channels or not, but I will
	point out that there is some question that code not directly
	related to the X.400 functionality was written/modified while
	under direct HP contract, which would then make it potentially
	proprietary code.

	Fortunately, however, we already know that the HP people involved
	in Japan are willing to release their version of the Elm Mail
	System, so the proprietary code question is, in some sense, a
	moot point.

	---

	Finally, I personally am thrilled and delighted that there is
	so much interest in the community regarding the Elm Mail System
	package, but I am concerned that the Usenet Community might
	well let an unprecedented situation slip through their fingers
	because of their own belief that the usenet version is superior.

			I welcome further discussion ...

						-- Dave Taylor

--- attachment: The original license agreement:

                The Elm(tm) Mail System General Public License
  		 
		    (C) Copyright 1986, 1987, 1988 by Dave Taylor

			  	COPYING POLICIES

     Permission is hereby granted for copying and distribution of copies of
  the Elm source files, and that of any part thereof, subject to the following 
  license conditions:

        1. You may, without additional permission from the author, distribute 
           Elm or components of Elm, with or without additions developed by 
           you or by others at no charge.  You may also distribute Elm along 
           with any other product for sale, provided that the cost of the 
           bundled package is the same regardless of whether Elm is included,
           and provided that those interested only in Elm must be notified 
           that it is a product freely available from the author.

        2. Furthermore, if you distribute Elm software or parts of Elm, with 
           or without additions developed by you or others, then you must 
           either make available the source to all portions of the Elm system 
           (exclusive of any additions made by you or by others) upon request, 
           or instead you may notify anyone requesting source that it is 
           freely available from the author.

        3. In addition, you may not omit any of the copyright notices
           on either the source files, the executable file, or the 
           documentation, and

        4. Also, you may not omit transmission of this License agreement with 
           whatever portions of Elm that are distributed.

        5. Lastly, any users of this software must be notified that it is
           without warrantee or guarantee of any nature, express or implied, 
           nor is there any fitness for use represented.

Software is a malleable thing - especially Unix - and the author can in no
way guarantee that using this program will not cause grevious damage to your
system.  Of course this isn't anticipated, but if it does happen, the author
cannot be held liable for any damages either directly or indirectly caused
by this event.

Modification of the system is encouraged, providing that the portions of 
the system that are from the original still carry the appropriate copyright
notices and that the changed sections are clearly delimited as such.  The
author requests copies of any changes made to ensure that the various versions
stay reasonably in sync with each other.

NOTE that it is not permitted to copy, sublicense, distribute or transfer any
of the Elm software except as expressly indicated herein.  Any attempts to
do otherwise will be considered a violation of this license and your rights
to the Elm software will be voided.


Comments on the system and/or this licensing agreement is encouraged.  Send
electronic mail to "taylor@hplabs.HP.COM".  This license was written with
help from Scott McGregor.  Thanks Scott!

----
Elm is a trademark of Dave Taylor. 

scs@itivax.UUCP (Steve C. Simmons) (09/30/88)

In article <556@hptsug2.HP.COM> taylor@limbo.ptp.hp.com (Dave Taylor) writes:
>	 . . . In my view we have an unprecedented
>	situation, where a large corporation is willing to go through
>	the significant effort involved in bringing the code up to
>	Hewlett-Packard Release Quality and THEN RELEASE THAT VERSION
>	OF THE SOURCE TO THE PUBLIC.
>
>	Instead of us fighting about which version should be the base
>	version, I suggest that we try to be a bit more constructive
>	and have the HP people send a copy of their modifications to
>	the Usenet folks, and the Usenet people arrange for a very up-
>	to-date copy of their version of Elm to be transferred to HP
>	in Japan.

Hear hear.  My initial reaction to the notice from HP Japan was somewhat
negative.  On more thought (largely stimulated by Dave's article) it
seems we have a possibility of getting the best of all worlds.  The only
thing required is that all parties be co-operative.  Given that we've
managed to do so in finding moderators, beta-testers, etc, etc, surely
we can include one more obviously-willing-to-co-operate group in there.

So to address their original points:

Given that elm has gone thru a number of changes between the 1.[57]
release and what is forthcoming from comp.sources, the next set of
work to be done ought to be to rationalize any changes that HP Japan
has made into the elm stream.  There are two ways to approach this:

The HP japan folks could abandon their current stream and instead
merge/rationalize their changes into some future minor release of
elm.  This gives us a single development stream but may cause
problems with "feature conflict".  It's probably quicker.

The other is to keep 2.1 as is, and keep adding features/fixes
as people out in netland find them.  This continues the 2.X stream.
The HP Japan folks, in co-operation with our moderator here, start
work on 3.0, which should re-merge the two streams.  This is more
work, but would probably be less trouble long term.
-- 
Steve Simmons		...!umix!itivax!scs
Industrial Technology Institute, Ann Arbor, MI.
"You can't get here from here."

mechjgh@tness7.UUCP (Greg Hackney ) (10/01/88)

In article <556@hptsug2.HP.COM> taylor@limbo.ptp.hp.com (Dave Taylor) writes:

>	In my view we have an unprecedented
>	situation, where a large corporation is willing to go through
>	the significant effort involved in bringing the code up to
>	Hewlett-Packard Release Quality and THEN RELEASE THAT VERSION
>	OF THE SOURCE TO THE PUBLIC.
>	....I am concerned that the Usenet Community might
>	well let an unprecedented situation slip through their fingers
>	because of their own belief that the usenet version is superior.

A few of us were concerned that we have worked our tails off on reviving
the public version of Elm, and then get an article from someone we never
heard of which implies we aren't capable of doing a good job, and that they
can do much better, therefore are going to take it over.

Since that article, it has become know that this was a misunderstanding.
It first appeared as an HP attempt to regain total control of the
development and release of Elm (for whatever reasons). Now it appears
to be more an involvement to insure HP compatibility, and to assure
continuity of the Elm product.

>	because of their own belief that the usenet version is superior.

I realize that your posting was not addressing me personally,but...
Personally, I don't think or not think that the usenet
version is superior (not having seen the Japanese version). My personal
concern was that there will be no usenet version, just an HP.

I think the Elm Usenet group's position is that the group is in a better
position to deal with all the different equipment configurations than
HP, therefore should retain control of the public release.

>	have the HP people send a copy of their modifications to
>	the Usenet folks, and the Usenet people arrange for a very up-
>	to-date copy of their version of Elm to be transferred to HP
>	in Japan.

I believe this *is* is the current offering, and is being negotiated
by the two parties. If successful, there should be happiness in Elm land.
Fortunately, the Elm coordinator (Syd), if nothing else, is quite
diplomatic. :-)

--
Greg Hackney
Net: hack%tness7.UUCP@bellcore.com
UUCP: {backbone}!bellcore!tness7!hack

kawaji@hpycla.HP.COM (Toshiyuki Kawaji) (10/03/88)

I'm sorry if you felt something negative.
However, please make sure following point.

 . We didn't increase HP depend code. We are increasing
   system independency and its quality.

 . We don't disturb Elm development/distribution in USENET community.
   We just want to share our benefit, HP release level quality.

 . We are willing to cooperate USENET Community.

--

Toshiyuki Kawaji
 (kawaji@hpycla.HP.COM)
 HP - NSG/ISD/USO/UXL

itkin@mrspoc.UUCP (Steven M. List) (10/05/88)

In article <1000005@hpycla.HP.COM> kawaji@hpycla.HP.COM (Toshiyuki Kawaji) writes:
> I'm sorry if you felt something negative.
> However, please make sure following point.
> 
>  . We don't disturb Elm development/distribution in USENET community.
>    We just want to share our benefit, HP release level quality.
> 
>  . We are willing to cooperate USENET Community.
> 
Having followed this discussion for the past few weeks (and dozens of
messages) I am truly gratified.  It seems to me that the last couple of
messages, particularly from Dave, Greg Hackney, and Kawaji-san, sum it
up quite nicely.

I recently took my children to see Bambi, and an analogy struck me
when thinking back on the first messages and responses: two buck deer
butting and kicking over territory.  I noticed that at no time did
anyone claim that either group would produce a better or worse product.
There was no contention in terms of ego or quality, only territory.  And
now, reason rises, compromise is discussed, and we will all benefit.

My public gratitude and congratulations to all the participants in the
USENET and HP Japan ELM groups, their maturity in recognizing what was
really at stake, and their dedication to producing a tool to better the
environment of their fellows.  Thanks, all!

I LOVE ELM.
-- 
:  Steven List @ Transact Software, Inc.
:  {coherent,mips,rjeinc,ubvax}!mrspoc!itkin
:  Voice: (415) 961-6112

ignatz@chinet.UUCP (Dave Ihnat) (10/05/88)

When I initially read Toshiyuki Kawaji's posting, I admit my first response
was that it sounded like HP wanted to "take over" design control, albeit with
a liberal feedback of the source to the net.  However, fortunately it seems
that it was probably simply a case of some of the nuances being lost in
language translation.

One point I'd like to raise, however, was the statement in the original article
to the effect that the interface is being simplified for the novice, or non-
professional user.  I'd like to encourage both development groups to keep this
in mind, but also remember that a lot of sophisticated computer users are also
using elm; don't simplify us out of existence, please...