add command line option --showpaths
Add
--showpaths
early option to show where NetHack is expecting to find certain files
without starting up a game. It exits afterwards.
Windows sample (for illustration only, locations may differ for you):
Variable playground locations:
[hackdir ]="C:\Users\JohnDoe\NetHack\3.6\"
[leveldir ]="C:\Users\JohnDoe\AppData\Local\NetHack\3.6\"
[savedir ]="C:\Users\JohnDoe\AppData\Local\NetHack\3.6\"
[bonesdir ]="C:\ProgramData\NetHack\3.6\"
[datadir ]="C:\personal\nhdev\363\test\binary\"
[scoredir ]="C:\ProgramData\NetHack\3.6\"
[lockdir ]="C:\ProgramData\NetHack\3.6\"
[sysconfdir]="C:\ProgramData\NetHack\3.6\"
[configdir ]="C:\Users\JohnDoe\NetHack\3.6\"
[troubledir]="C:\Users\JohnDoe\NetHack\3.6\"
Your system configuration file (in sysconfdir):
"C:\Users\JohnDoe\NetHack\3.6\sysconf"
Your system symbols file (in sysconfdir):
"C:\Users\JohnDoe\NetHack\3.6\symbols"
Your personal configuration file (in configdir):
"C:\Users\JohnDoe\NetHack\3.6\.nethackrc"
Linux (for illustration only, locations may differ for you):
Your system configuration file:
"/home/johndoe/nh/install/games/lib/nethackdir/sysconf"
Your system symbols file:
"/home/johndoe/nh/install/games/lib/nethackdir/symbols"
Your personal configuration file:
"/home/johndoe/.nethackrc"
This commit is contained in:
@@ -47,6 +47,9 @@ nethack \- Exploring The Mazes of Menace
|
|||||||
.B \-ibm
|
.B \-ibm
|
||||||
]
|
]
|
||||||
[
|
[
|
||||||
|
.BR \-\-showpaths
|
||||||
|
]
|
||||||
|
[
|
||||||
.BR \-\-version [ :paste ]
|
.BR \-\-version [ :paste ]
|
||||||
]
|
]
|
||||||
.PP
|
.PP
|
||||||
@@ -223,6 +226,10 @@ the list of top scorers, and a subdirectory
|
|||||||
.I save
|
.I save
|
||||||
where games are saved.
|
where games are saved.
|
||||||
.PP
|
.PP
|
||||||
|
.B \-\-showpaths
|
||||||
|
can be used to cause NetHack to show where it is expecting
|
||||||
|
to find various configuration files.
|
||||||
|
.PP
|
||||||
.B \-\-version
|
.B \-\-version
|
||||||
can be used to cause NetHack to show the version information it
|
can be used to cause NetHack to show the version information it
|
||||||
was compiled with, then exit. That will include the
|
was compiled with, then exit. That will include the
|
||||||
|
|||||||
+1
-1
@@ -447,7 +447,7 @@ struct breadcrumbs {
|
|||||||
E const char *ARGV0;
|
E const char *ARGV0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
enum earlyarg {ARG_DEBUG, ARG_VERSION
|
enum earlyarg {ARG_DEBUG, ARG_VERSION, ARG_SHOWPATHS
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
,ARG_WINDOWS
|
,ARG_WINDOWS
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -846,6 +846,7 @@ E void NDECL(really_close);
|
|||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
E boolean FDECL(debugcore, (const char *, BOOLEAN_P));
|
E boolean FDECL(debugcore, (const char *, BOOLEAN_P));
|
||||||
#endif
|
#endif
|
||||||
|
E void NDECL(reveal_paths);
|
||||||
E boolean FDECL(read_tribute, (const char *, const char *, int,
|
E boolean FDECL(read_tribute, (const char *, const char *, int,
|
||||||
char *, int, unsigned));
|
char *, int, unsigned));
|
||||||
E boolean FDECL(Death_quote, (char *, int));
|
E boolean FDECL(Death_quote, (char *, int));
|
||||||
|
|||||||
@@ -767,6 +767,7 @@ const char *msg;
|
|||||||
static struct early_opt earlyopts[] = {
|
static struct early_opt earlyopts[] = {
|
||||||
{ARG_DEBUG, "debug", 5, TRUE},
|
{ARG_DEBUG, "debug", 5, TRUE},
|
||||||
{ARG_VERSION, "version", 4, TRUE},
|
{ARG_VERSION, "version", 4, TRUE},
|
||||||
|
{ARG_SHOWPATHS, "showpaths", 9, FALSE},
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
{ARG_WINDOWS, "windows", 4, TRUE},
|
{ARG_WINDOWS, "windows", 4, TRUE},
|
||||||
#endif
|
#endif
|
||||||
@@ -845,6 +846,9 @@ enum earlyarg e_arg;
|
|||||||
early_version_info(insert_into_pastebuf);
|
early_version_info(insert_into_pastebuf);
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
case ARG_SHOWPATHS: {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
case ARG_WINDOWS: {
|
case ARG_WINDOWS: {
|
||||||
if (extended_opt) {
|
if (extended_opt) {
|
||||||
|
|||||||
+99
-1
@@ -3197,7 +3197,13 @@ fopen_sym_file()
|
|||||||
{
|
{
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
|
|
||||||
fp = fopen_datafile(SYMBOLS, "r", HACKPREFIX);
|
fp = fopen_datafile(SYMBOLS, "r",
|
||||||
|
#ifdef WIN32
|
||||||
|
SYSCONFPREFIX
|
||||||
|
#else
|
||||||
|
HACKPREFIX
|
||||||
|
#endif
|
||||||
|
);
|
||||||
|
|
||||||
return fp;
|
return fp;
|
||||||
}
|
}
|
||||||
@@ -3966,6 +3972,98 @@ boolean wildcards;
|
|||||||
|
|
||||||
#endif /*DEBUG*/
|
#endif /*DEBUG*/
|
||||||
|
|
||||||
|
void
|
||||||
|
reveal_paths(VOID_ARGS)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
#define PATHBUFSZ 1024
|
||||||
|
char buf[PATHBUFSZ];
|
||||||
|
#ifdef UNIX
|
||||||
|
char *envp, *slash, nhpath[PATHBUFSZ];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* write out path details */
|
||||||
|
#ifdef PREFIXES_IN_USE
|
||||||
|
raw_print("Variable playground locations:");
|
||||||
|
for (i = 0; i < PREFIX_COUNT; i++)
|
||||||
|
raw_printf(" [%-10s]=\"%s\"", fqn_prefix_names[i],
|
||||||
|
fqn_prefix[i]
|
||||||
|
? fqn_prefix[i]
|
||||||
|
: "not set");
|
||||||
|
#endif
|
||||||
|
/* sysconf file */
|
||||||
|
#ifdef PREFIXES_IN_USE
|
||||||
|
Sprintf(buf, " (in %s)",
|
||||||
|
fqn_prefix_names[SYSCONFPREFIX]);
|
||||||
|
#else
|
||||||
|
buf[0] = '\0';
|
||||||
|
#endif
|
||||||
|
raw_printf("Your system configuration file%s:", buf);
|
||||||
|
set_configfile_name(fqname(SYSCF_FILE, SYSCONFPREFIX, 0));
|
||||||
|
raw_printf(" \"%s\"", configfile);
|
||||||
|
#ifdef UNIX
|
||||||
|
Strcpy(nhpath, configfile);
|
||||||
|
slash = rindex(nhpath, '/');
|
||||||
|
if (slash)
|
||||||
|
*slash = '\0';
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* symbols file */
|
||||||
|
#ifdef PREFIXES_IN_USE
|
||||||
|
Sprintf(buf, " (in %s)",
|
||||||
|
#ifdef WIN32
|
||||||
|
fqn_prefix_names[SYSCONFPREFIX]);
|
||||||
|
#else
|
||||||
|
fqn_prefix_names[HACKPREFIX]);
|
||||||
|
#endif /* WIN32 */
|
||||||
|
#else /* PREFIXES_IN_USE */
|
||||||
|
buf[0] = '\0';
|
||||||
|
#endif
|
||||||
|
|
||||||
|
raw_printf("Your system symbols file%s:", buf);
|
||||||
|
#ifdef UNIX
|
||||||
|
Sprintf(buf, "%s/%s", nhpath, SYMBOLS);
|
||||||
|
#else
|
||||||
|
#ifdef PREFIXES_IN_USE
|
||||||
|
Sprintf(buf, "%s",
|
||||||
|
fqname(SYMBOLS,
|
||||||
|
#ifdef WIN32
|
||||||
|
SYSCONFPREFIX, 2));
|
||||||
|
#else
|
||||||
|
HACKPREFIX, 2));
|
||||||
|
#endif
|
||||||
|
#endif /* PREFIXES_IN_USE */
|
||||||
|
#endif /* UNIX */
|
||||||
|
raw_printf(" \"%s\"", buf);
|
||||||
|
|
||||||
|
/* configuration file */
|
||||||
|
#ifdef PREFIXES_IN_USE
|
||||||
|
Sprintf(buf, " (in %s)",
|
||||||
|
fqn_prefix_names[CONFIGPREFIX]);
|
||||||
|
#else /* PREFIXES_IN_USE */
|
||||||
|
buf[0] = '\0';
|
||||||
|
#endif
|
||||||
|
raw_printf("Your personal configuration file%s:", buf);
|
||||||
|
#ifdef UNIX
|
||||||
|
envp = nh_getenv("HOME");
|
||||||
|
if (!envp)
|
||||||
|
Strcpy(nhpath, ".nethackrc");
|
||||||
|
else
|
||||||
|
Sprintf(nhpath, "%s/%s", envp, default_configfile);
|
||||||
|
#endif
|
||||||
|
raw_printf(" \"%s\"",
|
||||||
|
#ifdef UNIX
|
||||||
|
nhpath);
|
||||||
|
#else
|
||||||
|
#ifdef PREFIXES_IN_USE
|
||||||
|
fqname(default_configfile, CONFIGPREFIX, 3));
|
||||||
|
#else
|
||||||
|
default_configfile);
|
||||||
|
#endif /* PREFIXES_IN_USE */
|
||||||
|
#endif /* UNIX */
|
||||||
|
raw_print("");
|
||||||
|
}
|
||||||
|
|
||||||
/* ---------- BEGIN TRIBUTE ----------- */
|
/* ---------- BEGIN TRIBUTE ----------- */
|
||||||
|
|
||||||
/* 3.6 tribute code
|
/* 3.6 tribute code
|
||||||
|
|||||||
+5
-1
@@ -114,11 +114,15 @@ char *argv[];
|
|||||||
if (argcheck(argc, argv, ARG_VERSION) == 2)
|
if (argcheck(argc, argv, ARG_VERSION) == 2)
|
||||||
exit(EXIT_SUCCESS);
|
exit(EXIT_SUCCESS);
|
||||||
|
|
||||||
|
if (argcheck(argc, argv, ARG_SHOWPATHS) == 2) {
|
||||||
|
initoptions();
|
||||||
|
reveal_paths();
|
||||||
|
exit(EXIT_SUCCESS);
|
||||||
|
}
|
||||||
if (argcheck(argc, argv, ARG_DEBUG) == 1) {
|
if (argcheck(argc, argv, ARG_DEBUG) == 1) {
|
||||||
argc--;
|
argc--;
|
||||||
argv++;
|
argv++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (argc > 1 && !strncmp(argv[1], "-d", 2) && argv[1][2] != 'e') {
|
if (argc > 1 && !strncmp(argv[1], "-d", 2) && argv[1][2] != 'e') {
|
||||||
/* avoid matching "-dec" for DECgraphics; since the man page
|
/* avoid matching "-dec" for DECgraphics; since the man page
|
||||||
* says -d directory, hope nobody's using -desomething_else
|
* says -d directory, hope nobody's using -desomething_else
|
||||||
|
|||||||
@@ -580,6 +580,11 @@ char *argv[];
|
|||||||
if (argcheck(argc, argv, ARG_VERSION) == 2)
|
if (argcheck(argc, argv, ARG_VERSION) == 2)
|
||||||
nethack_exit(EXIT_SUCCESS);
|
nethack_exit(EXIT_SUCCESS);
|
||||||
|
|
||||||
|
if (argcheck(argc, argv, ARG_SHOWPATHS) == 2) {
|
||||||
|
initoptions();
|
||||||
|
reveal_paths();
|
||||||
|
nethack_exit(EXIT_SUCCESS);
|
||||||
|
}
|
||||||
if (argcheck(argc, argv, ARG_DEBUG) == 1) {
|
if (argcheck(argc, argv, ARG_DEBUG) == 1) {
|
||||||
argc--;
|
argc--;
|
||||||
argv++;
|
argv++;
|
||||||
|
|||||||
Reference in New Issue
Block a user