UltraRogue: add the -n option.

This commit is contained in:
John "Elwin" Edwards 2017-02-09 16:29:45 -05:00
parent ed27d7a24f
commit 403d9ec171
4 changed files with 35 additions and 6 deletions

View file

@ -23,8 +23,11 @@
#include <string.h>
#include <signal.h>
#include <stdlib.h>
#include <errno.h>
#include "rogue.h"
#define SAVEDIR "."
FILE *fd_score = NULL;
/* Command line options */
@ -62,6 +65,21 @@ main(int argc, char *argv[])
rflag = TRUE;
break;
#ifdef SAVEDIR
case 'n':
if (x + 1 < argc) {
use_savedir = TRUE;
x++;
// Set rogue's name to the next argument
strncpy(whoami, argv[x], 2*LINELEN);
whoami[2*LINELEN - 1] = '\0';
// And set up the savefile name
snprintf(file_name, 2*LINELEN, "%s/%d-%.80s.ursav", SAVEDIR,
md_getuid(), whoami);
}
break;
#endif
default:
fprintf(stderr,"%s: Unknown option '%c'.\n",argv[0],argv[x][1]);
exit(1);
@ -86,12 +104,14 @@ main(int argc, char *argv[])
if ((env = getenv("OPTIONS")) != NULL)
parse_opts(env);
nm = getenv("USER");
if (!use_savedir) {
nm = getenv("USER");
if (nm != NULL)
strcpy(whoami,nm);
else
strcpy(whoami,"anonymous");
if (nm != NULL)
strcpy(whoami,nm);
else
strcpy(whoami,"anonymous");
}
lowtime = time(&now);
@ -168,7 +188,11 @@ main(int argc, char *argv[])
mw = newwin(LINES, COLS, 0, 0);
hw = newwin(LINES, COLS, 0, 0);
if (argc == 2 && argv[1][0] != '\0' && !restore(argv[1]))
if (use_savedir) {
if (!restore(file_name))
exit(1);
}
else if (argc == 2 && argv[1][0] != '\0' && !restore(argv[1]))
/* Note: restore returns on error only */
exit(1);