Recurse with the values already defined

This commit is contained in:
Pierre Pronchery 2009-08-30 02:23:50 +00:00
parent a2384d61fd
commit 5bc7969acd

View File

@ -109,6 +109,7 @@ int cpp_define_add(Cpp * cpp, char const * name, char const * value)
{
size_t i;
CppDefine * p;
char const * q;
#ifdef DEBUG
fprintf(stderr, "DEBUG: %s(cpp, \"%s\", \"%s\")\n", __func__, name,
@ -123,6 +124,10 @@ int cpp_define_add(Cpp * cpp, char const * name, char const * value)
break;
if(i != cpp->defines_cnt)
return error_set_code(1, "%s is already defined", name);
if(value != NULL) /* XXX not sure if this should be done here */
for(q = cpp_define_get(cpp, value); q != NULL;
q = cpp_define_get(cpp, value))
value = q; /* XXX may deadloop */
if((p = realloc(cpp->defines, sizeof(*p) * (cpp->defines_cnt + 1)))
== NULL)
return error_set_code(1, "%s", strerror(errno));