Add more PRIxy macros, start using them..
[s-mailx.git] / cmd_tab.h
blob52c2ab70022b3c8c60cc9c2e1d8ea392fe294e3e
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 - 2014 Steffen (Daode) Nurpmeso <sdaoden@users.sf.net>.
6 */
7 /*
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
13 * are met:
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. All advertising materials mentioning features or use of this software
20 * must display the following acknowledgement:
21 * This product includes software developed by the University of
22 * California, Berkeley and its contributors.
23 * 4. Neither the name of the University nor the names of its contributors
24 * may be used to endorse or promote products derived from this software
25 * without specific prior written permission.
27 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
28 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
29 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
30 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
31 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
32 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
33 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
34 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
35 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
36 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
37 * SUCH DAMAGE.
40 /* Some shorter aliases to be able to define a command in two lines */
41 #define MSGLIST ARG_MSGLIST
42 #define STRLIST ARG_STRLIST
43 #define RAWLIST ARG_RAWLIST
44 #define NOLIST ARG_NOLIST
45 #define NDMLIST ARG_NDMLIST
46 #define ECHOLIST ARG_ECHOLIST
47 #define ARG_ARGMASK ARG_ARGMASK
48 #define A ARG_A
49 #define F ARG_F
50 #define H ARG_H
51 #define I ARG_I
52 #define M ARG_M
53 #define P ARG_P
54 #define R ARG_R
55 #define T ARG_T
56 #define V ARG_V
57 #define W ARG_W
59 #ifdef HAVE_DOCSTRINGS
60 # define DS(S) , S
61 #else
62 # define DS(S)
63 #endif
65 /* Note: the first command in here may NOT expand to an unsupported one! */
66 { "next", &c_next, (A | NDMLIST), 0, MMNDEL
67 DS(N_("Goes to the next message (-list) and prints it")) },
68 { "alias", &c_group, (M | RAWLIST), 0, 1000
69 DS(N_("Show all or the specified alias(es), or (re)define one")) },
70 { "print", &c_type, (A | MSGLIST), 0, MMNDEL
71 DS(N_("Type each message of <message-list> on the terminal")) },
72 { "type", &c_type, (A | MSGLIST), 0, MMNDEL
73 DS(N_("Type each message of <message-list> on the terminal")) },
74 { "Type", &c_Type, (A | MSGLIST), 0, MMNDEL
75 DS(N_("Like \"print\", but prints all headers and parts")) },
76 { "Print", &c_Type, (A | MSGLIST), 0, MMNDEL
77 DS(N_("Like \"print\", but prints all headers and parts")) },
78 { "visual", &c_visual, (A | I | MSGLIST), 0, MMNORM
79 DS(N_("Edit <message-list>")) },
80 { "top", &c_top, (A | MSGLIST), 0, MMNDEL
81 DS(N_("Print top few lines of <message-list>")) },
82 { "touch", &c_stouch, (A | W | MSGLIST), 0, MMNDEL
83 DS(N_("Mark <message-list> for saving in *mbox*")) },
84 { "preserve", &c_preserve, (A | W | MSGLIST), 0, MMNDEL
85 DS(N_("Save <message-list> in system mailbox instead of *mbox*")) },
86 { "delete", &c_delete, (A | W | P | MSGLIST), 0, MMNDEL
87 DS(N_("Delete <message-list>")) },
88 { "dp", &c_deltype, (A | W | MSGLIST), 0, MMNDEL
89 DS(N_("Delete the current message, then print the next")) },
90 { "dt", &c_deltype, (A | W | MSGLIST), 0, MMNDEL
91 DS(N_("Delete the current message, then print the next")) },
92 { "undelete", &c_undelete, (A | P | MSGLIST), MDELETED,MMNDEL
93 DS(N_("Un\"delete\" <message-list>")) },
94 { "unset", &c_unset, (H | M | RAWLIST), 1, 1000
95 DS(N_("Unset <option-list>")) },
96 { "unsetenv", &c_unsetenv, (H | M | RAWLIST), 1, 1000
97 DS(N_("Unset <option-list>, also in the program environment")) },
98 { "mail", &c_sendmail, (R | M | I | STRLIST), 0, 0
99 DS(N_("Compose mail; recipients may be given as arguments")) },
100 { "Mail", &c_Sendmail, (R | M | I | STRLIST), 0, 0
101 DS(N_("Like \"mail\", but derive filename from first recipient")) },
102 { "mbox", &c_mboxit, (A | W | MSGLIST), 0, 0
103 DS(N_("Indicate that <message-list> is to be stored in *mbox*")) },
104 { "more", &c_more, (A | MSGLIST), 0, MMNDEL
105 DS(N_("Like \"type\"/\"print\", put print \\f between messages")) },
106 { "page", &c_more, (A | MSGLIST), 0, MMNDEL
107 DS(N_("Like \"type\"/\"print\", put print \\f between messages")) },
108 { "More", &c_More, (A | MSGLIST), 0, MMNDEL
109 DS(N_("Like \"Type\"/\"Print\", put print \\f between messages")) },
110 { "Page", &c_More, (A | MSGLIST), 0, MMNDEL
111 DS(N_("Like \"Type\"/\"Print\", put print \\f between messages")) },
112 { "unread", &c_unread, (A | MSGLIST), 0, MMNDEL
113 DS(N_("Mark <message-list> as not being read")) },
114 { "Unread", &c_unread, (A | MSGLIST), 0, MMNDEL
115 DS(N_("Mark <message-list> as not being read")) },
116 { "new", &c_unread, (A | MSGLIST), 0, MMNDEL
117 DS(N_("Mark <message-list> as not being read")) },
118 { "New", &c_unread, (A | MSGLIST), 0, MMNDEL
119 DS(N_("Mark <message-list> as not being read")) },
120 { "!", &c_shell, (I | STRLIST), 0, 0 /* XXX I? */
121 DS(N_("Execute <shell-command>")) },
122 { "copy", &c_copy, (A | M | STRLIST), 0, 0
123 DS(N_("Copy <message-list>, but don't mark them for deletion")) },
124 { "Copy", &c_Copy, (A | M | STRLIST), 0, 0
125 DS(N_("Like \"copy\", but derive filename from first sender")) },
126 { "chdir", &c_chdir, (M | RAWLIST), 0, 1
127 DS(N_("Change CWD to the specified/the login directory")) },
128 { "cd", &c_chdir, (M | RAWLIST), 0, 1
129 DS(N_("Change CWD to the specified/the login directory")) },
130 { "save", &c_save, (A | STRLIST), 0, 0
131 DS(N_("Append <message-list> to <file>")) },
132 { "Save", &c_Save, (A | STRLIST), 0, 0
133 DS(N_("Like \"save\", but derive filename from first sender")) },
134 { "source", &c_source, (M | RAWLIST), 1, 1
135 DS(N_("Read commands from <file>")) },
136 { "set", &c_set, (H | M | RAWLIST), 0, 1000
137 DS(N_("Print all variables, or set (a) variable(s)")) },
138 { "setenv", &c_setenv, (H | M | RAWLIST), 1, 1000
139 DS(N_("Set (a) variable(s) and export into the program environment")) },
140 { "shell", &c_dosh, (I | NOLIST), 0, 0
141 DS(N_("Invoke an interactive shell")) },
142 { "unalias", &c_ungroup, (M | RAWLIST), 0, 1000
143 DS(N_("Un\"alias\" <name-list>")) },
144 { "write", &c_write, (A | STRLIST), 0, 0
145 DS(N_("Write (append) to <file>")) },
146 { "from", &c_from, (A | MSGLIST), 0, MMNORM
147 DS(N_("Show message headers of <message-list>")) },
148 { "file", &c_file, (T | M | RAWLIST), 0, 1
149 DS(N_("Open a new mailbox or show the current one")) },
150 { "followup", &c_followup, (A | R | I | MSGLIST), 0, MMNDEL
151 DS(N_("Like \"respond\", but derive filename from first sender")) },
152 { "followupall", &c_followupall, (A | R | I | MSGLIST), 0, MMNDEL
153 DS(N_("Like \"respond\", but derive filename from first sender")) },
154 { "followupsender", &c_followupsender, (A | R | I | MSGLIST), 0, MMNDEL
155 DS(N_("Like \"Followup\", but always respond to the sender only")) },
156 { "folder", &c_file, (T | M | RAWLIST), 0, 1
157 DS(N_("Open a new mailbox or show the current one")) },
158 { "folders", &c_folders, (T | M | RAWLIST), 0, 1
159 DS(N_("List mailboxes below the given or the global folder")) },
160 { "z", &c_scroll, (A | M | STRLIST), 0, 0
161 DS(N_("Scroll header display as indicated by the argument (0,-,+,$)")) },
162 { "Z", &c_Scroll, (A | M | STRLIST), 0, 0
163 DS(N_("Like \"z\", but continues to the next flagged message")) },
164 { "headers", &c_headers, (A | M | MSGLIST), 0, MMNDEL
165 DS(N_("Show the current group of headers "
166 "(according to <message>, if specified)")) },
167 { "help", &c_help, (H | M | RAWLIST), 0, 1
168 DS(N_("Show command help (for the given one)")) },
169 { "?", &c_help, (H | M | RAWLIST), 0, 1
170 DS(N_("Show command help (for the given one)")) },
171 { "=", &c_pdot, (A | NOLIST), 0, 0
172 DS(N_("Show current message number")) },
173 { "Reply", &c_Respond, (A | R | I | MSGLIST), 0, MMNDEL
174 DS(N_("Reply to originator, exclusively")) },
175 { "Respond", &c_Respond, (A | R | I | MSGLIST), 0, MMNDEL
176 DS(N_("Reply to originator, exclusively")) },
177 { "Followup", &c_Followup, (A | R | I | MSGLIST), 0, MMNDEL
178 DS(N_("Like \"Respond\", but derive filename from first sender")) },
179 { "reply", &c_respond, (A | R | I | MSGLIST), 0, MMNDEL
180 DS(N_("Reply to originator and recipients of <message-list>")) },
181 { "replyall", &c_respondall, (A | R | I | MSGLIST), 0, MMNDEL
182 DS(N_("Reply to originator and recipients of <message-list>")) },
183 { "replysender", &c_respondsender, (A | R | I | MSGLIST), 0, MMNDEL
184 DS(N_("Reply to originator, exclusively")) },
185 { "respond", &c_respond, (A | R | I | MSGLIST), 0, MMNDEL
186 DS(N_("Reply to originators and recipients of <message-list>")) },
187 { "respondall", &c_respondall, (A | R | I | MSGLIST), 0, MMNDEL
188 DS(N_("Reply to originators and recipients of <message-list>")) },
189 { "respondsender", &c_respondsender, (A | R | I | MSGLIST),0, MMNDEL
190 DS(N_("Reply to originator, exclusively")) },
191 { "Resend", &c_Resend, (A | R | STRLIST), 0, MMNDEL
192 DS(N_("Like \"resend\", but don't add Resent-* headers")) },
193 { "Redirect", &c_Resend, (A | R | STRLIST), 0, MMNDEL
194 DS(N_("Like \"resend\", but don't add Resent-* headers")) },
195 { "resend", &c_resend, (A | R | STRLIST), 0, MMNDEL
196 DS(N_("Resend <message-list> to <user>, add Resent-* headers")) },
197 { "redirect", &c_resend, (A | R | STRLIST), 0, MMNDEL
198 DS(N_("Resend <message-list> to <user>, add Resent-* headers")) },
199 { "Forward", &c_Forward, (A | R | STRLIST), 0, MMNDEL
200 DS(N_("Like \"forward\", but derive filename from <address>")) },
201 { "Fwd", &c_Forward, (A | R | STRLIST), 0, MMNDEL
202 DS(N_("Like \"forward\", but derive filename from <address>")) },
203 { "forward", &c_forward, (A | R | STRLIST), 0, MMNDEL
204 DS(N_("Forward <message> to <address>")) },
205 { "fwd", &c_forward, (A | R | STRLIST), 0, MMNDEL
206 DS(N_("Forward <message> to <address>")) },
207 { "edit", &c_editor, (A | I | MSGLIST), 0, MMNORM
208 DS(N_("Edit <message-list>")) },
209 { "echo", &c_echo, (H | M | ECHOLIST), 0, 1000
210 DS(N_("Echo given arguments")) },
211 { "quit", &c_quit, NOLIST, 0, 0
212 DS(N_("Terminate session, saving messages as necessary")) },
213 { "list", &_pcmdlist, (H | M | NOLIST), 0, 0
214 DS(N_("List all available commands")) },
215 { "xit", &c_rexit, (M | NOLIST), 0, 0
216 DS(N_("Immediate return to the shell without saving")) },
217 { "exit", &c_rexit, (M | NOLIST), 0, 0
218 DS(N_("Immediate return to the shell without saving")) },
219 { "pipe", &c_pipe, (A | STRLIST), 0, MMNDEL
220 DS(N_("Pipe <message-list> to <command>")) },
221 { "|", &c_pipe, (A | STRLIST), 0, MMNDEL
222 DS(N_("Pipe <message-list> to <command>")) },
223 { "Pipe", &c_Pipe, (A | STRLIST), 0, MMNDEL
224 DS(N_("Like \"pipe\", but pipes all headers and parts")) },
225 { "size", &c_messize, (A | MSGLIST), 0, MMNDEL
226 DS(N_("Show size in characters for <message-list>")) },
227 { "hold", &c_preserve, (A | W | MSGLIST), 0, MMNDEL
228 DS(N_("Save <message-list> in system mailbox instead of *mbox*")) },
229 { "if", &c_if, (F | M | RAWLIST), 1, 3
230 DS(N_("Part of the if .. then .. endif statement")) },
231 { "else", &c_else, (F | M | RAWLIST), 0, 0
232 DS(N_("Part of the if .. then .. endif statement")) },
233 { "elif", &c_elif, (F | M | RAWLIST), 1, 3
234 DS(N_("Part of the if .. then .. endif statement")) },
235 { "endif", &c_endif, (F | M | RAWLIST), 0, 0
236 DS(N_("Part of the if .. then .. endif statement")) },
237 { "alternates", &c_alternates, (M | RAWLIST), 0, 1000
238 DS(N_("Show or define an alternate list for the invoking user")) },
239 { "ignore", &c_igfield, (M | RAWLIST), 0, 1000
240 DS(N_("Add <header-fields> to the ignored LIST, or show that list")) },
241 { "discard", &c_igfield, (M | RAWLIST), 0, 1000
242 DS(N_("Add <header-fields> to the ignored LIST, or show that list")) },
243 { "retain", &c_retfield, (M | RAWLIST), 0, 1000
244 DS(N_("Add <header-fields> to retained list, or show that list")) },
245 { "saveignore", &c_saveigfield, (M | RAWLIST), 0, 1000
246 DS(N_("Is to \"save\" what \"ignore\" is to \"type\"/\"print\"")) },
247 { "savediscard", &c_saveigfield, (M | RAWLIST), 0, 1000
248 DS(N_("Is to \"save\" what \"ignore\" is to \"type\"/\"print\"")) },
249 { "saveretain", &c_saveretfield, (M | RAWLIST), 0, 1000
250 DS(N_("Is to \"save\" what \"retain\" is to \"type\"/\"print\"")) },
251 { "unignore", &c_unignore, (M | RAWLIST), 0, 1000
252 DS(N_("Un\"ignore\" <header-fields>")) },
253 { "unretain", &c_unretain, (M | RAWLIST), 0, 1000
254 DS(N_("Un\"retain\" <header-fields>")) },
255 { "unsaveignore", &c_unsaveignore, (M | RAWLIST), 0, 1000
256 DS(N_("Un\"saveignore\" <header-fields>")) },
257 { "unsaveretain", &c_unsaveretain, (M | RAWLIST), 0, 1000
258 DS(N_("Un\"saveretain\" <header-fields>")) },
259 { "inc", &c_newmail, (A | T | NOLIST), 0, 0
260 DS(N_("Check for new mail in current folder")) },
261 { "newmail", &c_newmail, (A | T | NOLIST), 0, 0
262 DS(N_("Check for new mail in current folder")) },
263 { "shortcut", &c_shortcut, (M | RAWLIST), 0, 1000
264 DS(N_("Define a <shortcut> and <expansion>, or list shortcuts")) },
265 { "unshortcut", &c_unshortcut, (M | RAWLIST), 0, 1000
266 DS(N_("Delete <shortcut-list>")) },
267 { "imap", &c_imap_imap, (A | STRLIST), 0, 1000
268 DS(N_("Send command strings directly to the IMAP server")) },
269 { "account", &c_account, (M | RAWLIST), 0, 1000
270 DS(N_("Creates, selects or lists an email account")) },
271 { "thread", &c_thread, (A | MSGLIST), 0, 0
272 DS(N_("Create threaded view of current \"folder\"")) },
273 { "unthread", &c_unthread, (A | MSGLIST), 0, 0
274 DS(N_("Disable sorted or threaded mode")) },
275 { "connect", &c_connect, (A | NOLIST), 0, 0
276 DS(N_("If disconnected, connect to IMAP mailbox")) },
277 { "disconnect", &c_disconnect, (A | NDMLIST), 0, 0
278 DS(N_("If connected, disconnect from IMAP mailbox")) },
279 { "sort", &c_sort, (A | RAWLIST), 0, 1
280 DS(N_("Change sorting: date,from,size,spam,status,subject,thread,to")) },
281 { "unsort", &c_unthread, (A | MSGLIST), 0, 0
282 DS(N_("Disable sorted or threaded mode")) },
283 { "cache", &c_cache, (A | MSGLIST), 0, 0
284 DS(N_("Read specified <message list> into the IMAP cache")) },
285 { "flag", &c_flag, (A | M | MSGLIST), 0, 0
286 DS(N_("(Un)Flag <message-list> (for special attention)")) },
287 { "unflag", &c_unflag, (A | M | MSGLIST), 0, 0
288 DS(N_("(Un)Flag <message-list> (for special attention)")) },
289 { "answered", &c_answered, (A | M | MSGLIST), 0, 0
290 DS(N_("Mark the given <message list> as \"answered\"")) },
291 { "unanswered", &c_unanswered, (A | M | MSGLIST), 0, 0
292 DS(N_("Un\"answered\" <message-list>")) },
293 { "draft", &c_draft, (A | M | MSGLIST), 0, 0
294 DS(N_("Mark <message-list> as draft")) },
295 { "undraft", &c_undraft, (A | M | MSGLIST), 0, 0
296 DS(N_("Un\"draft\" <message-list>")) },
297 { "define", &c_define, (M | RAWLIST), 0, 2
298 DS(N_("Define a macro")) },
299 { "undefine", &c_undefine, (M | RAWLIST), 0, 1000
300 DS(N_("Un\"define\" all <macros>")) },
301 { "unaccount", &c_unaccount, (M | RAWLIST), 0, 1000
302 DS(N_("Delete all given <accounts>")) },
303 { "call", &c_call, (M | RAWLIST), 0, 1
304 DS(N_("Call a macro")) },
305 { "~", &c_call, (M | RAWLIST), 0, 1
306 DS(N_("Call a macro")) },
307 { "move", &c_move, (A | M | STRLIST), 0, 0
308 DS(N_("Like \"copy\", but mark messages for deletion")) },
309 { "mv", &c_move, (A | M | STRLIST), 0, 0
310 DS(N_("Like \"copy\", but mark messages for deletion")) },
311 { "Move", &c_Move, (A | M | STRLIST), 0, 0
312 DS(N_("Like \"move\", but derive filename from first sender")) },
313 { "Mv", &c_Move, (A | M | STRLIST), 0, 0
314 DS(N_("Like \"move\", but derive filename from first sender")) },
315 { "noop", &c_noop, (A | M | RAWLIST), 0, 0
316 DS(N_("NOOP command if IMAP or POP folder; else noop")) },
317 { "collapse", &c_collapse, (A | MSGLIST), 0, 0
318 DS(N_("Collapse thread views for <message-list>")) },
319 { "uncollapse", &c_uncollapse, (A | MSGLIST), 0, 0
320 DS(N_("Uncollapse <message-list> if in threaded view")) },
321 { "verify", &c_verify, (A | MSGLIST), 0, 0
322 DS(N_("Verify <message-list>")) },
323 { "decrypt", &c_decrypt, (A | M | STRLIST), 0, 0
324 DS(N_("Like \"copy\", but decrypt first, if encrypted")) },
325 { "Decrypt", &c_Decrypt, (A | M | STRLIST), 0, 0
326 DS(N_("Like \"decrypt\", but derive filename from first sender")) },
327 { "certsave", &c_certsave, (A | STRLIST), 0, 0
328 DS(N_("Save S/MIME certificates of <message-list> to <file>")) },
329 { "rename", &c_rename, (M | RAWLIST), 0, 2
330 DS(N_("Rename <existing-folder> to <new-folder>")) },
331 { "remove", &c_remove, (M | RAWLIST), 0, 1000
332 DS(N_("Remove the named folders")) },
333 { "show", &c_show, (A | MSGLIST), 0, MMNDEL
334 DS(N_("Like \"print\", but show raw message content")) },
335 { "Show", &c_show, (A | MSGLIST), 0, MMNDEL
336 DS(N_("Like \"print\", but show raw message content")) },
337 { "seen", &c_seen, (A | M | MSGLIST), 0, MMNDEL
338 DS(N_("Mark <message-list> as seen")) },
339 { "Seen", &c_seen, (A | M | MSGLIST), 0, MMNDEL
340 DS(N_("Mark <message-list> as seen")) },
341 { "fwdignore", &c_fwdigfield, (M | RAWLIST), 0, 1000
342 DS(N_("Which header fields are to be ignored with \"forward\"")) },
343 { "fwddiscard", &c_fwdigfield, (M | RAWLIST), 0, 1000
344 DS(N_("Which header fields are to be ignored with \"forward\"")) },
345 { "fwdretain", &c_fwdretfield, (M | RAWLIST), 0, 1000
346 DS(N_("Which header fields have to be retained with \"forward\"")) },
347 { "unfwdignore", &c_unfwdignore, (M | RAWLIST), 0, 1000
348 DS(N_("Un\"fwdignore\" <header-fields>")) },
349 { "unfwdretain", &c_unfwdretain, (M | RAWLIST), 0, 1000
350 DS(N_("Un\"fwdretain\" <header-fields>")) },
351 { "mimetypes", &c_mimetypes, (M | RAWLIST), 0, 1
352 DS(N_("Either <show> (default) or <clear> the mime.types cache")) },
353 { "spamrate", &c_spam_rate, (A | M | R | MSGLIST), 0, 0
354 DS(N_("Rate <message-list> via the spam detector")) },
355 { "spamham", &c_spam_ham, (A | M | R | MSGLIST), 0, 0
356 DS(N_("Teach the spam detector that <message-list> is ham")) },
357 { "spamspam", &c_spam_spam, (A | M | R | MSGLIST), 0, 0
358 DS(N_("Teach the spam detector that <message-list> is spam")) },
359 { "spamforget", &c_spam_forget, (A | M | R | MSGLIST), 0, 0
360 DS(N_("Force the spam detector to \"unlearn\" <message-list>")) },
361 { "spamset", &c_spam_set, (A | M | MSGLIST), 0, 0
362 DS(N_("Set the spam flag for each message in <message-list>")) },
363 { "spamclear", &c_spam_clear, (A | M | MSGLIST), 0, 0
364 DS(N_("Clear the spam flag for each message in <message-list>")) },
365 { "ghost", &_ghost, (M | RAWLIST), 0, 2
366 DS(N_("Define a <ghost> of <command>, or list all ghosts")) },
367 { "unghost", &_unghost, (M | RAWLIST), 1, 1000
368 DS(N_("Delete <ghost-list>")) },
369 { "localopts", &c_localopts, (H | M | RAWLIST), 1, 1
370 DS(N_("Inside `define' / `account': insulate modifications? <0> / <1>"))},
371 { "cwd", &c_cwd, (M | NOLIST), 0, 0
372 DS(N_("Print current working directory (CWD)")) },
373 { "pwd", &c_cwd, (M | NOLIST), 0, 0
374 DS(N_("Print current working directory (CWD)")) },
375 { "varshow", &c_varshow, (H | M | RAWLIST), 1, 1000
376 DS(N_("Show some informations about the given <variables>")) },
377 { "varedit", &c_varedit, (H | I | M | RAWLIST), 1, 1000
378 DS(N_("Edit the value(s) of (an) existing variable(s)")) },
379 { "urlencode", &c_urlencode, (H| M | RAWLIST), 1, 1000
380 DS(N_("Encode <string-list> for usage in an URL")) },
381 { "urldecode", &c_urldecode, (H | M | RAWLIST), 1, 1000
382 DS(N_("Decode the URL-encoded <URL-list> into strings")) },
383 { "File", &c_File, (T | M | RAWLIST), 0, 1
384 DS(N_("Open a new mailbox readonly or show the current mailbox")) },
385 { "Folder", &c_File, (T | M | RAWLIST), 0, 1
386 DS(N_("Open a new mailbox readonly or show the current mailbox")) },
387 { "features", &_features, (H | M | NOLIST), 0, 0
388 DS(N_("Show features that are compiled into the MUA")) },
389 { "version", &_version, (H | M | NOLIST), 0, 0
390 DS(N_("Print the MUA version")) },
391 #ifdef HAVE_HISTORY
392 { "history", &c_history, (H | I | M | V | RAWLIST), 0, 1
393 DS(N_("<show> (default), <clear> or select <NO> from editor history")) },
394 #endif
395 #ifdef HAVE_NETRC
396 { "netrc", &c_netrc, (M | RAWLIST), 0, 1
397 DS(N_("Either <show> (default) or <clear> the .netrc cache")) },
398 #endif
399 #ifdef HAVE_DEBUG
400 { "sstats", &c_sstats, (H | I | M | NOLIST), 0, 0
401 DS(N_("Print statistics about the auto-reclaimed string store")) },
402 { "smemtrace", &c_smemtrace, (H | I | M | NOLIST), 0, 0
403 DS(N_("Trace current memory usage afap")) },
404 #endif
405 { NULL, NULL, 0, 0, 0 DS("") }
407 #undef DS
409 #undef MSGLIST
410 #undef STRLIST
411 #undef RAWLIST
412 #undef NOLIST
413 #undef NDMLIST
414 #undef ECHOLIST
415 #undef ARG_ARGMASK
416 #undef A
417 #undef F
418 #undef H
419 #undef I
420 #undef M
421 #undef P
422 #undef R
423 #undef T
424 #undef V
425 #undef W
427 /* s-it-mode */