comparison libmlk-core/mlk/core/err.c @ 547:c7664b679a95

misc: remove error codes for now
author David Demelier <markand@malikania.fr>
date Mon, 06 Mar 2023 20:03:00 +0100
parents 773a082f0b91
children cba66f7d8a53
comparison
equal deleted inserted replaced
546:b7da58230a66 547:c7664b679a95
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 */ 17 */
18 18
19 #include <SDL.h> 19 #include <assert.h>
20 #include <stdio.h>
21
22 #include <mlk/util/util.h>
20 23
21 #include "err.h" 24 #include "err.h"
22 25
26 #define ERR_MAX 128
27 #define DEFAULT_ERR "no error"
28
29 static _Thread_local char err[ERR_MAX] = DEFAULT_ERR;
30
31 int
32 mlk_errf(const char *fmt, ...)
33 {
34 assert(fmt);
35
36 va_list ap;
37
38 va_start(ap, fmt);
39 mlk_errva(fmt, ap);
40 va_end(ap);
41
42 return -1;
43 }
44
45 int
46 mlk_errva(const char *fmt, va_list ap)
47 {
48 assert(fmt);
49
50 int ret;
51
52 /* Don't keep an empty string... */
53 ret = vsnprintf(err, sizeof (err), fmt, ap);
54
55 if (ret < 0)
56 mlk_util_strlcpy(err, "unknown error", sizeof (err));
57 else if (ret == 0)
58 mlk_util_strlcpy(err, DEFAULT_ERR, sizeof (err));
59
60 return -1;
61 }
62
23 const char * 63 const char *
24 mlk_err_string(int e) 64 mlk_err(void)
25 { 65 {
26 switch (e) { 66 return err;
27 case MLK_ERR_SDL:
28 return SDL_GetError();
29 case MLK_ERR_NO_MEM:
30 return "out of memory";
31 case MLK_ERR_NO_SUPPORT:
32 return "operation not supported";
33 case MLK_ERR_FORMAT:
34 return "invalid format or corrupt file";
35 default:
36 return "no error";
37 }
38 } 67 }