#ifndef TEST_NLS_GETTEXT_H_
#define TEST_NLS_GETTEXT_H_
-#define gettext(s) (s)
-#define pgettext_expr(a, s) (s)
+#include <stdio.h>
+#include <stdarg.h>
+
+/*
+ * We don't need a real snprintf for testing help functionality; substitute
+ * using vsprintf to ease testing on C89 implementations.
+ */
+#define help_do_snprintf help_do_snprintf
+static inline int help_do_snprintf(char *buf, size_t n, const char *fmt, ...)
+{
+ va_list ap;
+ int ret;
+
+ va_start(ap, fmt);
+ ret = vsprintf(buf, fmt, ap);
+ va_end(ap);
+
+ return ret;
+}
+
+/*
+ * Do nothing, but try to tickle a crash if a bogus string argument is
+ * passed as the real functions dereference the provided pointers.
+ */
+#define gettext(s) (*(volatile char *)s, s)
+#define pgettext_expr(c, s) (*(volatile char *)c + *(volatile char *)s, s)
#endif