From 5bc7969acda32436d6769a4967abdfd42c970a30 Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Sun, 30 Aug 2009 02:23:50 +0000 Subject: [PATCH] Recurse with the values already defined --- src/cpp.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/cpp.c b/src/cpp.c index 27273c9..a4e2410 100644 --- a/src/cpp.c +++ b/src/cpp.c @@ -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));