diff options
| author | Ulf Hermann <[email protected]> | 2017-02-23 17:22:41 +0100 |
|---|---|---|
| committer | Ulf Hermann <[email protected]> | 2017-04-27 15:56:33 +0000 |
| commit | 121d248c1da7f2130a2edde6d158f116c89ed407 (patch) | |
| tree | ad7a348a88db648da6e2df366d89fcb7b7436a1c /libgnu/mbsrtowcs-state.c | |
| parent | f10810fff6fda147f9c07fea0e1b33a7c4d79ad1 (diff) | |
Add gnulib modules to replace missing libc functionality
This enables us to build a fully featured elfutils package on systems
with reduced C libraries, such as windows. All the modules are built
into libgnu.a, which is then linked into all binaries if
--enable-gnulib is given on the configure line.
Change-Id: I743fd22172bc85d9f10dcc3dad8eb921f462b554
Reviewed-by: Christian Kandeler <[email protected]>
Diffstat (limited to 'libgnu/mbsrtowcs-state.c')
| -rw-r--r-- | libgnu/mbsrtowcs-state.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/libgnu/mbsrtowcs-state.c b/libgnu/mbsrtowcs-state.c new file mode 100644 index 00000000..4c213e45 --- /dev/null +++ b/libgnu/mbsrtowcs-state.c @@ -0,0 +1,37 @@ +/* Convert string to wide string. + Copyright (C) 2008-2017 Free Software Foundation, Inc. + Written by Bruno Haible <[email protected]>, 2008. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include <config.h> + +#include <wchar.h> + +/* Internal state used by the functions mbsrtowcs() and mbsnrtowcs(). */ +mbstate_t _gl_mbsrtowcs_state +/* The state must initially be in the "initial state"; so, zero-initialize it. + On most systems, putting it into BSS is sufficient. Not so on Mac OS X 10.3, + see <http://lists.gnu.org/archive/html/bug-gnulib/2009-01/msg00329.html>. + When it needs an initializer, use 0 or {0} as initializer? 0 only works + when mbstate_t is a scalar type (such as when gnulib defines it, or on + AIX, IRIX, mingw). {0} works as an initializer in all cases: for a struct + or union type, but also for a scalar type (ISO C 99, 6.7.8.(11)). */ +#if defined __ELF__ + /* On ELF systems, variables in BSS behave well. */ +#else + /* Use braces, to be on the safe side. */ + = { 0 } +#endif + ; |
