On machines lacking a libintl, _intlize() currently fails to initialize
the output error string--leading to tools (e.g., translate_et) returning
a null string; make afs_com_err fall back to returning the en/US canonical
error text when we don't have any i18n support...
Reviewed-on: http://gerrit.openafs.org/6638
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit
ef63547e955edc60e2d074ef825b091e1c43882e)
Change-Id: Id138e48826aa855bd87e47f201ed6840399aa640
Reviewed-on: http://gerrit.openafs.org/6752
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
static_inline const char *
_intlize(const char *msg, int base, char *str, size_t len)
{
+#if defined(HAVE_LIBINTL)
char domain[12 +20];
+#endif
if (!str)
return msg;
- snprintf(domain, sizeof(domain), "heim_com_err%d", base);
#if defined(HAVE_LIBINTL)
+ snprintf(domain, sizeof(domain), "heim_com_err%d", base);
strlcpy(str, dgettext(domain, msg), len);
+#else
+ strlcpy(str, msg, len);
#endif
return str;
}