Added SDL_GetErrorMsg() to get the error message in a thread-safe way
parent
19c3484469
commit
1ff483d1f3
|
@ -37,9 +37,45 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Public functions */
|
/* Public functions */
|
||||||
/* SDL_SetError() unconditionally returns -1. */
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Set the error message for the current thread
|
||||||
|
*
|
||||||
|
* \return -1, there is no error handling for this function
|
||||||
|
*/
|
||||||
extern DECLSPEC int SDLCALL SDL_SetError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1);
|
extern DECLSPEC int SDLCALL SDL_SetError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...) SDL_PRINTF_VARARG_FUNC(1);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Get the last error message that was set
|
||||||
|
*
|
||||||
|
* SDL API functions may set error messages and then succeed, so you should
|
||||||
|
* only use the error value if a function fails.
|
||||||
|
*
|
||||||
|
* This returns a pointer to a static buffer for convenience and should not
|
||||||
|
* be called by multiple threads simultaneously.
|
||||||
|
*
|
||||||
|
* \return a pointer to the last error message that was set
|
||||||
|
*/
|
||||||
extern DECLSPEC const char *SDLCALL SDL_GetError(void);
|
extern DECLSPEC const char *SDLCALL SDL_GetError(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Get the last error message that was set for the current thread
|
||||||
|
*
|
||||||
|
* SDL API functions may set error messages and then succeed, so you should
|
||||||
|
* only use the error value if a function fails.
|
||||||
|
*
|
||||||
|
* \param errstr A buffer to fill with the last error message that was set
|
||||||
|
* for the current thread
|
||||||
|
* \param maxlen The size of the buffer pointed to by the errstr parameter
|
||||||
|
*
|
||||||
|
* \return errstr
|
||||||
|
*/
|
||||||
|
extern DECLSPEC char * SDLCALL SDL_GetErrorMsg(char *errstr, int maxlen);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Clear the error message for the current thread
|
||||||
|
*/
|
||||||
extern DECLSPEC void SDLCALL SDL_ClearError(void);
|
extern DECLSPEC void SDLCALL SDL_ClearError(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -39,8 +39,6 @@ SDL_LookupString(const char *key)
|
||||||
|
|
||||||
/* Public functions */
|
/* Public functions */
|
||||||
|
|
||||||
static char *SDL_GetErrorMsg(char *errstr, int maxlen);
|
|
||||||
|
|
||||||
int
|
int
|
||||||
SDL_SetError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...)
|
SDL_SetError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...)
|
||||||
{
|
{
|
||||||
|
@ -192,7 +190,7 @@ main(int argc, char *argv[])
|
||||||
/* This function has a bit more overhead than most error functions
|
/* This function has a bit more overhead than most error functions
|
||||||
so that it supports internationalization and thread-safe errors.
|
so that it supports internationalization and thread-safe errors.
|
||||||
*/
|
*/
|
||||||
static char *
|
char *
|
||||||
SDL_GetErrorMsg(char *errstr, int maxlen)
|
SDL_GetErrorMsg(char *errstr, int maxlen)
|
||||||
{
|
{
|
||||||
SDL_error *error;
|
SDL_error *error;
|
||||||
|
|
|
@ -756,3 +756,4 @@
|
||||||
#define SDL_JoystickSetVirtualBall SDL_JoystickSetVirtualBall_REAL
|
#define SDL_JoystickSetVirtualBall SDL_JoystickSetVirtualBall_REAL
|
||||||
#define SDL_JoystickSetVirtualButton SDL_JoystickSetVirtualButton_REAL
|
#define SDL_JoystickSetVirtualButton SDL_JoystickSetVirtualButton_REAL
|
||||||
#define SDL_JoystickSetVirtualHat SDL_JoystickSetVirtualHat_REAL
|
#define SDL_JoystickSetVirtualHat SDL_JoystickSetVirtualHat_REAL
|
||||||
|
#define SDL_GetErrorMsg SDL_GetErrorMsg_REAL
|
||||||
|
|
|
@ -816,3 +816,4 @@ SDL_DYNAPI_PROC(int,SDL_JoystickSetVirtualAxis,(SDL_Joystick *a, int b, Sint16 c
|
||||||
SDL_DYNAPI_PROC(int,SDL_JoystickSetVirtualBall,(SDL_Joystick *a, int b, Sint16 c, Sint16 d),(a,b,c,d),return)
|
SDL_DYNAPI_PROC(int,SDL_JoystickSetVirtualBall,(SDL_Joystick *a, int b, Sint16 c, Sint16 d),(a,b,c,d),return)
|
||||||
SDL_DYNAPI_PROC(int,SDL_JoystickSetVirtualButton,(SDL_Joystick *a, int b, Uint8 c),(a,b,c),return)
|
SDL_DYNAPI_PROC(int,SDL_JoystickSetVirtualButton,(SDL_Joystick *a, int b, Uint8 c),(a,b,c),return)
|
||||||
SDL_DYNAPI_PROC(int,SDL_JoystickSetVirtualHat,(SDL_Joystick *a, int b, Uint8 c),(a,b,c),return)
|
SDL_DYNAPI_PROC(int,SDL_JoystickSetVirtualHat,(SDL_Joystick *a, int b, Uint8 c),(a,b,c),return)
|
||||||
|
SDL_DYNAPI_PROC(char*,SDL_GetErrorMsg,(char *a, int b),(a,b),return)
|
||||||
|
|
Loading…
Reference in New Issue