#ifndef NOTMUCH_COMPAT_H
#define NOTMUCH_COMPAT_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#if !HAVE_GETLINE
#include <stdio.h>
#include <unistd.h>
#endif /* !HAVE_GETLINE */
+#if !HAVE_STRCASESTR
+char* strcasestr(const char *haystack, const char *needle);
+#endif /* !HAVE_STRCASESTR */
+
+/* Silence gcc warnings about unused results. These warnings exist
+ * for a reason; any use of this needs to be justified. */
+#ifdef __GNUC__
+#define IGNORE_RESULT(x) ({ __typeof__(x) __z = (x); (void)(__z = __z); })
+#else /* !__GNUC__ */
+#define IGNORE_RESULT(x) x
+#endif /* __GNUC__ */
+
+#ifdef __cplusplus
+}
+#endif
+
#endif /* NOTMUCH_COMPAT_H */