83 lines
1.6 KiB
C
83 lines
1.6 KiB
C
/*
|
|
TOWCTRANS: wint_t towctrans (wint_t wc, wctrans_t desc);
|
|
*/
|
|
|
|
#define TST_FUNCTION towctrans
|
|
|
|
#include "tsp_common.c"
|
|
#include "dat_towctrans.c"
|
|
|
|
|
|
int
|
|
tst_towctrans (FILE *fp, int debug_flg)
|
|
{
|
|
TST_DECL_VARS (wint_t);
|
|
wint_t wc;
|
|
const char *ts;
|
|
#if SHOJI_IS_RIGHT
|
|
int dummy=0;
|
|
#endif
|
|
wctrans_t wto;
|
|
|
|
TST_DO_TEST (towctrans)
|
|
{
|
|
TST_HEAD_LOCALE (towctrans, S_TOWCTRANS);
|
|
TST_DO_REC (towctrans)
|
|
{
|
|
TST_GET_ERRET (towctrans);
|
|
wc = TST_INPUT (towctrans).wc;
|
|
ts = TST_INPUT (towctrans).ts;
|
|
|
|
#if SHOJI_IS_RIGHT
|
|
if ((wto = wctrans (ts)) == (wctrans_t) 0)
|
|
{
|
|
#if 0
|
|
result (fp, C_IGNORED, S_TOWCTRANS, locale, rec+1, seq_num+1, 3,
|
|
"Skip this data because the wctrans object is not invalid.");
|
|
warn_count++;
|
|
continue;
|
|
#else
|
|
wto = &dummy; /* not good ... */
|
|
#endif
|
|
if (debug_flg)
|
|
{
|
|
fprintf (stdout, "towctrans() ------ wctrans() returnd 0.\n");
|
|
}
|
|
}
|
|
#else
|
|
wto = wctrans (ts);
|
|
#endif
|
|
|
|
TST_CLEAR_ERRNO;
|
|
ret = towctrans (wc, wto);
|
|
TST_SAVE_ERRNO;
|
|
|
|
if (debug_flg)
|
|
{
|
|
fprintf (stdout, "towctrans() [ %s : %d ] ret = 0x%x\n",
|
|
locale, rec+1, ret);
|
|
fprintf (stdout, " errno = %d\n",
|
|
errno_save);
|
|
}
|
|
|
|
TST_IF_RETURN (S_TOWCTRANS)
|
|
{
|
|
if (ret != 0)
|
|
{
|
|
result (fp, C_SUCCESS, S_TOWCTRANS, locale, rec+1,
|
|
seq_num+1, 3, MS_PASSED);
|
|
}
|
|
else
|
|
{
|
|
err_count++;
|
|
result (fp, C_FAILURE, S_TOWCTRANS, locale, rec+1,
|
|
seq_num+1, 3,
|
|
"the function returned 0, but should be non-zero");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return err_count;
|
|
}
|