コード例 #1
0
ファイル: mbtowc.c プロジェクト: easyaspi314/agbcc
int mbtowc(wchar_t *pwc, const char *s, size_t n)
{
#ifdef MB_CAPABLE
    static int state;

    return _mbtowc_r(_REENT, pwc, s, n, &state);
#else  /* not MB_CAPABLE */
    if (s == NULL)
        return 0;
    if (n == 0)
        return -1;
    if (pwc)
        *pwc = (wchar_t)*s;
    return (*s != '\0');
#endif /* not MB_CAPABLE */
}
コード例 #2
0
wint_t
btowc (int c)
{
  mbstate_t mbs;
  int retval = 0;
  wchar_t pwc;
  unsigned char b;

  b = (unsigned char)c;

  /* Put mbs in initial state. */
  memset (&mbs, '\0', sizeof (mbs));

  _REENT_CHECK_MISC(_REENT);

  retval = _mbtowc_r (_REENT, &pwc, &b, 1, &mbs);

  if (c == EOF || retval != 1)
    return WEOF;
  else
    return (wint_t)pwc;
}
コード例 #3
0
ファイル: mblen.c プロジェクト: Kristoffer/Xen-4.1.2
#include <newlib.h>
#include <stdlib.h>
#include <wchar.h>

int
_DEFUN (mblen, (s, n), 
        const char *s _AND
        size_t n)
{
#ifdef _MB_CAPABLE
  int retval = 0;
  mbstate_t *state;
  
  _REENT_CHECK_MISC(_REENT);
  state = &(_REENT_MBLEN_STATE(_REENT));
  retval = _mbtowc_r (_REENT, NULL, s, n, state);
  if (retval < 0)
    {
      state->__count = 0;
      return -1;
    }
  else
    return retval;
  
#else /* not _MB_CAPABLE */
  if (s == NULL || *s == '\0')
    return 0;
  if (n == 0)
    return -1;
  return 1;
#endif /* not _MB_CAPABLE */
コード例 #4
0
ファイル: mblen_r.c プロジェクト: behnaaz/jerl
<<_mblen_r>> requires no supporting OS subroutines.
*/

#include <stdlib.h>
#include <wchar.h>

int
_DEFUN (_mblen_r, (r, s, n, state),
        struct _reent *r    _AND
        const char *s _AND
        size_t n _AND
        mbstate_t *state)
{
#ifdef MB_CAPABLE
    int retval;
    retval = _mbtowc_r (r, NULL, s, n, state);

    if (retval < 0)
    {
        state->__count = 0;
        return -1;
    }

    return retval;
#else /* not MB_CAPABLE */
    if (s == NULL || *s == '\0')
        return 0;
    if (n == 0)
        return -1;
    return 1;
#endif /* not MB_CAPABLE */