From: Bruno Haible Date: Sat, 30 Sep 2023 20:30:45 +0000 (+0200) Subject: intl: Fix compilation error from previous commit. X-Git-Tag: v0.23~359 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4ea8901fd70f45365213e86101a14bf93540b198;p=thirdparty%2Fgettext.git intl: Fix compilation error from previous commit. * gettext-runtime/intl/dcigettext.c (DCIGETTEXT) [!_LIBC]: Compute the resolved dirname without using __asprintf. --- diff --git a/gettext-runtime/intl/dcigettext.c b/gettext-runtime/intl/dcigettext.c index 9a6ae7b16..0ba129d58 100644 --- a/gettext-runtime/intl/dcigettext.c +++ b/gettext-runtime/intl/dcigettext.c @@ -674,10 +674,30 @@ DCIGETTEXT (const char *domainname, const char *msgid1, const char *msgid2, signal an error but simply return the default string. */ goto return_untranslated; +# ifdef _LIBC int ret = __asprintf (&xdirname, "%s/%s", cwd, dirname); free (cwd); if (ret < 0) goto return_untranslated; +# else + size_t cwd_len = strlen (cwd); + size_t dirname_len = strlen (dirname) + 1; + char *resolved_dirname = (char *) malloc (cwd_len + 1 + dirname_len); + if (resolved_dirname == NULL) + { + /* Memory allocation failure. Don't signal an error + but simply return the default string. */ + free (cwd); + goto return_untranslated; + } + memcpy (resolved_dirname, cwd, cwd_len); + resolved_dirname[cwd_len] = '/'; + memcpy (resolved_dirname + cwd_len + 1, dirname, dirname_len); + + free (cwd); + + xdirname = resolved_dirname; +# endif dirname = xdirname; } #endif