src/error.c

changeset 107
a35b39abe2b2
parent 106
895f92cff6b8
equal deleted inserted replaced
106:895f92cff6b8 107:a35b39abe2b2
26 */ 26 */
27 27
28 #include "ascension/context.h" 28 #include "ascension/context.h"
29 #include "ascension/error.h" 29 #include "ascension/error.h"
30 30
31 #include <stdio.h>
32 #include <stdarg.h>
31 #include <cx/printf.h> 33 #include <cx/printf.h>
32 34
33 #include <GL/glew.h> 35 #include <GL/glew.h>
34 36
37 void asc_printf(const char *level, const char *file, unsigned line, const char *fmt, ...) {
38 printf("[%s %s %u] ", level, file, line);
39 va_list ap;
40 va_start(ap, fmt);
41 vprintf(fmt, ap);
42 va_end(ap);
43 putchar('\n');
44 }
35 45
36 void asc_error_impl(const char* file, unsigned line, char const* fmt, ...) { 46 void asc_error_impl(const char* file, unsigned line, char const* fmt, ...) {
37 asc_set_flag(asc_context.flags, ASC_FLAG_HAS_ERROR); 47 asc_set_flag(asc_context.flags, ASC_FLAG_HAS_ERROR);
38 48
39 // write to error buffer 49 // write to error buffer
50 CxBuffer* buf = &asc_context.error_buffer;
51 size_t bufpos = buf->pos;
40 va_list args; 52 va_list args;
41 va_start(args, fmt); 53 va_start(args, fmt);
42 CxBuffer* buf = &asc_context.error_buffer;
43 size_t bufpos = buf->pos;
44 int written = cx_vfprintf(buf, cxBufferWriteFunc, fmt, args); 54 int written = cx_vfprintf(buf, cxBufferWriteFunc, fmt, args);
45 cxBufferPut(buf, '\n'); 55 cxBufferPut(buf, '\n');
46 va_end(args); 56 va_end(args);
47 57
48 // also print to stderr 58 // also print to stderr

mercurial