diff options
-rw-r--r-- | mshow.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/mshow.c b/mshow.c index c4f5228..4b87f46 100644 --- a/mshow.c +++ b/mshow.c @@ -35,6 +35,7 @@ static char fallback_ct[] = "text/plain"; struct message *filters; static int mimecount; +static int extractcount; static int safe_output; static int reply_found; @@ -525,6 +526,7 @@ extract_mime(int depth, struct message *msg, char *body, size_t bodylen) printf("%s\n", bufptr); writefile(bufptr, body, bodylen); } + extractcount++; } else if (filename && fnmatch(a, filename, FNM_PATHNAME) == 0) { // extract by name @@ -545,6 +547,7 @@ extract_mime(int depth, struct message *msg, char *body, size_t bodylen) printf("\n"); writefile(filename, body, bodylen); } + extractcount++; } } } @@ -839,5 +842,10 @@ main(int argc, char *argv[]) if (pid1 > 0) pipeclose(pid1); + if ((xflag || Oflag) && extractcount < argc-optind) { + fprintf(stderr, "mshow: could not extract all attachments\n"); + return 1; + } + return 0; } |