Mercurial > hg > octave-lyh > gnulib-hg
changeset 11522:9b743df451ea
Fix a compilation error.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Wed, 29 Apr 2009 00:46:58 +0200 |
parents | 10c88460fc56 |
children | 86a76770a6b1 |
files | ChangeLog lib/mbsrtowcs-state.c lib/wcsrtombs-state.c |
diffstat | 3 files changed, 37 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2009-04-28 Bruno Haible <bruno@clisp.org> + + 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 <bruno@clisp.org> New module 'libunistring'.
--- a/lib/mbsrtowcs-state.c +++ b/lib/mbsrtowcs-state.c @@ -20,4 +20,18 @@ #include <wchar.h> /* 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 <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 + ;
--- a/lib/wcsrtombs-state.c +++ b/lib/wcsrtombs-state.c @@ -20,4 +20,18 @@ #include <wchar.h> /* 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 <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 + ;