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()
extern void FDECL(nethack_exit, (int)) NORETURN;
extern boolean FDECL(file_exists, (const char *));
#endif /* NTCONF_H */

View File

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

View File

@@ -240,19 +240,28 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/
/*
* It seems you really want to play.
*/
if (argc >= 1
&& !strcmpi(default_window_sys, "mswin")
&& (strstri(argv[0], "nethackw.exe") || GUILaunched))
iflags.windowtype_locked = TRUE;
iflags.windowtype_locked = TRUE;
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 defined(TTY_GRAPHICS)
Strcpy(default_window_sys, "tty");
#else
#if defined(CURSES_GRAPHICS)
Strcpy(default_window_sys, "curses");
Strcpy(default_window_sys, "curses");
#endif /* CURSES */
#endif /* TTY */
if (iflags.windowtype_deferred && chosen_windowtype[0])
@@ -260,16 +269,6 @@ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);*/
}
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.ux = 0; /* prevent flush_screen() */
@@ -931,4 +930,17 @@ gotlock:
}
#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*/

View File

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