MCPcopy Create free account
hub / github.com/RavEngine/RavEngine / SDL_SetError

Function SDL_SetError

deps/SDL2/src/SDL_error.c:44–126  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

42static char *SDL_GetErrorMsg(char *errstr, int maxlen);
43
44int
45SDL_SetError(SDL_PRINTF_FORMAT_STRING const char *fmt, ...)
46{
47 va_list ap;
48 SDL_error *error;
49
50 /* Ignore call if invalid format pointer was passed */
51 if (fmt == NULL) return -1;
52
53 /* Copy in the key, mark error as valid */
54 error = SDL_GetErrBuf();
55 error->error = 1;
56 SDL_strlcpy((char *) error->key, fmt, sizeof(error->key));
57
58 va_start(ap, fmt);
59 error->argc = 0;
60 while (*fmt) {
61 if (*fmt++ == '%') {
62 while (*fmt == '.' || (*fmt >= '0' && *fmt <= '9')) {
63 ++fmt;
64 }
65 switch (*fmt++) {
66 case 0: /* Malformed format string.. */
67 --fmt;
68 break;
69 case 'l':
70 switch (*fmt++) {
71 case 0: /* Malformed format string.. */
72 --fmt;
73 break;
74 case 'i': case 'd': case 'u': case 'x': case 'X':
75 error->args[error->argc++].value_l = va_arg(ap, long);
76 break;
77 }
78 break;
79 case 'c':
80 case 'i':
81 case 'd':
82 case 'u':
83 case 'o':
84 case 'x':
85 case 'X':
86 error->args[error->argc++].value_i = va_arg(ap, int);
87 break;
88 case 'f':
89 error->args[error->argc++].value_f = va_arg(ap, double);
90 break;
91 case 'p':
92 error->args[error->argc++].value_ptr = va_arg(ap, void *);
93 break;
94 case 's':
95 {
96 int i = error->argc;
97 const char *str = va_arg(ap, const char *);
98 if (str == NULL)
99 str = "(null)";
100 SDL_strlcpy((char *) error->args[i].buf, str,
101 ERR_MAX_STRLEN);

Callers 15

ThreadFuncFunction · 0.85
mainFunction · 0.85
SDL_ErrorFunction · 0.85
mainFunction · 0.85
SDL_InitSubSystemFunction · 0.85
WIN_SetErrorFromHRESULTFunction · 0.85

Calls 5

SDL_GetErrBufFunction · 0.85
SDL_strlcpyFunction · 0.85
SDL_LogGetPriorityFunction · 0.85
SDL_GetErrorMsgFunction · 0.85
SDL_LogDebugFunction · 0.85

Tested by 5

ThreadFuncFunction · 0.68
mainFunction · 0.68