コード例 #1
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;
コード例 #2
0
ファイル: mblen.c プロジェクト: CirnOS/newlib
#include <stdlib.h>
#include <wchar.h>
#include "local.h"

int
_DEFUN (mblen, (s, n), 
        const char *s _AND
        size_t n)
{
#ifdef _MB_CAPABLE
  int retval = 0;
  struct _reent *reent = _REENT;
  mbstate_t *state;
  
  _REENT_CHECK_MISC(reent);
  state = &(_REENT_MBLEN_STATE(reent));
  retval = __MBTOWC (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;