Printformats cleanup, ugly "%m" handling completely removed.
[mdsms.git] / configure.in
index d2b13f3..329a172 100644 (file)
@@ -134,6 +134,14 @@ for un in __unused__ unused;do
        done
 if $uns;then AC_DEFINE(ATTR_UNUSED,) AC_MSG_RESULT(no);fi
 
+AC_MSG_CHECKING([for printf style attribute])
+AC_TRY_COMPILE([#include <stddef.h>
+void testf(char *fmt,...) __attribute__((format(printf,1,2)));
+void testf(char *fmt,...) {}], [testf("%d",1);],
+       AC_DEFINE(HAVE_PRINTFORMAT) AC_MSG_RESULT(yes),
+                                   AC_MSG_RESULT(no)
+       )
+
 AC_CHECK_FUNC(snprintf, AC_DEFINE(HAVE_SNPRINTF))
 AC_CHECK_FUNC(vsnprintf, AC_DEFINE(HAVE_VSNPRINTF))
 
@@ -148,12 +156,6 @@ dnl AC_TRY_COMPILE([#include <string.h>], [strdup("");],
 dnl    AC_DEFINE(HAVE_STRDUP)  AC_MSG_RESULT(yes),
 dnl    LIBOBJS="$LIBOBJS strdup.o" AC_MSG_RESULT(no))
 
-AC_MSG_CHECKING([for working %m in printf])
-AC_TRY_RUN([int main() { char s[100];
-       sprintf(s,"%m");
-       return(!(strcmp(s,"m") && strcmp(s,"%m")));
-       }],AC_DEFINE(PRINTF_WORKS_PM) AC_MSG_RESULT(yes),AC_MSG_RESULT(no),AC_MSG_RESULT(avoiding))
-
 GCC_NEED_DECLARATION(gethostname, [#include <unistd.h>])
 GCC_NEED_DECLARATION(kill,        [#include <sys/types.h>
 #include <signal.h>])