Module Name:    src
Committed By:   christos
Date:           Mon Jun  8 15:02:33 UTC 2015

Modified Files:
        src/lib/libintl: libintl.h

Log Message:
Another version using inline functions (just as a demo, I'll go back to
defines since they are shorter and inlines don't fix the problem).


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/lib/libintl/libintl.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libintl/libintl.h
diff -u src/lib/libintl/libintl.h:1.6 src/lib/libintl/libintl.h:1.7
--- src/lib/libintl/libintl.h:1.6	Fri Jun  5 16:12:56 2015
+++ src/lib/libintl/libintl.h	Mon Jun  8 11:02:33 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: libintl.h,v 1.6 2015/06/05 20:12:56 christos Exp $	*/
+/*	$NetBSD: libintl.h,v 1.7 2015/06/08 15:02:33 christos Exp $	*/
 
 /*-
  * Copyright (c) 2000 Citrus Project,
@@ -31,24 +31,6 @@
 
 #include <sys/cdefs.h>
 
-#ifndef _LIBGETTEXT_H
-/*
- * Avoid defining these if the GNU gettext compatibility header includes
- * us, since it re-defines those unconditionally and creates inline functions
- * for some of them. This is horrible.
- */
-#define pgettext_expr(msgctxt, msgid) pgettext((msgctxt), (msgid))
-#define dpggettext_expr(domainname, msgctxt, msgid) \
-    dpgettext((domainname), (msgctxt), (msgid))
-#define dcpgettext_expr(domainname, msgctxt, msgid, category) \
-    dcpgettext((domainname), (msgctxt), (msgid), (category))
-#define npgettext_expr(msgctxt, msgid1, msgid2, n) \
-    npgettext((msgctxt), (msgid1), (msgid2), (n))
-#define dnpgettext_expr(domainname, msgctxt, msgid1, n) \
-    dnpgettext((domainname), (msgctxt), (msgid1), (msgid2), (n))
-#define dcnpgettext_expr(domainname, msgctxt, msgid1, msgid2, n, category) \
-    dcnpgettext((domainname), (msgctxt), (msgid1), (msgid2), (n), (category))
-#endif
 
 __BEGIN_DECLS
 char *gettext(const char *) __format_arg(1);
@@ -77,6 +59,56 @@ const char *dcnpgettext(const char *, co
 char *textdomain(const char *);
 char *bindtextdomain(const char *, const char *);
 char *bind_textdomain_codeset(const char *, const char *);
+
+#ifndef _LIBGETTEXT_H
+/*
+ * Avoid defining these if the GNU gettext compatibility header includes
+ * us, since it re-defines those unconditionally and creates inline functions
+ * for some of them. This is horrible.
+ */
+static __inline __format_arg(2) const char *
+pgettext_expr(const char *_msgctxt, const char *_msgid)
+{
+	return pgettext(_msgctxt, _msgid);
+}
+
+static __inline __format_arg(3) const char *
+dpgettext_expr(const char *_domainname, const char *_msgctxt,
+    const char *_msgid)
+{
+	return dpgettext(_domainname, _msgctxt, _msgid);
+}
+
+static __inline __format_arg(3) const char *
+dcpgettext_expr(const char *_domainname, const char *_msgctxt,
+    const char *_msgid, int _category)
+{
+	return dcpgettext(_domainname, _msgctxt, _msgid, _category);
+}
+
+static __inline __format_arg(2) __format_arg(3) const char *
+npgettext_expr(const char *_msgctx, const char *_msgid1, const char *_msgid2,
+    long int _n)
+{
+	return npgettext(_msgctx, _msgid1, _msgid2, _n);
+}
+
+static __inline __format_arg(3) __format_arg(4) const char *
+dnpgettext_expr(const char *_domainname, const char *_msgctx,
+    const char *_msgid1, const char *_msgid2, long int _n)
+{
+	return dnpgettext(_domainname, _msgctx, _msgid1, _msgid2, _n);
+}
+
+static __inline __format_arg(3) __format_arg(4) const char *
+dcnpgettext_expr(const char *_domainname, const char *_msgctx,
+    const char *_msgid1, const char *_msgid2, long int _n, int _category)
+{
+	return dcnpgettext(_domainname, _msgctx, _msgid1, _msgid2, _n,
+	    _category);
+}
+#endif /* _LIBGETTEXT_H */
+
 __END_DECLS
 
 #endif /* _LIBINTL_H_ */

Reply via email to