]> granicus.if.org Git - file/commitdiff
- deal with missing strtof
authorChristos Zoulas <christos@zoulas.com>
Thu, 27 Dec 2007 20:52:35 +0000 (20:52 +0000)
committerChristos Zoulas <christos@zoulas.com>
Thu, 27 Dec 2007 20:52:35 +0000 (20:52 +0000)
- better version mispatch print

config.h.in
configure
configure.in
src/apprentice.c

index a745cf13204cb7385aee3463a437ca019bc5dcf2..281a4e40e7ed05dc8da50767ae66f11d5f9eca7b 100644 (file)
@@ -72,6 +72,9 @@
 /* Define to 1 if you have the `strndup' function. */
 #undef HAVE_STRNDUP
 
+/* Define to 1 if you have the `strtof' function. */
+#undef HAVE_STRTOF
+
 /* Define to 1 if you have the `strtoul' function. */
 #undef HAVE_STRTOUL
 
index 42225b1c90298702c34a35e2b41b7b88d4c31d45..2e420449e2888e2021e6bde01b50ad8bc4c2150b 100755 (executable)
--- a/configure
+++ b/configure
@@ -23398,7 +23398,8 @@ _ACEOF
 
 
 
-for ac_func in mmap strerror strndup strtoul mbrtowc mkstemp getopt_long utimes utime wcwidth snprintf vsnprintf
+
+for ac_func in mmap strerror strndup strtoul mbrtowc mkstemp getopt_long utimes utime wcwidth snprintf vsnprintf strtof
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 { echo "$as_me:$LINENO: checking for $ac_func" >&5
index d5e6ca56cfe309e8a53f6015e2e4bb2dcda1f828..8af5dafca1e3feac4a6adbfde7fc1c103bc86364 100644 (file)
@@ -127,7 +127,7 @@ AC_CHECK_SIZEOF_STDC_HEADERS(int64_t, 0)
 AC_CHECK_SIZEOF_STDC_HEADERS(uint64_t, 0)
 
 dnl Checks for functions
-AC_CHECK_FUNCS(mmap strerror strndup strtoul mbrtowc mkstemp getopt_long utimes utime wcwidth snprintf vsnprintf)
+AC_CHECK_FUNCS(mmap strerror strndup strtoul mbrtowc mkstemp getopt_long utimes utime wcwidth snprintf vsnprintf strtof)
 
 dnl Checks for libraries
 AC_CHECK_LIB(z,gzopen)
index b9b2b2228b22c94ccaf254d94803d9544002243d..24223c288ffd1f085353519aabea62d629a01efb 100644 (file)
@@ -31,6 +31,7 @@
 
 #include "file.h"
 #include "magic.h"
+#include "patchlevel.h"
 #include <stdlib.h>
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
@@ -46,7 +47,7 @@
 #endif
 
 #ifndef        lint
-FILE_RCSID("@(#)$File: apprentice.c,v 1.107 2007/11/08 00:31:37 christos Exp $")
+FILE_RCSID("@(#)$File: apprentice.c,v 1.108 2007/12/27 16:35:58 christos Exp $")
 #endif /* lint */
 
 #define        EATAB {while (isascii((unsigned char) *l) && \
@@ -1418,7 +1419,11 @@ getvalue(struct magic_set *ms, struct magic *m, const char **p, int action)
        case FILE_LEFLOAT:
                if (m->reln != 'x') {
                        char *ep;
+#ifdef HAVE_STRTOF
                        m->value.f = strtof(*p, &ep);
+#else
+                       m->value.f = (float)strtod(*p, &ep);
+#endif
                        *p = ep;
                }
                return 0;
@@ -1758,8 +1763,9 @@ apprentice_map(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp,
        else
                version = ptr[1];
        if (version != VERSIONNO) {
-               file_error(ms, 0, "version mismatch (%d != %d) in `%s'",
-                   version, VERSIONNO, dbname);
+               file_error(ms, 0, "File %d.%d supports only %d version magic "
+                   "files. `%s' is version %d", FILE_VERSION_MAJOR, patchlevel,
+                   VERSIONNO, dbname, version);
                goto error;
        }
        *nmagicp = (uint32_t)(st.st_size / sizeof(struct magic)) - 1;