From 77166e259ee91fde498347de7c3c807d7bff6f1f Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Wed, 12 Jan 2005 12:18:58 +0000 Subject: 20695: Fix Cygwin problem with initialising from pointer to imported variable --- Src/module.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'Src/module.c') diff --git a/Src/module.c b/Src/module.c index 4510d3037..c50e032b6 100644 --- a/Src/module.c +++ b/Src/module.c @@ -1894,7 +1894,31 @@ addparamdef(Paramdef d) pm->level = 0; pm->u.data = d->var; - pm->gsu.i = (GsuInteger) d->gsu; + if (d->gsu) + pm->gsu.i = (GsuInteger) d->gsu; + else { + /* + * If no get/set/unset class, use the appropriate + * variable type. + */ + switch (PM_TYPE(pm->flags)) { + case PM_SCALAR: + pm->gsu.s = &varscalar_gsu; + break; + + case PM_INTEGER: + pm->gsu.i = &varinteger_gsu; + break; + + case PM_ARRAY: + pm->gsu.a = &vararray_gsu; + break; + + default: + unsetparam_pm(pm, 0, 1); + return 1; + } + } return 0; } -- cgit 1.4.1