1 /*@ S-nail - a mail user agent derived from Berkeley Mail.
2 *@ This defines the command array, and is included by ./cmd.c.
3 *@ It is included twice, the first part defines new-style cmd_arg context
4 *@ objects, the second part the actual command array.
5 *@ The script mk/make-cmd-tab.sh generates ./gen-cmd-tab.h based on the
6 *@ content of the latter, which must be kept in alphabetical order (almost).
7 *@ Entries in column 0 are missorted due to POSIX command abbreviation
8 *@ requirements (or are obsolete). Upper- and lowercase sorting: often not.
9 *@ The default command needs a --MKTAB-DFL-- comment suffix to command name.
10 *@ The parsed content must be within --MKTAB-START-- and --MKTAB-END--.
12 * Copyright (c) 2012 - 2020 Steffen (Daode) Nurpmeso <steffen@sdaoden.eu>.
13 * SPDX-License-Identifier: ISC
15 * Permission to use, copy, modify, and/or distribute this software for any
16 * purpose with or without fee is hereby granted, provided that the above
17 * copyright notice and this permission notice appear in all copies.
19 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
20 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
21 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
22 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
23 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
24 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
25 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
27 /* Not indented for dual inclusion */
31 #ifdef mx_HAVE_KEY_BINDINGS
32 # define a_CMD_CAD_BIND mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_bind)
33 mx_CMD_ARG_DESC_SUBCLASS_DEF(bind
, 3, a_cmd_cad_bind
){
34 {mx_CMD_ARG_DESC_SHEXP
| mx_CMD_ARG_DESC_OPTION
,
35 n_SHEXP_PARSE_TRIM_IFSSPACE
}, /* context */
36 {mx_CMD_ARG_DESC_SHEXP
| mx_CMD_ARG_DESC_OPTION
|
37 mx_CMD_ARG_DESC_HONOUR_STOP
,
38 n_SHEXP_PARSE_DRYRUN
}, /* subcommand / key sequence */
39 {mx_CMD_ARG_DESC_SHEXP
| mx_CMD_ARG_DESC_OPTION
|
40 mx_CMD_ARG_DESC_GREEDY
| mx_CMD_ARG_DESC_GREEDY_JOIN
|
41 mx_CMD_ARG_DESC_HONOUR_STOP
,
42 n_SHEXP_PARSE_IGNORE_EMPTY
| n_SHEXP_PARSE_TRIM_IFSSPACE
} /* expansion */
43 }mx_CMD_ARG_DESC_SUBCLASS_DEF_END
;
45 # define a_CMD_CAD_BIND NIL
48 mx_CMD_ARG_DESC_SUBCLASS_DEF(call
, 2, a_cmd_cad_call
){
49 {mx_CMD_ARG_DESC_SHEXP
| mx_CMD_ARG_DESC_HONOUR_STOP
,
50 n_SHEXP_PARSE_TRIM_IFSSPACE
}, /* macro name */
51 {mx_CMD_ARG_DESC_SHEXP
| mx_CMD_ARG_DESC_OPTION
|
52 mx_CMD_ARG_DESC_GREEDY
| mx_CMD_ARG_DESC_HONOUR_STOP
,
53 n_SHEXP_PARSE_IFS_VAR
| n_SHEXP_PARSE_TRIM_IFSSPACE
} /* args */
54 }mx_CMD_ARG_DESC_SUBCLASS_DEF_END
;
57 # define a_CMD_CAD_CERTSAVE mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_certsave)
58 mx_CMD_ARG_DESC_SUBCLASS_DEF(certsave
, 1, a_cmd_cad_certsave
){
59 {mx_CMD_ARG_DESC_MSGLIST_AND_TARGET
| mx_CMD_ARG_DESC_GREEDY
,
60 n_SHEXP_PARSE_TRIM_IFSSPACE
}
61 }mx_CMD_ARG_DESC_SUBCLASS_DEF_END
;
63 # define a_CMD_CAD_CERTSAVE NIL
66 mx_CMD_ARG_DESC_SUBCLASS_DEF(Copy
, 1, a_cmd_cad_Copy
){
67 {mx_CMD_ARG_DESC_MSGLIST
| mx_CMD_ARG_DESC_GREEDY
,
68 n_SHEXP_PARSE_TRIM_IFSSPACE
}
69 }mx_CMD_ARG_DESC_SUBCLASS_DEF_END
;
71 mx_CMD_ARG_DESC_SUBCLASS_DEF(copy
, 1, a_cmd_cad_copy
){
72 {mx_CMD_ARG_DESC_MSGLIST_AND_TARGET
| mx_CMD_ARG_DESC_GREEDY
,
73 n_SHEXP_PARSE_TRIM_IFSSPACE
}
74 }mx_CMD_ARG_DESC_SUBCLASS_DEF_END
;
76 mx_CMD_ARG_DESC_SUBCLASS_DEF(Decrypt
, 1, a_cmd_cad_Decrypt
){
77 {mx_CMD_ARG_DESC_MSGLIST
| mx_CMD_ARG_DESC_GREEDY
,
78 n_SHEXP_PARSE_TRIM_IFSSPACE
}
79 }mx_CMD_ARG_DESC_SUBCLASS_DEF_END
;
81 mx_CMD_ARG_DESC_SUBCLASS_DEF(decrypt
, 1, a_cmd_cad_decrypt
){
82 {mx_CMD_ARG_DESC_MSGLIST_AND_TARGET
| mx_CMD_ARG_DESC_GREEDY
,
83 n_SHEXP_PARSE_TRIM_IFSSPACE
}
84 }mx_CMD_ARG_DESC_SUBCLASS_DEF_END
;
86 /* Superset of the one in mx_dig_msg_circumflex() */
87 mx_CMD_ARG_DESC_SUBCLASS_DEF(digmsg
, 6, a_cmd_cad_digmsg
){ /* XXX 4 OR 5 */
88 {mx_CMD_ARG_DESC_SHEXP
| mx_CMD_ARG_DESC_HONOUR_STOP
,
89 n_SHEXP_PARSE_TRIM_IFSSPACE
}, /* subcommand (/ msgno/-) */
90 {mx_CMD_ARG_DESC_SHEXP
| mx_CMD_ARG_DESC_HONOUR_STOP
,
91 n_SHEXP_PARSE_TRIM_IFSSPACE
}, /* msgno/- (/ first part of user cmd) */
92 {mx_CMD_ARG_DESC_SHEXP
| mx_CMD_ARG_DESC_OPTION
|
93 mx_CMD_ARG_DESC_HONOUR_STOP
,
94 n_SHEXP_PARSE_TRIM_IFSSPACE
}, /* arg1 */
95 {mx_CMD_ARG_DESC_SHEXP
| mx_CMD_ARG_DESC_OPTION
|
96 mx_CMD_ARG_DESC_HONOUR_STOP
,
97 n_SHEXP_PARSE_TRIM_IFSSPACE
}, /* arg2 */
98 {mx_CMD_ARG_DESC_SHEXP
| mx_CMD_ARG_DESC_OPTION
|
99 mx_CMD_ARG_DESC_HONOUR_STOP
,
100 n_SHEXP_PARSE_TRIM_IFSSPACE
}, /* arg3 */
101 {mx_CMD_ARG_DESC_SHEXP
| mx_CMD_ARG_DESC_OPTION
|
102 mx_CMD_ARG_DESC_HONOUR_STOP
|
103 mx_CMD_ARG_DESC_GREEDY
| mx_CMD_ARG_DESC_GREEDY_JOIN
,
104 n_SHEXP_PARSE_TRIM_IFSSPACE
} /* arg4 */
105 }mx_CMD_ARG_DESC_SUBCLASS_DEF_END
;
107 mx_CMD_ARG_DESC_SUBCLASS_DEF(Forward
, 1, a_cmd_cad_Forward
){
108 {mx_CMD_ARG_DESC_MSGLIST_AND_TARGET
| mx_CMD_ARG_DESC_GREEDY
/*|
109 mx_CMD_ARG_DESC_MSGLIST_NEEDS_SINGLE*/,
110 n_SHEXP_PARSE_TRIM_IFSSPACE
}
111 }mx_CMD_ARG_DESC_SUBCLASS_DEF_END
;
113 mx_CMD_ARG_DESC_SUBCLASS_DEF(forward
, 1, a_cmd_cad_forward
){
114 {mx_CMD_ARG_DESC_MSGLIST_AND_TARGET
| mx_CMD_ARG_DESC_GREEDY
/*|
115 mx_CMD_ARG_DESC_MSGLIST_NEEDS_SINGLE*/,
116 n_SHEXP_PARSE_TRIM_IFSSPACE
}
117 }mx_CMD_ARG_DESC_SUBCLASS_DEF_END
;
119 mx_CMD_ARG_DESC_SUBCLASS_DEF(Move
, 1, a_cmd_cad_Move
){
120 {mx_CMD_ARG_DESC_MSGLIST
| mx_CMD_ARG_DESC_GREEDY
,
121 n_SHEXP_PARSE_TRIM_IFSSPACE
}
122 }mx_CMD_ARG_DESC_SUBCLASS_DEF_END
;
124 mx_CMD_ARG_DESC_SUBCLASS_DEF(move
, 1, a_cmd_cad_move
){
125 {mx_CMD_ARG_DESC_MSGLIST_AND_TARGET
| mx_CMD_ARG_DESC_GREEDY
,
126 n_SHEXP_PARSE_TRIM_IFSSPACE
}
127 }mx_CMD_ARG_DESC_SUBCLASS_DEF_END
;
129 mx_CMD_ARG_DESC_SUBCLASS_DEF(pdot
, 1, a_cmd_cad_pdot
){
130 {mx_CMD_ARG_DESC_MSGLIST
| mx_CMD_ARG_DESC_GREEDY
,
131 n_SHEXP_PARSE_TRIM_IFSSPACE
}
132 }mx_CMD_ARG_DESC_SUBCLASS_DEF_END
;
134 mx_CMD_ARG_DESC_SUBCLASS_DEF(pipe
, 1, a_cmd_cad_pipe
){
135 {mx_CMD_ARG_DESC_MSGLIST_AND_TARGET
| mx_CMD_ARG_DESC_GREEDY
,
136 n_SHEXP_PARSE_TRIM_IFSSPACE
}
137 }mx_CMD_ARG_DESC_SUBCLASS_DEF_END
;
139 mx_CMD_ARG_DESC_SUBCLASS_DEF(readctl
, 2, a_cmd_cad_readctl
){
140 {mx_CMD_ARG_DESC_SHEXP
| mx_CMD_ARG_DESC_OPTION
|
141 mx_CMD_ARG_DESC_HONOUR_STOP
,
142 n_SHEXP_PARSE_TRIM_IFSSPACE
}, /* subcommand */
143 {mx_CMD_ARG_DESC_SHEXP
| mx_CMD_ARG_DESC_OPTION
|
144 mx_CMD_ARG_DESC_GREEDY
| mx_CMD_ARG_DESC_GREEDY_JOIN
|
145 mx_CMD_ARG_DESC_HONOUR_STOP
,
146 n_SHEXP_PARSE_IGNORE_EMPTY
| n_SHEXP_PARSE_TRIM_IFSSPACE
} /* var names */
147 }mx_CMD_ARG_DESC_SUBCLASS_DEF_END
;
149 mx_CMD_ARG_DESC_SUBCLASS_DEF(Resend
, 1, a_cmd_cad_Resend
){
150 {mx_CMD_ARG_DESC_MSGLIST_AND_TARGET
| mx_CMD_ARG_DESC_GREEDY
,
151 n_SHEXP_PARSE_TRIM_IFSSPACE
}
152 }mx_CMD_ARG_DESC_SUBCLASS_DEF_END
;
154 mx_CMD_ARG_DESC_SUBCLASS_DEF(resend
, 1, a_cmd_cad_resend
){
155 {mx_CMD_ARG_DESC_MSGLIST_AND_TARGET
| mx_CMD_ARG_DESC_GREEDY
,
156 n_SHEXP_PARSE_TRIM_IFSSPACE
}
157 }mx_CMD_ARG_DESC_SUBCLASS_DEF_END
;
159 mx_CMD_ARG_DESC_SUBCLASS_DEF(Save
, 1, a_cmd_cad_Save
){
160 {mx_CMD_ARG_DESC_MSGLIST
| mx_CMD_ARG_DESC_GREEDY
,
161 n_SHEXP_PARSE_TRIM_IFSSPACE
}
162 }mx_CMD_ARG_DESC_SUBCLASS_DEF_END
;
164 mx_CMD_ARG_DESC_SUBCLASS_DEF(save
, 1, a_cmd_cad_save
){
165 {mx_CMD_ARG_DESC_MSGLIST_AND_TARGET
| mx_CMD_ARG_DESC_GREEDY
,
166 n_SHEXP_PARSE_TRIM_IFSSPACE
}
167 }mx_CMD_ARG_DESC_SUBCLASS_DEF_END
;
169 #ifdef mx_HAVE_KEY_BINDINGS
170 # define a_CMD_CAD_UNBIND mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_unbind)
171 mx_CMD_ARG_DESC_SUBCLASS_DEF(unbind
, 2, a_cmd_cad_unbind
){
172 {mx_CMD_ARG_DESC_SHEXP
, n_SHEXP_PARSE_TRIM_IFSSPACE
}, /* context */
173 /* key sequence or * */
174 {mx_CMD_ARG_DESC_SHEXP
| mx_CMD_ARG_DESC_HONOUR_STOP
, n_SHEXP_PARSE_DRYRUN
}
175 }mx_CMD_ARG_DESC_SUBCLASS_DEF_END
;
177 # define a_CMD_CAD_UNBIND NIL
180 mx_CMD_ARG_DESC_SUBCLASS_DEF(vpospar
, 2, a_cmd_cad_vpospar
){
181 {mx_CMD_ARG_DESC_SHEXP
| mx_CMD_ARG_DESC_HONOUR_STOP
,
182 n_SHEXP_PARSE_TRIM_IFSSPACE
}, /* subcommand */
183 {mx_CMD_ARG_DESC_SHEXP
| mx_CMD_ARG_DESC_OPTION
|
184 mx_CMD_ARG_DESC_GREEDY
| mx_CMD_ARG_DESC_HONOUR_STOP
,
185 n_SHEXP_PARSE_IFS_VAR
| n_SHEXP_PARSE_TRIM_IFSSPACE
} /* args */
186 }mx_CMD_ARG_DESC_SUBCLASS_DEF_END
;
188 mx_CMD_ARG_DESC_SUBCLASS_DEF(write
, 1, a_cmd_cad_write
){
189 {mx_CMD_ARG_DESC_MSGLIST_AND_TARGET
| mx_CMD_ARG_DESC_GREEDY
,
190 n_SHEXP_PARSE_TRIM_IFSSPACE
}
191 }mx_CMD_ARG_DESC_SUBCLASS_DEF_END
;
193 #else /* ifndef mx_CMD_TAB_H */
195 #ifdef mx_HAVE_DOCSTRINGS
202 #define MAC (n_MAXARGC - 1)
204 /* Some shorter aliases to be able to define a command in two lines */
205 #define TMSGLST mx_CMD_ARG_TYPE_MSGLIST
206 #define TNDMLST mx_CMD_ARG_TYPE_NDMLIST
207 #define TRAWDAT mx_CMD_ARG_TYPE_RAWDAT
208 # define TSTRING mx_CMD_ARG_TYPE_STRING
209 #define TWYSH mx_CMD_ARG_TYPE_WYSH
210 # define TRAWLST mx_CMD_ARG_TYPE_RAWLIST
211 # define TWYRA mx_CMD_ARG_TYPE_WYRA
212 #define TARG mx_CMD_ARG_TYPE_ARG
214 #define A mx_CMD_ARG_A
215 #define F mx_CMD_ARG_F
216 #define G mx_CMD_ARG_G
217 #define H mx_CMD_ARG_H
218 #define I mx_CMD_ARG_I
219 #define L mx_CMD_ARG_L
220 #define M mx_CMD_ARG_M
221 #define O mx_CMD_ARG_O
222 #define P mx_CMD_ARG_P
224 #define R mx_CMD_ARG_R
225 #define SC mx_CMD_ARG_SC
227 #define S mx_CMD_ARG_S
228 #define T mx_CMD_ARG_T
229 #define V mx_CMD_ARG_V
230 #define W mx_CMD_ARG_W
231 #define X mx_CMD_ARG_X
232 #define EM mx_CMD_ARG_EM
234 /* --MKTAB-START-- */
236 { "!", &c_shell
, (M
| SC
| V
| X
| EM
| TRAWDAT
), 0, 0, NIL
237 DS(N_("Execute <shell-command>")) },
238 { "=", &c_pdot
, (A
| G
| V
| X
| EM
| TARG
), 0, MMNDEL
,
239 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_pdot
)
240 DS(N_("Show message number of [<msglist>] (or the \"dot\")")) },
241 { "?", &a_cmd_c_help
, (G
| M
| X
| TWYSH
), 0, 1, NIL
242 DS(N_("Show help [[Option] for the given command]]")) },
243 { "|", &c_pipe
, (A
| TARG
), 0, MMNDEL
,
244 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_pipe
)
245 DS(N_("Pipe [<msglist>] to [<command>], honour `ignore' / `retain'")) },
247 { "alias", &c_alias
, (M
| TWYSH
), 0, MAC
, NIL
248 DS(N_("Show all (or <alias>), or append to <alias> :<data>:")) },
249 { "account", &c_account
, (M
| TWYSH
), 0, MAC
, NIL
250 DS(N_("Create or select <account>, or list all accounts")) },
251 { "addrcodec", &c_addrcodec
, (G
| M
| V
| X
| EM
| TRAWDAT
), 0, 0, NIL
252 DS(N_("Mail address <[+[+[+]]]e[ncode]|d[ecode]|s[kin]> <rest-of-line>"))},
253 { "alternates", &c_alternates
, (M
| V
| TWYSH
), 0, MAC
, NIL
254 DS(N_("Show or define alternate <address-list> for the invoking user")) },
255 { "answered", &c_answered
, (A
| M
| TMSGLST
), 0, 0, NIL
256 DS(N_("Mark the given <msglist> as answered")) },
259 #ifdef mx_HAVE_KEY_BINDINGS
264 (M
| TARG
), 0, MAC
, a_CMD_CAD_BIND
265 DS(N_("For [<context> (base)], [<show>] "
266 "or bind <key[:,key:]> [:<data>:]"))},
268 { "copy", &c_copy
, (A
| M
| EM
| TARG
), 0, 0,
269 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_copy
)
270 DS(N_("Copy [<msglist>], but do not mark them for deletion")) },
277 (A
| TMSGLST
), 0, 0, NIL
278 DS(N_("Read specified <message list> into the IMAP cache")) },
279 { "call", &c_call
, (M
| X
| EM
| TARG
), 0, 0,
280 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_call
)
281 DS(N_("Call macro <name> [:<arg>:]")) },
282 { "call_if", &c_call_if
, (M
| X
| EM
| TARG
), 0, 0,
283 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_call
)
284 DS(N_("Call macro <name> like `call', but be silent if non-existent")) },
285 { "cd", &c_chdir
, (M
| X
| TWYSH
), 0, 1, NIL
286 DS(N_("Change working directory to the specified/the login directory")) },
293 (A
| TARG
), 0, MMNDEL
, a_CMD_CAD_CERTSAVE
294 DS(N_("Save S/MIME certificates of [<msglist>] to <file>")) },
295 { "chdir", &c_chdir
, (M
| TWYSH
), 0, 1, NIL
296 DS(N_("Change CWD to the specified/the login directory")) },
297 { "charsetalias", &c_charsetalias
, (M
| TWYSH
), 0, MAC
, NIL
298 DS(N_("Define [:<charset> <charset-alias>:]s, or list mappings")) },
300 #ifdef mx_HAVE_COLOUR
305 (M
| TWYSH
), 0, 4, NIL
306 DS(N_("Show colour settings [of <type> (1,8,256,all/*)], "
308 { "commandalias", &c_commandalias
, (M
| X
| TWYSH
), 0, MAC
, NIL
309 DS(N_("Print/create command <alias> [<command>], or list all aliases")) },
316 (A
| TSTRING
), 0, 0, NIL
317 DS(N_("If disconnected, connect to IMAP mailbox")) },
318 { "Copy", &c_Copy
, (A
| M
| SC
| EM
| TARG
), 0, 0,
319 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_Copy
)
320 DS(N_("Like `copy', but derive filename from first sender")) },
321 { "collapse", &c_collapse
, (A
| TMSGLST
), 0, 0, NIL
322 DS(N_("Collapse thread views for <msglist>")) },
324 #ifdef mx_HAVE_CMD_CSOP
329 (G
| M
| V
| X
| EM
| TWYSH
), 2, MAC
, NIL
330 DS(N_("C-style byte string <operation>s on given :<argument>:")) },
331 { "cwd", &c_cwd
, (M
| V
| X
| TWYSH
), 0, 0, NIL
332 DS(N_("Print current working directory (CWD)")) },
334 { "delete", &c_delete
, (A
| W
| P
| TMSGLST
), 0, MMNDEL
, NIL
335 DS(N_("Delete <msglist>")) },
336 { "discard", &c_ignore
, (M
| TWYRA
), 0, MAC
, NIL
337 DS(N_("Add <header-list> to the ignored LIST, or show that list")) },
338 { "Decrypt", &c_Decrypt
, (A
| M
| SC
| TARG
), 0, 0,
339 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_Decrypt
)
340 DS(N_("Like `decrypt', but derive filename from first sender")) },
341 { "decrypt", &c_decrypt
, (A
| M
| TARG
), 0, 0,
342 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_decrypt
)
343 DS(N_("Like `copy', but decrypt first, if encrypted")) },
344 { "define", &c_define
, (M
| X
| TWYSH
), 0, 2, NIL
345 DS(N_("Define a <macro> or show the currently defined ones")) },
346 { "digmsg", &c_digmsg
, (G
| M
| X
| EM
| TARG
), 0, 0,
347 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_digmsg
)
348 DS(N_("<create|remove> <-|msgno> [<->] | <-|msgno> <cmd>: "
356 (A
| TNDMLST
), 0, 0, NIL
357 DS(N_("If connected, disconnect from IMAP mailbox")) },
358 { "dotmove", &c_dotmove
, (A
| TSTRING
), 1, 1, NIL
359 DS(N_("Move the dot up <-> or down <+> by one")) },
360 { "dp", &c_deltype
, (A
| W
| TMSGLST
), 0, MMNDEL
, NIL
361 DS(N_("Delete the current message, then type the next")) },
362 { "dt", &c_deltype
, (A
| W
| TMSGLST
), 0, MMNDEL
, NIL
363 DS(N_("Delete the current message, then type the next")) },
364 { "draft", &c_draft
, (A
| M
| TMSGLST
), 0, 0, NIL
365 DS(N_("Mark <msglist> as draft")) },
367 { "edit", &c_edit
, (G
| A
| I
| S
| TMSGLST
), 0, MMNORM
, NIL
368 DS(N_("Edit <msglist>")) },
369 { "echo", &c_echo
, (G
| M
| V
| X
| EM
| TWYSH
), 0, MAC
, NIL
370 DS(N_("Echo arguments, and a trailing newline, to standard output")) },
371 { "echoerr", &c_echoerr
, (G
| M
| V
| X
| EM
| TWYSH
), 0, MAC
, NIL
372 DS(N_("Echo arguments, and a trailing newline, to standard error")) },
373 { "echon", &c_echon
, (G
| M
| V
| X
| EM
| TWYSH
), 0, MAC
, NIL
374 DS(N_("Echo arguments to standard output, without a trailing newline")) },
375 { "echoerrn", &c_echoerrn
, (G
| M
| V
| X
| EM
| TWYSH
), 0, MAC
, NIL
376 DS(N_("Echo arguments, without a trailing newline, to standard error")) },
377 { "else", &c_else
, (G
| F
| M
| X
| TWYSH
), 0, 0, NIL
378 DS(N_("Part of the if/elif/else/endif statement")) },
379 { "elif", &c_elif
, (G
| F
| M
| X
| TWYRA
), 1, MAC
, NIL
380 DS(N_("Part of the if/elif/else/endif statement")) },
381 { "endif", &c_endif
, (G
| F
| M
| X
| TWYSH
), 0, 0, NIL
382 DS(N_("Part of the if/elif/else/endif statement")) },
383 { "environ", &c_environ
, (G
| M
| X
| TWYSH
), 2, MAC
, NIL
384 DS(N_("<link|unlink|set|unset> (an) environment <variable>(s)")) },
386 #ifdef mx_HAVE_ERRORS
391 (H
| I
| M
| TWYSH
), 0, 1, NIL
392 DS(N_("Either [<show>] or <clear> the error message ring")) },
393 { "eval", &c_eval
, (G
| M
| X
| EM
| TWYSH
), 1, MAC
, NIL
394 DS(N_("Construct command from :<arguments>:, reuse its $? and $!")) },
395 { "exit", &c_exit
, (M
| X
| TWYSH
), 0, 1, NIL
396 DS(N_("Immediately return [<status>] to the shell without saving")) },
398 { "Followup", &c_Followup
, (A
| I
| R
| SC
| EM
| TMSGLST
), 0, MMNDEL
, NIL
399 DS(N_("Like `Reply', but derive filename from first sender")) },
400 { "from", &c_from
, (A
| TMSGLST
), 0, MMNORM
, NIL
401 DS(N_("Type (matching) headers of <msglist> (a search specification)")) },
402 { "File", &c_File
, (M
| T
| TWYRA
), 0, 1, NIL
403 DS(N_("Open a new mailbox readonly, or show the current mailbox")) },
404 { "file", &c_file
, (M
| T
| TWYRA
), 0, 1, NIL
405 DS(N_("Open a new <mailbox> or show the current one")) },
406 { "filetype", &c_filetype
, (M
| TWYSH
), 0, MAC
, NIL
407 DS(N_("Create [:<extension> <load-cmd> <save-cmd>:] "
408 "or list file handlers"))},
409 { "flag", &c_flag
, (A
| M
| TMSGLST
), 0, 0, NIL
410 DS(N_("(Un)Flag <msglist> (for special attention)")) },
411 { "followup", &c_followup
, (A
| I
| R
| SC
| TMSGLST
), 0, MMNDEL
, NIL
412 DS(N_("Like `reply', but derive filename from first sender")) },
413 { "Folder", &c_File
, (M
| T
| TWYRA
), 0, 1, NIL
414 DS(N_("Open a new mailbox readonly, or show the current mailbox")) },
415 { "folder", &c_file
, (M
| T
| TWYRA
), 0, 1, NIL
416 DS(N_("Open a new <mailbox> or show the current one")) },
417 { "folders", &c_folders
, (M
| T
| TWYRA
), 0, 1, NIL
418 DS(N_("List mailboxes below the given or the global folder")) },
419 { "Forward", &c_Forward
, (A
| I
| R
| SC
| EM
| TARG
), 0, MMNDEL
,
420 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_Forward
)
421 DS(N_("Like `forward', but derive filename from <address>")) },
422 { "forward", &c_forward
, (A
| I
| R
| SC
| EM
| TARG
), 0, MMNDEL
,
423 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_forward
)
424 DS(N_("Forward <message> to <address>")) },
425 { "followupall", &c_followupall
, (O
| A
| I
| R
| SC
| TMSGLST
),
427 DS(N_("Like `reply', but derive filename from first sender")) },
428 { "followupsender", &c_followupsender
, (O
| A
| I
| R
| SC
| TMSGLST
),
430 DS(N_("Like `Followup', but always reply to the sender only")) },
431 { "fwddiscard", &c_fwdignore
, (O
| M
| TRAWLST
), 0, MAC
, NIL
432 DS(N_("Obsoleted by `headerpick'")) },
433 { "fwdignore", &c_fwdignore
, (O
| M
| TRAWLST
), 0, MAC
, NIL
434 DS(N_("Obsoleted by `headerpick'")) },
435 { "fwdretain", &c_fwdretain
, (O
| M
| TRAWLST
), 0, MAC
, NIL
436 DS(N_("Obsoleted by `headerpick'")) },
438 { "group", &c_alias
, (M
| TWYSH
), 0, MAC
, NIL
439 DS(N_("Show all (or <alias>), or append to <alias> :<data>:")) },
440 { "ghost", &c_commandalias
, (O
| M
| X
| TWYRA
), 0, MAC
, NIL
441 DS(N_("Obsoleted by `commandalias'")) },
443 { "headers", &c_headers
, (A
| M
| TMSGLST
), 0, MMNDEL
, NIL
444 DS(N_("Type a page of headers (with the first of <msglist> if given)")) },
445 { "headerpick", &c_headerpick
, (M
| TWYSH
), 0, MAC
, NIL
446 DS(N_("Header selection: [<context> [<type> [<header-list>]]]"))},
447 { "help", &a_cmd_c_help
, (G
| M
| X
| TWYSH
), 0, 1, NIL
448 DS(N_("Show help [[Option] for the given command]]")) },
450 #ifdef mx_HAVE_HISTORY
455 (H
| I
| M
| TWYSH
), 0, MAC
, NIL
456 DS(N_("<[show]|load|save|clear>, "
457 "<delete> :<NO>:, or re-eval entry <NO>")) },
458 { "hold", &c_preserve
, (A
| SC
| W
| TMSGLST
), 0, MMNDEL
, NIL
459 DS(N_("Save <msglist> in system mailbox instead of *MBOX*")) },
461 { "if", &c_if
, (G
| F
| M
| X
| TWYRA
), 1, MAC
, NIL
462 DS(N_("Part of the if/elif/else/endif statement")) },
463 { "ignore", &c_ignore
, (M
| TWYRA
), 0, MAC
, NIL
464 DS(N_("Add <header-list> to the ignored LIST, or show that list")) },
471 (A
| TSTRING
), 0, MAC
, NIL
472 DS(N_("Send command strings directly to the IMAP server")) },
479 (G
| M
| V
| X
| TRAWDAT
), 0, 0, NIL
480 DS(N_("IMAP mailbox name <e[ncode]|d[ecode]> <rest-of-line>")) },
482 { "Lfollowup", &c_Lfollowup
, (A
| I
| R
| SC
| EM
| TMSGLST
), 0, MMNDEL
, NIL
483 DS(N_("Mailing-list followup to the given <msglist>")) },
484 { "list", &a_cmd_c_list
, (M
| TWYSH
), 0, 0, NIL
485 DS(N_("List all commands (in lookup order)")) },
486 { "localopts", &c_localopts
, (H
| M
| X
| TWYSH
), 1, 2, NIL
487 DS(N_("Localize variable modifications? [<attribute>] <boolean>"))},
488 { "Lreply", &c_Lreply
, (A
| I
| R
| SC
| EM
| TMSGLST
), 0, MMNDEL
, NIL
489 DS(N_("Mailing-list reply to the given <msglist>")) },
491 { "Mail", &c_Sendmail
, (I
| M
| R
| SC
| EM
| TSTRING
), 0, 0, NIL
492 DS(N_("Like `mail', but derive filename from first recipient")) },
493 { "mail", &c_sendmail
, (I
| M
| R
| SC
| EM
| TSTRING
), 0, 0, NIL
494 DS(N_("Compose mail; recipients may be given as arguments")) },
496 #ifdef mx_HAVE_MAILCAP
501 (M
| TWYSH
), 0, 1, NIL
502 DS(N_("[<show>], <load> or <clear> the $MAILCAPS cache")) },
503 { "mbox", &c_mboxit
, (A
| W
| TMSGLST
), 0, MMNDEL
, NIL
504 DS(N_("Indicate that <msglist> is to be stored in *MBOX*")) },
505 { "mimetype", &c_mimetype
, (M
| TWYSH
), 0, MAC
, NIL
506 DS(N_("(Load and) show all known MIME types, or define some")) },
507 { "mimeview", &c_mimeview
, (A
| I
| EM
| TMSGLST
), 0, MMNDEL
, NIL
508 DS(N_("Show non-text parts of the given <message>")) },
509 { "mlist", &c_mlist
, (M
| TWYSH
), 0, MAC
, NIL
510 DS(N_("Show all known mailing lists or define some")) },
511 { "mlsubscribe", &c_mlsubscribe
, (M
| TWYSH
), 0, MAC
, NIL
512 DS(N_("Show all mailing list subscriptions or define some")) },
513 { "More", &c_More
, (A
| TMSGLST
), 0, MMNDEL
, NIL
514 DS(N_("Invoke the pager on the given messages")) },
515 { "more", &c_more
, (A
| TMSGLST
), 0, MMNDEL
, NIL
516 DS(N_("Invoke the pager on the given messages")) },
517 { "Move", &c_Move
, (A
| M
| SC
| EM
| TARG
), 0, 0,
518 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_Move
)
519 DS(N_("Like `move', but derive filename from first sender")) },
520 { "move", &c_move
, (A
| M
| EM
| TARG
), 0, 0,
521 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_move
)
522 DS(N_("Like `copy', but mark messages for deletion")) },
524 #ifdef mx_HAVE_MTA_ALIASES
529 (M
| TWYSH
), 0, 1, NIL
530 DS(N_("[<show>], <load> or <clear> the *mta-aliases* cache")) },
531 { "Mv", &c_Move
, (O
| A
| M
| SC
| TARG
), 0, 0,
532 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_Move
)
533 DS(N_("Like `move', but derive filename from first sender")) },
534 { "mv", &c_move
, (O
| A
| M
| TARG
), 0, 0,
535 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_move
)
536 DS(N_("Like `copy', but mark messages for deletion")) },
538 { "next"/*--MKTAB-DFL--*/, &c_next
, (A
| TNDMLST
), 0, MMNDEL
, NIL
539 DS(N_("Goes to the next message (-list) and prints it")) },
546 (M
| TWYSH
), 0, 2, NIL
547 DS(N_("[<show>], <load>, <clear> cache, or <lookup> [USR@]HOST")) },
548 { "New", &c_unread
, (A
| TMSGLST
), 0, MMNDEL
, NIL
549 DS(N_("Mark <msglist> as not being read")) },
550 { "new", &c_unread
, (A
| TMSGLST
), 0, MMNDEL
, NIL
551 DS(N_("Mark <msglist> as not being read")) },
552 { "newmail", &c_newmail
, (A
| T
| TWYSH
), 0, 0, NIL
553 DS(N_("Check for new mail in current folder")) },
555 { "noop", &c_noop
, (A
| M
| TWYSH
), 0, 0, NIL
556 DS(N_("NOOP command if current `file' is accessed via network")) },
558 { "Print", &c_Type
, (A
| TMSGLST
), 0, MMNDEL
, NIL
559 DS(N_("Like `print', but bypass `ignore' / `retain'")) },
560 { "print", &c_type
, (A
| TMSGLST
), 0, MMNDEL
, NIL
561 DS(N_("Type all messages of <msglist>, honouring `ignore' / `retain'")) },
562 { "Page", &c_More
, (A
| TMSGLST
), 0, MMNDEL
, NIL
563 DS(N_("Invoke the pager on the given messages")) },
564 { "page", &c_more
, (A
| TMSGLST
), 0, MMNDEL
, NIL
565 DS(N_("Invoke the pager on the given messages")) },
566 { "Pipe", &c_Pipe
, (A
| TARG
), 0, MMNDEL
,
567 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_pipe
)
568 DS(N_("Like `pipe', but do not honour `ignore' / `retain'")) },
569 { "pipe", &c_pipe
, (A
| TARG
), 0, MMNDEL
,
570 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_pipe
)
571 DS(N_("Pipe [<msglist>] to [<command>], honour `ignore' / `retain'")) },
572 { "preserve", &c_preserve
, (A
| SC
| W
| TMSGLST
), 0, MMNDEL
, NIL
573 DS(N_("Save <msglist> in system mailbox instead of *MBOX*")) },
575 { "quit", &c_quit
, TWYSH
, 0, 1, NIL
576 DS(N_("Exit session with [<status>], saving messages as necessary")) },
578 { "reply", &c_reply
, (A
| I
| R
| SC
| EM
| TMSGLST
), 0, MMNDEL
, NIL
579 DS(N_("Reply to originator and recipients of <msglist>")) },
580 { "read", &c_read
, (G
| M
| X
| EM
| TWYSH
), 1, MAC
, NIL
581 DS(N_("Read a line into <variable>(s), split at $ifs")) },
582 { "readsh", &c_readsh
, (G
| M
| X
| EM
| TWYSH
), 1, MAC
, NIL
583 DS(N_("Read a line input into <variable>(s), split at shell tokens")) },
584 { "readall", &c_readall
, (G
| M
| X
| EM
| TWYSH
), 1, 1, NIL
585 DS(N_("Read anything from standard input until EOF into <variable>")) },
586 { "readctl", &c_readctl
, (G
| M
| X
| EM
| TARG
), 0, 0,
587 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_readctl
)
588 DS(N_("[<show>] or <create|set|remove> <spec> read channels"))},
589 { "remove", &c_remove
, (M
| TWYSH
), 1, MAC
, NIL
590 DS(N_("Remove the named folders")) },
591 { "rename", &c_rename
, (M
| TWYSH
), 2, 2, NIL
592 DS(N_("Rename <existing-folder> to <new-folder>")) },
593 { "Reply", &c_Reply
, (A
| I
| R
| SC
| EM
| TMSGLST
), 0, MMNDEL
, NIL
594 DS(N_("Reply to originator, exclusively")) },
595 { "Resend", &c_Resend
, (A
| R
| SC
| EM
| TARG
), 0, MMNDEL
,
596 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_Resend
)
597 DS(N_("Like `resend', but do not add Resent-* header lines")) },
598 { "resend", &c_resend
, (A
| R
| SC
| EM
| TARG
), 0, MMNDEL
,
599 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_resend
)
600 DS(N_("Resend <msglist> to <user>, add Resent-* header lines")) },
601 { "Respond", &c_Reply
, (A
| I
| R
| SC
| EM
| TMSGLST
), 0, MMNDEL
, NIL
602 DS(N_("Reply to originator, exclusively")) },
603 { "respond", &c_reply
, (A
| I
| R
| SC
| EM
| TMSGLST
), 0, MMNDEL
, NIL
604 DS(N_("Reply to originators and recipients of <msglist>")) },
605 { "retain", &c_retain
, (M
| TWYRA
), 0, MAC
, NIL
606 DS(N_("Add <header-list> to retained list, or show that list")) },
607 { "return", &c_return
, (M
| X
| EM
| TWYSH
), 0, 2, NIL
608 DS(N_("Return control from macro [<return value> [<exit status>]]"))},
609 { "replyall", &c_replyall
, (O
| A
| I
| R
| SC
| EM
| TMSGLST
), 0, MMNDEL
, NIL
610 DS(N_("Reply to originator and recipients of <msglist>")) },
611 { "replysender", &c_replysender
, (O
| A
| I
| R
| SC
| EM
| TMSGLST
),
613 DS(N_("Reply to originator, exclusively")) },
614 { "respondall", &c_replyall
, (O
| A
| I
| R
| SC
| EM
| TMSGLST
),
616 DS(N_("Reply to originators and recipients of <msglist>")) },
617 { "respondsender", &c_replysender
, (O
| A
| I
| R
| SC
| EM
| TMSGLST
),
619 DS(N_("Reply to originator, exclusively")) },
621 { "Save", &c_Save
, (A
| SC
| EM
| TARG
), 0, 0,
622 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_Save
)
623 DS(N_("Like `save', but derive filename from first sender")) },
624 { "save", &c_save
, (A
| EM
| TARG
), 0, 0,
625 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_save
)
626 DS(N_("Append [<msglist>] to <file>")) },
627 { "set", &c_set
, (G
| L
| M
| X
| TWYRA
), 0, MAC
, NIL
628 DS(N_("Print all variables, or set (a) <variable>(s)")) },
629 { "search", &c_from
, (A
| TMSGLST
), 0, MMNORM
, NIL
630 DS(N_("Search for <msglist>, type matching headers")) },
631 { "Seen", &c_seen
, (A
| M
| TMSGLST
), 0, MMNDEL
, NIL
632 DS(N_("Mark <msglist> as seen")) },
633 { "seen", &c_seen
, (A
| M
| TMSGLST
), 0, MMNDEL
, NIL
634 DS(N_("Mark <msglist> as seen")) },
635 { "shell", &c_dosh
, (I
| S
| EM
| TWYSH
), 0, 0, NIL
636 DS(N_("Invoke an interactive shell")) },
637 { "shcodec", &c_shcodec
, (G
| M
| V
| X
| EM
| TRAWDAT
), 0, 0, NIL
638 DS(N_("Shell quoting: <[+]e[ncode]|d[ecode]> <rest-of-line>")) },
639 { "shift", &c_shift
, (M
| X
| TWYSH
), 0, 1, NIL
640 DS(N_("In a `call'ed macro, shift positional parameters")) },
641 { "shortcut", &c_shortcut
, (M
| TWYSH
), 0, MAC
, NIL
642 DS(N_("Define [:<shortcut> plus <expansion>:], or list shortcuts")) },
643 { "Show", &c_show
, (A
| TMSGLST
), 0, MMNDEL
, NIL
644 DS(N_("Like `Type', but show raw message content of <msglist>")) },
645 { "show", &c_show
, (A
| TMSGLST
), 0, MMNDEL
, NIL
646 DS(N_("Like `type', but show raw message content of <msglist>")) },
647 { "size", &c_messize
, (A
| TMSGLST
), 0, MMNDEL
, NIL
648 DS(N_("Show size in bytes for <msglist>")) },
649 { "sleep", &c_sleep
, (H
| M
| X
| EM
| TWYSH
), 1, 3, NIL
650 DS(N_("Sleep for <seconds> [<milliseconds>]"))},
651 { "source", &c_source
, (M
| TWYSH
), 1, 1, NIL
652 DS(N_("Read commands from <file>")) },
653 { "sort", &c_sort
, (A
| TWYSH
), 0, 1, NIL
654 DS(N_("Change sorting: date,from,size,spam,status,subject,thread,to"))},
655 { "source_if", &c_source_if
, (M
| TWYSH
), 1, 1, NIL
656 DS(N_("Like `source', but ignore non-existence")) },
663 (A
| M
| TMSGLST
), 0, MMNDEL
, NIL
664 DS(N_("Clear the spam flag for each message in <msglist>")) },
671 (A
| M
| TMSGLST
), 0, MMNDEL
, NIL
672 DS(N_("Force the spam detector to unlearn <msglist>")) },
679 (A
| M
| TMSGLST
), 0, MMNDEL
, NIL
680 DS(N_("Teach the spam detector that <msglist> is ham")) },
687 (A
| M
| TMSGLST
), 0, MMNDEL
, NIL
688 DS(N_("Rate <msglist> via the spam detector")) },
695 (A
| M
| TMSGLST
), 0, MMNDEL
, NIL
696 DS(N_("Set the spam flag for each message in <msglist>")) },
703 (A
| M
| TMSGLST
), 0, MMNDEL
, NIL
704 DS(N_("Teach the spam detector that <msglist> is spam")) },
705 { "saveignore", &c_saveignore
, (O
| M
| TRAWLST
), 0, MAC
, NIL
706 DS(N_("Obsoleted by `headerpick'")) },
707 { "savediscard", &c_saveignore
, (O
| M
| TRAWLST
), 0, MAC
, NIL
708 DS(N_("Obsoleted by `headerpick'")) },
709 { "saveretain", &c_saveretain
, (O
| M
| TRAWLST
), 0, MAC
, NIL
710 DS(N_("Obsoleted by `headerpick'")) },
712 { "Type", &c_Type
, (A
| TMSGLST
), 0, MMNDEL
, NIL
713 DS(N_("Like `type', but bypass `ignore' / `retain'")) },
714 { "type", &c_type
, (A
| TMSGLST
), 0, MMNDEL
, NIL
715 DS(N_("Type all messages of <msglist>, honouring `ignore' / `retain'")) },
722 (G
| V
| EM
| TWYSH
), 1, MAC
, NIL
723 DS(N_("TLS information and management: <command> [<:argument:>]")) },
724 { "Top", &c_Top
, (A
| TMSGLST
), 0, MMNDEL
, NIL
725 DS(N_("Like `top', but bypass `ignore' / `retain'")) },
726 { "top", &c_top
, (A
| TMSGLST
), 0, MMNDEL
, NIL
727 DS(N_("Type first *toplines* of all messages in <msglist>")) },
728 { "touch", &c_stouch
, (A
| W
| TMSGLST
), 0, MMNDEL
, NIL
729 DS(N_("Mark <msglist> for saving in *mbox*")) },
730 { "thread", &c_thread
, (O
| A
| TMSGLST
), 0, 0, NIL
731 DS(N_("Obsoleted by `sort' \"thread\"")) },
733 { "undelete", &c_undelete
, (A
| P
| TMSGLST
), MDELETED
, MMNDEL
, NIL
734 DS(N_("Un`delete' <msglist>")) },
735 { "unalias", &c_unalias
, (M
| TWYSH
), 1, MAC
, NIL
736 DS(N_("Un`alias' <name-list> (* for all)")) },
737 { "unaccount", &c_unaccount
, (M
| TWYSH
), 1, MAC
, NIL
738 DS(N_("Delete all given <accounts> (* for all)")) },
739 { "unalternates", &c_unalternates
, (M
| TWYSH
), 1, MAC
, NIL
740 DS(N_("Delete alternate <address-list> (* for all)")) },
741 { "unanswered", &c_unanswered
, (A
| M
| TMSGLST
), 0, 0, NIL
742 DS(N_("Un`answered' <msglist>")) },
744 #ifdef mx_HAVE_KEY_BINDINGS
749 (M
| TARG
), 2, 2, a_CMD_CAD_UNBIND
750 DS(N_("Un`bind' <context> <key[:,key:]> (* for all)")) },
751 { "uncharsetalias", &c_uncharsetalias
, (M
| TWYSH
), 1, MAC
, NIL
752 DS(N_("Delete <charset-mapping-list> (* for all)")) },
753 { "uncollapse", &c_uncollapse
, (A
| TMSGLST
), 0, 0, NIL
754 DS(N_("Uncollapse <msglist> if in threaded view")) },
756 #ifdef mx_HAVE_COLOUR
761 (M
| TWYSH
), 2, 3, NIL
762 DS(N_("Un`colour' <type> <mapping> (* for all) [<precondition>]")) },
763 { "uncommandalias", &c_uncommandalias
, (M
| X
| TWYSH
), 1, MAC
, NIL
764 DS(N_("Delete <command-alias-list> (* for all)")) },
765 { "undefine", &c_undefine
, (M
| X
| TWYSH
), 1, MAC
, NIL
766 DS(N_("Un`define' all given <macros> (* for all)")) },
767 { "undraft", &c_undraft
, (A
| M
| TMSGLST
), 0, 0, NIL
768 DS(N_("Un`draft' <msglist>")) },
769 { "unfiletype", &c_unfiletype
, (M
| TWYSH
), 1, MAC
, NIL
770 DS(N_("Delete file handler for [:<extension>:] (* for all)")) },
771 { "unflag", &c_unflag
, (A
| M
| TMSGLST
), 0, 0, NIL
772 DS(N_("(Un)Flag <msglist> (for special attention)")) },
773 { "ungroup", &c_unalias
, (M
| TWYSH
), 1, MAC
, NIL
774 DS(N_("Un`alias' <name-list> (* for all)")) },
775 { "unheaderpick", &c_unheaderpick
, (M
| TWYSH
), 3, MAC
, NIL
776 DS(N_("Header deselection: <context> <type> <header-list>"))},
777 { "unignore", &c_unignore
, (M
| TWYRA
), 0, MAC
, NIL
778 DS(N_("Un`ignore' <header-list>")) },
779 { "unmlist", &c_unmlist
, (M
| TWYSH
), 1, MAC
, NIL
780 DS(N_("Un`mlist' <name-list> (* for all)")) },
781 { "unmlsubscribe", &c_unmlsubscribe
, (M
| TWYSH
), 1, MAC
, NIL
782 DS(N_("Un`mlsubscribe' <name-list> (* for all)"))},
783 { "unmimetype", &c_unmimetype
, (M
| TWYSH
), 1, MAC
, NIL
784 DS(N_("Delete <type>s (reset, * for all; former reinitializes)")) },
785 { "Unread", &c_unread
, (A
| TMSGLST
), 0, MMNDEL
, NIL
786 DS(N_("Mark <msglist> as not being read")) },
787 { "unread", &c_unread
, (A
| TMSGLST
), 0, MMNDEL
, NIL
788 DS(N_("Mark <msglist> as not being read")) },
789 { "unretain", &c_unretain
, (M
| TWYRA
), 0, MAC
, NIL
790 DS(N_("Un`retain' <header-list>")) },
791 { "unset", &c_unset
, (G
| L
| M
| X
| TWYSH
), 1, MAC
, NIL
792 DS(N_("Unset <option-list>")) },
793 { "unshortcut", &c_unshortcut
, (M
| TWYSH
), 1, MAC
, NIL
794 DS(N_("Delete <shortcut-list> (* for all)")) },
795 { "unsort", &c_unthread
, (A
| TMSGLST
), 0, 0, NIL
796 DS(N_("Disable sorted or threaded mode")) },
797 { "urlcodec", &c_urlcodec
, (G
| M
| V
| X
| EM
| TRAWDAT
), 0, 0, NIL
798 DS(N_("URL percent <[path]e[ncode]|[path]d[ecode]> <rest-of-line>")) },
799 { "unfwdignore", &c_unfwdignore
, (O
| M
| TRAWLST
), 0, MAC
, NIL
800 DS(N_("Obsoleted by `unheaderpick'")) },
801 { "unfwdretain", &c_unfwdretain
, (O
| M
| TRAWLST
), 0, MAC
, NIL
802 DS(N_("Obsoleted by `unheaderpick'")) },
803 { "unghost", &c_uncommandalias
, (O
| M
| X
| TWYRA
), 1, MAC
, NIL
804 DS(N_("Obsoleted by `uncommandalias'")) },
805 { "unsaveignore", &c_unsaveignore
, (O
| M
| TRAWLST
), 0, MAC
, NIL
806 DS(N_("Obsoleted by `unheaderpick'")) },
807 { "unsaveretain", &c_unsaveretain
, (O
| M
| TRAWLST
), 0, MAC
, NIL
808 DS(N_("Obsoleted by `unheaderpick'")) },
809 { "unthread", &c_unthread
, (O
| A
| TMSGLST
), 0, 0, NIL
810 DS(N_("Obsolete (use `unsort')")) },
812 { "visual", &c_visual
, (A
| I
| S
| TMSGLST
), 0, MMNORM
, NIL
813 DS(N_("Edit <msglist>")) },
814 { "varshow", &c_varshow
, (G
| M
| X
| TWYSH
), 1, MAC
, NIL
815 DS(N_("Show some information about the given <variables>")) },
822 (A
| TMSGLST
), 0, 0, NIL
823 DS(N_("Verify <msglist>")) },
824 { "version", &c_version
, (H
| M
| V
| X
| TWYSH
), 0, 0, NIL
825 DS(N_("Show the version and feature set of the program")) },
827 #ifdef mx_HAVE_CMD_VEXPR
832 (G
| M
| V
| X
| EM
| TWYSH
), 1, MAC
, NIL
833 DS(N_("Evaluate [according to] <operator> [any :<argument>:]")) },
834 { "vpospar", &c_vpospar
, (G
| M
| V
| X
| EM
| TARG
), 0, 0,
835 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_vpospar
)
836 DS(N_("Positional parameters: <clear>, <quote>, or <set> from :<arg>:"))},
838 { "write", &c_write
, (A
| TARG
), 0, 0,
839 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_write
)
840 DS(N_("Write (append) [<msglist>] to [<file>]")) },
842 { "xit", &c_exit
, (M
| X
| TWYSH
), 0, 1, NIL
843 DS(N_("Immediately return [<status>] to the shell without saving")) },
844 { "xcall", &c_xcall
, (M
| X
| EM
| TARG
), 0, 0,
845 mx_CMD_ARG_DESC_SUBCLASS_CAST(&a_cmd_cad_call
)
846 DS(N_("Replace currently executing macro with macro <name> [:<arg>:]")) },
848 { "Z", &c_Scroll
, (A
| M
| TWYSH
), 0, 1, NIL
849 DS(N_("Like `z', but continues to the next flagged message")) },
850 { "z", &c_scroll
, (A
| M
| TWYSH
), 0, 1, NIL
851 DS(N_("Scroll header display as indicated by the argument (0,-,+,$)")) },
887 #endif /* mx_CMD_TAB_H */