diff options
author | Nick Alcock <nick.alcock@oracle.com> | 2020-07-30 17:43:12 +0100 |
---|---|---|
committer | Nick Alcock <nick.alcock@oracle.com> | 2020-08-27 13:14:10 +0100 |
commit | 987cf30ad80c7c13f713aa8e4ca3e1dbf08e9d63 (patch) | |
tree | ccae55789b8106b42c0dd97d9635e1caa8f5709c /libctf/ctf-intl.h | |
parent | 514b4e191d5f46de8e142fe216e677a35fa9c4bb (diff) | |
download | gdb-987cf30ad80c7c13f713aa8e4ca3e1dbf08e9d63.zip gdb-987cf30ad80c7c13f713aa8e4ca3e1dbf08e9d63.tar.gz gdb-987cf30ad80c7c13f713aa8e4ca3e1dbf08e9d63.tar.bz2 |
libctf, binutils: initial work towards libctf gettextization
We gettextize under our package name, which we change to a more
reasonable 'libctf'. Our internationalization support is mostly
provided by ctf-intl.h, which is a copy of opcodes/opintl.h with
the non-gettext_noop N_() expansion debracketed to avoid pedantic
compiler warnings.
The libctf error strings returned by ctf_errmsg are marked up for
internationalization.
(We also adjust binutils's Makefile a tiny bit to allow for the
fact that libctf now uses functions from libintl.)
binutils/ChangeLog
2020-08-27 Nick Alcock <nick.alcock@oracle.com>
* Makefile.am (readelf_LDADD): Move $(LIBINTL) after $(LIBCTF_NOBFD).
* Makefile.in: Regenerated.
libctf/ChangeLog
2020-08-27 Nick Alcock <nick.alcock@oracle.com>
* configure.ac: Adjust package name to simply 'libctf': arbitrarily
declare this to be version 1.2.0.
* Makefile.am (AM_CPPFLAGS): Add @INCINTL@.
* Makefile.in: Regenerated.
* configure: Regenerated.
* ctf-intl.h: New file, lightly modified from opcodes/opintl.h.
* ctf-impl.h: Include it.
* ctf-error.r (_ctf_errlist_t): Mark strings as noop-translatable.
(ctf_errmsg): Actually translate them.
Diffstat (limited to 'libctf/ctf-intl.h')
-rw-r--r-- | libctf/ctf-intl.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/libctf/ctf-intl.h b/libctf/ctf-intl.h new file mode 100644 index 0000000..af74872 --- /dev/null +++ b/libctf/ctf-intl.h @@ -0,0 +1,68 @@ +/* ctf-intl.h - libctf specific header for gettext code. + Copyright (C) 1998-2020 Free Software Foundation, Inc. + + Written by Tom Tromey <tromey@cygnus.com> + + This file is part of libctf. + + This library 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, or (at your option) + any later version. + + It 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 file; see the file COPYING. If not, write to the + Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ + +#ifndef _CTF_INTL_H +#define _CTF_INTL_H + +#ifdef ENABLE_NLS +# include <libintl.h> +/* Note the redefinition of gettext and ngettext here to use PACKAGE. + + This is because the code in this directory is used to build a + library which will be linked with code in other directories to form + programs. We want to maintain a separate translation file for this + directory however, rather than being forced to merge it with that + of any program linked to libopcodes. This is a library, so it + cannot depend on the catalog currently loaded. + + In order to do this, we have to make sure that when we extract + messages we use the LIBCTF domain rather than the domain of the + program that included the opcodes library, (eg OBJDUMP). Hence we + use dgettext (PACKAGE, String) and define PACKAGE to be 'libctf'. + (See the code in configure). */ +# undef gettext +# define gettext(Msgid) dgettext (PACKAGE, Msgid) +# undef ngettext +# define ngettext(Msgid1, Msgid2, n) dngettext (PACKAGE, Msgid1, Msgid2, n) +# define _(String) gettext (String) +# ifdef gettext_noop +# define N_(String) gettext_noop (String) +# else +# define N_(String) String +# endif +#else +# define gettext(Msgid) (Msgid) +# define dgettext(Domainname, Msgid) (Msgid) +# define dcgettext(Domainname, Msgid, Category) (Msgid) +# define ngettext(Msgid1, Msgid2, n) \ + (n == 1 ? Msgid1 : Msgid2) +# define dngettext(Domainname, Msgid1, Msgid2, n) \ + (n == 1 ? Msgid1 : Msgid2) +# define dcngettext(Domainname, Msgid1, Msgid2, n, Category) \ + (n == 1 ? Msgid1 : Msgid2) +# define textdomain(Domainname) do {} while (0) +# define bindtextdomain(Domainname, Dirname) do {} while (0) +# define _(String) (String) +# define N_(String) String +#endif + +#endif /* _CTF_INTL_H */ |