1 /*@ S-nail - a mail user agent derived from Berkeley Mail.
2 *@ This header is included by ./lex.c and defines the command array content.
4 * Copyright (c) 2000-2004 Gunnar Ritter, Freiburg i. Br., Germany.
5 * Copyright (c) 2012 - 2015 Steffen (Daode) Nurpmeso <sdaoden@users.sf.net>.
8 * Copyright (c) 1980, 1993
9 * The Regents of the University of California. All rights reserved.
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
14 * 1. Redistributions of source code must retain the above copyright
15 * notice, this list of conditions and the following disclaimer.
16 * 2. Redistributions in binary form must reproduce the above copyright
17 * notice, this list of conditions and the following disclaimer in the
18 * documentation and/or other materials provided with the distribution.
19 * 3. Neither the name of the University nor the names of its contributors
20 * may be used to endorse or promote products derived from this software
21 * without specific prior written permission.
23 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36 /* Some shorter aliases to be able to define a command in two lines */
37 #define MSGLIST ARG_MSGLIST
38 #define STRLIST ARG_STRLIST
39 #define RAWLIST ARG_RAWLIST
40 #define NOLIST ARG_NOLIST
41 #define NDMLIST ARG_NDMLIST
42 #define ECHOLIST ARG_ECHOLIST
43 #define ARG_ARGMASK ARG_ARGMASK
56 /* Note: the first command in here may NOT expand to an unsupported one! */
57 { "next", &c_next
, (A
| NDMLIST
), 0, MMNDEL
58 DS(N_("Goes to the next message (-list) and prints it")) },
59 { "alias", &c_alias
, (M
| RAWLIST
), 0, 1000
60 DS(N_("Show all/<alias>, or (re)define <alias> to <:data:>")) },
61 { "print", &c_type
, (A
| MSGLIST
), 0, MMNDEL
62 DS(N_("Type each message of <message-list> on the terminal")) },
63 { "type", &c_type
, (A
| MSGLIST
), 0, MMNDEL
64 DS(N_("Type each message of <message-list> on the terminal")) },
65 { "Type", &c_Type
, (A
| MSGLIST
), 0, MMNDEL
66 DS(N_("Like `print', but prints all headers and parts")) },
67 { "Print", &c_Type
, (A
| MSGLIST
), 0, MMNDEL
68 DS(N_("Like `print', but prints all headers and parts")) },
69 { "visual", &c_visual
, (A
| I
| MSGLIST
), 0, MMNORM
70 DS(N_("Edit <message-list>")) },
71 { "top", &c_top
, (A
| MSGLIST
), 0, MMNDEL
72 DS(N_("Print top few lines of <message-list>")) },
73 { "touch", &c_stouch
, (A
| W
| MSGLIST
), 0, MMNDEL
74 DS(N_("Mark <message-list> for saving in *mbox*")) },
75 { "preserve", &c_preserve
, (A
| W
| MSGLIST
), 0, MMNDEL
76 DS(N_("Save <message-list> in system mailbox instead of *MBOX*")) },
77 { "delete", &c_delete
, (A
| W
| P
| MSGLIST
), 0, MMNDEL
78 DS(N_("Delete <message-list>")) },
79 { "dp", &c_deltype
, (A
| W
| MSGLIST
), 0, MMNDEL
80 DS(N_("Delete the current message, then print the next")) },
81 { "dt", &c_deltype
, (A
| W
| MSGLIST
), 0, MMNDEL
82 DS(N_("Delete the current message, then print the next")) },
83 { "undelete", &c_undelete
, (A
| P
| MSGLIST
), MDELETED
,MMNDEL
84 DS(N_("Un`delete' <message-list>")) },
85 { "unset", &c_unset
, (H
| M
| RAWLIST
), 1, 1000
86 DS(N_("Unset <option-list>")) },
87 { "unsetenv", &c_unsetenv
, (H
| M
| RAWLIST
), 1, 1000
88 DS(N_("Unset <option-list>, also in the program environment")) },
89 { "mail", &c_sendmail
, (R
| M
| I
| STRLIST
), 0, 0
90 DS(N_("Compose mail; recipients may be given as arguments")) },
91 { "Mail", &c_Sendmail
, (R
| M
| I
| STRLIST
), 0, 0
92 DS(N_("Like `mail', but derive filename from first recipient")) },
93 { "mbox", &c_mboxit
, (A
| W
| MSGLIST
), 0, 0
94 DS(N_("Indicate that <message-list> is to be stored in *mbox*")) },
95 { "more", &c_more
, (A
| MSGLIST
), 0, MMNDEL
96 DS(N_("Invoke the pager on the given messages")) },
97 { "page", &c_more
, (A
| MSGLIST
), 0, MMNDEL
98 DS(N_("Invoke the pager on the given messages")) },
99 { "More", &c_More
, (A
| MSGLIST
), 0, MMNDEL
100 DS(N_("Invoke the pager on the given messages")) },
101 { "Page", &c_More
, (A
| MSGLIST
), 0, MMNDEL
102 DS(N_("Invoke the pager on the given messages")) },
103 { "unread", &c_unread
, (A
| MSGLIST
), 0, MMNDEL
104 DS(N_("Mark <message-list> as not being read")) },
105 { "Unread", &c_unread
, (A
| MSGLIST
), 0, MMNDEL
106 DS(N_("Mark <message-list> as not being read")) },
107 { "new", &c_unread
, (A
| MSGLIST
), 0, MMNDEL
108 DS(N_("Mark <message-list> as not being read")) },
109 { "New", &c_unread
, (A
| MSGLIST
), 0, MMNDEL
110 DS(N_("Mark <message-list> as not being read")) },
111 { "!", &c_shell
, (I
| STRLIST
), 0, 0 /* XXX I? */
112 DS(N_("Execute <shell-command>")) },
113 { "copy", &c_copy
, (A
| M
| STRLIST
), 0, 0
114 DS(N_("Copy <message-list>, but don't mark them for deletion")) },
115 { "Copy", &c_Copy
, (A
| M
| STRLIST
), 0, 0
116 DS(N_("Like `copy', but derive filename from first sender")) },
117 { "chdir", &c_chdir
, (M
| RAWLIST
), 0, 1
118 DS(N_("Change CWD to the specified/the login directory")) },
119 { "cd", &c_chdir
, (M
| RAWLIST
), 0, 1
120 DS(N_("Change CWD to the specified/the login directory")) },
121 { "save", &c_save
, (A
| STRLIST
), 0, 0
122 DS(N_("Append <message-list> to <file>")) },
123 { "Save", &c_Save
, (A
| STRLIST
), 0, 0
124 DS(N_("Like `save', but derive filename from first sender")) },
125 { "source", &c_source
, (M
| R
| RAWLIST
), 1, 1
126 DS(N_("Read commands from <file>")) },
127 { "source_if", &c_source_if
, (M
| R
| RAWLIST
), 1, 1
128 DS(N_("If <file> can be opened successfully, read commands from it")) },
129 { "set", &c_set
, (H
| M
| RAWLIST
), 0, 1000
130 DS(N_("Print all variables, or set (a) <variable>(s)")) },
131 { "setenv", &c_setenv
, (H
| M
| RAWLIST
), 1, 1000
132 DS(N_("Set (a) <variable>(s) and export into the program environment")) },
133 { "shell", &c_dosh
, (I
| NOLIST
), 0, 0
134 DS(N_("Invoke an interactive shell")) },
135 { "unalias", &c_unalias
, (M
| RAWLIST
), 1, 1000
136 DS(N_("Un`alias' <name-list> (\"*\" for all)")) },
137 { "write", &c_write
, (A
| STRLIST
), 0, 0
138 DS(N_("Write (append) to <file>")) },
139 { "from", &c_from
, (A
| MSGLIST
), 0, MMNORM
140 DS(N_("Show message headers of <message-list>")) },
141 { "search", &c_from
, (A
| MSGLIST
), 0, MMNORM
142 DS(N_("\"Search\" for <message-specification>, print matching headers")) },
143 { "file", &c_file
, (T
| M
| RAWLIST
), 0, 1
144 DS(N_("Open a new <mailbox> or show the current one")) },
145 { "followup", &c_followup
, (A
| R
| I
| MSGLIST
), 0, MMNDEL
146 DS(N_("Like `reply', but derive filename from first sender")) },
147 { "followupall", &c_followupall
, (A
| R
| I
| MSGLIST
), 0, MMNDEL
148 DS(N_("Like `reply', but derive filename from first sender")) },
149 { "followupsender", &c_followupsender
, (A
| R
| I
| MSGLIST
), 0, MMNDEL
150 DS(N_("Like `Followup', but always reply to the sender only")) },
151 { "folder", &c_file
, (T
| M
| RAWLIST
), 0, 1
152 DS(N_("Open a new <mailbox> or show the current one")) },
153 { "folders", &c_folders
, (T
| M
| RAWLIST
), 0, 1
154 DS(N_("List mailboxes below the given or the global folder")) },
155 { "z", &c_scroll
, (A
| M
| STRLIST
), 0, 0
156 DS(N_("Scroll header display as indicated by the argument (0,-,+,$)")) },
157 { "Z", &c_Scroll
, (A
| M
| STRLIST
), 0, 0
158 DS(N_("Like `z', but continues to the next flagged message")) },
159 { "headers", &c_headers
, (A
| M
| MSGLIST
), 0, MMNDEL
160 DS(N_("Print a page of headers (with the first of <message> if given)")) },
161 { "help", &c_help
, (H
| M
| RAWLIST
), 0, 1
162 DS(N_("Show command help (for the given one)")) },
163 { "?", &c_help
, (H
| M
| RAWLIST
), 0, 1
164 DS(N_("Show command help (for the given one)")) },
165 { "=", &c_pdot
, (A
| NOLIST
), 0, 0
166 DS(N_("Show current message number")) },
167 { "Reply", &c_Reply
, (A
| R
| I
| MSGLIST
), 0, MMNDEL
168 DS(N_("Reply to originator, exclusively")) },
169 { "Respond", &c_Reply
, (A
| R
| I
| MSGLIST
), 0, MMNDEL
170 DS(N_("Reply to originator, exclusively")) },
171 { "Followup", &c_Followup
, (A
| R
| I
| MSGLIST
), 0, MMNDEL
172 DS(N_("Like `Reply', but derive filename from first sender")) },
173 { "reply", &c_reply
, (A
| R
| I
| MSGLIST
), 0, MMNDEL
174 DS(N_("Reply to originator and recipients of <message-list>")) },
175 { "replyall", &c_replyall
, (A
| R
| I
| MSGLIST
), 0, MMNDEL
176 DS(N_("Reply to originator and recipients of <message-list>")) },
177 { "replysender", &c_replysender
, (A
| R
| I
| MSGLIST
), 0, MMNDEL
178 DS(N_("Reply to originator, exclusively")) },
179 { "respond", &c_reply
, (A
| R
| I
| MSGLIST
), 0, MMNDEL
180 DS(N_("Reply to originators and recipients of <message-list>")) },
181 { "respondall", &c_replyall
, (A
| R
| I
| MSGLIST
), 0, MMNDEL
182 DS(N_("Reply to originators and recipients of <message-list>")) },
183 { "respondsender", &c_replysender
, (A
| R
| I
| MSGLIST
),0, MMNDEL
184 DS(N_("Reply to originator, exclusively")) },
185 { "Resend", &c_Resend
, (A
| R
| STRLIST
), 0, MMNDEL
186 DS(N_("Like `resend', but don't add Resent-* headers")) },
187 { "Redirect", &c_Resend
, (A
| R
| STRLIST
), 0, MMNDEL
188 DS(N_("Like `resend', but don't add Resent-* headers")) },
189 { "resend", &c_resend
, (A
| R
| STRLIST
), 0, MMNDEL
190 DS(N_("Resend <message-list> to <user>, add Resent-* headers")) },
191 { "redirect", &c_resend
, (A
| R
| STRLIST
), 0, MMNDEL
192 DS(N_("Resend <message-list> to <user>, add Resent-* headers")) },
193 { "Forward", &c_Forward
, (A
| R
| STRLIST
), 0, MMNDEL
194 DS(N_("Like `forward', but derive filename from <address>")) },
195 { "Fwd", &c_Forward
, (A
| R
| STRLIST
), 0, MMNDEL
196 DS(N_("Like `forward', but derive filename from <address>")) },
197 { "forward", &c_forward
, (A
| R
| STRLIST
), 0, MMNDEL
198 DS(N_("Forward <message> to <address>")) },
199 { "fwd", &c_forward
, (A
| R
| STRLIST
), 0, MMNDEL
200 DS(N_("Forward <message> to <address>")) },
201 { "edit", &c_editor
, (A
| I
| MSGLIST
), 0, MMNORM
202 DS(N_("Edit <message-list>")) },
203 { "echo", &c_echo
, (H
| M
| ECHOLIST
), 0, 1000
204 DS(N_("Echo given arguments")) },
205 { "quit", &_c_quit
, NOLIST
, 0, 0
206 DS(N_("Terminate session, saving messages as necessary")) },
207 { "list", &_c_list
, (H
| M
| NOLIST
), 0, 0
208 DS(N_("List all available commands")) },
209 { "xit", &c_rexit
, (M
| NOLIST
), 0, 0
210 DS(N_("Immediate return to the shell without saving")) },
211 { "exit", &c_rexit
, (M
| NOLIST
), 0, 0
212 DS(N_("Immediate return to the shell without saving")) },
213 { "pipe", &c_pipe
, (A
| STRLIST
), 0, MMNDEL
214 DS(N_("Pipe <message-list> to <command>")) },
215 { "|", &c_pipe
, (A
| STRLIST
), 0, MMNDEL
216 DS(N_("Pipe <message-list> to <command>")) },
217 { "Pipe", &c_Pipe
, (A
| STRLIST
), 0, MMNDEL
218 DS(N_("Like `pipe', but pipes all headers and parts")) },
219 { "size", &c_messize
, (A
| MSGLIST
), 0, MMNDEL
220 DS(N_("Show size in characters for <message-list>")) },
221 { "hold", &c_preserve
, (A
| W
| MSGLIST
), 0, MMNDEL
222 DS(N_("Save <message-list> in system mailbox instead of *MBOX*")) },
223 { "if", &c_if
, (F
| M
| RAWLIST
), 1, 1000
224 DS(N_("Part of the if..elif..else..endif statement")) },
225 { "else", &c_else
, (F
| M
| RAWLIST
), 0, 0
226 DS(N_("Part of the if..elif..else..endif statement")) },
227 { "elif", &c_elif
, (F
| M
| RAWLIST
), 1, 1000
228 DS(N_("Part of the if..elif..else..endif statement")) },
229 { "endif", &c_endif
, (F
| M
| RAWLIST
), 0, 0
230 DS(N_("Part of the if..elif..else..endif statement")) },
231 { "alternates", &c_alternates
, (M
| RAWLIST
), 0, 1000
232 DS(N_("Show or define an alternate list for the invoking user")) },
233 { "ignore", &c_igfield
, (M
| RAWLIST
), 0, 1000
234 DS(N_("Add <header-fields> to the ignored LIST, or show that list")) },
235 { "discard", &c_igfield
, (M
| RAWLIST
), 0, 1000
236 DS(N_("Add <header-fields> to the ignored LIST, or show that list")) },
237 { "retain", &c_retfield
, (M
| RAWLIST
), 0, 1000
238 DS(N_("Add <header-fields> to retained list, or show that list")) },
239 { "saveignore", &c_saveigfield
, (M
| RAWLIST
), 0, 1000
240 DS(N_("Is to `save' what `ignore' is to `type'/`print'")) },
241 { "savediscard", &c_saveigfield
, (M
| RAWLIST
), 0, 1000
242 DS(N_("Is to `save' what `ignore' is to `type'/`print'")) },
243 { "saveretain", &c_saveretfield
, (M
| RAWLIST
), 0, 1000
244 DS(N_("Is to `save' what `retain' is to `type'/`print'")) },
245 { "unignore", &c_unignore
, (M
| RAWLIST
), 0, 1000
246 DS(N_("Un`ignore' <header-fields>")) },
247 { "unretain", &c_unretain
, (M
| RAWLIST
), 0, 1000
248 DS(N_("Un`retain' <header-fields>")) },
249 { "unsaveignore", &c_unsaveignore
, (M
| RAWLIST
), 0, 1000
250 DS(N_("Un`saveignore' <header-fields>")) },
251 { "unsaveretain", &c_unsaveretain
, (M
| RAWLIST
), 0, 1000
252 DS(N_("Un`saveretain' <header-fields>")) },
253 { "newmail", &c_newmail
, (A
| T
| NOLIST
), 0, 0
254 DS(N_("Check for new mail in current folder")) },
255 { "shortcut", &c_shortcut
, (M
| RAWLIST
), 0, 1000
256 DS(N_("Define <shortcut>s and their <expansion>, or list shortcuts")) },
257 { "unshortcut", &c_unshortcut
, (M
| RAWLIST
), 1, 1000
258 DS(N_("Delete <shortcut-list> (\"*\" for all)")) },
259 { "account", &c_account
, (M
| RAWLIST
), 0, 1000
260 DS(N_("Create or select <account>, or list all accounts")) },
261 { "thread", &c_thread
, (A
| O
| MSGLIST
), 0, 0
262 DS(N_("Create threaded view of current \"folder\"")) },
263 { "unthread", &c_unthread
, (A
| O
| MSGLIST
), 0, 0
264 DS(N_("Disable sorted or threaded mode")) },
265 { "sort", &c_sort
, (A
| RAWLIST
), 0, 1
266 DS(N_("Change sorting: date,from,size,spam,status,subject,thread,to")) },
267 { "unsort", &c_unthread
, (A
| MSGLIST
), 0, 0
268 DS(N_("Disable sorted or threaded mode")) },
269 { "flag", &c_flag
, (A
| M
| MSGLIST
), 0, 0
270 DS(N_("(Un)Flag <message-list> (for special attention)")) },
271 { "unflag", &c_unflag
, (A
| M
| MSGLIST
), 0, 0
272 DS(N_("(Un)Flag <message-list> (for special attention)")) },
273 { "answered", &c_answered
, (A
| M
| MSGLIST
), 0, 0
274 DS(N_("Mark the given <message list> as \"answered\"")) },
275 { "unanswered", &c_unanswered
, (A
| M
| MSGLIST
), 0, 0
276 DS(N_("Un`answered' <message-list>")) },
277 { "draft", &c_draft
, (A
| M
| MSGLIST
), 0, 0
278 DS(N_("Mark <message-list> as draft")) },
279 { "undraft", &c_undraft
, (A
| M
| MSGLIST
), 0, 0
280 DS(N_("Un`draft' <message-list>")) },
281 { "define", &c_define
, (M
| RAWLIST
), 0, 2
282 DS(N_("Define a <macro> or show the currently defined ones")) },
283 { "undefine", &c_undefine
, (M
| RAWLIST
), 1, 1000
284 DS(N_("Un`define' all given <macros> (\"*\" for all)")) },
285 { "unaccount", &c_unaccount
, (M
| RAWLIST
), 1, 1000
286 DS(N_("Delete all given <accounts> (\"*\" for all)")) },
287 { "call", &c_call
, (M
| RAWLIST
), 0, 1
288 DS(N_("Call a macro")) },
289 { "~", &c_call
, (M
| RAWLIST
), 0, 1
290 DS(N_("Call a macro")) },
291 { "move", &c_move
, (A
| M
| STRLIST
), 0, 0
292 DS(N_("Like `copy', but mark messages for deletion")) },
293 { "mv", &c_move
, (A
| M
| STRLIST
), 0, 0
294 DS(N_("Like `copy', but mark messages for deletion")) },
295 { "Move", &c_Move
, (A
| M
| STRLIST
), 0, 0
296 DS(N_("Like `move', but derive filename from first sender")) },
297 { "Mv", &c_Move
, (A
| M
| STRLIST
), 0, 0
298 DS(N_("Like `move', but derive filename from first sender")) },
299 { "noop", &c_noop
, (A
| M
| RAWLIST
), 0, 0
300 DS(N_("NOOP command if current folder is accessed via network")) },
301 { "collapse", &c_collapse
, (A
| MSGLIST
), 0, 0
302 DS(N_("Collapse thread views for <message-list>")) },
303 { "uncollapse", &c_uncollapse
, (A
| MSGLIST
), 0, 0
304 DS(N_("Uncollapse <message-list> if in threaded view")) },
305 { "verify", &c_verify
, (A
| MSGLIST
), 0, 0
306 DS(N_("Verify <message-list>")) },
307 { "decrypt", &c_decrypt
, (A
| M
| STRLIST
), 0, 0
308 DS(N_("Like `copy', but decrypt first, if encrypted")) },
309 { "Decrypt", &c_Decrypt
, (A
| M
| STRLIST
), 0, 0
310 DS(N_("Like `decrypt', but derive filename from first sender")) },
311 { "certsave", &c_certsave
, (A
| STRLIST
), 0, 0
312 DS(N_("Save S/MIME certificates of <message-list> to <file>")) },
313 { "rename", &c_rename
, (M
| RAWLIST
), 0, 2
314 DS(N_("Rename <existing-folder> to <new-folder>")) },
315 { "remove", &c_remove
, (M
| RAWLIST
), 0, 1000
316 DS(N_("Remove the named folders")) },
317 { "show", &c_show
, (A
| MSGLIST
), 0, MMNDEL
318 DS(N_("Like `print', but show raw message content")) },
319 { "Show", &c_show
, (A
| MSGLIST
), 0, MMNDEL
320 DS(N_("Like `print', but show raw message content")) },
321 { "seen", &c_seen
, (A
| M
| MSGLIST
), 0, MMNDEL
322 DS(N_("Mark <message-list> as seen")) },
323 { "Seen", &c_seen
, (A
| M
| MSGLIST
), 0, MMNDEL
324 DS(N_("Mark <message-list> as seen")) },
325 { "fwdignore", &c_fwdigfield
, (M
| RAWLIST
), 0, 1000
326 DS(N_("Which header fields are to be ignored with `forward'")) },
327 { "fwddiscard", &c_fwdigfield
, (M
| RAWLIST
), 0, 1000
328 DS(N_("Which header fields are to be ignored with `forward'")) },
329 { "fwdretain", &c_fwdretfield
, (M
| RAWLIST
), 0, 1000
330 DS(N_("Which header fields have to be retained with `forward'")) },
331 { "unfwdignore", &c_unfwdignore
, (M
| RAWLIST
), 0, 1000
332 DS(N_("Un`fwdignore' <header-fields>")) },
333 { "unfwdretain", &c_unfwdretain
, (M
| RAWLIST
), 0, 1000
334 DS(N_("Un`fwdretain' <header-fields>")) },
335 { "mimetype", &c_mimetype
, (M
| RAWLIST
), 0, 1000
336 DS(N_("(Load and) show all known MIME types or define some")) },
337 { "unmimetype", &c_unmimetype
, (M
| RAWLIST
), 1, 1000
338 DS(N_("Delete <type>s (\"reset\", \"*\" for all; former reinit.s)")) },
339 { "spamrate", &c_spam_rate
, (A
| M
| I
| MSGLIST
), 0, 0
340 DS(N_("Rate <message-list> via the spam detector")) },
341 { "spamham", &c_spam_ham
, (A
| M
| I
| MSGLIST
), 0, 0
342 DS(N_("Teach the spam detector that <message-list> is ham")) },
343 { "spamspam", &c_spam_spam
, (A
| M
| I
| MSGLIST
), 0, 0
344 DS(N_("Teach the spam detector that <message-list> is spam")) },
345 { "spamforget", &c_spam_forget
, (A
| M
| I
| MSGLIST
), 0, 0
346 DS(N_("Force the spam detector to \"unlearn\" <message-list>")) },
347 { "spamset", &c_spam_set
, (A
| M
| I
| MSGLIST
), 0, 0
348 DS(N_("Set the spam flag for each message in <message-list>")) },
349 { "spamclear", &c_spam_clear
, (A
| M
| I
| MSGLIST
), 0, 0
350 DS(N_("Clear the spam flag for each message in <message-list>")) },
351 { "ghost", &_c_ghost
, (M
| RAWLIST
), 0, 1000
352 DS(N_("Print or create <ghost> [<command>], or list all ghosts")) },
353 { "unghost", &_c_unghost
, (M
| RAWLIST
), 1, 1000
354 DS(N_("Delete <ghost-list>")) },
355 { "localopts", &c_localopts
, (H
| M
| RAWLIST
), 1, 1
356 DS(N_("Inside `define' / `account': insulate modifications? <boolean>"))},
357 { "cwd", &c_cwd
, (M
| NOLIST
), 0, 0
358 DS(N_("Print current working directory (CWD)")) },
359 { "pwd", &c_cwd
, (M
| NOLIST
), 0, 0
360 DS(N_("Print current working directory (CWD)")) },
361 { "varshow", &c_varshow
, (H
| M
| RAWLIST
), 1, 1000
362 DS(N_("Show some informations about the given <variables>")) },
363 { "varedit", &c_varedit
, (H
| I
| M
| RAWLIST
), 1, 1000
364 DS(N_("Edit the value(s) of (an) variable(s), or create them")) },
365 { "urlencode", &c_urlencode
, (H
| M
| RAWLIST
), 1, 1000
366 DS(N_("Encode <string-list> for usage in an URL")) },
367 { "urldecode", &c_urldecode
, (H
| M
| RAWLIST
), 1, 1000
368 DS(N_("Decode the URL-encoded <URL-list> into strings")) },
369 { "File", &c_File
, (T
| M
| RAWLIST
), 0, 1
370 DS(N_("Open a new mailbox readonly or show the current mailbox")) },
371 { "Folder", &c_File
, (T
| M
| RAWLIST
), 0, 1
372 DS(N_("Open a new mailbox readonly or show the current mailbox")) },
373 { "mlist", &c_mlist
, (M
| RAWLIST
), 0, 1000
374 DS(N_("Show all known mailing lists or define some")) },
375 { "unmlist", &c_unmlist
, (M
| RAWLIST
), 1, 1000
376 DS(N_("Un`mlist' <name-list> (\"*\" for all)")) },
377 { "mlsubscribe", &c_mlsubscribe
, (M
| RAWLIST
), 0, 1000
378 DS(N_("Show all mailing list subscriptions or define some")) },
379 { "unmlsubscribe", &c_unmlsubscribe
, (M
| RAWLIST
), 1, 1000
380 DS(N_("Un`mlsubscribe' <name-list> (\"*\" for all)"))},
381 { "Lreply", &c_Lreply
, (A
| R
| I
| MSGLIST
), 0, MMNDEL
382 DS(N_("Mailing-list reply to the given message")) },
383 { "errors", &c_errors
, (H
| I
| RAWLIST
), 0, 1
384 DS(N_("Either [<show>] or <clear> the error message ring")) },
385 { "dotmove", &c_dotmove
, (A
| STRLIST
), 1, 1
386 DS(N_("Move the dot up <-> or down <+> by one")) },
387 { "customhdr", &c_customhdr
, (M
| RAWLIST
), 0, 1000
388 DS(N_("Show [all]/<header>, or define a custom <header> to <:data:>")) },
389 { "uncustomhdr", &c_uncustomhdr
, (M
| RAWLIST
), 1, 1000
390 DS(N_("Delete custom <:header:> (\"*\" for all)")) },
391 { "features", &_c_features
, (H
| M
| NOLIST
), 0, 0
392 DS(N_("Show features that are compiled into the Mail-User-Agent")) },
393 { "version", &_c_version
, (H
| M
| NOLIST
), 0, 0
394 DS(N_("Print the Mail-User-Agent version")) },
396 { "history", &c_history
, (H
| I
| M
| V
| RAWLIST
), 0, 1
397 DS(N_("<show> (default), <clear> or select <NO> from editor history")) },
399 { "netrc", &c_netrc
, (M
| RAWLIST
), 0, 1
400 DS(N_("[<show>], <load> or <clear> the .netrc cache")) },
402 { "colour", &c_colour
, (M
| RAWLIST
), 1, 4
403 DS(N_("Show colour settings of <type> (mono, iso, 256) or define one")) },
404 { "uncolour", &c_uncolour
, (M
| RAWLIST
), 2, 3
405 DS(N_("Un`colour' <type> <mapping> (\"*\" for all) [<precondition>]")) },
408 { "sstats", &c_sstats
, (H
| I
| M
| NOLIST
), 0, 0
409 DS(N_("Print statistics about the auto-reclaimed string store")) },
410 { "smemtrace", &c_smemtrace
, (H
| I
| M
| NOLIST
), 0, 0
411 DS(N_("Trace current memory usage afap")) },