From: KO Myung-Hun Date: Tue, 12 Jan 2016 02:35:48 +0000 (+0900) Subject: intl: Support UNIXROOT in BINDTEXTDOMAIN () on EMX X-Git-Tag: v0.19.8~46 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2a23de5580dbe5d6ab67432b9b54e9b8cbc03e7c;p=thirdparty%2Fgettext.git intl: Support UNIXROOT in BINDTEXTDOMAIN () on EMX $UNIXROOT is a drive on which a root of FHS is. * gettext-runtime/intl/bindtextdom.c (BINDTEXTDOMAIN): Prepend $UNIXROOT to dirname if it is started '/' or it is an empty string. --- diff --git a/gettext-runtime/intl/bindtextdom.c b/gettext-runtime/intl/bindtextdom.c index bbb23b901..bd82f1a1f 100644 --- a/gettext-runtime/intl/bindtextdom.c +++ b/gettext-runtime/intl/bindtextdom.c @@ -317,7 +317,33 @@ set_binding_values (const char *domainname, char * BINDTEXTDOMAIN (const char *domainname, const char *dirname) { +#ifdef __EMX__ + const char *saved_dirname = dirname; + char dirname_with_drive[_MAX_PATH]; + + /* Resolve UNIXROOT into dirname if it is not resolved by os2compat.[ch]. */ + if (dirname && (dirname[0] == '/' || dirname[0] == '\\' )) + { + const char *unixroot = getenv ("UNIXROOT"); + size_t len = strlen (dirname) + 1; + + if (unixroot + && unixroot[0] != '\0' + && unixroot[1] == ':' + && unixroot[2] == '\0' + && 2 + len <= _MAX_PATH) + { + memcpy (dirname_with_drive, unixroot, 2); + memcpy (dirname_with_drive + 2, dirname, len); + + dirname = dirname_with_drive; + } + } +#endif set_binding_values (domainname, &dirname, NULL); +#ifdef __EMX__ + dirname = saved_dirname; +#endif return (char *) dirname; }