X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=main.c;h=0002565d6fdb65a4bdb9a411bd68efc32e47e5b5;hb=12dfc3592e237017c9a9afd8708728f58f8ab68a;hp=b583d394b7010724862b8f33a803b90b29652268;hpb=33d0169d3bd989486de8e97f58002c1544a8211e;p=mnemon diff --git a/main.c b/main.c index b583d39..0002565 100644 --- a/main.c +++ b/main.c @@ -84,13 +84,13 @@ xasprintf (char **strp, const char *fmt, ...) static void _show_challenge (mnemon_t *mnemon, - challenge_type_t challenge_type, + const char *challenge_type, const char *challenge) { const char *program; char *command; - if (challenge_type == CHALLENGE_TYPE_TEXT) { + if (strcmp (challenge_type, "text") == 0) { printf ("%s\n", challenge); return; } @@ -100,22 +100,18 @@ _show_challenge (mnemon_t *mnemon, * have a custom external program that accepts image filenames on * stdin. */ - switch (challenge_type) { - case CHALLENGE_TYPE_TEXT: - ASSERT_NOT_REACHED; - break; - case CHALLENGE_TYPE_IMAGE: + if (strcmp (challenge_type, "image") == 0) { program = "xli -gamma 2.2"; - break; - case CHALLENGE_TYPE_AUDIO: + } else if (strcmp (challenge_type, "audio") == 0) { program = "play"; - break; - case CHALLENGE_TYPE_MIDI: + } else if (strcmp (challenge_type, "midi") == 0) { program = "timidity -Os"; - break; - case CHALLENGE_TYPE_TEXT_TO_SPEECH: + } else if (strcmp (challenge_type, "text-to-speech") == 0) { program = "mnemon-tts"; - break; + } else { + fprintf (stderr, "Error: unsupported challenge type: %s\n", + challenge_type); + exit (1); } xasprintf (&command, "%s %s/%s >/dev/null 2>&1 &", @@ -128,11 +124,11 @@ _show_challenge (mnemon_t *mnemon, static void _hide_challenge (unused (mnemon_t *mnemon), - challenge_type_t challenge_type) + const char *challenge_type) { char * command; - if (challenge_type != CHALLENGE_TYPE_IMAGE) + if (strcmp (challenge_type, "image")) return; /* XXX: And this is just embarrassing (obviously wrong in several @@ -152,7 +148,7 @@ bin_num_items_matching (bin_t *bin, item_match_predicate_t *predicate, void *closure) { - int i, num_items = 0; + unsigned int i, num_items = 0; if (predicate == NULL) return bin->num_items; @@ -266,10 +262,11 @@ print_histogram (mnemon_t *mnemon, const char *category_name, int length) { - int i, last_score, max; + unsigned int i, max; + int last_score; category_t *category = NULL; bin_t *bin; - int num_items; + unsigned int num_items; item_match_predicate_t *predicate = NULL; void *closure = NULL; item_in_category_closure_t item_in_category; @@ -482,7 +479,7 @@ _do_challenges (mnemon_t *mnemon, progress_t *progress) item_t *item; category_t *category; char *response; - int i; + unsigned int i; /* Count the number of items with negative scores. */ progress->unlearned = 0;