# HG changeset patch # User Bruno Haible # Date 1240958818 -7200 # Node ID 9b743df451eafab9526f78fb7f625c378aba4648 # Parent 10c88460fc561ad5087271deb97a16fdbd07a3b6 Fix a compilation error. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2009-04-28 Bruno Haible + + Fix a compilation error. + * lib/mbsrtowcs-state.c (_gl_mbsrtowcs_state): Fix initializer. + * lib/wcsrtombs-state.c (_gl_wcsrtombs_state): Likewise. + Reported by Jim Meyering. + 2009-04-27 Bruno Haible New module 'libunistring'. diff --git a/lib/mbsrtowcs-state.c b/lib/mbsrtowcs-state.c --- a/lib/mbsrtowcs-state.c +++ b/lib/mbsrtowcs-state.c @@ -20,4 +20,18 @@ #include /* Internal state used by the functions mbsrtowcs() and mbsnrtowcs(). */ -mbstate_t _gl_mbsrtowcs_state = 0; +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 MacOS X 10.3, + see . + 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 + ; diff --git a/lib/wcsrtombs-state.c b/lib/wcsrtombs-state.c --- a/lib/wcsrtombs-state.c +++ b/lib/wcsrtombs-state.c @@ -20,4 +20,18 @@ #include /* Internal state used by the functions wcsrtombs() and wcsnrtombs(). */ -mbstate_t _gl_wcsrtombs_state = 0; +mbstate_t _gl_wcsrtombs_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 MacOS X 10.3, + see . + 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 + ;