From: Christoph Berg Date: Tue, 3 Apr 2007 21:08:46 +0000 (-0700) Subject: When -- is present in the argument list, allow attachment globs. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=91e98384c7be89ef445f032c9d546cac3b43c7e3;p=neomutt When -- is present in the argument list, allow attachment globs. The -- separates file names from recipients. Also works for -A and -Q. --- diff --git a/ChangeLog b/ChangeLog index 361055624..b2ac5583f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2007-04-03 10:54 -0700 Fabian Groffen (89abe8bd0713) + + * hdrline.c, imap/message.c, mh.c, muttlib.c, regex.c, sendlib.c: Fix + some warnings. + +2007-04-03 08:59 -0700 Brendan Cully (e363d7a69046) + + * pop_auth.c, rfc822.c, rfc822.h: Validate msgid in APOP + authentication. Closes #2846 + + * hcache.c: Fix DB4 crash introduced in d5ab883ef90a + + * imap/util.c: Add missing hcache.h include + 2007-04-02 20:44 -0700 Brendan Cully (59fcc37f8c75) * sendlib.c: Check message for boundary collisions (closes #902) diff --git a/doc/manual.xml.head b/doc/manual.xml.head index c86650747..098736985 100644 --- a/doc/manual.xml.head +++ b/doc/manual.xml.head @@ -5973,7 +5973,8 @@ To compose a new message -mutt [ -n ] [ -F muttrc ] [ -a file ] [ -c address ] [ -i filename ] [ -s subject ] address [ address ... ] +mutt [ -n ] [ -F muttrc ] [ -a file ] [ -c address ] [ -i filename ] [ -s subject ] +[ [ file ... ] -- ] address [ address ... ] @@ -5992,6 +5993,12 @@ of ``data set for run #2''. In the body of the message will be the contents of the file ``˜/run2.dat''. + +All files passed with -a file will be attached as a MIME +part to the message. To attach several files, use ``--'' to separate files and +recipient addresses: mutt -a *.png -- some@one.org + + diff --git a/doc/mutt.man b/doc/mutt.man index 52a4d2941..26214f6c6 100644 --- a/doc/mutt.man +++ b/doc/mutt.man @@ -29,14 +29,14 @@ mutt \- The Mutt Mail User Agent .B mutt [-nx] [-e \fIcmd\fP] -[-a \fIfile\fP] [-F \fIfile\fP] [-H \fIfile\fP] [-i \fIfile\fP] [-s \fIsubj\fP] [-b \fIaddr\fP] [-c \fIaddr\fP] -[--] +[\-a \fIfile\fP [...]] +[\-\-] \fIaddr\fP [...] .PP .B mutt @@ -62,8 +62,10 @@ OpenPGP, and a threaded sorting mode. .PP .IP "-A \fIalias\fP" An expanded version of the given alias is passed to stdout. -.IP "-a \fIfile\fP" +.IP "-a \fIfile\fP [...]" Attach a file to your message using MIME. +To attach multiple files, separating filenames and recipient addresses with +"\-\-" is mandatory, e.g. \fBmutt \-a img.jpg *.png \-\- addr1 addr2\fP. .IP "-b \fIaddress\fP" Specify a blind-carbon-copy (BCC) recipient .IP "-c \fIaddress\fP" @@ -117,8 +119,9 @@ mailbox. .IP "-Z" Causes Mutt to open the first mailbox specified by the \fImailboxes\fP command which contains new mail. -.IP "--" +.IP "\-\-" Treat remaining arguments as \fIaddr\fP even if they start with a dash. +See also "\-a" above. .SH ENVIRONMENT .PP .IP "EDITOR" diff --git a/main.c b/main.c index bcca8002d..66d771203 100644 --- a/main.c +++ b/main.c @@ -105,12 +105,12 @@ static void mutt_usage (void) puts (mutt_make_version ()); puts _( -"usage: mutt [ -nRyzZ ] [ -e ] [ -F ] [ -m ] [ -f ]\n\ - mutt [ -nR ] [ -e ] [ -F ] -Q [ -Q ] [...]\n\ - mutt [ -nR ] [ -e ] [ -F ] -A [ -A ] [...]\n\ - mutt [ -nR ] [ -e ] [ -F ] -D\n\ - mutt [ -nx ] [ -e ] [ -a ] [ -F ] [ -H ] [ -i ] [ -s ] [ -b ] [ -c ] [ -- ] [ ... ]\n\ - mutt [ -n ] [ -e ] [ -F ] -p\n\ +"usage: mutt [] [-z] [-f | -yZ]\n\ + mutt [] [-x] [-Hi ] [-s ] [-bc ] [-a [...]] [--] [...]\n\ + mutt [] -p\n\ + mutt [] -A [...]\n\ + mutt [] -Q [...]\n\ + mutt [] -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\twhen using -a with multiple filenames using -- is mandatory"); 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,12 @@ int main (int argc, char **argv) } return rv; } - + + /* if an -a option is present, all non-option arguments before -- are considered attachments */ + if (attach) + for (; optind <= attach_sep; optind++) + attach = mutt_add_list (attach, argv[optind]); + if (newMagic) mx_set_magic (newMagic);