version 1.8, 2002/02/16 21:27:51 |
version 1.9, 2002/06/01 01:40:38 |
|
|
definition *def; |
definition *def; |
list *l; |
list *l; |
|
|
f_print(fout, "\n"); |
fprintf(fout, "\n"); |
for (l = defined; l != NULL; l = l->next) { |
for (l = defined; l != NULL; l = l->next) { |
def = (definition *) l->val; |
def = (definition *) l->val; |
if (def->def_kind == DEF_PROGRAM) |
if (def->def_kind == DEF_PROGRAM) |
|
|
|
|
for (vp = def->def.pr.versions; vp != NULL; vp = vp->next) { |
for (vp = def->def.pr.versions; vp != NULL; vp = vp->next) { |
warning = 0; |
warning = 0; |
s_print(progvers, "%s_%s", |
snprintf(progvers, sizeof progvers, "%s_%s", |
locase(def->def_name), vp->vers_num); |
locase(def->def_name), vp->vers_num); |
/* print the table header */ |
/* print the table header */ |
f_print(fout, tbl_hdr, progvers); |
fprintf(fout, tbl_hdr, progvers); |
|
|
if (nullproc(vp->procs)) { |
if (nullproc(vp->procs)) { |
expected = 0; |
expected = 0; |
} else { |
} else { |
expected = 1; |
expected = 1; |
f_print(fout, null_entry); |
fprintf(fout, null_entry); |
} |
} |
for (proc = vp->procs; proc != NULL; proc = proc->next) { |
for (proc = vp->procs; proc != NULL; proc = proc->next) { |
current = atoi(proc->proc_num); |
current = atoi(proc->proc_num); |
if (current != expected++) { |
if (current != expected++) { |
f_print(fout, |
fprintf(fout, |
"\n/*\n * WARNING: table out of order\n */\n"); |
"\n/*\n * WARNING: table out of order\n */\n"); |
if (warning == 0) { |
if (warning == 0) { |
f_print(stderr, |
fprintf(stderr, |
"WARNING %s table is out of order\n", |
"WARNING %s table is out of order\n", |
progvers); |
progvers); |
warning = 1; |
warning = 1; |
|
|
} |
} |
expected = current + 1; |
expected = current + 1; |
} |
} |
f_print(fout, "\n\t(char *(*)())RPCGEN_ACTION("); |
fprintf(fout, "\n\t(char *(*)())RPCGEN_ACTION("); |
|
|
/* routine to invoke */ |
/* routine to invoke */ |
if (!newstyle) |
if (!newstyle) |
pvname_svc(proc->proc_name, vp->vers_num); |
pvname_svc(proc->proc_name, vp->vers_num); |
else { |
else { |
if (newstyle) |
if (newstyle) |
f_print(fout, "_"); /* calls internal func */ |
fprintf(fout, "_"); /* calls internal func */ |
pvname(proc->proc_name, vp->vers_num); |
pvname(proc->proc_name, vp->vers_num); |
} |
} |
f_print(fout, "),\n"); |
fprintf(fout, "),\n"); |
|
|
/* argument info */ |
/* argument info */ |
if (proc->arg_num > 1) |
if (proc->arg_num > 1) |
|
|
} |
} |
|
|
/* print the table trailer */ |
/* print the table trailer */ |
f_print(fout, tbl_end); |
fprintf(fout, tbl_end); |
f_print(fout, tbl_nproc, progvers, progvers, progvers); |
fprintf(fout, tbl_nproc, progvers, progvers, progvers); |
} |
} |
} |
} |
|
|
|
|
len += TABSIZE - 1; |
len += TABSIZE - 1; |
/* round up to tabs required */ |
/* round up to tabs required */ |
tabs = (TABSTOP - len + TABSIZE - 1)/TABSIZE; |
tabs = (TABSTOP - len + TABSIZE - 1)/TABSIZE; |
f_print(fout, "%s", &tabstr[TABCOUNT-tabs]); |
fprintf(fout, "%s", &tabstr[TABCOUNT-tabs]); |
|
|
if (streq(type, "void")) { |
if (streq(type, "void")) { |
f_print(fout, "0"); |
fprintf(fout, "0"); |
} else { |
} else { |
f_print(fout, "sizeof ("); |
fprintf(fout, "sizeof ("); |
/* XXX: should "follow" be 1 ??? */ |
/* XXX: should "follow" be 1 ??? */ |
ptype(prefix, type, 0); |
ptype(prefix, type, 0); |
f_print(fout, ")"); |
fprintf(fout, ")"); |
} |
} |
f_print(fout, ",\n"); |
fprintf(fout, ",\n"); |
} |
} |