aboutsummaryrefslogtreecommitdiffstats
path: root/src/error.c
diff options
context:
space:
mode:
authorRafael G. Martins <rafael@rafaelmartins.eng.br>2016-03-13 01:48:49 +0100
committerRafael G. Martins <rafael@rafaelmartins.eng.br>2016-03-13 01:48:49 +0100
commita2b3551dfb9460470bd79f5648bf597c517c40d4 (patch)
treeb82f50efbd76f581a281d61009811c1afabb0733 /src/error.c
parent3ead966f48bc47444d7ec72f46e94e73557695a5 (diff)
downloadblogc-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.c47
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);
-}