X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/7ba29497ff3f164e2a507eda35e81f1cb0658c74..4548a3ecc4248a1d4bd4fdd45d9a2bb1e61d1e70:/uip/slocal.c?ds=inline diff --git a/uip/slocal.c b/uip/slocal.c index 5026d82c..5eadea45 100644 --- a/uip/slocal.c +++ b/uip/slocal.c @@ -25,7 +25,7 @@ #include #include #include -#include +#include #include #include #include @@ -51,7 +51,9 @@ #include NDBM_HEADER #endif +#ifdef HAVE_GETUTXENT #include +#endif /* HAVE_GETUTXENT */ static struct swit switches[] = { #define ADDRSW 0 @@ -220,13 +222,12 @@ main (int argc, char **argv) adios (NULL, "-%s unknown", cp); case HELPSW: - snprintf (buf, sizeof(buf), - "%s [switches] [address info sender]", invo_name); + snprintf (buf, sizeof(buf), "%s [switches]", invo_name); print_help (buf, switches, 0); - done (1); + done (0); case VERSIONSW: print_version(invo_name); - done (1); + done (0); case ADDRSW: if (!(addr = *argp++))/* allow -xyz arguments */ @@ -282,20 +283,8 @@ main (int argc, char **argv) debug++; continue; } - } - - switch (argp - (argv + 1)) { - case 1: - addr = cp; - break; - - case 2: - info = cp; - break; - - case 3: - sender = cp; - break; + } else { + adios (NULL, "only switch arguments are supported"); } } @@ -751,13 +740,15 @@ parse (int fd) * a lookup table. */ for (i = 0, state = FLD;;) { - switch (state = m_getfld (state, name, field, sizeof(field), in)) { + int fieldsz = sizeof field; + switch (state = m_getfld (state, name, field, &fieldsz, in)) { case FLD: case FLDEOF: case FLDPLUS: lp = add (field, NULL); while (state == FLDPLUS) { - state = m_getfld (state, name, field, sizeof(field), in); + fieldsz = sizeof field; + state = m_getfld (state, name, field, &fieldsz, in); lp = add (field, lp); } for (p = hdrs; p->p_name; p++) { @@ -930,6 +921,7 @@ lookup (struct pair *pairs, char *key) static int logged_in (void) { +#if HAVE_GETUTXENT struct utmpx *utp; if (utmped) @@ -948,6 +940,7 @@ logged_in (void) } endutxent(); +#endif /* HAVE_GETUTXENT */ return (utmped = NOTOK); } @@ -1053,18 +1046,6 @@ usr_folder (int fd, char *string) /* use rcvstore to put message in folder */ status = usr_pipe (fd, "rcvstore", rcvstoreproc, vec, 1); -#if 0 - /* - * Currently, verbose status messages are handled by usr_pipe(). - */ - if (verbose) { - if (status == 0) - verbose_printf (", success.\n"); - else - verbose_printf (", failed.\n"); - } -#endif - return status; } @@ -1123,7 +1104,7 @@ usr_pipe (int fd, char *cmd, char *pgm, char **vec, int suppress) default: /* parent process */ - if (! m_setjmp (myctx)) { + if (! setjmp (myctx)) { SIGNAL (SIGALRM, alrmser); bytes = fstat (fd, &st) != -1 ? (int) st.st_size : 100; @@ -1286,13 +1267,6 @@ you_lose: /* get copy of envelope information ("From " line) */ envelope = getcpy (buffer); -#if 0 - /* First go ahead and put "From " line in message */ - fputs (buffer, ffp); - if (ferror (ffp)) - goto fputs_error; -#endif - /* Put the delivery date in message */ fputs (ddate, ffp); if (ferror (ffp)) @@ -1452,21 +1426,25 @@ suppress_duplicates (int fd, char *file) rewind (in); for (state = FLD;;) { - state = m_getfld (state, name, buf, sizeof(buf), in); + int bufsz = sizeof buf; + state = m_getfld (state, name, buf, &bufsz, in); switch (state) { case FLD: case FLDPLUS: case FLDEOF: /* Search for the message ID */ if (mh_strcasecmp (name, "Message-ID")) { - while (state == FLDPLUS) - state = m_getfld (state, name, buf, sizeof(buf), in); + while (state == FLDPLUS) { + bufsz = sizeof buf; + state = m_getfld (state, name, buf, &bufsz, in); + } continue; } cp = add (buf, NULL); while (state == FLDPLUS) { - state = m_getfld (state, name, buf, sizeof(buf), in); + bufsz = sizeof buf; + state = m_getfld (state, name, buf, &bufsz, in); cp = add (buf, cp); } key.dptr = trimcpy (cp);