/*
* b2m - a filter for Babyl -> Unix mail files
+ * The copyright on this file has been disclaimed.
*
* usage: b2m < babyl > mailbox
*
* I find this useful whenever I have to use a
* system which - shock horror! - doesn't run
- * Gnu emacs. At least now I can read all my
- * Gnumacs Babyl format mail files!
+ * GNU Emacs. At least now I can read all my
+ * GNU Emacs Babyl format mail files!
*
* it's not much but it's free!
*
/* Made conformant to the GNU coding standards January, 1995
by Francesco Potorti` <pot@cnuce.cnr.it>. */
-#include <stdio.h>
-#include <time.h>
-#include <sys/types.h>
-#ifdef MSDOS
-#include <fcntl.h>
-#endif
-
#ifdef HAVE_CONFIG_H
#include <config.h>
/* On some systems, Emacs defines static as nothing for the sake
#undef static
#endif
+#include <stdio.h>
+#include <time.h>
+#include <sys/types.h>
+#include <getopt.h>
+#ifdef MSDOS
+#include <fcntl.h>
+#endif
+
#undef TRUE
#define TRUE 1
#undef FALSE
#define FALSE 0
-/* Exit codes for success and failure. */
-#ifdef VMS
-#define GOOD 1
-#define BAD 0
-#else
-#define GOOD 0
-#define BAD 1
-#endif
-
#define streq(s,t) (strcmp (s, t) == 0)
#define strneq(s,t,n) (strncmp (s, t, n) == 0)
char *progname;
+struct option longopts[] =
+{
+ { "help", no_argument, NULL, 'h' },
+ { "version", no_argument, NULL, 'V' },
+ { 0 }
+};
+
+extern int optind;
+
+int
main (argc, argv)
int argc;
char **argv;
#endif
progname = argv[0];
- if (argc != 1)
+ while (1)
+ {
+ int opt = getopt_long (argc, argv, "hV", longopts, 0);
+ if (opt == EOF)
+ break;
+
+ switch (opt)
+ {
+ case 'V':
+ printf ("%s (GNU Emacs %s)\n", "b2m", VERSION);
+ puts ("b2m is in the public domain.");
+ exit (EXIT_SUCCESS);
+
+ case 'h':
+ fprintf (stderr, "Usage: %s <babylmailbox >unixmailbox\n", progname);
+ exit (EXIT_SUCCESS);
+ }
+ }
+
+ if (optind != argc)
{
fprintf (stderr, "Usage: %s <babylmailbox >unixmailbox\n", progname);
- exit (GOOD);
+ exit (EXIT_SUCCESS);
}
+
labels_saved = printing = header = FALSE;
ltoday = time (0);
today = ctime (<oday);
p = strtok (data.buffer, " ,\r\n\t");
labels = "X-Babyl-Labels: ";
- while (p = strtok (NULL, " ,\r\n\t"))
+ while ((p = strtok (NULL, " ,\r\n\t")))
labels = concat (labels, p, ", ");
p = &labels[strlen (labels) - 2];
if (printing)
puts (data.buffer);
}
+
+ return EXIT_SUCCESS;
}
void
fatal (message)
+ char *message;
{
fprintf (stderr, "%s: %s\n", progname, message);
- exit (BAD);
+ exit (EXIT_FAILURE);
}
+/* arch-tag: 5a3ad2af-a802-408f-83cc-e7cf5e98653e
+ (do not change this comment) */
+
+/* b2m.c ends here */