home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_10_07 / 1007014a < prev    next >
Text File  |  1992-05-05  |  485b  |  24 lines

  1. Listing 3 -- mbstowcs.c
  2.  
  3. /* mbstowcs function */
  4. #include <stdlib.h>
  5.  
  6. size_t (mbstowcs)(wchar_t *wcs, const char *s, size_t n)
  7.     {    /* translate multibyte string to wide char string */
  8.     int i;
  9.     wchar_t *pwc;
  10.     _Mbsave state = {0};
  11.  
  12.     for (pwc = wcs; 0 < n; ++pwc, --n)
  13.         {    /* make another wide character */
  14.         i = _Mbtowc(pwc, s, n, &state);
  15.         if (i == -1)
  16.             return (-1);
  17.         else if (i == 0 || *pwc == 0)
  18.             return (pwc - wcs);
  19.         s += i;
  20.         }
  21.     return (pwc - wcs);
  22.     }
  23.  
  24.