diff options
author | Rocco Rutte <pdmef@gmx.net> | 2009-02-15 16:09:50 +0100 |
---|---|---|
committer | Rocco Rutte <pdmef@gmx.net> | 2009-02-15 16:09:50 +0100 |
commit | 524801d9c4c190087be05f4ff4ca0b37131a3484 (patch) | |
tree | 9bed097c2f93a023e7d2b54b2b430a91180bd909 | |
parent | ee0dd99ef44452feac8f6fb43293e5c2d7a98b58 (diff) |
Support spaces in Attach: pseudoheader. Closes #3179.
-rw-r--r-- | doc/manual.xml.head | 3 | ||||
-rw-r--r-- | headers.c | 19 |
2 files changed, 16 insertions, 6 deletions
diff --git a/doc/manual.xml.head b/doc/manual.xml.head index 0c227c7c..78bc19a4 100644 --- a/doc/manual.xml.head +++ b/doc/manual.xml.head @@ -1126,7 +1126,8 @@ You can also attach files to your message by specifying <literal>Attach:</literal> <emphasis>filename</emphasis> [ <emphasis>description</emphasis> ] where <emphasis>filename</emphasis> is the file to attach and <emphasis>description</emphasis> is an -optional string to use as the description of the attached file. +optional string to use as the description of the attached file. Spaces +in filenames have to be escaped using backslash (<quote>\</quote>). </para> </sect3> @@ -148,18 +148,27 @@ void mutt_edit_headers (const char *editor, BODY *body; BODY *parts; char *q; + int l = 0; p = cur->data + 7; SKIPWS (p); if (*p) { - if ((q = strpbrk (p, " \t"))) + for (q = p; *q && *q != ' ' && *q != '\t'; q++) { - mutt_substrcpy (path, p, q, sizeof (path)); - SKIPWS (q); + if (*q == '\\') + { + if (!*(q+1)) + break; + q++; + } + if (l < sizeof (path) - 1) + path[l++] = *q; } - else - strfcpy (path, p, sizeof (path)); + *q++ = 0; + SKIPWS (q); + path[l] = 0; + mutt_expand_path (path, sizeof (path)); if ((body = mutt_make_file_attach (path))) { |