better error handling
[mmh] / uip / prompter.c
index c7eb957..bc7cd43 100644 (file)
@@ -140,6 +140,10 @@ main(int argc, char **argv)
        */
        for (state = FLD2;;) {
                switch (state = m_getfld2(state, &f, in)) {
+               case LENERR2:
+                       advise(NULL, "Header to long");
+                       state = FLD2;
+                       /* FALL */
                case FLD2:
                        /*
                        ** Check if the value of field contains
@@ -212,6 +216,9 @@ abort:
                                        }
                                } while ((state = m_getfld2(state, &f, in))
                                                ==BODY2);
+                               if (state != FILEEOF2) {
+                                       adios(EX_IOERR, "m_getfld2", "io error");
+                               }
                        }
 
                        if (prepend || !qbody) {
@@ -230,8 +237,11 @@ has_no_body:
                        }
                        break;
 
+               case FMTERR2:
+                       advise(NULL, "skeleton is poorly formatted");
+                       continue;
                default:
-                       adios(EX_DATAERR, NULL, "skeleton is poorly formatted");
+                       adios(EX_IOERR, "m_getfld2", "io error");
                }
                break;
        }