(void) __fxprintf (NULL, "%s", L"%s", buf);
registerrpc (u_long prognum, u_long versnum, u_long procnum,	     char *(*progname) (char *), xdrproc_t inproc, xdrproc_t outproc){  struct proglst_ *pl;  char *buf;  if (procnum == NULLPROC)    {      if (__asprintf (&buf, _("can't reassign procedure number %ld\n"),		      NULLPROC) < 0)	buf = NULL;      goto err_out;    }  if (transp == 0)    {      transp = INTUSE(svcudp_create) (RPC_ANYSOCK);      if (transp == NULL)	{	  buf = strdup (_("couldn't create an rpc server\n"));	  goto err_out;	}    }  (void) pmap_unset ((u_long) prognum, (u_long) versnum);  if (!svc_register (transp, (u_long) prognum, (u_long) versnum,		     universal, IPPROTO_UDP))    {      if (__asprintf (&buf, _("couldn't register prog %ld vers %ld\n"),		      prognum, versnum) < 0)	buf = NULL;      goto err_out;    }  pl = (struct proglst_ *) malloc (sizeof (struct proglst_));  if (pl == NULL)    {      buf = strdup (_("registerrpc: out of memory\n"));      goto err_out;    }  pl->p_progname = progname;  pl->p_prognum = prognum;  pl->p_procnum = procnum;  pl->p_inproc = inproc;  pl->p_outproc = outproc;  pl->p_nxt = proglst;  proglst = pl;  return 0; err_out:  if (buf == NULL)    return -1;#ifdef USE_IN_LIBIO  if (_IO_fwide (stderr, 0) > 0)    (void) __fwprintf (stderr, L"%s", buf);  else#endif    (void) fputs (buf, stderr);  free (buf);  return -1;}