#include <sys/types.h>
#include <sys/time.h>
+#include <sys/stat.h>
#include <unistd.h>
#include <dirent.h>
#include <errno.h>
assert (NOT_REACHED); \
} while (0)
+#define unused(foo) foo __attribute__((unused))
+
typedef int bool_t;
typedef struct _item {
char *path;
category_t *category;
int i;
+ struct stat st;
path = xmalloc (strlen (mnemon->dir_name) + 1 + strlen (name) + 1);
sprintf (path, "%s/%s", mnemon->dir_name, name);
exit (1);
}
+ fstat (fileno(file), &st);
+ if (! S_ISREG(st.st_mode)) {
+ fprintf (stderr, "Error: File %s is not a regular file.\n", path);
+ exit (1);
+ }
+
category = mnemon_get_category (mnemon, name);
#define READ_LINE do { \
item_in_category_of_length_closure_t *iicolc = closure;
mnemon_t *mnemon = iicolc->mnemon;
category_t *category = iicolc->category;
- int length = iicolc->length;
+ unsigned int length = iicolc->length;
if (mnemon_item_category (mnemon, item) != category)
return 0;
}
static void
-mnemon_hide_challenge (mnemon_t *mnemon, challenge_type_t challenge_type)
+mnemon_hide_challenge (unused (mnemon_t *mnemon),
+ challenge_type_t challenge_type)
{
char * command;
mnemon_t mnemon;
char *response;
+ void _load_categories()
+ {
+ if (argc > 1) {
+ int i;
+ for (i = 1; i < argc; i++)
+ mnemon_load_category (&mnemon, argv[i]);
+ } else {
+ mnemon_load (&mnemon);
+ }
+ }
+
srand (time (NULL));
mnemon_init (&mnemon);
- mnemon_load (&mnemon);
+ _load_categories ();
mnemon_do_challenges (&mnemon);
mnemon_fini (&mnemon);
mnemon_init (&mnemon);
- mnemon_load (&mnemon);
+
+ _load_categories ();
printf ("Great job.\nHere are your current results:\n");
mnemon_print_histogram (&mnemon, NULL, 0);