ngettext support
authorAlan Modra <amodra@gmail.com>
Mon, 6 Nov 2017 04:50:00 +0000 (15:20 +1030)
committerAlan Modra <amodra@gmail.com>
Tue, 7 Nov 2017 05:22:52 +0000 (15:52 +1030)
commit6003e27e764ff62c1269a3ac6b5806b3fa3a1740
tree125e03b0bdd66e466783db8e792950967b245232
parent84d5321fdfdc5c086734f441fb31fa9ace2e86aa
ngettext support

binutils has lacked proper pluralization of output messages for a long
time, for example, readelf will display information about a section
that "contains 1 entries" or "There are 1 section headers".  Fixing
this properly requires us to use ngettext, because other languages
have different rules to English.

This patch defines macros for ngettext and friends to handle builds
with --disable-nls, and tidies the existing nls support.  I've
redefined gettext rather than just defining "_" as dgettext in bfd and
opcodes in case someone wants to use gettext there (which might
conceivably happen with generated code).

bfd/
* sysdep.h: Formatting, comment fixes.
(gettext, ngettext): Redefine when ENABLE_NLS.
(ngettext, dngettext, dcngettext): Define when !ENABLE_NLS.
(_): Define using gettext.
(textdomain, bindtextdomain): Use safer "do nothing".
* hosts/alphavms.h (textdomain, bindtextdomain): Likewise.
(ngettext, dngettext, dcngettext): Define when !ENABLE_NLS.
opcodes/
* opintl.h: Formatting, comment fixes.
(gettext, ngettext): Redefine when ENABLE_NLS.
(ngettext, dngettext, dcngettext): Define when !ENABLE_NLS.
(_): Define using gettext.
(textdomain, bindtextdomain): Use safer "do nothing".
binutils/
* sysdep.h (textdomain, bindtextdomain): Use safer "do nothing".
(ngettext, dngettext, dcngettext): Define when !ENABLE_NLS.
gas/
* asintl.h (textdomain, bindtextdomain): Use safer "do nothing".
(ngettext, dngettext, dcngettext): Define when !ENABLE_NLS.
gold/
* system.h (textdomain, bindtextdomain): Use safer "do nothing".
(ngettext, dngettext, dcngettext): Define when !ENABLE_NLS.
ld/
* ld.h (textdomain, bindtextdomain): Use safer "do nothing".
(ngettext, dngettext, dcngettext): Define when !ENABLE_NLS.
13 files changed:
bfd/ChangeLog
bfd/hosts/alphavms.h
bfd/sysdep.h
binutils/ChangeLog
binutils/sysdep.h
gas/ChangeLog
gas/asintl.h
gold/ChangeLog
gold/system.h
ld/ChangeLog
ld/ld.h
opcodes/ChangeLog
opcodes/opintl.h