X-Git-Url: http://git.draconx.ca/gitweb/gob-dx.git/blobdiff_plain/486240dc4c5d57b0afaddba60d87fe375112bed5..refs/tags/v1.0.5:/src/util.c diff --git a/src/util.c b/src/util.c index ae16914..acc112e 100644 --- a/src/util.c +++ b/src/util.c @@ -31,30 +31,53 @@ #include "util.h" void -print_error(gboolean is_warn, char *error, int line) +error_print(int type, int line, const char *error) { - char *w; - if(is_warn) + char *w = NULL; + + switch(type) { + case GOB_WARN: w = "Warning:"; - else { + break; + case GOB_ERROR: w = "Error:"; got_error = TRUE; + break; + default: + g_assert_not_reached(); } - if(line>0) + if(line > 0) fprintf(stderr, "%s:%d: %s %s\n", filename, line, w, error); else fprintf(stderr, "%s: %s %s\n", filename, w, error); - if((!is_warn || exit_on_warn) && exit_on_error) + if(exit_on_error && + (type == GOB_ERROR || + (type == GOB_WARN && exit_on_warn))) exit(1); } +void +error_printf(int type, int line, const char *error, ...) +{ + va_list ap; + char *s; + + va_start(ap, error); + s = g_strdup_vprintf(error, ap); + va_end(ap); + + error_print(type, line, s); + + g_free(s); +} + char * -remove_sep(char *base) +remove_sep(const char *base) { char *p; char *s = g_strdup(base); while((p = strchr(s, ':'))) - strcpy(p,p+1); + strcpy(p, p+1); return s; } @@ -254,12 +277,12 @@ setup_special_array(Class *c, gboolean *special_array) } /* get the id without the first underscore, but only if we're removing them */ -char * -get_real_id(char *id) +const char * +get_real_id(const char *id) { - if(!no_kill_underscores && - id[0] == '_' && - id[1] != '\0') + if( ! no_kill_underscores && + id[0] == '_' && + id[1] != '\0') return &id[1]; else return id;