Blame stdlib/mbstowcs.c

Packit Service 82fcde
/* Copyright (C) 1991-2018 Free Software Foundation, Inc.
Packit Service 82fcde
   This file is part of the GNU C Library.
Packit Service 82fcde
Packit Service 82fcde
   The GNU C Library is free software; you can redistribute it and/or
Packit Service 82fcde
   modify it under the terms of the GNU Lesser General Public
Packit Service 82fcde
   License as published by the Free Software Foundation; either
Packit Service 82fcde
   version 2.1 of the License, or (at your option) any later version.
Packit Service 82fcde
Packit Service 82fcde
   The GNU C Library is distributed in the hope that it will be useful,
Packit Service 82fcde
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 82fcde
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service 82fcde
   Lesser General Public License for more details.
Packit Service 82fcde
Packit Service 82fcde
   You should have received a copy of the GNU Lesser General Public
Packit Service 82fcde
   License along with the GNU C Library; if not, see
Packit Service 82fcde
   <http://www.gnu.org/licenses/>.  */
Packit Service 82fcde
Packit Service 82fcde
#include <stdlib.h>
Packit Service 82fcde
#include <string.h>
Packit Service 82fcde
#include <wchar.h>
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
/* Convert the string of multibyte characters in S to `wchar_t's in
Packit Service 82fcde
   PWCS, writing no more than N.  Return the number written,
Packit Service 82fcde
   or (size_t) -1 if an invalid multibyte character is encountered.
Packit Service 82fcde
Packit Service 82fcde
   Attention: this function should NEVER be intentionally used.
Packit Service 82fcde
   The interface is completely stupid.  The state is shared between
Packit Service 82fcde
   all conversion functions.  You should use instead the restartable
Packit Service 82fcde
   version `mbsrtowcs'.  */
Packit Service 82fcde
size_t
Packit Service 82fcde
mbstowcs (wchar_t *pwcs, const char *s, size_t n)
Packit Service 82fcde
{
Packit Service 82fcde
  mbstate_t state;
Packit Service 82fcde
Packit Service 82fcde
  memset (&state, '\0', sizeof state);
Packit Service 82fcde
  /* Return how many we wrote (or maybe an error).  */
Packit Service 82fcde
  return __mbsrtowcs (pwcs, &s, n, &state);
Packit Service 82fcde
}