diff options
author | Rafael G. Martins <rafael@rafaelmartins.eng.br> | 2016-03-13 01:48:49 +0100 |
---|---|---|
committer | Rafael G. Martins <rafael@rafaelmartins.eng.br> | 2016-03-13 01:48:49 +0100 |
commit | a2b3551dfb9460470bd79f5648bf597c517c40d4 (patch) | |
tree | b82f50efbd76f581a281d61009811c1afabb0733 /src/error.c | |
parent | 3ead966f48bc47444d7ec72f46e94e73557695a5 (diff) | |
download | blogc-a2b3551dfb9460470bd79f5648bf597c517c40d4.tar.gz blogc-a2b3551dfb9460470bd79f5648bf597c517c40d4.tar.bz2 blogc-a2b3551dfb9460470bd79f5648bf597c517c40d4.zip |
*: use squareball error infrastructure
Diffstat (limited to 'src/error.c')
-rw-r--r-- | src/error.c | 47 |
1 files changed, 7 insertions, 40 deletions
diff --git a/src/error.c b/src/error.c index f05049c..619ae01 100644 --- a/src/error.c +++ b/src/error.c @@ -18,31 +18,8 @@ #include "error.h" -blogc_error_t* -blogc_error_new(blogc_error_type_t type, const char *msg) -{ - blogc_error_t *err = sb_malloc(sizeof(blogc_error_t)); - err->type = type; - err->msg = sb_strdup(msg); - return err; -} - - -blogc_error_t* -blogc_error_new_printf(blogc_error_type_t type, const char *format, ...) -{ - va_list ap; - va_start(ap, format); - char *tmp = sb_strdup_vprintf(format, ap); - va_end(ap); - blogc_error_t *rv = blogc_error_new(type, tmp); - free(tmp); - return rv; -} - - -blogc_error_t* -blogc_error_parser(blogc_error_type_t type, const char *src, size_t src_len, +sb_error_t* +blogc_error_parser(blogc_error_code_t type, const char *src, size_t src_len, size_t current, const char *format, ...) { va_list ap; @@ -90,12 +67,12 @@ blogc_error_parser(blogc_error_type_t type, const char *src, size_t src_len, char *line = sb_strndup(src + linestart, lineend - linestart); - blogc_error_t *rv = NULL; + sb_error_t *rv = NULL; if (line[0] == '\0') // "near" message isn't useful if line is empty - rv = blogc_error_new(type, msg); + rv = sb_error_new(type, msg); else - rv = blogc_error_new_printf(type, + rv = sb_error_new_printf(type, "%s\nError occurred near line %d, position %d: %s", msg, lineno, pos, line); @@ -107,12 +84,12 @@ blogc_error_parser(blogc_error_type_t type, const char *src, size_t src_len, void -blogc_error_print(blogc_error_t *err) +blogc_error_print(sb_error_t *err) { if (err == NULL) return; - switch(err->type) { + switch(err->code) { case BLOGC_ERROR_SOURCE_PARSER: fprintf(stderr, "blogc: error: source: %s\n", err->msg); break; @@ -129,13 +106,3 @@ blogc_error_print(blogc_error_t *err) fprintf(stderr, "blogc: error: %s\n", err->msg); } } - - -void -blogc_error_free(blogc_error_t *err) -{ - if (err == NULL) - return; - free(err->msg); - free(err); -} |