| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 | /*  WCSTOK: wchar_t *wcstok (wchar_t *ws, const wchar_t *dlm, wchar_t **pt);*/#define TST_FUNCTION wcstok#include "tsp_common.c"#include "dat_wcstok.c"inttst_wcstok (FILE * fp, int debug_flg){  TST_DECL_VARS (wchar_t *);  char w_flg;  wchar_t *ws;  wchar_t *dt, *pt;  wchar_t *ws_ex;  int err, i;  TST_DO_TEST (wcstok)  {    TST_HEAD_LOCALE (wcstok, S_WCSTOK);    TST_DO_REC (wcstok)    {      TST_DO_SEQ (WCSTOK_SEQNUM)      {	TST_GET_ERRET_SEQ (wcstok);	w_flg = TST_INPUT_SEQ (wcstok).w_flg;	ws = (w_flg) ? TST_INPUT_SEQ (wcstok).ws : NULL;	dt = TST_INPUT_SEQ (wcstok).dt;	ret = wcstok (ws, dt, &pt);	if (debug_flg)	  {	    fprintf (stdout, "wcstok() [ %s : %d : %d ] *ret  = 0x%lx\n",		     locale, rec + 1, seq_num + 1, (unsigned long int) *ret);	    if (pt && *pt)	      {		fprintf (stdout, "			 *pt   = 0x%lx\n",			 (unsigned long int) *pt);	      }	  }	TST_IF_RETURN (S_WCSTOK)	{	};	if (ret != NULL)	  {	    ws_ex = TST_EXPECT_SEQ (wcstok).ws;	    /* XXX: REVISIT : insufficient conditions */	    for (err = 0, i = 0; i < WCSSIZE; i++)	      {		if (ret[i] == L'\0' && ws_ex[i] == L'\0')		  {		    break;		  }		if (debug_flg)		  {		    fprintf (stderr,			     "			      ret[%d] = 0x%lx <-> "			     "0x%lx = ws_ex[%d]\n",			     i, (unsigned long int) ret[i],			     (unsigned long int) ws_ex[i], i);		  }		if (ret[i] != ws_ex[i])		  {		    err++;		    err_count++;		    Result (C_FAILURE, S_WCSTOK, CASE_3,			    "the token is different from an expected string");		    break;		  }		if (ret[i] == L'\0' || ws_ex[i] == L'\0')		  {		    break;		  }	      }	    if (!err)	      {		Result (C_SUCCESS, S_WCSTOK, CASE_3, MS_PASSED);	      }	  }      }    }  }  return err_count;}
 |