1998-09-07 07:45:24 +08:00
|
|
|
#ifndef _LIBINTL_H
|
1995-11-11 04:38:31 +08:00
|
|
|
#include <intl/libintl.h>
|
Installed header hygiene (BZ#20366): Test of installed headers.
This adds a test to ensure that the problems fixed in the last several
patches do not recur. Each directory checks the headers that it
installs for two properties: first, each header must be compilable in
isolation, as both C and C++, under a representative combination of
language and library conformance levels; second, there is a blacklist
of identifiers that may not appear in any installed header, currently
consisting of the legacy BSD typedefs. (There is an exemption for the
headers that define those typedefs, and for the RPC headers. It may be
necessary to make this more sophisticated if we add more stuff to the
blacklist in the future.)
In order for this test to work correctly, every wrapper header
that actually defines something must guard those definitions with
#ifndef _ISOMAC. This is the existing mechanism used by the conform/
tests to tell wrapper headers not to define anything that the public
header wouldn't, and not to use anything from libc-symbols.h. conform/
only cares for headers that we need to check for standards conformance,
whereas this test applies to *every* header. (Headers in include/ that
are either installed directly, or are internal-use-only and do *not*
correspond to any installed header, are not affected.)
* scripts/check-installed-headers.sh: New script.
* Rules: In each directory that defines header files to be installed,
run check-installed-headers.sh on them as a special test.
* Makefile: Likewise for the headers installed at top level.
* include/aliases.h, include/alloca.h, include/argz.h
* include/arpa/nameser.h, include/arpa/nameser_compat.h
* include/elf.h, include/envz.h, include/err.h
* include/execinfo.h, include/fpu_control.h, include/getopt.h
* include/gshadow.h, include/ifaddrs.h, include/libintl.h
* include/link.h, include/malloc.h, include/mcheck.h
* include/mntent.h, include/netinet/ether.h
* include/nss.h, include/obstack.h, include/printf.h
* include/pty.h, include/resolv.h, include/rpc/auth.h
* include/rpc/auth_des.h, include/rpc/auth_unix.h
* include/rpc/clnt.h, include/rpc/des_crypt.h
* include/rpc/key_prot.h, include/rpc/netdb.h
* include/rpc/pmap_clnt.h, include/rpc/pmap_prot.h
* include/rpc/pmap_rmt.h, include/rpc/rpc.h
* include/rpc/rpc_msg.h, include/rpc/svc.h
* include/rpc/svc_auth.h, include/rpc/xdr.h
* include/rpcsvc/nis_callback.h, include/rpcsvc/nislib.h
* include/rpcsvc/yp.h, include/rpcsvc/ypclnt.h
* include/rpcsvc/ypupd.h, include/shadow.h
* include/stdio_ext.h, include/sys/epoll.h
* include/sys/file.h, include/sys/gmon.h, include/sys/ioctl.h
* include/sys/prctl.h, include/sys/profil.h
* include/sys/statfs.h, include/sys/sysctl.h
* include/sys/sysinfo.h, include/ttyent.h, include/utmp.h
* sysdeps/arm/nacl/include/bits/setjmp.h
* sysdeps/mips/include/sys/asm.h
* sysdeps/unix/sysv/linux/include/sys/sysinfo.h
* sysdeps/unix/sysv/linux/include/sys/timex.h
* sysdeps/x86/fpu/include/bits/fenv.h:
Add #ifndef _ISOMAC guard around internal declarations.
Add multiple-inclusion guard if not already present.
2016-08-24 09:19:17 +08:00
|
|
|
|
|
|
|
# ifndef _ISOMAC
|
|
|
|
|
2000-08-29 07:52:21 +08:00
|
|
|
#include <locale.h>
|
1998-08-10 01:39:48 +08:00
|
|
|
|
|
|
|
/* Now define the internal interfaces. */
|
2012-01-08 12:57:22 +08:00
|
|
|
extern char *__gettext (const char *__msgid)
|
2002-05-02 00:41:24 +08:00
|
|
|
__attribute_format_arg__ (1);
|
2012-01-08 12:57:22 +08:00
|
|
|
extern char *__dgettext (const char *__domainname,
|
|
|
|
const char *__msgid)
|
2002-05-02 00:41:24 +08:00
|
|
|
__attribute_format_arg__ (2);
|
2012-01-08 12:57:22 +08:00
|
|
|
extern char *__dcgettext (const char *__domainname,
|
|
|
|
const char *__msgid, int __category)
|
2002-05-02 00:41:24 +08:00
|
|
|
__attribute_format_arg__ (2);
|
2005-06-14 23:55:44 +08:00
|
|
|
libc_hidden_proto (__dcgettext)
|
2002-05-02 00:41:24 +08:00
|
|
|
|
2012-01-08 12:57:22 +08:00
|
|
|
extern char *__ngettext (const char *__msgid1, const char *__msgid2,
|
2002-05-02 00:41:24 +08:00
|
|
|
unsigned long int __n)
|
|
|
|
__attribute_format_arg__ (1) __attribute_format_arg__ (2);
|
2012-01-08 12:57:22 +08:00
|
|
|
extern char *__dngettext (const char *__domainname,
|
|
|
|
const char *__msgid1, const char *__msgid2,
|
2002-05-02 00:41:24 +08:00
|
|
|
unsigned long int __n)
|
|
|
|
__attribute_format_arg__ (2) __attribute_format_arg__ (3);
|
2012-01-08 12:57:22 +08:00
|
|
|
extern char *__dcngettext (const char *__domainname,
|
|
|
|
const char *__msgid1, const char *__msgid2,
|
2002-05-02 00:41:24 +08:00
|
|
|
unsigned long int __n, int __category)
|
|
|
|
__attribute_format_arg__ (2) __attribute_format_arg__ (3);
|
|
|
|
|
2012-01-08 12:57:22 +08:00
|
|
|
extern char *__textdomain (const char *__domainname);
|
|
|
|
extern char *__bindtextdomain (const char *__domainname,
|
|
|
|
const char *__dirname);
|
|
|
|
extern char *__bind_textdomain_codeset (const char *__domainname,
|
|
|
|
const char *__codeset);
|
2002-05-02 00:41:24 +08:00
|
|
|
|
1999-06-19 17:58:37 +08:00
|
|
|
extern const char _libc_intl_domainname[];
|
[BZ #284, BZ #721]
* intl/dcigettext.c (_nl_find_msg): Add a cast.
* nis/nis_clone_dir.c (nis_clone_directory): Use char * for ADDR.
* nis/nis_clone_obj.c (nis_clone_object): Likewise.
* nis/nis_clone_res.c (nis_clone_result): Likewise.
* resolv/nss_dns/dns-network.c (getanswer_r): Use const unsigned char *
for END_OF_MESSAGE and CP.
* resolv/res_send.c (send_dg): Add else branch for case impossible
unless `poll' is buggy.
* crypt/crypt_util.c (__setkey_r): Add a cast.
* locale/programs/linereader.c (get_toplvl_escape): Use size_t for
NBYTES, and unsigned char * for BYTES.
* locale/programs/charmap.c (charmap_new_char): Use size_t and
unsighed char * for NBYTES, BYTES parameters.
* sysdeps/generic/dl-hash.h (_dl_elf_hash): Take const char * argument
and cast it.
* sysdeps/i386/i686/dl-hash.h (_dl_elf_hash): Likewise.
* sunrpc/create_xid.c (_create_xid): Don't use unsigned long for RES.
* sunrpc/svcauth_des.c (_svcauth_des): Fix cast type.
* sunrpc/auth_des.c (authdes_create): Don't use u_char for PKEY_DATA.
(authdes_marshal): Don't use unsigned int for LEN.
* sunrpc/xdr.c (xdr_hyper): Don't use unsigned long for T2.
(xdr_u_hyper): Likewise.
(xdr_u_short): Don't use u_long for L.
* sunrpc/xdr_intXX_t.c (xdr_int64_t): Don't use uint32_t for T2.
* inet/rexec.c (rexec_af): Use socklen_t.
* sunrpc/key_call.c (getkeyserv_handle): Likewise.
* sunrpc/rtime.c (rtime): Likewise.
* resolv/res_send.c (send_vc, send_dg): Likewise.
* nis/nis_callback.c (__nis_create_callback): Likewise.
* sysdeps/generic/libc-start.c: Use unsigned int for nthreads ptr.
* sysdeps/posix/getaddrinfo.c (gaih_inet): Fix type of ADDR local.
* libio/libio.h (_IO_BE): Add parenthesis around EXPR.
* intl/dcigettext.c (INTVARDEF, INTUSE): Macros removed.
(_nl_default_dirname): Use libc_hidden_data_def instead of INTVARDEF.
(libc_freeres_fn, DCIGETTEXT): Don't use INTUSE.
* intl/bindtextdom.c (INTUSE): Macro removed.
(_nl_default_dirname): Use libc_hidden_proto.
(set_binding_values): Don't use INTUSE.
* include/libintl.h (_libc_intl_domainname_internal): Decl removed.
(_libc_intl_domainname): Use libc_hidden_proto.
* posix/regex_internal.h (gettext): Remove INTUSE on it.
* locale/SYS_libc.c (_libc_intl_domainname): Use libc_hidden_data_def
rather than INTDEF.
* include/libintl.h (_): Don't use *_internal name.
* ctype/ctype-extn.c (__ctype_tolower, __ctype_toupper): Use int32_t,
not uint32_t.
* locale/lc-ctype.c (_nl_postload_ctype): Likewise for assignments.
* iconv/gconv_open.c (__gconv_open): Remove useless cast.
[BZ #721]
* sysdeps/i386/dl-machine.h (ELF_MACHINE_NO_RELA): Define this outside
of [RESOLVE_MAP].
* sysdeps/sh/dl-machine.h (ELF_MACHINE_NO_REL): Likewise.
* sysdeps/powerpc/powerpc32/dl-machine.h
(elf_machine_rel, elf_machine_rel_relative): Removed.
* sysdeps/powerpc/powerpc64/dl-machine.h
(elf_machine_rel, elf_machine_rel_relative): Removed.
2005-02-03 Alexandre Oliva <aoliva@redhat.com>
[BZ #721]
* elf/dynamic-link.h: Don't declare nested auto functions that are
not going to be defined.
2004-07-23 Jakub Jelinek <jakub@redhat.com>
[BZ #284]
* include/features.h (_POSIX_SOURCE, _POSIX_C_SOURCE): Define
if _XOPEN_SOURCE >= 500 even if __STRICT_ANSI__ is defined.
2005-02-16 Roland McGrath <roland@redhat.com>
2005-02-17 09:19:55 +08:00
|
|
|
libc_hidden_proto (_libc_intl_domainname)
|
1999-06-19 17:58:37 +08:00
|
|
|
|
2020-05-06 23:35:21 +08:00
|
|
|
/* _ marks its argument, a string literal, for translation, and
|
|
|
|
performs translation at run time if the LC_MESSAGES locale category
|
|
|
|
has been set. The MSGID argument is extracted, added to the
|
|
|
|
translation database, and eventually submitted to the translation
|
|
|
|
team for processing. New translations are periodically
|
|
|
|
incorporated into the glibc source tree as part of translation
|
|
|
|
updates. */
|
|
|
|
# undef _
|
|
|
|
# define _(msgid) __dcgettext (_libc_intl_domainname, msgid, LC_MESSAGES)
|
|
|
|
|
|
|
|
/* N_ marks its argument, a string literal, for translation, so that
|
|
|
|
it is extracted and added to the translation database (similar to
|
|
|
|
the _ macro above). It does not translate the string at run time.
|
|
|
|
The first, primary use case for N_ is a context in which a string
|
|
|
|
literal is required, such as an initializer. Translation will
|
|
|
|
happen later, for example using the __gettext function.
|
1999-06-19 17:58:37 +08:00
|
|
|
|
2020-05-06 23:35:21 +08:00
|
|
|
The second, historic, use case involves strings which may be
|
|
|
|
translated in a future version of the library, but cannot be
|
|
|
|
translated in current releases due to some technical limitation
|
|
|
|
(e.g., gettext not being available in the dynamic loader). No
|
|
|
|
translation at run time happens in such cases. In the future, this
|
|
|
|
historic usage of N_ may become deprecated. Strings which are not
|
|
|
|
translated create unnecessary work for the translation team. We
|
|
|
|
continue to use N_ because it helps mark translatable strings. */
|
1999-07-24 07:10:36 +08:00
|
|
|
# undef N_
|
1999-06-19 17:58:37 +08:00
|
|
|
# define N_(msgid) msgid
|
|
|
|
|
Installed header hygiene (BZ#20366): Test of installed headers.
This adds a test to ensure that the problems fixed in the last several
patches do not recur. Each directory checks the headers that it
installs for two properties: first, each header must be compilable in
isolation, as both C and C++, under a representative combination of
language and library conformance levels; second, there is a blacklist
of identifiers that may not appear in any installed header, currently
consisting of the legacy BSD typedefs. (There is an exemption for the
headers that define those typedefs, and for the RPC headers. It may be
necessary to make this more sophisticated if we add more stuff to the
blacklist in the future.)
In order for this test to work correctly, every wrapper header
that actually defines something must guard those definitions with
#ifndef _ISOMAC. This is the existing mechanism used by the conform/
tests to tell wrapper headers not to define anything that the public
header wouldn't, and not to use anything from libc-symbols.h. conform/
only cares for headers that we need to check for standards conformance,
whereas this test applies to *every* header. (Headers in include/ that
are either installed directly, or are internal-use-only and do *not*
correspond to any installed header, are not affected.)
* scripts/check-installed-headers.sh: New script.
* Rules: In each directory that defines header files to be installed,
run check-installed-headers.sh on them as a special test.
* Makefile: Likewise for the headers installed at top level.
* include/aliases.h, include/alloca.h, include/argz.h
* include/arpa/nameser.h, include/arpa/nameser_compat.h
* include/elf.h, include/envz.h, include/err.h
* include/execinfo.h, include/fpu_control.h, include/getopt.h
* include/gshadow.h, include/ifaddrs.h, include/libintl.h
* include/link.h, include/malloc.h, include/mcheck.h
* include/mntent.h, include/netinet/ether.h
* include/nss.h, include/obstack.h, include/printf.h
* include/pty.h, include/resolv.h, include/rpc/auth.h
* include/rpc/auth_des.h, include/rpc/auth_unix.h
* include/rpc/clnt.h, include/rpc/des_crypt.h
* include/rpc/key_prot.h, include/rpc/netdb.h
* include/rpc/pmap_clnt.h, include/rpc/pmap_prot.h
* include/rpc/pmap_rmt.h, include/rpc/rpc.h
* include/rpc/rpc_msg.h, include/rpc/svc.h
* include/rpc/svc_auth.h, include/rpc/xdr.h
* include/rpcsvc/nis_callback.h, include/rpcsvc/nislib.h
* include/rpcsvc/yp.h, include/rpcsvc/ypclnt.h
* include/rpcsvc/ypupd.h, include/shadow.h
* include/stdio_ext.h, include/sys/epoll.h
* include/sys/file.h, include/sys/gmon.h, include/sys/ioctl.h
* include/sys/prctl.h, include/sys/profil.h
* include/sys/statfs.h, include/sys/sysctl.h
* include/sys/sysinfo.h, include/ttyent.h, include/utmp.h
* sysdeps/arm/nacl/include/bits/setjmp.h
* sysdeps/mips/include/sys/asm.h
* sysdeps/unix/sysv/linux/include/sys/sysinfo.h
* sysdeps/unix/sysv/linux/include/sys/timex.h
* sysdeps/x86/fpu/include/bits/fenv.h:
Add #ifndef _ISOMAC guard around internal declarations.
Add multiple-inclusion guard if not already present.
2016-08-24 09:19:17 +08:00
|
|
|
# endif /* !_ISOMAC */
|
1998-09-07 07:45:24 +08:00
|
|
|
#endif
|