projects
/
gnulib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Tests for module 'logbl'.
[gnulib.git]
/
lib
/
mbsinit.c
diff --git
a/lib/mbsinit.c
b/lib/mbsinit.c
index
2753b41
..
638142e
100644
(file)
--- a/
lib/mbsinit.c
+++ b/
lib/mbsinit.c
@@
-1,5
+1,5
@@
/* Test for initial conversion state.
/* Test for initial conversion state.
- Copyright (C) 2008 Free Software Foundation, Inc.
+ Copyright (C) 2008
-2012
Free Software Foundation, Inc.
Written by Bruno Haible <bruno@clisp.org>, 2008.
This program is free software: you can redistribute it and/or modify
Written by Bruno Haible <bruno@clisp.org>, 2008.
This program is free software: you can redistribute it and/or modify
@@
-20,6
+20,20
@@
/* Specification. */
#include <wchar.h>
/* Specification. */
#include <wchar.h>
+#include "verify.h"
+
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+
+/* On native Windows, 'mbstate_t' is defined as 'int'. */
+
+int
+mbsinit (const mbstate_t *ps)
+{
+ return ps == NULL || *ps == 0;
+}
+
+#else
+
/* Platforms that lack mbsinit() also lack mbrlen(), mbrtowc(), mbsrtowcs()
and wcrtomb(), wcsrtombs().
We assume that
/* Platforms that lack mbsinit() also lack mbrlen(), mbrtowc(), mbsrtowcs()
and wcrtomb(), wcsrtombs().
We assume that
@@
-34,10
+48,14
@@
- In wc -> mb direction, mbstate_t contains no information. In other
words, it is always in the initial state. */
- In wc -> mb direction, mbstate_t contains no information. In other
words, it is always in the initial state. */
+verify (sizeof (mbstate_t) >= 4);
+
int
mbsinit (const mbstate_t *ps)
{
const char *pstate = (const char *)ps;
int
mbsinit (const mbstate_t *ps)
{
const char *pstate = (const char *)ps;
- return pstate[0] == 0;
+ return pstate
== NULL || pstate
[0] == 0;
}
}
+
+#endif