diff options
author | rofl0r <retnyg@gmx.net> | 2013-02-27 19:10:56 +0100 |
---|---|---|
committer | rofl0r <retnyg@gmx.net> | 2013-02-27 19:12:52 +0100 |
commit | abfd8c916131188a1718983f71eefc9216ae6d23 (patch) | |
tree | f42cfb840b5338d2e1f67370a6ccbf1425790d9d /include/libintl.h | |
parent | e5ceca4304653b036e91122cb633e103522fcf2b (diff) | |
download | gettext-tiny-abfd8c916131188a1718983f71eefc9216ae6d23.tar.gz |
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.
Diffstat (limited to 'include/libintl.h')
-rw-r--r-- | include/libintl.h | 42 |
1 files changed, 28 insertions, 14 deletions
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 <stdio.h> |