diff options
| author | Michael Meskes <meskes@postgresql.org> | 2012-11-29 17:12:00 +0100 |
|---|---|---|
| committer | Michael Meskes <meskes@postgresql.org> | 2012-11-29 17:15:15 +0100 |
| commit | 3dfdf28152eb2df7cb4d4e43f461903fcc09e1d2 (patch) | |
| tree | f6fe3c712ba0812ea7ed26d445212c21a8276d21 /src | |
| parent | 614ba4844d3f771e56999dcdecc53b78d884d5d5 (diff) | |
When processing nested structure pointer variables ecpg always expected an
array datatype which of course is wrong.
Applied patch by Muhammad Usama <m.usama@gmail.com> to fix this.
Diffstat (limited to 'src')
| -rw-r--r-- | src/interfaces/ecpg/preproc/variable.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/interfaces/ecpg/preproc/variable.c b/src/interfaces/ecpg/preproc/variable.c index dbde1141ab9..00517df4122 100644 --- a/src/interfaces/ecpg/preproc/variable.c +++ b/src/interfaces/ecpg/preproc/variable.c @@ -100,7 +100,11 @@ find_struct_member(char *name, char *str, struct ECPGstruct_member * members, in } break; case '-': - return (find_struct_member(name, end, members->type->u.element->u.members, brace_level)); + if (members->type->type == ECPGt_array) + return (find_struct_member(name, ++end, members->type->u.element->u.members, brace_level)); + else + return (find_struct_member(name, ++end, members->type->u.members, brace_level)); + break; break; case '.': if (members->type->type == ECPGt_array) |
