(gen_wrapper): use the generated version of name for function, if no

function is is used, also use the generated name for the structure
name.


git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@15774 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2005-07-27 15:00:40 +00:00
parent 8c8ebcd9aa
commit 08e64c0d1b

View File

@@ -408,33 +408,34 @@ gen_wrapper(struct assignment *as)
struct assignment *opt1;
struct assignment *function;
struct assignment *tmp;
char *f;
char *n, *f;
int nargs = 0;
int seen_strings = 0;
name = find(as, "name");
n = strdup(name->u.value);
gen_name(n);
arg = find(as, "argument");
opt1 = find(as, "option");
function = find(as, "function");
if(function == NULL)
function = name;
f = strdup(name->u.value);
gen_name(f);
if(function)
f = function->u.value;
else
f = n;
if(opt1 != NULL) {
gen_options(opt1, name->u.value);
hprint(0, "int %s(struct %s_options*, int, char **);\n",
function->u.value, name->u.value);
gen_options(opt1, n);
hprint(0, "int %s(struct %s_options*, int, char **);\n", f, n);
} else {
hprint(0, "int %s(void*, int, char **);\n",
function->u.value);
hprint(0, "int %s(void*, int, char **);\n", f);
}
fprintf(cfile, "static int\n");
fprintf(cfile, "%s_wrap(int argc, char **argv)\n", f);
fprintf(cfile, "%s_wrap(int argc, char **argv)\n", n);
fprintf(cfile, "{\n");
if(opt1 != NULL)
cprint(1, "struct %s_options opt;\n", name->u.value);
cprint(1, "struct %s_options opt;\n", n);
cprint(1, "int ret;\n");
cprint(1, "int optidx = 0;\n");
cprint(1, "struct getargs args[] = {\n");
@@ -590,8 +591,7 @@ gen_wrapper(struct assignment *as)
cprint(2, "goto usage;\n");
cprint(1, "ret = %s(%s, argc - optidx, argv + optidx);\n",
function->u.value,
opt1 ? "&opt": "NULL");
f, opt1 ? "&opt": "NULL");
if(seen_strings) {
if(seen_strings) {
for(tmp = find(as, "option");