Hash utilities: Check for and report on junk files.
[u/mdw/catacomb] / cc.h
diff --git a/cc.h b/cc.h
index 7d93fa3..f3a03f3 100644 (file)
--- a/cc.h
+++ b/cc.h
@@ -44,6 +44,9 @@
 #include <string.h>
 #include <time.h>
 
+#include <sys/types.h>
+#include <sys/stat.h>
+
 #include <mLib/dstr.h>
 
 #include "key.h"
@@ -329,10 +332,12 @@ extern const encodeops *getencoding(const char */*ename*/);
 typedef struct fhashstate {
   const gchash *gch;
   unsigned f;
+  struct fhent *ents;
 } fhashstate;
 
 #define FHF_BINARY 0x100u
 #define FHF_PROGRESS 0x200u
+#define FHF_JUNK 0x400u
 
 #define FHF_MASK 0xff00u
 
@@ -347,6 +352,15 @@ typedef struct fhashstate {
 
 extern const gchash *gethash(const char */*name*/);
 
+/* --- @describefile@ --- *
+ *
+ * Arguments:  @const struct stat *st@ = pointer to file state
+ *
+ * Returns:    A snappy one-word description of the file.
+ */
+
+extern const char *describefile(const struct stat */*st*/);
+
 /* --- @fhash_init@ ---*
  *
  * Arguments:  @fhashstate *fh@ = pointer to fhash state to initialize
@@ -385,6 +399,25 @@ extern void fhash_free(fhashstate */*fh*/);
 
 extern int fhash(fhashstate */*fh*/, const char */*file*/, void */*buf*/);
 
+/* --- @fhash_junk@ --- *
+ *
+ * Arguments:  @fhashstate *fh@ = pointer to fhash state
+ *             @void (*func)(const char *, const struct stat *, void *)@
+ *             @void *p@ = pointer to pass to function
+ *
+ * Returns:    Positive if any junk was found, negative on error, zero if
+ *             everything was fine.
+ *
+ * Use:                Reports junk files in any directories covered by the hash
+ *             state.
+ */
+
+extern int fhash_junk(fhashstate */*fh*/,
+                     int (*/*func*/)(const char *,
+                                     const struct stat *,
+                                     void *),
+                     void */*p*/);
+
 /* --- @hfparse@ --- *
  *
  * Arguments:  @hfpctx *hfp@ = pointer to the context structure