A patch that allows multiple FCC separated by commas, written by Omen Wild Original website: http://www.mandarb.com/mutt/ Bug asking for the inclusion: 586454 --- a/protos.h +++ b/protos.h @@ -362,6 +362,7 @@ void mutt_update_num_postponed (void); int mutt_wait_filter (pid_t); int mutt_which_case (const char *); +int mutt_write_multiple_fcc (const char *path, HEADER *hdr, const char *msgid, int, char *); int mutt_write_fcc (const char *path, HEADER *hdr, const char *msgid, int, char *); int mutt_write_mime_body (BODY *, FILE *); int mutt_write_mime_header (BODY *, FILE *); --- a/send.c +++ b/send.c @@ -1735,7 +1735,7 @@ * message was first postponed. */ msg->received = time (NULL); - if (mutt_write_fcc (fcc, msg, NULL, 0, NULL) == -1) + if (mutt_write_multiple_fcc (fcc, msg, NULL, 0, NULL) == -1) { /* * Error writing FCC, we should abort sending. --- a/sendlib.c +++ b/sendlib.c @@ -2664,6 +2664,36 @@ } } +/* Handle a Fcc with multiple, comma separated entries. */ +int mutt_write_multiple_fcc (const char *path, HEADER *hdr, const char *msgid, int post, char *fcc) { + char fcc_tok[_POSIX_PATH_MAX]; + char fcc_expanded[_POSIX_PATH_MAX]; + char *tok = NULL; + int status; + + strfcpy(fcc_tok, path, _POSIX_PATH_MAX); + + tok = strtok(fcc_tok, ","); + dprint(1, (debugfile, "Fcc: initial mailbox = '%s'\n", tok)); + /* mutt_expand_path already called above for the first token */ + if((status = mutt_write_fcc (tok, hdr, NULL, 0, NULL)) != 0) + return status; + + while((tok = strtok(NULL, ",")) != NULL) { + if(*tok) { + /* Only call mutt_expand_path iff tok has some data */ + dprint(1, (debugfile, "Fcc: additional mailbox token = '%s'\n", tok)); + strfcpy(fcc_expanded, tok, sizeof(fcc_expanded)); + mutt_expand_path(fcc_expanded, sizeof(fcc_expanded)); + dprint(1, (debugfile, " Additional mailbox expanded = '%s'\n", fcc_expanded)); + if((status = mutt_write_fcc (fcc_expanded, hdr, NULL, 0, NULL)) != 0) + return status; + } + } + + return 0; +} + int mutt_write_fcc (const char *path, HEADER *hdr, const char *msgid, int post, char *fcc) { CONTEXT f;