int i;
size_t i;
arg_service_list (const char *fname, int line_num, const char *args,		  unsigned int arg){  enum Name_Service service;  const char *start;  size_t len;  int i;  static struct  {    const char * name;    enum Name_Service service;  } svcs[] =    {      {"bind",	SERVICE_BIND},      {"hosts",	SERVICE_HOSTS},      {"nis",	SERVICE_NIS},    };  do    {      start = args;      args = skip_string (args);      len = args - start;      service = SERVICE_NONE;      for (i = 0; i < sizeof (svcs) / sizeof (svcs[0]); ++i)	{	  if (__strncasecmp (start, svcs[i].name, len) == 0	      && len == strlen (svcs[i].name))	  {	    service = svcs[i].service;	    break;	  }      }      if (service == SERVICE_NONE)	{	  char *buf;	  __asprintf (&buf, _("%s: line %d: expected service, found `%s'\n"),		      fname, line_num, start);#ifdef USE_IN_LIBIO	  if (_IO_fwide (stderr, 0) > 0)	    __fwprintf (stderr, L"%s", buf);	  else#endif	    fputs (buf, stderr);	  free (buf);	  return 0;	}      if (_res_hconf.num_services >= SERVICE_MAX)	{	  char *buf;	  __asprintf (&buf,		      _("%s: line %d: cannot specify more than %d services"),		      fname, line_num, SERVICE_MAX);#ifdef USE_IN_LIBIO	  if (_IO_fwide (stderr, 0) > 0)	    __fwprintf (stderr, L"%s", buf);	  else#endif	    fputs (buf, stderr);	  free (buf);	  return 0;	}      _res_hconf.service[_res_hconf.num_services++] = service;      args = skip_ws (args);      switch (*args)	{	case ',':	case ';':	case ':':	  args = skip_ws (++args);	  if (!*args || *args == '#')	    {	      char *buf;	      __asprintf (&buf, _("\%s: line %d: list delimiter not followed by keyword"),			  fname, line_num);#ifdef USE_IN_LIBIO	      if (_IO_fwide (stderr, 0) > 0)		__fwprintf (stderr, L"%s", buf);	      else#endif		fputs (buf, stderr);	      free (buf);	      return 0;	    }	default:	  break;	}    }  while (*args && *args != '#');  return args;}