]> diplodocus.org Git - nmh/blobdiff - uip/popsbr.c
Delete declaration already available from included header file.
[nmh] / uip / popsbr.c
index fba13992e68a95dab099a4a54e0e01e1eeb551a6..d4a65212490faf20b6f995b82290ae29a07826fe 100644 (file)
@@ -24,11 +24,12 @@ static netsec_context *nsc = NULL;
  * static prototypes
  */
 
-static int command(const char *, ...);
+static int command(const char *, ...) CHECK_PRINTF(1, 2);
 static int multiline(void);
 
-static int traverse (int (*)(void *, char *), void *closure, const char *, ...);
-static int vcommand(const char *, va_list);
+static int traverse(int (*)(void *, char *), void *closure,
+    const char *, ...) CHECK_PRINTF(3, 4);
+static int vcommand(const char *, va_list) CHECK_PRINTF(1, 0);
 static int pop_getline (char *, int, netsec_context *);
 static int pop_sasl_callback(enum sasl_message_type, unsigned const char *,
                             unsigned int, unsigned char **, unsigned int *,
@@ -505,21 +506,21 @@ traverse (int (*action)(void *, char *), void *closure, const char *fmt, ...)
     if ((snoopstate = netsec_get_snoop(nsc)))
        netsec_set_snoop(nsc, 0);
 
-    for (;;)
-       switch (multiline ()) {
-           case NOTOK: 
-               netsec_set_snoop(nsc, snoopstate);
-               return NOTOK;
-
-           case DONE: 
-               strncpy (response, buffer, sizeof(response));
-               netsec_set_snoop(nsc, snoopstate);
-               return OK;
+    for (;;) {
+        result = multiline();
+        if (result == OK) {
+            result = (*action)(closure, response);
+            if (result == OK)
+                continue;
+        } else if (result == DONE) {
+            strncpy(response, buffer, sizeof(response));
+            result = OK;
+        }
+        break;
+    }
 
-           case OK: 
-               (*action)(closure, response);
-               break;
-       }
+    netsec_set_snoop(nsc, snoopstate);
+    return result;
 }