com_err: correctly deal with lack of libintl
authorTom Keiser <tkeiser@sinenomine.net>
Wed, 1 Feb 2012 08:31:23 +0000 (03:31 -0500)
committerDerrick Brashear <shadow@dementix.org>
Wed, 1 Feb 2012 21:50:50 +0000 (13:50 -0800)
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...

Change-Id: I333745fb0a16e5bc9adb0755591d80de010d4d31
Reviewed-on: http://gerrit.openafs.org/6638
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>

src/comerr/error_msg.c

index e09cce3..0714360 100644 (file)
@@ -154,12 +154,16 @@ _intlize(const char *msg, int base, char *str, size_t len)
 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;
 }