Added nhassert to core.

This commit is contained in:
Bart House
2019-07-11 22:01:39 -07:00
parent dde11630e8
commit 3842da9dbd
5 changed files with 9 additions and 22 deletions

View File

@@ -2020,6 +2020,7 @@ E void VDECL(verbalize, (const char *, ...)) PRINTF_F(1, 2);
E void VDECL(raw_printf, (const char *, ...)) PRINTF_F(1, 2);
E void VDECL(impossible, (const char *, ...)) PRINTF_F(1, 2);
E void VDECL(config_error_add, (const char *, ...)) PRINTF_F(1, 2);
E void FDECL(nhassert_failed, (const char *, const char *, int));
/* ### polyself.c ### */

View File

@@ -427,8 +427,8 @@ struct savefile_info {
/* Supply nhassert macro if not supplied by port */
#ifndef nhassert
#define nhassert(e) ((void)0)
#define nhassert(expression) (void)((!!(expression)) || \
(nhassert_failed(#expression, __FILE__, __LINE__), 0))
#endif
#endif /* GLOBAL_H */

View File

@@ -273,16 +273,6 @@ extern int FDECL(set_win32_option, (const char *, const char *));
extern int FDECL(alternative_palette, (char *));
#endif
#ifdef NDEBUG
#define nhassert(expression) ((void)0)
#else
extern void FDECL(nhassert_failed, (const char * exp, const char * file,
int line));
#define nhassert(expression) (void)((!!(expression)) || \
(nhassert_failed(#expression, __FILE__, __LINE__), 0))
#endif
#define nethack_enter(argc, argv) nethack_enter_winnt()
extern void FDECL(nethack_exit, (int)) NORETURN;
extern boolean FDECL(file_exists, (const char *));

View File

@@ -619,4 +619,10 @@ VA_DECL(const char *, str)
#endif
}
/* nhassert_failed is called when an nhassert's condition is false */
void nhassert_failed(const char * exp, const char * file, int line)
{
impossible("NHASSERT(%s) in '%s' at line %d", exp, file, line);
}
/*pline.c*/

View File

@@ -483,16 +483,6 @@ char *buf;
}
#endif /* RUNTIME_PORT_ID */
/* nhassert_failed is called when an nhassert's condition is false */
void nhassert_failed(const char * exp, const char * file, int line)
{
char message[BUFSZ];
snprintf(message, sizeof(message),
"NHASSERT(%s) in '%s' at line %d", exp, file, line);
impossible(message);
}
void
nethack_exit(code)
int code;