summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorrofl0r <retnyg@gmx.net>2013-02-27 19:10:56 +0100
committerrofl0r <retnyg@gmx.net>2013-02-27 19:12:52 +0100
commitabfd8c916131188a1718983f71eefc9216ae6d23 (patch)
treef42cfb840b5338d2e1f67370a6ccbf1425790d9d /include
parente5ceca4304653b036e91122cb633e103522fcf2b (diff)
downloadgettext-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')
-rw-r--r--include/libintl.h42
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>