.\" @(#)$Id: sortm.rf,v 1.8 90/04/05 15:15:26 sources Exp $
sortm \- sort messages
\%[+folder] \%[msgs]
\%[\-datefield\ field]
\%[\-textfield\ field] \%[\-notextfield]
\%[\-limit days] \%[\-nolimit]
\%[\-verbose] \%[\-noverbose]
\fISortm\fR sorts the specified messages in the named folder according
to the chronological order of the \*(lqDate:\*(rq field of each message.

The `\-verbose' switch directs \fIsortm\fR to tell the user the general
actions that it is taking to place the folder in sorted order.

The `\-datefield\ field' switch tells \fIsortm\fR the name of the field
to use when making the date comparison.
If the user has a special field in each message,
such as \*(lqBB\-Posted:\*(rq or \*(lqDelivery\-Date:\*(rq,
then the `\-datefield' switch can be used to direct \fIsortm\fR which
field to examine.

The `\-textfield\ field' switch causes \fIsortm\fR to sort messages by 
the specified text field.
If this field is \*(lqsubject\*(rq,
any leading "re:" is stripped off.
In any case, all characters except letters and numbers are stripped
and the resulting strings are sorted 
datefield\-major, textfield\-minor,
using a case insensitive comparison.

With `\-textfield\ field', 
if `\-limit\ days' is specified, messages with similar textfields
that are dated within `days' of each other appear together.
Specifying `\-nolimit' makes the limit infinity.
With `\-limit 0', the sort is instead made textfield\-major, date\-minor.

For example, to order a folder by date-major, subject-minor, use:

.ti +.5i
sortm -textfield subject +folder

^$HOME/\&.mh\(ruprofile~^The user profile
^Path:~^To determine the user's MH directory
^Current\-Folder:~^To find the default current folder
folder (1)
`+folder' defaults to the current folder
`msgs' defaults to all
`\-datefield date'
If a folder is given, it will become the current folder.
If the current message is moved, \fIsortm\fR will preserve its status
as current.
Timezones used to be ignored when comparing dates:
they aren't any more.

Messages which were in the folder, but not specified by `msgs',
used to be moved to the end of the folder;
now such messages are left untouched.

\fIsortm\fR would try to fill any gaps in a folder within the
range of messages it sorted. 
To improve performance,
\fIsortm\fR now minimizes the number of message moves.
To pack a folder, use
\*(lq\fIfolder\ \-pack\fR\|\*(rq instead.
If \fIsortm\fR encounters a message without a date\-field,
or if the message has a date\-field that \fIsortm\fR cannot parse,
then \fIsortm\fR attempts to keep the message in the same relative
This does not always work.
For instance, if the first message encountered lacks a date which can be
then it will usually be placed at the end of the messages being sorted.

When \fIsortm\fR complains about a message which it can't temporally order,
it complains about the message number \fIprior\fR to sorting.
It should indicate what the message number will be \fIafter\fR sorting.