[Gnucash-changes] Improved checks for scanf %lld and %qd as per gc-devel mail.

Derek Atkins warlord at cvs.gnucash.org
Sun Jul 4 23:24:05 EDT 2004


Log Message:
-----------
Improved checks for scanf %lld and %qd as per gc-devel mail.

	* acinclude.m4: create a SCANF_QD_CHECK and make sure both
	  that and SCANF_LLD_CHECK are "long long" constant-safe 
	* configure.in: use the new SCANF_QD_CHECK and use it
	  earlier in the configuration.

Modified Files:
--------------
    gnucash:
        ChangeLog
        acinclude.m4
        configure.in

Revision Data
-------------
Index: configure.in
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/configure.in,v
retrieving revision 1.392
retrieving revision 1.393
diff -Lconfigure.in -Lconfigure.in -u -r1.392 -r1.393
--- configure.in
+++ configure.in
@@ -106,6 +106,13 @@
 
 STRUCT_TM_GMTOFF_CHECK
 SCANF_LLD_CHECK
+if test $am_cv_scanf_lld = "no"; then
+  SCANF_QD_CHECK
+
+  if test $am_cv_scanf_qs = "no"; then
+    AC_MSG_ERROR([cannot continue, no long long conversion support in scanf])
+  fi
+fi
 
 AC_CHECK_HEADERS(ltdl.h)
 if test "x$ac_cv_header_ltdl_h" = xno; then
@@ -1030,31 +1037,6 @@
 fi
 AC_SUBST(LC_MESSAGES_ENUM)
 
-if test $am_cv_scanf_lld = "no"; then
-  AC_MSG_CHECKING(if scanf supports %qd conversion)
-  AC_TRY_RUN([
-#include <stdio.h>
-#include <stdlib.h>
-
-int main ()
-{
-  long long int d;
-  d = 0;
-  if ((sscanf ("10000000000", "%qd", &d) != 1) || (d != 10000000000))
-    exit (1);
-  exit (0);
-}
-],[
-        AC_DEFINE(HAVE_SCANF_QD, 1,
-            [Define if scanf supports %qd conversions.])
-        AC_MSG_RESULT(yes)
-        ],[
-        AC_MSG_RESULT(no)
-        AC_MSG_ERROR([cannot continue, no long long conversion support in scanf])
-        ])
-fi
-
-
 ### --------------------------------------------------------------------------
 ### GnuCash flags and libs configuration
 
Index: ChangeLog
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/ChangeLog,v
retrieving revision 1.1823
retrieving revision 1.1824
diff -LChangeLog -LChangeLog -u -r1.1823 -r1.1824
--- ChangeLog
+++ ChangeLog
@@ -1,3 +1,10 @@
+2004-07-04  Derek Atkins  <derek at ihtfp.com>
+
+	* acinclude.m4: create a SCANF_QD_CHECK and make sure both
+	  that and SCANF_LLD_CHECK are "long long" constant-safe 
+	* configure.in: use the new SCANF_QD_CHECK and use it
+	  earlier in the configuration.
+
 2004-07-02  Derek Atkins  <derek at ihtfp.com>
 
 	* src/gnome/dialog-print-check.c:
Index: acinclude.m4
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/acinclude.m4,v
retrieving revision 1.20
retrieving revision 1.21
diff -Lacinclude.m4 -Lacinclude.m4 -u -r1.20 -r1.21
--- acinclude.m4
+++ acinclude.m4
@@ -4337,9 +4337,12 @@
 int main ()
 {
   long long int d;
+  long long int e;
 
   d = 0;
-  if ((sscanf ("10000000000", "%lld", &d) != 1) || (d != 10000000000))
+  e =  100000;
+  e *= 100000;
+  if ((sscanf ("10000000000", "%lld", &d) != 1) || (d != e))
     exit (1);
 
   exit (0);
@@ -4352,3 +4355,33 @@
       [Define if scanf supports %lld conversions.])
   fi
 ])
+
+AC_DEFUN([SCANF_QD_CHECK],
+[
+  AC_CACHE_CHECK([if scanf supports %qd conversions],
+                 am_cv_scanf_qd,
+      AC_TRY_RUN([
+#include <stdio.h>
+#include <stdlib.h>
+
+int main ()
+{
+  long long int d;
+  long long int e;
+
+  d = 0;
+  e =  100000;
+  e *= 100000;
+  if ((sscanf ("10000000000", "%qd", &d) != 1) || (d != e))
+    exit (1);
+
+  exit (0);
+}
+],
+        am_cv_scanf_qd=yes,
+        am_cv_scanf_qd=no))
+  if test $am_cv_scanf_qd = yes; then
+    AC_DEFINE(HAVE_SCANF_QD, 1,
+      [Define if scanf supports %qd conversions.])
+  fi
+])


More information about the gnucash-changes mailing list