1/* Test of test for initial conversion state.
2   Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc.
3
4   This program is free software: you can redistribute it and/or modify
5   it under the terms of the GNU General Public License as published by
6   the Free Software Foundation; either version 3 of the License, or
7   (at your option) any later version.
8
9   This program is distributed in the hope that it will be useful,
10   but WITHOUT ANY WARRANTY; without even the implied warranty of
11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12   GNU General Public License for more details.
13
14   You should have received a copy of the GNU General Public License
15   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
16
17/* Written by Bruno Haible <bruno@clisp.org>, 2008.  */
18
19#include <config.h>
20
21#include <wchar.h>
22
23#include "signature.h"
24SIGNATURE_CHECK (mbsinit, int, (const mbstate_t *));
25
26#include <locale.h>
27
28#include "macros.h"
29
30int
31main (int argc, char *argv[])
32{
33  static mbstate_t state;
34
35  ASSERT (mbsinit (&state));
36
37  if (argc > 1)
38    {
39      static const char input[1] = "\303";
40      wchar_t wc;
41      size_t ret;
42
43      /* configure should already have checked that the locale is supported.  */
44      if (setlocale (LC_ALL, "") == NULL)
45        return 1;
46
47      ret = mbrtowc (&wc, input, 1, &state);
48      ASSERT (ret == (size_t)(-2));
49      ASSERT (!mbsinit (&state));
50    }
51
52  return 0;
53}
54