edc_parse: Check more cases to update EDC info correctly.
"#if", "#endif", and "#define" cases are checked to update EDC
information correctly.
This fixes commit 2fc82c79d3
This commit is contained in:
parent
7def9a7865
commit
cf92ba7a67
|
@ -153,6 +153,35 @@ cur_context_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//Skip #if ~ #endif
|
||||||
|
if (!strncmp(p, "#if", 3))
|
||||||
|
{
|
||||||
|
p = strstr(p, "#endif");
|
||||||
|
if (!p) goto end;
|
||||||
|
p += 6; //strlen(#endif)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Skip #define
|
||||||
|
if (!strncmp(p, "#define", 7))
|
||||||
|
{
|
||||||
|
//escape "\", "ie, #define .... \"
|
||||||
|
p += 7; //strlen(#define)
|
||||||
|
|
||||||
|
while (p <= end)
|
||||||
|
{
|
||||||
|
char *eol = strstr(p, "\n");
|
||||||
|
if (!eol) goto end;
|
||||||
|
|
||||||
|
char *slash = strstr(p, "\\");
|
||||||
|
|
||||||
|
p = eol + 1;
|
||||||
|
|
||||||
|
if (!slash || (eol < slash))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
//Check whether outside of description or part or group
|
//Check whether outside of description or part or group
|
||||||
if ((*p == '}') && (p < end))
|
if ((*p == '}') && (p < end))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue