diff --git a/include/cpp.h b/include/cpp.h index e63cedf..ea8e791 100644 --- a/include/cpp.h +++ b/include/cpp.h @@ -34,6 +34,19 @@ typedef enum _CppFilter CPP_FILTER_COMMENT = 4 } CppFilter; +typedef enum _CppOption +{ + CPP_OPTION_NONE = 0, + CPP_OPTION_IGNORE_META = 1 +} CppOption; + +typedef struct _CppPrefs +{ + char const * filename; + int filters; + int options; +} CppPrefs; + typedef enum _CppCode { CPP_CODE_NULL = TC_NULL, @@ -113,7 +126,7 @@ typedef enum _CppCode /* functions */ -Cpp * cpp_new(char const * filename, int filters); +Cpp * cpp_new(CppPrefs * prefs); void cpp_delete(Cpp * cpp); /* accessors */ diff --git a/src/main.c b/src/main.c index ff5b258..11805fe 100644 --- a/src/main.c +++ b/src/main.c @@ -75,7 +75,7 @@ static int _cpp(Prefs * prefs, int filec, char * filev[]) static int _cpp_do(Prefs * prefs, FILE * fp, char const * filename) { int ret; - int filter = CPP_FILTER_WHITESPACE | CPP_FILTER_COMMENT; + CppPrefs cppprefs; Cpp * cpp; size_t i; size_t j; @@ -83,9 +83,12 @@ static int _cpp_do(Prefs * prefs, FILE * fp, char const * filename) Token * token; int code; + cppprefs.filename = filename; + cppprefs.filters = CPP_FILTER_WHITESPACE | CPP_FILTER_COMMENT; + cppprefs.options = 0; if(prefs->flags & PREFS_t) - filter |= CPP_FILTER_TRIGRAPH; - if((cpp = cpp_new(filename, filter)) == NULL) + cppprefs.filters |= CPP_FILTER_TRIGRAPH; + if((cpp = cpp_new(&cppprefs)) == NULL) return _cpp_error(); for(i = 0; i < prefs->paths_cnt; i++) if(cpp_path_add(cpp, prefs->paths[i]) != 0)