]> git.draconx.ca Git - dxcommon.git/blobdiff - t/nls/gettext.h
dx_getline: Fix EOF handling in standard C fallback.
[dxcommon.git] / t / nls / gettext.h
index b8a8060bc4bfc4760662ed097a0f2c6e52762745..95bdf14152d29aceb16ed5fd18c58ba8dba5f3cf 100644 (file)
 #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