Replace done with exit at uip
[mmh] / uip / slocal.c
index b83a268..ff8df8c 100644 (file)
@@ -59,11 +59,11 @@ static struct swit switches[] = {
 #define VERBSW  8
        { "verbose", 0 },
 #define NVERBSW  9
-       { "noverbose", 0 },
+       { "noverbose", 2 },
 #define DEBUGSW  10
        { "debug", 0 },
 #define VERSIONSW  11
-       { "version", 0 },
+       { "Version", 0 },
 #define HELPSW  12
        { "help", 0 },
        { NULL, 0 }
@@ -162,7 +162,7 @@ static int copy_message(int, char *, int);
 static void verbose_printf(char *fmt, ...);
 static void adorn(char *, char *, ...);
 static void debug_printf(char *fmt, ...);
-static char *trim(char *);
+static char *trimstr(char *);
 
 
 int
@@ -174,15 +174,9 @@ main(int argc, char **argv)
        char mailbox[BUFSIZ], tmpfil[BUFSIZ];
        char **argp, **arguments;
 
-#ifdef LOCALE
        setlocale(LC_ALL, "");
-#endif
        invo_name = mhbasename(*argv);
 
-       /* foil search of user profile/context */
-       if (context_foil(NULL) == -1) {
-               done(1);
-       }
        arguments = getarguments(invo_name, argc, argv, 0);
        argp = arguments;
 
@@ -192,17 +186,17 @@ main(int argc, char **argv)
                        switch (smatch(++cp, switches)) {
                        case AMBIGSW:
                                ambigsw(cp, switches);
-                               done(1);
+                               exit(1);
                        case UNKWNSW:
                                adios(NULL, "-%s unknown", cp);
 
                        case HELPSW:
                                snprintf(buf, sizeof(buf), "%s [switches] [address info sender]", invo_name);
                                print_help(buf, switches, 0);
-                               done(1);
+                               exit(0);
                        case VERSIONSW:
                                print_version(invo_name);
-                               done(1);
+                               exit(0);
 
                        case ADDRSW:
                                if (!(addr = *argp++)) {
@@ -388,23 +382,22 @@ main(int argc, char **argv)
        }
 
        if (debug) {
-               debug_printf("addr=\"%s\"\n", trim(addr));
-               debug_printf("user=\"%s\"\n", trim(user));
-               debug_printf("info=\"%s\"\n", trim(info));
-               debug_printf("sender=\"%s\"\n", trim(sender));
+               debug_printf("addr=\"%s\"\n", trimstr(addr));
+               debug_printf("user=\"%s\"\n", trimstr(user));
+               debug_printf("info=\"%s\"\n", trimstr(info));
+               debug_printf("sender=\"%s\"\n", trimstr(sender));
                debug_printf("envelope=\"%s\"\n",
-                               envelope ? trim(envelope) : "");
-               debug_printf("mbox=\"%s\"\n", trim(mbox));
-               debug_printf("home=\"%s\"\n", trim(home));
-               debug_printf("ddate=\"%s\"\n", trim(ddate));
+                               envelope ? trimstr(envelope) : "");
+               debug_printf("mbox=\"%s\"\n", trimstr(mbox));
+               debug_printf("home=\"%s\"\n", trimstr(home));
+               debug_printf("ddate=\"%s\"\n", trimstr(ddate));
                debug_printf("now=%02d:%02d\n\n", now->tw_hour, now->tw_min);
        }
 
        /* deliver the message */
        status = localmail(fd, mdlvr);
 
-       done(status != -1 ? RCV_MOK : RCV_MBX);
-       return 1;
+       return (status != -1 ? RCV_MOK : RCV_MBX);
 }
 
 
@@ -489,7 +482,7 @@ usr_delivery(int fd, char *delivery, int su)
                if (debug) {
                        for (i = 0; vec[i]; i++) {
                                debug_printf("vec[%d]: \"%s\"\n",
-                                               i, trim(vec[i]));
+                                               i, trimstr(vec[i]));
                        }
                }
 
@@ -830,14 +823,14 @@ parse(int fd)
                p->p_flags &= ~P_CHK;
                if (debug) {
                        debug_printf("vars[%d]: name=\"%s\" value=\"%s\"\n",
-                                       p - vars, p->p_name, trim(p->p_value));
+                                       p - vars, p->p_name, trimstr(p->p_value));
                }
        }
        if (debug) {
                for (p = hdrs; p->p_name; p++) {
                        debug_printf("hdrs[%d]: name=\"%s\" value=\"%s\"\n",
                                        p - hdrs, p->p_name,
-                                       p->p_value ? trim(p->p_value) : "");
+                                       p->p_value ? trimstr(p->p_value) : "");
                }
        }
        return 0;
@@ -915,7 +908,7 @@ glob(int fd)
        if (debug) {
                for (p = vars; p->p_name; p++) {
                        debug_printf("vars[%d]: name=\"%s\" value=\"%s\"\n",
-                                       p - vars, p->p_name, trim(p->p_value));
+                                       p - vars, p->p_name, trimstr(p->p_value));
                }
        }
 }
@@ -1107,6 +1100,7 @@ get_sender(char *envelope, char **sender)
 
        i = strlen("From ");
        strncpy(buffer, envelope + i, sizeof(buffer));
+       buffer[sizeof buffer -1] = '\0';  /* ensure termination */
        if ((cp = strchr(buffer, '\n'))) {
                *cp = '\0';
                cp -= 24;
@@ -1242,7 +1236,7 @@ fputs_error:
 ** Trim strings for pretty printing of debugging output
 */
 static char *
-trim(char *cp)
+trimstr(char *cp)
 {
        char buffer[BUFSIZ*4];
        unsigned char *bp, *sp;