General utilities cleanup. Add signature support to catcrypt. Throw in
[u/mdw/catacomb] / pgen-stdev.c
index 688a4b6..9ecb3b4 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: pgen-stdev.c,v 1.1 1999/12/22 16:01:57 mdw Exp $
+ * $Id: pgen-stdev.c,v 1.4 2004/04/08 01:36:15 mdw Exp $
  *
  * Standard event handlers
  *
  * MA 02111-1307, USA.
  */
 
-/*----- Revision history --------------------------------------------------* 
- *
- * $Log: pgen-stdev.c,v $
- * Revision 1.1  1999/12/22 16:01:57  mdw
- * Standard progress-reporting functions.
- *
- */
-
 /*----- Header files ------------------------------------------------------*/
 
 #include <stdio.h>
@@ -58,13 +50,18 @@ int pgen_evspin(int rq, pgen_event *ev, void *p)
   switch (rq) {
     case PGEN_PASS:
     case PGEN_FAIL:
-    case PGEN_DONE:
       putchar(*q++);
       putchar('\b');
       fflush(stdout);
       if (!*q)
        q = spinner;
       break;
+    case PGEN_DONE:
+    case PGEN_ABORT:
+      putchar(' ');
+      putchar('\b');
+      fflush(stdout);
+      break;
   }
   return (0);
 }
@@ -99,4 +96,36 @@ int pgen_ev(int rq, pgen_event *ev, void *p)
   return (0);
 }
 
+/* --- @pgen_subev@ --- *
+ *
+ * Subsidiary event handler, mainly for Lim-Lee searches and so on.
+ */
+
+int pgen_subev(int rq, pgen_event *ev, void *p)
+{
+  switch (rq) {
+    case PGEN_BEGIN:
+      printf("[%s: ", ev->name);
+      fflush(stdout);
+      break;
+    case PGEN_FAIL:
+      putchar('.');
+      fflush(stdout);
+      break;
+    case PGEN_PASS:
+      putchar('+');
+      fflush(stdout);
+      break;
+    case PGEN_DONE:
+      fputs("+]", stdout);
+      fflush(stdout);
+      break;
+    case PGEN_ABORT:
+      fputs(" failed]", stdout);
+      fflush(stdout);
+      break;
+  }
+  return (0);
+}
+
 /*----- That's all, folks -------------------------------------------------*/