for (l = defined; l != NULL; l = l->next) { print_funcdef(l->val);
for (i = 1; i < 3; ++i) { if (i == 1) fprintf (fout, "\n#if defined(__STDC__) || defined(__cplusplus)\n"); else fprintf (fout, "\n#else /* K&R C */\n");  xdrfuncp = xdrfunc_head; while (xdrfuncp != NULL) { print_xdr_func_def (xdrfuncp->name, xdrfuncp->pointerp, i); xdrfuncp = xdrfuncp->next; } } fprintf (fout, "\n#endif /* K&R C */\n");
h_output(const char *infile, const char *define, int extend,	 const char *outfile){	definition *def;	const char *ifilename;	const char *outfilename;	long tell;	char *guard;	list *l;	open_input(infile, define);	outfilename =  extend ? extendfile(infile, outfile) : outfile;	open_output(infile, outfilename);	add_warning();	ifilename = (infile == NULL) ? "STDIN" : infile;	guard = generate_guard(  outfilename ? outfilename: ifilename );	f_print(fout,"#ifndef _%s\n#define _%s\n\n", guard,		guard);	f_print(fout, "#include <rpc/rpc.h>\n\n");	tell = ftell(fout);	/* print data definitions */	while ((def = get_definition())!=NULL) {		print_datadef(def);	}	/* print function declarations.	   Do this after data definitions because they might be used as	   arguments for functions */	for (l = defined; l != NULL; l = l->next) {		print_funcdef(l->val);	}	if (extend && tell == ftell(fout)) {		(void) unlink(outfilename);	} else if (tblflag) {		f_print(fout, rpcgen_table_dcl);	}	f_print(fout, "\n#endif /* !_%s */\n", guard);}