OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [newlib/] [newlib/] [libc/] [stdlib/] [mbstowcs_r.c] - Diff between revs 40 and 1765

Only display areas with differences | Details | Blame | View Log

Rev 40 Rev 1765
#include <stdlib.h>
#include <stdlib.h>
 
 
size_t
size_t
_DEFUN (_mbstowcs_r, (reent, pwcs, s, n, state),
_DEFUN (_mbstowcs_r, (reent, pwcs, s, n, state),
        struct _reent *r    _AND
        struct _reent *r    _AND
        wchar_t       *pwcs _AND
        wchar_t       *pwcs _AND
        const char    *s    _AND
        const char    *s    _AND
        size_t         n    _AND
        size_t         n    _AND
        int           *state)
        int           *state)
{
{
  wchar_t *ptr = pwcs;
  wchar_t *ptr = pwcs;
  size_t max = n;
  size_t max = n;
  char *t = (char *)s;
  char *t = (char *)s;
  int bytes;
  int bytes;
 
 
  while (n > 0)
  while (n > 0)
    {
    {
      bytes = _mbtowc_r (r, ptr, t, MB_CUR_MAX, state);
      bytes = _mbtowc_r (r, ptr, t, MB_CUR_MAX, state);
      if (bytes == -1)
      if (bytes == -1)
        return -1;
        return -1;
      else if (bytes == 0)
      else if (bytes == 0)
        return ptr - pwcs;
        return ptr - pwcs;
      t += bytes;
      t += bytes;
      ++ptr;
      ++ptr;
      --n;
      --n;
    }
    }
 
 
  return max;
  return max;
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.