%nmhwarning%

FOLDER %manext1% "%nmhdate%" MH.6.8 [%nmhversion%]
NAME
folder, folders - set/list current folder/message
SYNOPSIS

5 folder [ +folder ] [ msg ] [ -all " | " -noall ] [ -create " | " -nocreate ] [ -fast " | " -nofast ] [ -recurse " | " -norecurse ] [ -total " | " -nototal ] [ -list " | " -nolist ] [ -push " | " -pop ] [ -pack " | " -nopack ] [ -print ] [ -verbose " | " -noverbose ] [ -Version ] [ -help ]

5 folders is equivalent to folder -all

DESCRIPTION
Since the mmh environment is the shell, it is easy to lose track of the current folder from day to day. When folder is given the -print switch (the default), folder will list the current folder, the number of messages in it, the range of the messages (low-high), and the current message within the folder, and will flag extra files if they exist. An example of this summary is:

inbox+ has \016 messages (\0\03-\022); cur=\0\05

If a +folder and/or msg are specified, they will become the current folder and/or message. By comparison, when a +folder argument is given, this corresponds to a `cd' operation in the shell; when no +folder argument is given, this corresponds roughly to a `pwd' operation in the shell.

If the specified (or default) folder doesn't exist, the default action is to query the user as to whether the folder should be created; when standard input is not a tty, the answer to the query is assumed to be `yes'.

Specifying -create will cause folder to create new folders without any query. (This is the easy way to create an empty folder for use later.) Specifying -nocreate will cause folder to exit without creating a non-existant folder.
note - this doesn't work at present
If `-noprint' is specified,
a `+folder' and/or `msg' may still be specified
to set the current folder and/or message,
but the folder summary will not be printed.

"Multiple Folders"
Specifying -all will produce a summary line for each top-level folder in the user's mmh directory, sorted alphabetically. (If folder is invoked by a name ending with `s' (e.g. folders ), -all is assumed). Specifying -recurse with -all will also produce a line for all sub-folders. These folders are all preceded by the read-only folders, which occur as ` atr-cur- ' entries in the user's mmh context. For example:

FOLDER \0\0\0\0\0\0# MESSAGES RANGE CUR (OTHERS)
/var/work/folder has \035 messages (\01-\035); cur=23
/usr/bugs/Mail has \082 messages (\01-108); cur=82
ff has \0no messages
inbox+ has \016 messages (\03-\022); cur=\05
mh has \076 messages (15-\076); cur=70
notes has \0\02 messages (\01-\0\02); cur=\01
ucom has 124 messages (\01-124); cur=\06; (others)

TOTAL = 339 messages in 7 folders

The `+' after inbox indicates that it is the current folder. The `(others)' indicates that the folder ucom has files which aren't messages. These files may either be sub-folders, or files that don't belong under the mh file naming scheme.

The folder and message totals are output if either a -all or a -total switch is specified. It is suppressed by -nototal .

If -fast is given, only the folder name (or names in the case of -all ) will be listed. (This is faster because the folders need not be read.)

If a +folder is given along with the -all switch, folder will, in addition to setting the current folder, list the top-level subfolders for the current folder (with -norecurse ) or list all sub-folders under the current folder recursively (with -recurse ).

If msg is supplied, together with +folder or without -all , it will become the current message of +folder (if it had been supplied) or the current folder.

The -recurse switch lists each folder recursively, so use of this option effectively defeats the speed enhancement of the -fast option, since each folder must be searched for subfolders. Nevertheless, the combination of these options is useful.

"Compacting a Folder"
The -pack switch will compress the message names in the designated folders, removing holes in message numbering. The -verbose switch directs folder to tell the user the general actions that it is taking to compress the folder.

"The Folder Stack"
The -push switch directs folder to push the current folder onto the folder-stack , and make the +folder argument the current folder. If +folder is not given, the current folder and the top of the folder-stack are exchanged. This corresponds to the `pushd' operation in the shell.

The -pop switch directs folder to discard the top of the folder-stack , after setting the current folder to that value. No +folder argument is allowed. This corresponds to the `popd' operation in the shell. The -push switch and the -pop switch are mutually exclusive: the last occurrence of either one overrides any previous occurrence of the other. Both of these switches also set -list by default.

The -list switch directs folder to list the contents of the folder-stack . No +folder argument is allowed. After a successful -push or -pop , the -list action is taken, unless a -nolist switch follows them on the command line. This corresponds to the `dirs' operation in the shell. The -push , -pop , and -list switches turn off -print .

FILES
.fc ^ ~
^$HOME/.mmh/profile~^The user profile
"PROFILE COMPONENTS"
.fc ^ ~
^Path:~^To determine the user's mail storage
^Current-Folder:~^To find the default current folder
^Folder-Protect:~^To set mode when creating a new folder
^Folder-Stack:~^To determine the folder stack
 ^lsproc:~^Program to list the contents of a folder
"SEE ALSO"
refile(1), mhpath(1)
DEFAULTS
 ` +folder "' defaults to the current folder"  ` msg "' defaults to none"  ` -nofast '  ` -nototal '  ` -nopack '  ` -norecurse '  ` -noverbose '  ` -print "' is the default if no " -list ", " -push ", or " -pop " is specified"  ` -list "' is the default if " -push ", or " -pop " is specified" 
CONTEXT
If +folder and/or msg are given, they will become the current folder and/or message.
BUGS
There is no way to restore the default behavior (to ask the user whether to create a non-existant folder) after -create or -nocreate is given.