mshow: use fnmatch for extraction

pull/1/merge
Christian Neukirchen 8 years ago
parent 25f110951a
commit 3ed3878b2b

@ -53,15 +53,13 @@ from the message
.Ar msg .Ar msg
into files. into files.
.Ar parts .Ar parts
can be specified by number or file name. can be specified by number, file name or
.Xr fnmatch 3
pattern.
.It Fl O Ar msg .It Fl O Ar msg
Switch to extraction mode: extract Like
.Ar parts .Fl x
from the message but extract to standard output.
.Ar msg
to standard output.
.Ar parts
can be specified by number or file name.
.It Fl t .It Fl t
Switch to list mode: list all MIME parts Switch to list mode: list all MIME parts
of each of each

@ -4,6 +4,7 @@
#include <ctype.h> #include <ctype.h>
#include <errno.h> #include <errno.h>
#include <fcntl.h> #include <fcntl.h>
#include <fnmatch.h>
#include <iconv.h> #include <iconv.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
@ -402,7 +403,8 @@ extract_mime(int depth, struct message *msg, char *body, size_t bodylen)
printf("%s\n", bufptr); printf("%s\n", bufptr);
writefile(bufptr, body, bodylen); writefile(bufptr, body, bodylen);
} }
} else if (filename && strcmp(a, filename) == 0) { } else if (filename &&
fnmatch(a, filename, FNM_PATHNAME) == 0) {
// extract by name // extract by name
if (extract_stdout) { if (extract_stdout) {
fwrite(body, 1, bodylen, stdout); fwrite(body, 1, bodylen, stdout);

Loading…
Cancel
Save