.
[gnulib.git] / lib / error.h
index 4f28523..e288a79 100644 (file)
 #ifndef _error_h_
 #define _error_h_
 
-#if __GNUC__ >= 2 && defined (__GNUC_MINOR__) \
-    && __GNUC_MINOR__ >= 5 && !defined (__STRICT_ANSI__)
-#define PRINTF_ATTRIBUTE __attribute__ ((format (printf, 3, 4)))
-#else
-#define PRINTF_ATTRIBUTE /* empty */
+#ifndef __attribute__
+/* This feature is available in gcc versions 2.5 and later.  */
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
+#  define __attribute__(Spec) /* empty */
+# endif
+/* The __-protected variants of `format' and `printf' attributes
+   are accepted by gcc versions 2.6.4 (effectively 2.7) and later.  */
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
+#  define __format__ format
+#  define __printf__ printf
+# endif
 #endif
 
-#if __GNUC__
-void error (int, int, const char *, ...) PRINTF_ATTRIBUTE ;
+#if __STDC__
+void error (int, int, const char *, ...) \
+  __attribute__ ((__format__ (__printf__, 3, 4)));
 #else
 void error ();
 #endif
 
+/* This variable is incremented each time `error' is called.  */
+extern unsigned int error_message_count;
+
 #endif /* _error_h_ */