Code cleanup
This commit is contained in:
parent
a7b6acdccc
commit
1219681b61
51
src/c99.c
51
src/c99.c
@ -28,34 +28,23 @@
|
||||
/* public */
|
||||
/* functions */
|
||||
/* c99_new */
|
||||
static Cpp * _new_cpp(C99Prefs * prefs, char const * pathname);
|
||||
static char * _new_outfile(int flags, char const * outfile,
|
||||
char const * pathname);
|
||||
|
||||
C99 * c99_new(C99Prefs * prefs, char const * pathname)
|
||||
{
|
||||
C99 * c99;
|
||||
size_t i;
|
||||
size_t j;
|
||||
size_t k;
|
||||
|
||||
if((c99 = object_new(sizeof(*c99))) == NULL)
|
||||
return NULL;
|
||||
memset(c99, 0, sizeof(*c99));
|
||||
c99->flags = prefs->flags;
|
||||
if((c99->cpp = cpp_new(pathname, CPP_FILTER_TRIGRAPH)) == NULL)
|
||||
if((c99->cpp = _new_cpp(prefs, pathname)) == NULL)
|
||||
{
|
||||
object_delete(c99);
|
||||
return NULL;
|
||||
}
|
||||
for(i = 0; i < prefs->paths_cnt; i++)
|
||||
if(cpp_path_add(c99->cpp, prefs->paths[i]) != 0)
|
||||
break;
|
||||
for(j = 0; j < prefs->defines_cnt; j++)
|
||||
if(cpp_define_add(c99->cpp, prefs->defines[j], NULL) != 0)
|
||||
break;
|
||||
for(k = 0; k < prefs->undefines_cnt; k++)
|
||||
if(cpp_define_remove(c99->cpp, prefs->undefines[k]) != 0)
|
||||
break;
|
||||
c99->outfile = _new_outfile(prefs->flags, prefs->outfile, pathname);
|
||||
if(c99->outfile != NULL)
|
||||
c99->outfp = (c99->outfile[0] == '\0') ? stdout
|
||||
@ -63,11 +52,9 @@ C99 * c99_new(C99Prefs * prefs, char const * pathname)
|
||||
else
|
||||
c99->outfp = NULL;
|
||||
c99->optlevel = prefs->optlevel;
|
||||
if(c99->outfile == NULL /* abort if there was an error */
|
||||
|| c99->outfp == NULL
|
||||
|| i != prefs->paths_cnt
|
||||
|| j != prefs->defines_cnt
|
||||
|| k != prefs->undefines_cnt)
|
||||
c99->code = code_new();
|
||||
/* abort if there was an error */
|
||||
if(c99->outfile == NULL || c99->outfp == NULL || c99->code == NULL)
|
||||
{
|
||||
c99_delete(c99);
|
||||
return NULL;
|
||||
@ -75,6 +62,33 @@ C99 * c99_new(C99Prefs * prefs, char const * pathname)
|
||||
return c99;
|
||||
}
|
||||
|
||||
static Cpp * _new_cpp(C99Prefs * prefs, char const * pathname)
|
||||
{
|
||||
Cpp * cpp;
|
||||
size_t i;
|
||||
size_t j;
|
||||
size_t k;
|
||||
|
||||
if((cpp = cpp_new(pathname, CPP_FILTER_TRIGRAPH)) == NULL)
|
||||
return NULL;
|
||||
for(i = 0; i < prefs->paths_cnt; i++)
|
||||
if(cpp_path_add(cpp, prefs->paths[i]) != 0)
|
||||
break;
|
||||
for(j = 0; j < prefs->defines_cnt; j++)
|
||||
if(cpp_define_add(cpp, prefs->defines[j], NULL) != 0)
|
||||
break;
|
||||
for(k = 0; k < prefs->undefines_cnt; k++)
|
||||
if(cpp_define_remove(cpp, prefs->undefines[k]) != 0)
|
||||
break;
|
||||
if(i != prefs->paths_cnt || j != prefs->defines_cnt
|
||||
|| k != prefs->undefines_cnt)
|
||||
{
|
||||
cpp_delete(cpp);
|
||||
return NULL;
|
||||
}
|
||||
return cpp;
|
||||
}
|
||||
|
||||
static char * _new_outfile(int flags, char const * outfile,
|
||||
char const * pathname)
|
||||
{
|
||||
@ -122,6 +136,7 @@ int c99_delete(C99 * c99)
|
||||
free(c99->outfile);
|
||||
if(c99->token != NULL)
|
||||
token_delete(c99->token);
|
||||
code_delete(c99->code);
|
||||
object_delete(c99);
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user