From abfd8c916131188a1718983f71eefc9216ae6d23 Mon Sep 17 00:00:00 2001 From: rofl0r Date: Wed, 27 Feb 2013 19:10:56 +0100 Subject: libintl.h: complete macro set and possibility to disable them in some cases it may be desirable to link to -lintl rather than getting all macros expand to no-ops. --- include/libintl.h | 42 ++++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 14 deletions(-) (limited to 'include') diff --git a/include/libintl.h b/include/libintl.h index 99e5cb1..49f19be 100644 --- a/include/libintl.h +++ b/include/libintl.h @@ -1,24 +1,38 @@ #ifndef LIBINTL_H #define LIBINTL_H -#define gettext(X) (char*) (X) -#define dgettext(dom, X) (char*) (X) -#define dcgettext(dom, X, cat) (char*) (X) -#define ngettext(X, Y, N) (char*) ((N == 1) ? X : Y) -#define dngettext(dom, X, Y, N) (char*) ((N == 1) ? X : Y) -#define dcngettext(dom, X, Y, N, cat) (char*) ((N == 1) ? X : Y) +char *gettext(const char *msgid); +char *dgettext(const char *domainname, const char *msgid); +char *dcgettext(const char *domainname, const char *msgid, int category); +char *ngettext(const char *msgid1, const char *msgid2, unsigned long n); +char *dngettext(const char *domainname, const char *msgid1, const char *msgid2, unsigned long n); +char *dcngettext(const char *domainname, const char *msgid1, const char *msgid2, unsigned long n, int category); -#define gettext_noop(X) (X) - -#if 0 -// FIXME these should return something -#define bindtextdomain(X, Y) -#define textdomain(X) -#define bind_textdomain_codeset(dom, codeset) -#else char *textdomain(const char *domainname); char *bind_textdomain_codeset(const char *domainname, const char *codeset); char *bindtextdomain(const char *domainname, const char *dirname); + +#define gettext_noop(X) (X) + +#ifndef LIBINTL_NO_MACROS +/* if these macros are defined, configure checks will detect libintl as + * built into the libc because test programs will work without -lintl. + * for example: + * checking for ngettext in libc ... yes + * the consequence is that -lintl will not be added to the LDFLAGS. + * so if for some reason you want that libintl.a gets linked, + * add -DLIBINTL_NO_MACROS=1 to your CPPFLAGS. */ + +#define gettext(X) ((char*) (X)) +#define dgettext(dom, X) ((char*) (X)) +#define dcgettext(dom, X, cat) ((char*) (X)) +#define ngettext(X, Y, N) ((char*) ((N == 1) ? X : Y)) +#define dngettext(dom, X, Y, N) ((char*) ((N == 1) ? X : Y)) +#define dcngettext(dom, X, Y, N, cat) ((char*) ((N == 1) ? X : Y)) +#define bindtextdomain(X, Y) ((char*) "/") +#define bind_textdomain_codeset(dom, codeset) ((char*) 0) +#define textdomain(X) ((char*) "messages") + #endif #include -- cgit v1.2.1