Re: To Mutt Developers 2007-03-21 <20070321193650.GB2707@xxxxxxxx> > The syntax is even "almost" backwards compatible: > > mutt -a filelist -- rcptlist > mutt -a file rcptlist Here's a patch that implements this. (And does likewise for mutt -A and -Q.) # HG changeset patch # User Christoph Berg <cb@xxxxxxxx> # Date 1174745950 -3600 # Node ID 27272858b80f6944e42ee35c95816812d636a305 # Parent 888a57a2b5f2bac6dc4333ff653ddb284485ff7d All non-option arguments before -- are considered attachments. Declutter mutt -h message. diff -r 888a57a2b5f2 -r 27272858b80f doc/manual.xml.head --- a/doc/manual.xml.head Fri Mar 23 10:32:29 2007 -0700 +++ b/doc/manual.xml.head Sat Mar 24 15:19:10 2007 +0100 @@ -5973,7 +5973,8 @@ To compose a new message </para> <para> -<literal>mutt</literal> [ -n ] [ -F <emphasis>muttrc</emphasis> ] [ -a <emphasis>file</emphasis> ] [ -c <emphasis>address</emphasis> ] [ -i <emphasis>filename</emphasis> ] [ -s <emphasis>subject</emphasis> ] <emphasis>address</emphasis> [ <emphasis>address</emphasis> ... ] +<literal>mutt</literal> [ -n ] [ -F <emphasis>muttrc</emphasis> ] [ -a <emphasis>file</emphasis> ] [ -c <emphasis>address</emphasis> ] [ -i <emphasis>filename</emphasis> ] [ -s <emphasis>subject</emphasis> ] +[ [ <emphasis>file</emphasis> ... ] -- ] <emphasis>address</emphasis> [ <emphasis>address</emphasis> ... ] </para> <para> @@ -5992,6 +5993,12 @@ of the file ``˜/run2.dat''. of the file ``˜/run2.dat''. </para> +<para> +All files passed with -a <emphasis>file</emphasis> will be attached as a MIME +part to the message. To attach several files, use ``--'' to separate files and +recipient addresses: <literal>mutt -a *.png -- some@xxxxxxx</literal> +</para> + </sect1> <sect1 id="commands"> diff -r 888a57a2b5f2 -r 27272858b80f doc/mutt.man --- a/doc/mutt.man Fri Mar 23 10:32:29 2007 -0700 +++ b/doc/mutt.man Sat Mar 24 15:19:10 2007 +0100 @@ -36,7 +36,7 @@ mutt \- The Mutt Mail User Agent [-s \fIsubj\fP] [-b \fIaddr\fP] [-c \fIaddr\fP] -[--] +[[\fIfile\fP [...] --] \fIaddr\fP [...] .PP .B mutt @@ -119,6 +119,7 @@ command which contains new mail. command which contains new mail. .IP "--" Treat remaining arguments as \fIaddr\fP even if they start with a dash. +All non-option arguments before "\-\-" are considered attachments. .SH ENVIRONMENT .PP .IP "EDITOR" diff -r 888a57a2b5f2 -r 27272858b80f main.c --- a/main.c Fri Mar 23 10:32:29 2007 -0700 +++ b/main.c Sat Mar 24 15:19:10 2007 +0100 @@ -105,12 +105,12 @@ static void mutt_usage (void) puts (mutt_make_version ()); puts _( -"usage: mutt [ -nRyzZ ] [ -e <cmd> ] [ -F <file> ] [ -m <type> ] [ -f <file> ]\n\ - mutt [ -nR ] [ -e <cmd> ] [ -F <file> ] -Q <query> [ -Q <query> ] [...]\n\ - mutt [ -nR ] [ -e <cmd> ] [ -F <file> ] -A <alias> [ -A <alias> ] [...]\n\ - mutt [ -nR ] [ -e <cmd> ] [ -F <file> ] -D\n\ - mutt [ -nx ] [ -e <cmd> ] [ -a <file> ] [ -F <file> ] [ -H <file> ] [ -i <file> ] [ -s <subj> ] [ -b <addr> ] [ -c <addr> ] [ -- ] <addr> [ ... ]\n\ - mutt [ -n ] [ -e <cmd> ] [ -F <file> ] -p\n\ +"usage: mutt [<options>] [-z] [-f <file> | -yZ]\n\ + mutt [<options>] [-x] [-aHi <file>] [-s <subj>] [-bc <addr>] [[<file> [...]] --] <addr> [...]\n\ + mutt [<options>] -p\n\ + mutt [<options>] -A <alias> [...]\n\ + mutt [<options>] -Q <query> [...]\n\ + mutt [<options>] -D\n\ mutt -v[v]\n"); puts _("\ @@ -143,7 +143,8 @@ options:\n\ -z\t\texit immediately if there are no messages in the mailbox\n\ -Z\t\topen the first folder with new message, exit immediately if none\n\ -h\t\tthis help message"); - puts _(" --\t\ttreat remaining arguments as addr even if starting with a dash"); + puts _(" --\t\ttreat remaining arguments as addr even if starting with a dash\n\ +\t\tall non-option arguments before -- are attachments"); exit (0); } @@ -541,6 +542,7 @@ int main (int argc, char **argv) int dump_variables = 0; extern char *optarg; extern int optind; + int attach_sep = 0; /* sanity check against stupid administrators */ @@ -567,7 +569,14 @@ int main (int argc, char **argv) memset (Options, 0, sizeof (Options)); memset (QuadOptions, 0, sizeof (QuadOptions)); - + + for (i = 1; i < argc; i++) + if (!strcmp(argv[i], "--")) + { + attach_sep = i; + break; + } + while ((i = getopt (argc, argv, "A:a:b:F:f:c:Dd:e:H:s:i:hm:npQ:RvxyzZ")) != EOF) switch (i) { @@ -709,7 +718,11 @@ int main (int argc, char **argv) crypt_init (); if (queries) + { + for (; optind < argc; optind++) + queries = mutt_add_list (queries, argv[optind]); return mutt_query_variables (queries); + } if (dump_variables) return mutt_dump_variables(); @@ -717,6 +730,8 @@ int main (int argc, char **argv) { int rv = 0; ADDRESS *a; + for (; optind < argc; optind++) + alias_queries = mutt_add_list (alias_queries, argv[optind]); for (; alias_queries; alias_queries = alias_queries->next) { if ((a = mutt_lookup_alias (alias_queries->data))) @@ -733,7 +748,11 @@ int main (int argc, char **argv) } return rv; } - + + /* all non-option arguments before -- are considered attachments */ + for (; optind <= attach_sep; optind++) + attach = mutt_add_list (attach, argv[optind]); + if (newMagic) mx_set_magic (newMagic); Christoph -- cb@xxxxxxxx | http://www.df7cb.de/
Attachment:
signature.asc
Description: Digital signature