summaryrefslogtreecommitdiff
path: root/src/interfaces/libpq/fe-misc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaces/libpq/fe-misc.c')
-rw-r--r--src/interfaces/libpq/fe-misc.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/interfaces/libpq/fe-misc.c b/src/interfaces/libpq/fe-misc.c
index fc930bd05b8..44f7d039784 100644
--- a/src/interfaces/libpq/fe-misc.c
+++ b/src/interfaces/libpq/fe-misc.c
@@ -1210,14 +1210,14 @@ PQenv2encoding(void)
#ifdef ENABLE_NLS
-char *
-libpq_gettext(const char *msgid)
+static void
+libpq_binddomain()
{
static bool already_bound = false;
if (!already_bound)
{
- /* dgettext() preserves errno, but bindtextdomain() doesn't */
+ /* bindtextdomain() does not preserve errno */
#ifdef WIN32
int save_errno = GetLastError();
#else
@@ -1237,8 +1237,20 @@ libpq_gettext(const char *msgid)
errno = save_errno;
#endif
}
+}
+char *
+libpq_gettext(const char *msgid)
+{
+ libpq_binddomain();
return dgettext(PG_TEXTDOMAIN("libpq"), msgid);
}
+char *
+libpq_ngettext(const char *msgid, const char *msgid_plural, unsigned long n)
+{
+ libpq_binddomain();
+ return dngettext(PG_TEXTDOMAIN("libpq"), msgid, msgid_plural, n);
+}
+
#endif /* ENABLE_NLS */