diff options
author | Jakob Kaivo <jkaivo@ndn.net> | 2001-07-21 00:09:38 +0000 |
---|---|---|
committer | Jakob Kaivo <jkaivo@ndn.net> | 2001-07-21 00:09:38 +0000 |
commit | bd9881d4e9e2de1848ae4ed7357e491f803cf8b8 (patch) | |
tree | 718d77df29dc467a5364b606035fb93026fbd271 /messages | |
parent | 12d6c72522de0e1a258f491418f7c6b93889a26f (diff) | |
download | mailutils-bd9881d4e9e2de1848ae4ed7357e491f803cf8b8.tar.gz mailutils-bd9881d4e9e2de1848ae4ed7357e491f803cf8b8.tar.bz2 |
new file, implementation of elm messages command
Diffstat (limited to 'messages')
-rw-r--r-- | messages/messages.c | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/messages/messages.c b/messages/messages.c new file mode 100644 index 000000000..ec07caa0c --- /dev/null +++ b/messages/messages.c @@ -0,0 +1,78 @@ +#include "config.h" +#include <mailutils/mailutils.h> +#include <stdio.h> +#include <argp.h> + +const char *argp_program_version = "messages (" PACKAGE ") " VERSION; +const char *argp_program_bug_address = "<bug-mailutils@gnu.org>"; +static char doc[] = "GNU messages -- count the number of messages in a mailbox"; +static char args_doc[] = "[mailbox...]"; + +static struct argp_option options[] = { + { 0 } +}; + +struct arguments +{ + char **args; +}; + +static error_t +parse_opt (int key, char *arg, struct argp_state *state) +{ + return 0; +} + +static struct argp argp = { options, parse_opt, args_doc, doc }; + +int +main (int argc, char **argv) +{ + int i = 1; + list_t bookie; + mailbox_t mbox; + int count; + int err = 0; + struct arguments args; + args.args = NULL; + + argp_parse (&argp, argc, argv, 0, 0, &args); + + registrar_get_list (&bookie); + list_append (bookie, path_record); + + /* FIXME: if argc < 2, check on $MAIL and exit */ + + for (i=1; i < argc; i++) + { + if (mailbox_create_default (&mbox, argv[i]) != 0) + { + fprintf (stderr, "Couldn't create mailbox %s.\n", argv[i]); + err = 1; + continue; + } + if (mailbox_open (mbox, MU_STREAM_READ) != 0) + { + fprintf (stderr, "Couldn't open mailbox %s.\n", argv[i]); + err = 1; + continue; + } + if (mailbox_messages_count (mbox, &count) != 0) + { + fprintf (stderr, "Couldn't count messages in %s.\n", argv[i]); + err = 1; + continue; + } + + printf ("Number of messages in %s: %d\n", argv[i], count); + + if (mailbox_close (mbox) != 0) + { + fprintf (stderr, "Couldn't close %s.\n", argv[i]); + err = 1; + continue; + } + mailbox_destroy (&mbox); + } + return 0; +} |