Whoever originally added the -help switch to all the commands got too cute and
[mmh] / uip / inc.c
index 9752b5a..f00c337 100644 (file)
--- a/uip/inc.c
+++ b/uip/inc.c
 # define APOPminc(a)  0
 #endif
 
+#ifndef        KPOP
+# define KPOPminc(a) (a)
+#else
+# define KPOPminc(a)  0
+#endif
+
 static struct swit switches[] = {
 #define        AUDSW                      0
     { "audit audit-file", 0 },
@@ -99,9 +105,11 @@ static struct swit switches[] = {
 #define VERSIONSW                 20
     { "version", 0 },
 #define        HELPSW                    21
-    { "help", 4 },
+    { "help", 0 },
 #define SNOOPSW                   22
     { "snoop", -5 },
+#define KPOPSW                    23
+    { "kpop", KPOPminc (-4) },
     { NULL, 0 }
 };
 
@@ -144,7 +152,7 @@ static int return_gid;
 char *map_name(char *);
 
 #ifdef POP
-void done(int);
+int done(int);
 static int pop_action(char *);
 static int pop_pack(char *);
 static int map_count(void);
@@ -157,6 +165,7 @@ main (int argc, char **argv)
     int chgflag = 1, trnflag = 1;
     int noisy = 1, width = 0, locked = 0;
     int rpop, i, hghnum, msgnum;
+    int kpop = 0;
     char *cp, *maildir, *folder = NULL;
     char *format = NULL, *form = NULL;
     char *newmail, *host = NULL, *user = NULL;
@@ -218,11 +227,7 @@ main (int argc, char **argv)
        snoop++;
 #endif /* POP */
 
-#ifdef KPOP
-    rpop = 1;
-#else
     rpop = 0;
-#endif
 
     while ((cp = *argp++)) {
        if (*cp == '-') {
@@ -346,6 +351,10 @@ main (int argc, char **argv)
                rpop = 0;
                continue;
 
+           case KPOPSW:
+               kpop = 1;
+               continue;
+
            case SNOOPSW:
                snoop++;
                continue;
@@ -393,7 +402,7 @@ main (int argc, char **argv)
     if (inc_type == INC_POP) {
        if (user == NULL)
            user = getusername ();
-       if (rpop > 0)
+       if (kpop || ( rpop > 0))
            pass = getusername ();
        else
            ruserpass (host, &user, &pass);
@@ -401,7 +410,7 @@ main (int argc, char **argv)
        /*
         * initialize POP connection
         */
-       if (pop_init (host, user, pass, snoop, rpop) == NOTOK)
+       if (pop_init (host, user, pass, snoop, kpop ? 1 : rpop, kpop) == NOTOK)
            adios (NULL, "%s", response);
 
        /* Check if there are any messages */
@@ -848,7 +857,7 @@ go_to_it:
     seq_setunseen (mp, 0);     /* set the Unseen-Sequence */
     seq_save (mp);             /* synchronize sequences   */
     context_save ();           /* save the context file   */
-    done (0);
+    return done (0);
 }
 
 
@@ -886,13 +895,14 @@ cpymsg (FILE *in, FILE *out)
 
 
 #ifdef POP
-void
+int
 done (int status)
 {
     if (packfile && pd != NOTOK)
        mbx_close (packfile, pd);
 
     exit (status);
+    return 1;  /* dead code to satisfy the compiler */
 }
 
 static int
@@ -900,6 +910,7 @@ pop_action (char *s)
 {
     fprintf (pf, "%s\n", s);
     stop += strlen (s) + 1;
+    return 0;  /* Is return value used?  This was missing before 1999-07-15. */
 }
 
 static int
@@ -915,6 +926,7 @@ pop_pack (char *s)
        continue;
     fputs (buffer, pf);
     size += strlen (buffer) + 1;
+    return 0;  /* Is return value used?  This was missing before 1999-07-15. */
 }
 
 static int