* uip/mhlistsbr.c, uip/mhlsbr.c, uip/picksbr.c: cast
[mmh] / uip / mhtest.c
index 140c7d9..9590fd3 100644 (file)
@@ -64,7 +64,6 @@ static struct swit switches[] = {
 int ebcdicsw = 0;      /* hack for linking purposes */
 
 /* mhparse.c */
-extern int checksw;
 extern char *tmp;      /* directory to place temp files */
 
 /* mhcachesbr.c */
@@ -89,9 +88,6 @@ pid_t xpid  = 0;
 int debugsw = 0;
 int verbosw = 0;
 
-/* The list of top-level contents to display */
-CT *cts = NULL;
-
 #define        quitser pipeser
 
 /* mhparse.c */
@@ -108,6 +104,8 @@ void flush_errors (void);
 
 /* mhfree.c */
 void free_content (CT);
+extern CT *cts;
+void freects_done (int) NORETURN;
 
 /*
  * static prototypes
@@ -127,6 +125,8 @@ main (int argc, char **argv)
     struct msgs *mp = NULL;
     CT ct, *ctp;
 
+    done=freects_done;
+
 #ifdef LOCALE
     setlocale(LC_ALL, "");
 #endif
@@ -230,7 +230,7 @@ do_cache:
            if (folder)
                adios (NULL, "only one folder at a time!");
            else
-               folder = path (cp + 1, *cp == '+' ? TFOLDER : TSUBCWF);
+               folder = pluspath (cp);
        } else
                app_msgarg(&msgs, cp);
     }
@@ -363,7 +363,8 @@ do_cache:
        context_save ();                  /* save the context file  */
     }
 
-    return done (0);
+    done (0);
+    return 1;
 }
 
 
@@ -395,17 +396,3 @@ pipeser (int i)
     done (1);
     /* NOTREACHED */
 }
-
-
-int
-done (int status)
-{
-    CT *ctp;
-
-    if ((ctp = cts))
-       for (; *ctp; ctp++)
-           free_content (*ctp);
-
-    exit (status);
-    return 1;  /* dead code to satisfy the compiler */
-}