if (swscanf (tests[n].arg, tests[n].wfmt, wbuf) != 1)
if (swscanf (tests[n].arg, tests[n].wfmt, wbuf) != tests[n].retval)
do_test (const char *loc){  size_t n;  int result = 0;  if (setlocale (LC_ALL, loc) == NULL)    {      printf ("cannot set locale \"%s\": %m\n", loc);      return 1;    }  printf ("\nnew locale: \"%s\"\n", loc);  for (n = 0; n < sizeof (tests) / sizeof (tests[0]); ++n)    {      char buf[100];      wchar_t wbuf[100];      if (tests[n].only_C_locale && strcmp (loc, "C") != 0)	continue;      if (swscanf (tests[n].arg, tests[n].fmt, buf) != 1)	{	  printf ("swscanf (\"%S\", \"%S\", ...) failed\n",		  tests[n].arg, tests[n].fmt);	  result = 1;	}      else if (strcmp (buf, tests[n].res) != 0)	{	  printf ("swscanf (\"%S\", \"%S\", ...) return \"%s\", expected \"%s\"\n",		  tests[n].arg, tests[n].fmt, buf, tests[n].res);	  result = 1;	}      else	printf ("swscanf (\"%S\", \"%S\", ...) OK\n",		tests[n].arg, tests[n].fmt);      if (swscanf (tests[n].arg, tests[n].wfmt, wbuf) != 1)	{	  printf ("swscanf (\"%S\", \"%S\", ...) failed\n",		  tests[n].arg, tests[n].wfmt);	  result = 1;	}      else if (wcscmp (wbuf, tests[n].wres) != 0)	{	  printf ("swscanf (\"%S\", \"%S\", ...) return \"%S\", expected \"%S\"\n",		  tests[n].arg, tests[n].wfmt, wbuf, tests[n].wres);	  result = 1;	}      else	printf ("swscanf (\"%S\", \"%S\", ...) OK\n",		tests[n].arg, tests[n].wfmt);    }  return result;}