#include <stdlib.h>
#include <string.h>
-#include <editline/readline.h>
#include <time.h>
#include <inttypes.h>
#include "advent.h"
#include "dungeon.h"
-#define VRSION 28 /* bump on save format change */
+/*
+ * Bump on save format change.
+ *
+ * Note: Verify that the tests run clean before bumping this, then rebuild the check
+ * files afterwards. Otherwise you will get a spurious failure due to the old version
+ * having been generated into a check file.
+ */
+#define VRSION 29
/*
* If you change the first three members, the resume function may not properly
FILE *fp = NULL;
rspeak(SUSPEND_WARNING);
- if (!yes(arbitrary_messages[THIS_ACCEPTABLE], arbitrary_messages[OK_MAN], arbitrary_messages[OK_MAN]))
+ if (!yes_or_no(arbitrary_messages[THIS_ACCEPTABLE], arbitrary_messages[OK_MAN], arbitrary_messages[OK_MAN]))
return GO_CLEAROBJ;
game.saved = game.saved + 5;
while (fp == NULL) {
- char* name = readline("\nFile name: ");
+ char* name = myreadline("\nFile name: ");
if (name == NULL)
return GO_TOP;
fp = fopen(name, WRITE_MODE);
if (game.loc != 1 ||
game.abbrev[1] != 1) {
rspeak(RESUME_ABANDON);
- if (!yes(arbitrary_messages[THIS_ACCEPTABLE], arbitrary_messages[OK_MAN], arbitrary_messages[OK_MAN]))
+ if (!yes_or_no(arbitrary_messages[THIS_ACCEPTABLE], arbitrary_messages[OK_MAN], arbitrary_messages[OK_MAN]))
return GO_CLEAROBJ;
}
while (fp == NULL) {
- char* name = readline("\nFile name: ");
+ char* name = myreadline("\nFile name: ");
+ // Autocomplete can leave the input with an extra trailing space.
+ if (name != NULL && strlen(name) > 0 && name[strlen(name) - 1] == ' ')
+ name[strlen(name) - 1] = '\0';
if (name == NULL)
return GO_TOP;
fp = fopen(name, READ_MODE);