mirror of
git://git.gnupg.org/gnupg.git
synced 2025-05-24 16:43:28 +02:00
common: Add --filter option to t-mbox-util.
* common/t-mbox-util.c (run_filter): New. (main): Add option parser.
This commit is contained in:
parent
b46382dd47
commit
b3095c95ef
@ -25,6 +25,9 @@
|
|||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "mbox-util.h"
|
#include "mbox-util.h"
|
||||||
|
|
||||||
|
#define PGM "t-mbox-util"
|
||||||
|
|
||||||
|
|
||||||
#define pass() do { ; } while(0)
|
#define pass() do { ; } while(0)
|
||||||
#define fail(a) do { fprintf (stderr, "%s:%d: test %d failed\n",\
|
#define fail(a) do { fprintf (stderr, "%s:%d: test %d failed\n",\
|
||||||
__FILE__,__LINE__, (a)); \
|
__FILE__,__LINE__, (a)); \
|
||||||
@ -32,6 +35,10 @@
|
|||||||
} while(0)
|
} while(0)
|
||||||
|
|
||||||
|
|
||||||
|
static int verbose;
|
||||||
|
static int debug;
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
run_mbox_test (void)
|
run_mbox_test (void)
|
||||||
{
|
{
|
||||||
@ -143,14 +150,97 @@ run_dns_test (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
run_filter (void)
|
||||||
|
{
|
||||||
|
char buf[4096];
|
||||||
|
int c;
|
||||||
|
char *p, *mbox;
|
||||||
|
unsigned int count1 = 0;
|
||||||
|
unsigned int count2 = 0;
|
||||||
|
|
||||||
|
while (fgets (buf, sizeof buf, stdin))
|
||||||
|
{
|
||||||
|
p = strchr (buf, '\n');
|
||||||
|
if (p)
|
||||||
|
*p = 0;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* Skip to the end of the line. */
|
||||||
|
while ((c = getc (stdin)) != EOF && c != '\n')
|
||||||
|
;
|
||||||
|
}
|
||||||
|
count1++;
|
||||||
|
trim_spaces (buf);
|
||||||
|
mbox = mailbox_from_userid (buf);
|
||||||
|
if (mbox)
|
||||||
|
{
|
||||||
|
printf ("%s\n", mbox);
|
||||||
|
xfree (mbox);
|
||||||
|
count2++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (verbose)
|
||||||
|
fprintf (stderr, PGM ": lines=%u mboxes=%u\n", count1, count2);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
main (int argc, char **argv)
|
main (int argc, char **argv)
|
||||||
{
|
{
|
||||||
(void)argc;
|
int last_argc = -1;
|
||||||
(void)argv;
|
int opt_filter = 0;
|
||||||
|
|
||||||
|
if (argc)
|
||||||
|
{ argc--; argv++; }
|
||||||
|
while (argc && last_argc != argc )
|
||||||
|
{
|
||||||
|
last_argc = argc;
|
||||||
|
if (!strcmp (*argv, "--"))
|
||||||
|
{
|
||||||
|
argc--; argv++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (!strcmp (*argv, "--help"))
|
||||||
|
{
|
||||||
|
fputs ("usage: " PGM " [FILE]\n"
|
||||||
|
"Options:\n"
|
||||||
|
" --verbose Print timings etc.\n"
|
||||||
|
" --debug Flyswatter\n"
|
||||||
|
" --filter Filter mboxes from input lines\n"
|
||||||
|
, stdout);
|
||||||
|
exit (0);
|
||||||
|
}
|
||||||
|
else if (!strcmp (*argv, "--verbose"))
|
||||||
|
{
|
||||||
|
verbose++;
|
||||||
|
argc--; argv++;
|
||||||
|
}
|
||||||
|
else if (!strcmp (*argv, "--debug"))
|
||||||
|
{
|
||||||
|
verbose += 2;
|
||||||
|
debug++;
|
||||||
|
argc--; argv++;
|
||||||
|
}
|
||||||
|
else if (!strcmp (*argv, "--filter"))
|
||||||
|
{
|
||||||
|
opt_filter = 1;
|
||||||
|
argc--; argv++;
|
||||||
|
}
|
||||||
|
else if (!strncmp (*argv, "--", 2))
|
||||||
|
{
|
||||||
|
fprintf (stderr, PGM ": unknown option '%s'\n", *argv);
|
||||||
|
exit (1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (opt_filter)
|
||||||
|
run_filter ();
|
||||||
|
else
|
||||||
|
{
|
||||||
run_mbox_test ();
|
run_mbox_test ();
|
||||||
run_dns_test ();
|
run_dns_test ();
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user