351 |
351 |
352 void NORETURN CDECL usererror(const char *str, ...); |
352 void NORETURN CDECL usererror(const char *str, ...); |
353 void NORETURN CDECL error(const char *str, ...); |
353 void NORETURN CDECL error(const char *str, ...); |
354 #define NOT_REACHED() error("NOT_REACHED triggered at line %i of %s", __LINE__, __FILE__) |
354 #define NOT_REACHED() error("NOT_REACHED triggered at line %i of %s", __LINE__, __FILE__) |
355 |
355 |
356 #if defined(MORPHOS) || defined(__NDS__) |
356 #if defined(MORPHOS) || defined(__NDS__) || defined(__DJGPP__) |
357 /* MorphOS and NDS don't have C++ conformant _stricmp... */ |
357 /* MorphOS and NDS don't have C++ conformant _stricmp... */ |
358 #define _stricmp stricmp |
358 #define _stricmp stricmp |
359 #elif defined(OPENBSD) |
359 #elif defined(OPENBSD) |
360 /* OpenBSD uses strcasecmp(3) */ |
360 /* OpenBSD uses strcasecmp(3) */ |
361 #define _stricmp strcasecmp |
361 #define _stricmp strcasecmp |
362 #endif |
362 #endif |
363 |
363 |
364 #if !defined(MORPHOS) && !defined(OPENBSD) && !defined(__NDS__) |
364 #if !defined(MORPHOS) && !defined(OPENBSD) && !defined(__NDS__) && !defined(__DJGPP__) |
365 /* NDS, MorphOS & OpenBSD don't know wchars, the rest does :( */ |
365 /* NDS, MorphOS & OpenBSD don't know wchars, the rest does :( */ |
366 #define HAS_WCHAR |
366 #define HAS_WCHAR |
367 #endif /* !defined(MORPHOS) && !defined(OPENBSD) && !defined(__NDS__) */ |
367 #endif /* !defined(MORPHOS) && !defined(OPENBSD) && !defined(__NDS__) */ |
368 |
368 |
369 #if !defined(MAX_PATH) |
369 #if !defined(MAX_PATH) |