diff --git a/src/cpp.c b/src/cpp.c index e7777f6..7de05a6 100644 --- a/src/cpp.c +++ b/src/cpp.c @@ -59,7 +59,7 @@ struct _Cpp char ** paths; size_t paths_cnt; /* substitutions */ - char ** defines; /* FIXME also store the value */ + char ** defines; /* FIXME also store the value, directly in tokens? */ size_t defines_cnt; }; @@ -405,7 +405,6 @@ static int _cpp_callback_comment(Parser * parser, Token * token, int c, static int _directive_error(Cpp * cpp, Token * token, char const * str); static int _directive_include(Cpp * cpp, Token * token, char const * str); static int _directive_undef(Cpp * cpp, Token * token, char const * str); -static int _directive_warning(Cpp * cpp, Token * token, char const * str); static int _cpp_callback_directive(Parser * parser, Token * token, int c, void * data) @@ -455,7 +454,7 @@ static int _cpp_callback_directive(Parser * parser, Token * token, int c, token_set_code(token, CPP_CODE_META_ENDIF); break; case CPP_DIRECTIVE_ERROR: - _directive_error(cpp, token, str); + token_set_code(token, CPP_CODE_META_ERROR); break; case CPP_DIRECTIVE_IF: /* FIXME implement */ @@ -480,7 +479,7 @@ static int _cpp_callback_directive(Parser * parser, Token * token, int c, _directive_undef(cpp, token, str); break; case CPP_DIRECTIVE_WARNING: - _directive_warning(cpp, token, str); + token_set_code(token, CPP_CODE_META_WARNING); break; default: /* FIXME implement */ @@ -495,14 +494,8 @@ static int _directive_error(Cpp * cpp, Token * token, char const * str) /* FIXME line and column will probably be wrong for included content * use a parser to keep track of it? */ { - char buf[256]; - token_set_code(token, CPP_CODE_META_ERROR); - snprintf(buf, sizeof(buf), "in %s:%u, %u: %s: %s", - cpp_get_filename(cpp), token_get_line(token), - token_get_col(token), "Unknown or invalid directive", - str); - token_set_string(token, buf); + token_set_string(token, str); return 0; } @@ -611,16 +604,6 @@ static int _directive_undef(Cpp * cpp, Token * token, char const * str) return 0; } -static int _directive_warning(Cpp * cpp, Token * token, char const * str) -{ - int ret; - - /* FIXME implement */ - ret = _directive_error(cpp, token, str); - token_set_code(token, CPP_CODE_META_WARNING); - return ret; -} - /* cpp_callback_comma */ static int _cpp_callback_comma(Parser * parser, Token * token, int c, diff --git a/src/main.c b/src/main.c index afb2f71..7168f3c 100644 --- a/src/main.c +++ b/src/main.c @@ -108,13 +108,13 @@ static int _cpp_do(Prefs * prefs, FILE * fp, char const * filename) fprintf(stderr, "DEBUG: %s (%d)\n", token_get_string(token), token_get_code(token)); #else - if((code = token_get_code(token)) == CPP_CODE_META_ERROR) - { - fprintf(stderr, "%s%s\n", "Error: ", - token_get_string(token)); - } - else if(code == CPP_CODE_META_WARNING) - fprintf(stderr, "%s%s\n", "Warning: ", + if((code = token_get_code(token)) == CPP_CODE_META_ERROR + || code == CPP_CODE_META_WARNING) + fprintf(stderr, "%s%s%s%s%u%s%s\n", + code == CPP_CODE_META_ERROR + ? "Error" : "Warning", " in ", + token_get_filename(token), ":", + token_get_line(token), ": ", token_get_string(token)); else if(code >= CPP_CODE_META_FIRST && code <= CPP_CODE_META_LAST)