support version-specific dlb file
There was a post-3.6.2 discussion on a forum where someone had tried to copy the NetHack 3.6.2 exe file overtop of an existing NetHack 3.6.0 playground, and then try to run it. We have never suggested trying that, nor do we attempt to provide any backward or forward compatibility between the supporting files found in nhdat that would allow that. Any particular version of NetHack expects to have matching support files designed and matched to that version. This adds optional support for helping to prevent the opening of nhdat containing support files from an unmatched version of NetHack. If you #define VERSION_IN_DLB_FILENAME in your platform's include/*conf.h file, it will use a name such as nhdat362, instead of plain nhdat, and will exit more gracefully than the fault/crash mentioned in the discussion if it doesn't find the file it is looking for. Developers - please note that if you do to cause NetHack to look for an nhdat* file with the version info appended to the name, you will likely have to modify your build/clean/spotless mechanics beyond the C compile itself to properly deal with the new generated file name.
This commit is contained in:
@@ -198,6 +198,9 @@ char **argv;
|
||||
if (ap == argc)
|
||||
usage();
|
||||
library_file = argv[ap++];
|
||||
#ifdef VERSION_IN_DLB_FILENAME
|
||||
library_file = build_dlb_filename(library_file);
|
||||
#endif
|
||||
if (fseen)
|
||||
printf("Warning: multiple f options. Previous ignored.\n");
|
||||
fseen = 1;
|
||||
|
||||
Reference in New Issue
Block a user