about summary refs log tree commit diff
path: root/include/libintl.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/libintl.h')
-rw-r--r--include/libintl.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/include/libintl.h b/include/libintl.h
index dc54ccfc7b..a4d6148d8d 100644
--- a/include/libintl.h
+++ b/include/libintl.h
@@ -8,12 +8,16 @@ extern char *__dgettext (__const char *__domainname,
 			 __const char *__msgid);
 extern char *__dcgettext (__const char *__domainname,
 			  __const char *__msgid, int __category);
+extern char *__dcgettext_internal (__const char *__domainname,
+				   __const char *__msgid, int __category)
+     attribute_hidden;
 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);
 extern const char _libc_intl_domainname[];
+extern const char _libc_intl_domainname_internal[] attribute_hidden;
 
 /* Define the macros `_' and `N_' for conveniently marking translatable
    strings in the libc source code.  We have to make sure we get the
@@ -24,6 +28,12 @@ extern const char _libc_intl_domainname[];
 
 # undef _
 /* This is defined as an optimizing macro, so use it.  */
-# define _(msgid) __dcgettext (_libc_intl_domainname, (msgid), LC_MESSAGES)
+# if !defined NOT_IN_LIBC && defined SHARED
+#  define _(msgid) \
+  __dcgettext_internal (_libc_intl_domainname_internal, (msgid), LC_MESSAGES)
+# else
+#  define _(msgid) \
+  __dcgettext (_libc_intl_domainname, (msgid), LC_MESSAGES)
+#endif
 
 #endif