]> git.ipfire.org Git - thirdparty/gettext.git/commit
intl: Support any Unicode characters in the locale dir on native Windows.
authorBruno Haible <bruno@clisp.org>
Sun, 19 Apr 2020 22:46:44 +0000 (00:46 +0200)
committerBruno Haible <bruno@clisp.org>
Sun, 19 Apr 2020 22:46:44 +0000 (00:46 +0200)
commit2e397fbb43fa0c6008897b50ccd2b9ffcd0a0cb5
tree7c4ad55bc33874bbec2a8961078ca1a4bc74741d
parent1fe844020a61ed779aeab71da216d41bb26d3b68
intl: Support any Unicode characters in the locale dir on native Windows.

Reported at <https://savannah.gnu.org/bugs/?57714>.

* gettext-runtime/intl/libgnuintl.in.h (libintl_wbindtextdomain): New
declaration.
(wbindtextdomain): New redirect.
* gettext-runtime/intl/bindtextdom.c (set_binding_values): Accept a wdirnamep
argument. Set not only binding->dirname but also binding->wdirname.
(BINDTEXTDOMAIN, BIND_TEXTDOMAIN_CODESET): Pass NULL as wdirnamep.
(libintl_wbindtextdomain): New function.
* gettext-runtime/intl/loadinfo.h (struct loaded_l10nfile): Add a wfilename
field.
(_nl_make_l10nflist): On native Windows, accept wdirlist, wdirlist_len
parameters.
* gettext-runtime/intl/loadmsgcat.c (_nl_load_domain): On native Windows, use
_wopen() instead of open() to open a file with a name given as wchar_t[].
* gettext-runtime/intl/l10nflist.c: Include <wchar.h>.
(_nl_make_l10nflist): On native Windows, accept wdirlist, wdirlist_len
parameters. Construct abs_wfilename and use in the search for existing
'struct loaded_l10nfile' and when allocating a fresh 'struct loaded_l10nfile'.
* gettext-runtime/intl/gettextP.h (struct binding): Add a wdirname field.
(_nl_find_domain): On native Windows, accept a wdirname parameter.
* gettext-runtime/intl/finddomain.c (_nl_find_domain): On native Windows, accept
a wdirname parameter. Pass it to _nl_make_l10nflist.
* gettext-runtime/intl/dcigettext.c (DCIGETTEXT): Consider not only
binding->dirname but also binding->wdirname. On native Windows, use _wgetcwd
instead of getcwd. Pass also wdirname to _nl_find_domain.
* gettext-tools/tests/intl-6: New file, based on gettext-tools/tests/intl-1.
* gettext-tools/tests/intl-6-prg.c: New file, based on
gettext-tools/tests/intl-1-prg.c.
* gettext-tools/tests/Makefile.am (TESTS): Add intl-6.
(check_PROGRAMS): Add intl-6-prg.
(intl_6_prg_SOURCES, intl_6_prg_LDADD): New variables.
* gettext-tools/doc/gettext.texi (Ambiguities, src/Makefile,
Language Implementors, C): Document wbindtextdomain.
* gettext-runtime/NEWS: Mention the change.
* NEWS: Likewise.
14 files changed:
NEWS
gettext-runtime/NEWS
gettext-runtime/intl/bindtextdom.c
gettext-runtime/intl/dcigettext.c
gettext-runtime/intl/finddomain.c
gettext-runtime/intl/gettextP.h
gettext-runtime/intl/l10nflist.c
gettext-runtime/intl/libgnuintl.in.h
gettext-runtime/intl/loadinfo.h
gettext-runtime/intl/loadmsgcat.c
gettext-tools/doc/gettext.texi
gettext-tools/tests/Makefile.am
gettext-tools/tests/intl-6 [new file with mode: 0755]
gettext-tools/tests/intl-6-prg.c [new file with mode: 0644]