Deal around newline-only lines pruned to zero-lenght

Test for that, too
This commit is contained in:
NHOrus 2017-07-07 11:21:37 +03:00
parent ef97d579ea
commit 551838cea2
5 changed files with 26 additions and 3 deletions

15
misc.c
View file

@ -352,7 +352,7 @@ char* get_input()
bool silent_yes() bool silent_yes()
{ {
bool outcome; bool outcome = false;
for (;;) { for (;;) {
char* reply = get_input(); char* reply = get_input();
@ -363,6 +363,11 @@ bool silent_yes()
exit(EXIT_SUCCESS); exit(EXIT_SUCCESS);
// LCOV_EXCL_STOP // LCOV_EXCL_STOP
} }
if (strlen(reply) == 0) {
free(reply);
rspeak(PLEASE_ANSWER);
continue;
}
char* firstword = (char*) xmalloc(strlen(reply) + 1); char* firstword = (char*) xmalloc(strlen(reply) + 1);
sscanf(reply, "%s", firstword); sscanf(reply, "%s", firstword);
@ -398,7 +403,7 @@ bool yes(const char* question, const char* yes_response, const char* no_response
/* Print message X, wait for yes/no answer. If yes, print Y and return true; /* Print message X, wait for yes/no answer. If yes, print Y and return true;
* if no, print Z and return false. */ * if no, print Z and return false. */
{ {
bool outcome; bool outcome = false;
for (;;) { for (;;) {
speak(question); speak(question);
@ -412,6 +417,12 @@ bool yes(const char* question, const char* yes_response, const char* no_response
// LCOV_EXCL_STOP // LCOV_EXCL_STOP
} }
if (strlen(reply) == 0) {
free(reply);
rspeak(PLEASE_ANSWER);
continue;
}
char* firstword = (char*) xmalloc(strlen(reply) + 1); char* firstword = (char*) xmalloc(strlen(reply) + 1);
sscanf(reply, "%s", firstword); sscanf(reply, "%s", firstword);

View file

@ -273,6 +273,10 @@ With what? Your bare hands?
Please answer the question. Please answer the question.
> green
Please answer the question.
> n > n
The dragon looks rather nasty. You'd best not try to get by. The dragon looks rather nasty. You'd best not try to get by.

View file

@ -50,6 +50,7 @@ drop bird
extinguish dragon extinguish dragon
kill dragon kill dragon
green
n n
kill dragon kill dragon
y y

View file

@ -7,6 +7,12 @@ Please answer the question.
Welcome to Adventure!! Would you like instructions? Welcome to Adventure!! Would you like instructions?
>
Please answer the question.
Welcome to Adventure!! Would you like instructions?
> y > y
Somewhere nearby is Colossal Cave, where others have found fortunes in Somewhere nearby is Colossal Cave, where others have found fortunes in

View file

@ -1,5 +1,6 @@
## Test for various cases not found in walkthroughs. ## Test for various cases not found in walkthroughs.
foo foo
y y
seed 1801426495 seed 1801426495
version version