libpq code should use libpq_gettext(), not _()
authorPeter Eisentraut <[email protected]>
Thu, 25 Aug 2022 18:46:58 +0000 (20:46 +0200)
committerPeter Eisentraut <[email protected]>
Thu, 25 Aug 2022 18:46:58 +0000 (20:46 +0200)
Fix some wrong use and install a safeguard against future mistakes.

src/interfaces/libpq/fe-auth-scram.c
src/interfaces/libpq/libpq-int.h

index 396b4ca0f0f6638462c4e3008dd6c9f34e3f462c..35cfd9987de223f416f4caa810f1a1ee674d9261 100644 (file)
@@ -922,7 +922,7 @@ pg_fe_scram_build_secret(const char *password, const char **errstr)
    rc = pg_saslprep(password, &prep_password);
    if (rc == SASLPREP_OOM)
    {
-       *errstr = _("out of memory");
+       *errstr = libpq_gettext("out of memory");
        return NULL;
    }
    if (rc == SASLPREP_SUCCESS)
@@ -931,7 +931,7 @@ pg_fe_scram_build_secret(const char *password, const char **errstr)
    /* Generate a random salt */
    if (!pg_strong_random(saltbuf, SCRAM_DEFAULT_SALT_LEN))
    {
-       *errstr = _("could not generate random salt");
+       *errstr = libpq_gettext("could not generate random salt");
        free(prep_password);
        return NULL;
    }
index 1eb752a82da4aef85dc6c1304bd4fc80ed6c9cb1..c75ed63a2c62c4965f397f5939d071fbde2be842 100644 (file)
@@ -881,6 +881,11 @@ extern char *libpq_ngettext(const char *msgid, const char *msgid_plural, unsigne
 #define libpq_gettext(x) (x)
 #define libpq_ngettext(s, p, n) ((n) == 1 ? (s) : (p))
 #endif
+/*
+ * libpq code should use the above, not _(), since that would use the
+ * surrounding programs's message catalog.
+ */
+#undef _
 
 /*
  * These macros are needed to let error-handling code be portable between