projects
/
open-adventure.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Document a bugfix and isolate it in a test.
[open-adventure.git]
/
main.c
diff --git
a/main.c
b/main.c
index 94f2b45b9fe30d5c2251e9d9b431cee7af9c028e..f83c4e0dccb36ddc8e6d9a5e3b80ad08c33dcdb2 100644
(file)
--- a/
main.c
+++ b/
main.c
@@
-55,8
+55,13
@@
char *myreadline(const char *prompt)
* logfiles for testing purposes.
*/
/* Normal case - no script arguments */
* logfiles for testing purposes.
*/
/* Normal case - no script arguments */
- if (settings.argc == 0)
- return readline(prompt);
+ if (settings.argc == 0) {
+ char *ln = readline(prompt);
+ if (ln == NULL) {
+ fputs(prompt, stdout);
+ }
+ return ln;
+ }
char *buf = malloc(LINESIZE + 1);
for (;;) {
char *buf = malloc(LINESIZE + 1);
for (;;) {
@@
-82,9
+87,9
@@
char *myreadline(const char *prompt)
} else {
char *ln = fgets(buf, LINESIZE, settings.scriptfp);
if (ln != NULL) {
} else {
char *ln = fgets(buf, LINESIZE, settings.scriptfp);
if (ln != NULL) {
-
fputs(PROMPT
, stdout);
+
fputs(prompt
, stdout);
fputs(ln, stdout);
fputs(ln, stdout);
-
return ln;
+ return ln;
}
}
}
}
}
}
@@
-1074,7
+1079,7
@@
static bool do_move(void)
return true;
}
return true;
}
-static bool do_command()
+static bool do_command(
void
)
/* Get and execute a command */
{
static command_t command;
/* Get and execute a command */
{
static command_t command;
@@
-1125,6
+1130,12
@@
static bool do_command()
if (!get_command_input(&command))
return false;
if (!get_command_input(&command))
return false;
+ /* Every input, check "foobar" flag. If zero, nothing's going
+ * on. If pos, make neg. If neg, he skipped a word, so make it
+ * zero.
+ */
+ game.foobar = (game.foobar > WORD_EMPTY) ? -game.foobar : WORD_EMPTY;
+
++game.turns;
preprocess_command(&command);
}
++game.turns;
preprocess_command(&command);
}