Report of no error msg deliverd by NetHackw.exe for some startup issues

This commit is contained in:
nhmall
2019-05-11 21:55:27 -04:00
parent 4a1f1292d9
commit 24fa83e5dc
4 changed files with 41 additions and 14 deletions

View File

@@ -282,4 +282,5 @@ extern void FDECL(nhassert_failed, (const char * exp, const char * file,
#define nethack_enter(argc, argv) nethack_enter_winnt() #define nethack_enter(argc, argv) nethack_enter_winnt()
extern void FDECL(nethack_exit, (int)) NORETURN; extern void FDECL(nethack_exit, (int)) NORETURN;
extern boolean FDECL(file_exists, (const char *));
#endif /* NTCONF_H */ #endif /* NTCONF_H */

View File

@@ -22,6 +22,15 @@ mswin_destroy_reg()
{ {
return; return;
} }
void
mswin_raw_print_flush()
{
}
void
mswin_raw_print(const char *str)
{
}
/* MINGW32 has trouble with both a main() and WinMain() /* MINGW32 has trouble with both a main() and WinMain()
* so we move main for the MINGW tty version into this stub * so we move main for the MINGW tty version into this stub

View File

@@ -240,13 +240,22 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/
/* /*
* It seems you really want to play. * It seems you really want to play.
*/ */
if (argc >= 1 if (argc >= 1
&& !strcmpi(default_window_sys, "mswin") && !strcmpi(default_window_sys, "mswin")
&& (strstri(argv[0], "nethackw.exe") || GUILaunched)) && (strstri(argv[0], "nethackw.exe") || GUILaunched))
iflags.windowtype_locked = TRUE; iflags.windowtype_locked = TRUE;
windowtype = default_window_sys; windowtype = default_window_sys;
if (!dlb_init()) {
pline("%s\n%s\n%s\n%s\n\n",
copyright_banner_line(1), copyright_banner_line(2),
copyright_banner_line(3), copyright_banner_line(4));
pline("NetHack was unable to open the required file \"%s\"",DLBFILE);
if (file_exists(DLBFILE))
pline("\nAre you perhaps trying to run NetHack within a zip utility?");
error("dlb_init failure.");
}
if (!iflags.windowtype_locked) { if (!iflags.windowtype_locked) {
#if defined(TTY_GRAPHICS) #if defined(TTY_GRAPHICS)
Strcpy(default_window_sys, "tty"); Strcpy(default_window_sys, "tty");
@@ -260,16 +269,6 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/
} }
choose_windows(windowtype); choose_windows(windowtype);
if (!dlb_init()) {
pline(
"%s\n%s\n%s\n%s\n\nNetHack was unable to open the required file "
"\"%s\".%s",
copyright_banner_line(1), copyright_banner_line(2),
copyright_banner_line(3), copyright_banner_line(4), DLBFILE,
"\nAre you perhaps trying to run NetHack within a zip utility?");
error("dlb_init failure.");
}
u.uhp = 1; /* prevent RIP on early quits */ u.uhp = 1; /* prevent RIP on early quits */
u.ux = 0; /* prevent flush_screen() */ u.ux = 0; /* prevent flush_screen() */
@@ -931,4 +930,17 @@ gotlock:
} }
#endif /* PC_LOCKING */ #endif /* PC_LOCKING */
boolean
file_exists(path)
const char *path;
{
struct stat sb;
/* Just see if it's there */
if (stat(path, &sb)) {
return FALSE;
}
return TRUE;
}
/*windmain.c*/ /*windmain.c*/

View File

@@ -212,6 +212,9 @@ return &szFullPath[0];
} }
#endif #endif
extern void NDECL(mswin_raw_print_flush);
extern void FDECL(mswin_raw_print, (const char *));
/* fatal error */ /* fatal error */
/*VARARGS1*/ /*VARARGS1*/
void error void error
@@ -233,6 +236,8 @@ VA_DECL(const char *, s)
Strcat(buf, "\n"); Strcat(buf, "\n");
raw_printf(buf); raw_printf(buf);
} }
if (windowprocs.win_raw_print == mswin_raw_print)
mswin_raw_print_flush();
VA_END(); VA_END();
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }