tv_stop.tv_sec += time_limit_seconds;
} else {
sprintf (prompt, "> ");
+ remaining = 1;
}
do {
if (time_limit_seconds) {
sprintf (prompt, "%02d:%02d ", minutes, seconds);
}
response = readline (prompt);
- add_history (response);
+ if (response == NULL)
+ break;
if (strlen (response) == 0) {
if (! just_saw_puzzle) {
printf ("%s\n", puzzle);
} else {
dict_entry_t *entry;
just_saw_puzzle = FALSE;
+ add_history (response);
if (response[strlen (response) - 1] == '\n')
response[strlen (response) - 1] = '\0';
entry = dict_lookup (answers, response);
printf ("%s\n", puzzle);
- printf ("Words you found:\n");
- dict_print_by_length_if (answers, seen_predicate);
+ if (found_total) {
+ printf ("Words you found:\n");
+ dict_print_by_length_if (answers, seen_predicate);
+ printf ("\n");
+ }
- printf ("\nWords you missed:\n");
- dict_print_by_length_if (answers, unseen_predicate);
- printf ("\n");
+ if (found_total < possible_total) {
+ printf ("Words you missed:\n");
+ dict_print_by_length_if (answers, unseen_predicate);
+ printf ("\n");
+ }
printf ("You found %d of %d words (%.2f%%)\n",
found_total, possible_total,