diff options
Diffstat (limited to 'src/serd_internal.h')
-rw-r--r-- | src/serd_internal.h | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/serd_internal.h b/src/serd_internal.h index 03d4edbd..26846312 100644 --- a/src/serd_internal.h +++ b/src/serd_internal.h @@ -17,8 +17,14 @@ #ifndef SERD_INTERNAL_H #define SERD_INTERNAL_H +#include "world.h" + #include "serd/serd.h" +#if defined(HAVE_POSIX_FADVISE) && defined(HAVE_FILENO) +# include <fcntl.h> +#endif + #include <assert.h> #include <ctype.h> #include <errno.h> @@ -38,12 +44,16 @@ /* Error reporting */ static inline void -serd_error(SerdErrorSink error_sink, void* handle, const SerdError* e) +serd_error(const SerdWorld* world, const SerdError* e) { - if (error_sink) { - error_sink(handle, e); + if (world->error_sink) { + world->error_sink(world->error_handle, e); } else { - fprintf(stderr, "error: %s:%u:%u: ", e->filename, e->line, e->col); + if (e->filename) { + fprintf(stderr, "error: %s:%u:%u: ", e->filename, e->line, e->col); + } else { + fprintf(stderr, "error: "); + } vfprintf(stderr, e->fmt, *e->args); } } |