e162a8e34fbc69bbd603f6b5d7b2c7e6528b116b
[mmh] / man / folder.man1
1 .\"
2 .\" %nmhwarning%
3 .\"
4 .TH FOLDER %manext1% "%nmhdate%" MH.6.8 [%nmhversion%]
5 .SH NAME
6 folder, folders \- set/list current folder/message
7 .SH SYNOPSIS
8 .HP 5
9 .na
10 .B folder
11 .RI [ +folder ]
12 .RI [ msg ]
13 .RB [ \-all " | " \-noall ]
14 .RB [ \-create " | " \-nocreate ]
15 .RB [ \-fast " | " \-nofast ]
16 .RB [ \-recurse " | " \-norecurse ]
17 .RB [ \-total " | " \-nototal ]
18 .RB [ \-list " | " \-nolist ]
19 .RB [ \-push " | " \-pop ]
20 .RB [ \-pack " | " \-nopack ]
21 .RB [ \-print ]
22 .RB [ \-verbose " | " \-noverbose ]
23 .RB [ \-version ]
24 .RB [ \-help ]
25 .PP
26 .HP 5
27 .B folders
28 is equivalent to
29 .B folder
30 .B \-all
31 .ad
32 .SH DESCRIPTION
33 Since the
34 .B nmh
35 environment is the shell, it is easy to lose track
36 of the current folder from day to day.  When
37 .B folder
38 is given the
39 .B \-print
40 switch (the default),
41 .B folder
42 will list the current folder,
43 the number of messages in it, the range of the messages (low\-high),
44 and the current message within the folder, and will flag extra files if
45 they exist.  An example of this summary is:
46 .PP
47 .RS 5
48 .nf
49 .ta \w'/rnd/phyl/Mail/EP 'u +\w'has ddd messages 'u +\w'(ddd\-ddd); 'u
50 inbox+  has \016 messages       (\0\03\-\022);  cur=\0\05
51 .fi
52 .RE
53 .PP
54 If a
55 .I +folder
56 and/or
57 .I msg
58 are specified, they will become the current
59 folder and/or message.  By comparison, when a
60 .I +folder
61 argument is given, this corresponds to a \*(lqcd\*(rq operation
62 in the shell; when no
63 .I +folder
64 argument is given, this corresponds roughly to a \*(lqpwd\*(rq
65 operation in the shell.
66 .PP
67 If the specified (or default) folder doesn't exist, the default action
68 is to query the user as to whether the folder should be created; when
69 standard input is not a tty, the answer to the query is assumed to be
70 \*(lqyes\*(rq.
71 .PP
72 Specifying
73 .B \-create
74 will cause
75 .B folder
76 to create new folders
77 without any query.  (This is the easy way to create an empty folder for
78 use later.)  Specifying
79 .B \-nocreate
80 will cause
81 .B folder
82 to exit
83 without creating a non-existant folder.
84 .\"
85 .\" note - this doesn't work at present
86 .\" If `\-noprint' is specified,
87 .\" a `+folder' and/or `msg' may still be specified
88 .\" to set the current folder and/or message,
89 .\" but the folder summary will not be printed.
90
91 .SS "Multiple Folders"
92 Specifying
93 .B \-all
94 will produce a summary line for each top-level folder
95 in the user's mmh directory, sorted alphabetically.  (If
96 .B folder
97 is invoked by a name ending with \*(lqs\*(rq (e.g.
98 .BR folders ),
99 .B \-all
100 is assumed).  Specifying
101 .B \-recurse
102 with
103 .B \-all
104 will also
105 produce a line for all sub-folders.  These folders are all preceded by
106 the read\-only folders, which occur as
107 .RI \*(lq atr\-cur\- \*(rq
108 entries in the user's
109 .B mmh
110 context.  For example:
111 .PP
112 .RS 5
113 .nf
114 .ta \w'/rnd/phyl/Mail/EP 'u +\w'has ddd messages 'u +\w'(ddd\-ddd); 'u
115 FOLDER  \0\0\0\0\0\0# MESSAGES  RANGE   CUR     (OTHERS)
116 /var/work/folder        has \035 messages       (\01\-\035);    cur=23
117 /usr/bugs/Mail  has \082 messages       (\01\-108);     cur=82
118 ff      has \0no messages
119 inbox+  has \016 messages       (\03\-\022);    cur=\05
120 mh      has \076 messages       (15\-\076);     cur=70
121 notes   has \0\02 messages      (\01\-\0\02);   cur=\01
122 ucom    has 124 messages        (\01\-124);     cur=\06; (others)
123 .ta \w'/rnd/phyl/Mail/EP has 'u
124
125 TOTAL = 339 messages in 7 folders
126 .fi
127 .RE
128 .PP
129 The \*(lq+\*(rq after
130 .I inbox
131 indicates that it is the current folder.
132 The \*(lq(others)\*(rq indicates that the folder
133 .I ucom
134 has files which
135 aren't messages.  These files may either be sub\-folders, or files that
136 don't belong under the nmh file naming scheme.
137 .PP
138 The folder and message totals are output if either a
139 .B \-all
140 or a
141 .B \-total
142 switch is specified.  It is suppressed by
143 .BR \-nototal .
144 .PP
145 If
146 .B \-fast
147 is given, only the folder name (or names in the case of
148 .BR \-all )
149 will be listed.  (This is faster because the folders need not
150 be read.)
151 .PP
152 If a
153 .I +folder
154 is given along with the
155 .B \-all
156 switch,
157 .B folder
158 will, in addition to setting the current folder, list the top\-level subfolders
159 for the current folder (with
160 .BR \-norecurse )
161 or list all sub-folders under the current folder recursively (with
162 .BR \-recurse ).
163 .PP
164 If
165 .I msg
166 is supplied, together with
167 .IR +folder
168 or without
169 .BR \-all ,
170 it will become the current message of
171 .IR +folder
172 (if it had been supplied)
173 or the current folder.
174 .PP
175 The
176 .B \-recurse
177 switch lists each folder recursively, so use of this
178 option effectively defeats the speed enhancement of the
179 .B \-fast
180 option,
181 since each folder must be searched for subfolders.  Nevertheless, the
182 combination of these options is useful.
183 .PP
184 .SS "Compacting a Folder"
185 The
186 .B \-pack
187 switch will compress the message names in the designated
188 folders, removing holes in message numbering.  The
189 .B \-verbose
190 switch directs
191 .B folder
192 to tell the user the general actions that it is
193 taking to compress the folder.
194 .PP
195 .SS "The Folder Stack"
196 The
197 .B \-push
198 switch directs
199 .B folder
200 to push the current folder
201 onto the
202 .IR folder\-stack ,
203 and make the
204 .I +folder
205 argument the current folder.  If
206 .I +folder
207 is not given, the current folder and the
208 top of the
209 .I folder\-stack
210 are exchanged.  This corresponds to the
211 \*(lqpushd\*(rq operation in the shell.
212 .PP
213 The
214 .B \-pop
215 switch directs
216 .B folder
217 to discard the top of the
218 .IR folder\-stack ,
219 after setting the current folder to that value.
220 No
221 .I +folder
222 argument is allowed.  This corresponds to the \*(lqpopd\*(rq
223 operation in the shell.  The
224 .B \-push
225 switch and the
226 .B \-pop
227 switch
228 are mutually exclusive: the last occurrence of either one overrides
229 any previous occurrence of the other.  Both of these switches also set
230 .B \-list
231 by default.
232 .PP
233 The
234 .B \-list
235 switch directs
236 .B folder
237 to list the contents of
238 the
239 .IR folder\-stack .
240 No
241 .I +folder
242 argument is allowed.  After a successful
243 .B \-push
244 or
245 .BR \-pop ,
246 the
247 .B \-list
248 action is taken, unless a
249 .B \-nolist
250 switch follows them on the command line.  This corresponds
251 to the \*(lqdirs\*(rq operation in the shell.  The
252 .BR \-push ,
253 .BR \-pop ,
254 and
255 .B \-list
256 switches turn off
257 .BR \-print .
258
259 .SH FILES
260 .fc ^ ~
261 .nf
262 .ta \w'%etcdir%/ExtraBigFileName  'u
263 ^$HOME/.mmh/profile~^The user profile
264 .fi
265
266 .SH "PROFILE COMPONENTS"
267 .fc ^ ~
268 .nf
269 .ta 2.4i
270 .ta \w'ExtraBigProfileName  'u
271 ^Path:~^To determine the user's mail storage
272 ^Current\-Folder:~^To find the default current folder
273 ^Folder\-Protect:~^To set mode when creating a new folder
274 ^Folder\-Stack:~^To determine the folder stack
275 .\" ^lsproc:~^Program to list the contents of a folder
276 .fi
277
278 .SH "SEE ALSO"
279 refile(1), mhpath(1)
280
281 .SH DEFAULTS
282 .nf
283 .RB ` +folder "' defaults to the current folder"
284 .RB ` msg "' defaults to none"
285 .RB ` \-nofast '
286 .RB ` \-nototal '
287 .RB ` \-nopack '
288 .RB ` \-norecurse '
289 .RB ` \-noverbose '
290 .RB ` \-print "' is the default if no " \-list ", " \-push ", or " \-pop " is specified"
291 .RB ` \-list "' is the default if " \-push ", or " \-pop " is specified"
292 .fi
293
294 .SH CONTEXT
295 If
296 .I +folder
297 and/or
298 .I msg
299 are given, they will become the current folder and/or message.
300
301 .SH BUGS
302 There is no way to restore the default behavior
303 (to ask the user whether to create a non-existant folder)
304 after
305 .B \-create
306 or
307 .B \-nocreate
308 is given.