summaryrefslogtreecommitdiff
path: root/messages
diff options
context:
space:
mode:
authorJakob Kaivo <jkaivo@ndn.net>2001-07-21 00:09:38 +0000
committerJakob Kaivo <jkaivo@ndn.net>2001-07-21 00:09:38 +0000
commitbd9881d4e9e2de1848ae4ed7357e491f803cf8b8 (patch)
tree718d77df29dc467a5364b606035fb93026fbd271 /messages
parent12d6c72522de0e1a258f491418f7c6b93889a26f (diff)
downloadmailutils-bd9881d4e9e2de1848ae4ed7357e491f803cf8b8.tar.gz
mailutils-bd9881d4e9e2de1848ae4ed7357e491f803cf8b8.tar.bz2
new file, implementation of elm messages command
Diffstat (limited to 'messages')
-rw-r--r--messages/messages.c78
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;
+}

Return to:

Send suggestions and report system problems to the System administrator.