Added -clobber switch to mhstore(1) [Bug #11160].
[mmh] / uip / mhstore.c
index e491dd9..fa30e03 100644 (file)
@@ -47,16 +47,21 @@ static struct swit switches[] = {
     { "version", 0 },
 #define        HELPSW                 12
     { "help", 0 },
+#define        CLOBBERSW              13
+    { "clobber always|auto|suffix|ask|never", 0 },
 
 /*
  * switches for debugging
  */
-#define        DEBUGSW                13
+#define        DEBUGSW                14
     { "debug", -5 },
     { NULL, 0 }
 };
 
 
+int save_clobber_policy (const char *);
+extern int files_not_clobbered;
+
 /* mhparse.c */
 extern char *tmp;      /* directory to place temp files */
 
@@ -213,6 +218,14 @@ do_cache:
            case NVERBSW: 
                verbosw = 0;
                continue;
+            case CLOBBERSW:
+               if (!(cp = *argp++) || *cp == '-')
+                   adios (NULL, "missing argument to %s", argp[-2]);
+                if (save_clobber_policy (cp)) {
+                  adios (NULL, "invalid argument, %s, to %s", argp[-1],
+                         argp[-2]);
+                }
+               continue;
            case DEBUGSW:
                debugsw = 1;
                continue;
@@ -375,7 +388,7 @@ do_cache:
        context_save ();                  /* save the context file  */
     }
 
-    done (0);
+    done (files_not_clobbered);
     return 1;
 }