f_print (fout, ", &arg, xdr_%s, %s%s, TIMEOUT) != RPC_SUCCESS) {\n", stringfix (proc->res_type), ampr (proc->res_type), RESULT);
fprintf (fout, ", (caddr_t) &arg,\n\t\t(xdrproc_t) xdr_%s, (caddr_t) %s%s,", stringfix(proc->res_type), (mtflag)?"":ampr(proc->res_type), RESULT); if (mtflag) fprintf (fout, "\n\t\tTIMEOUT));\n"); else fprintf (fout, "\n\t\tTIMEOUT) != RPC_SUCCESS) {\n");
printbody (proc_list * proc){  decl_list *l;  bool_t args2 = (proc->arg_num > 1);/*  int i; */  /* For new style with multiple arguments, need a structure in which     to stuff the arguments. */  if (newstyle && args2)    {      f_print (fout, "\t%s", proc->args.argname);      f_print (fout, " arg;\n");    }  f_print (fout, "\tstatic ");  if (streq (proc->res_type, "void"))    {      f_print (fout, "char ");    }  else    {      ptype (proc->res_prefix, proc->res_type, 0);    }  f_print (fout, "%s;\n", RESULT);  f_print (fout, "\n");  f_print (fout, "\tmemset((char *)%s%s, 0, sizeof(%s));\n",	   ampr (proc->res_type), RESULT, RESULT);  if (newstyle && !args2 && (streq (proc->args.decls->decl.type, "void")))    {      /* newstyle, 0 arguments */      f_print (fout,	       "\tif (clnt_call(clnt, %s, xdr_void", proc->proc_name);      f_print (fout,	       ", NULL, xdr_%s, %s,%s, TIMEOUT) != RPC_SUCCESS) {\n",	       stringfix (proc->res_type), ampr (proc->res_type), RESULT);    }  else if (newstyle && args2)    {      /* newstyle, multiple arguments:  stuff arguments into structure */      for (l = proc->args.decls; l != NULL; l = l->next)	{	  f_print (fout, "\targ.%s = %s;\n",		   l->decl.name, l->decl.name);	}      f_print (fout,	       "\tif (clnt_call(clnt, %s, xdr_%s", proc->proc_name,	       proc->args.argname);      f_print (fout,	       ", &arg, xdr_%s, %s%s, TIMEOUT) != RPC_SUCCESS) {\n",	       stringfix (proc->res_type), ampr (proc->res_type), RESULT);    }  else    {				/* single argument, new or old style */      f_print (fout,	       "\tif (clnt_call(clnt, %s, xdr_%s, %s%s, xdr_%s, %s%s, TIMEOUT) != RPC_SUCCESS) {\n",	       proc->proc_name,	       stringfix (proc->args.decls->decl.type),	       (newstyle ? "&" : ""),	       (newstyle ? proc->args.decls->decl.name : "argp"),	       stringfix (proc->res_type), ampr (proc->res_type), RESULT);    }  f_print (fout, "\t\treturn (NULL);\n");  f_print (fout, "\t}\n");  if (streq (proc->res_type, "void"))    {      f_print (fout, "\treturn ((void *)%s%s);\n",	       ampr (proc->res_type), RESULT);    }  else    {      f_print (fout, "\treturn (%s%s);\n", ampr (proc->res_type), RESULT);    }}