summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/fileinfo/config.w324
-rw-r--r--ext/fileinfo/libmagic/apprentice.c6
-rw-r--r--ext/fileinfo/libmagic/softmagic.c34
3 files changed, 27 insertions, 17 deletions
diff --git a/ext/fileinfo/config.w32 b/ext/fileinfo/config.w32
index f94929c81f..085f9b2c3e 100644
--- a/ext/fileinfo/config.w32
+++ b/ext/fileinfo/config.w32
@@ -13,6 +13,10 @@ if (PHP_FILEINFO != 'no') {
magic.c print.c \
readelf.c softmagic.c";
+ if (VCVERS <1500) {
+ ADD_FLAG('CFLAGS', '/Zm1000');
+ }
+
EXTENSION('fileinfo', 'fileinfo.c', true, "/I" + configure_module_dirname + "/libmagic /I" + configure_module_dirname);
ADD_SOURCES(configure_module_dirname + '\\libmagic', LIBMAGIC_SOURCES, "fileinfo");
} else {
diff --git a/ext/fileinfo/libmagic/apprentice.c b/ext/fileinfo/libmagic/apprentice.c
index d06875bfbe..d4e0e889d5 100644
--- a/ext/fileinfo/libmagic/apprentice.c
+++ b/ext/fileinfo/libmagic/apprentice.c
@@ -38,11 +38,17 @@
#ifdef PHP_WIN32
#include "win32/unistd.h"
+#if _MSC_VER <= 1300
+#include "win32/php_strtoi64.h"
+#endif
#define strtoull _strtoui64
#else
#include <unistd.h>
#endif
+
+
+
#include <string.h>
#include <assert.h>
#include <ctype.h>
diff --git a/ext/fileinfo/libmagic/softmagic.c b/ext/fileinfo/libmagic/softmagic.c
index ad64d97f1d..3afc0c6d1f 100644
--- a/ext/fileinfo/libmagic/softmagic.c
+++ b/ext/fileinfo/libmagic/softmagic.c
@@ -582,16 +582,16 @@ cvt_64(union VALUETYPE *p, const struct magic *m)
if (m->num_mask) \
switch (m->mask_op & FILE_OPS_MASK) { \
case FILE_OPADD: \
- p->fld += cast m->num_mask; \
+ p->fld += cast (int64_t)m->num_mask; \
break; \
case FILE_OPMINUS: \
- p->fld -= cast m->num_mask; \
+ p->fld -= cast (int64_t)m->num_mask; \
break; \
case FILE_OPMULTIPLY: \
- p->fld *= cast m->num_mask; \
+ p->fld *= cast (int64_t)m->num_mask; \
break; \
case FILE_OPDIVIDE: \
- p->fld /= cast m->num_mask; \
+ p->fld /= cast (int64_t)m->num_mask; \
break; \
} \
@@ -1860,7 +1860,7 @@ magiccheck(struct magic_set *ms, struct magic *m)
case 'x':
if ((ms->flags & MAGIC_DEBUG) != 0)
(void) fprintf(stderr, "%llu == *any* = 1\n",
- (unsigned long long)v);
+ (uint64_t)v);
matched = 1;
break;
@@ -1868,7 +1868,7 @@ magiccheck(struct magic_set *ms, struct magic *m)
matched = v != l;
if ((ms->flags & MAGIC_DEBUG) != 0)
(void) fprintf(stderr, "%llu != %llu = %d\n",
- (unsigned long long)v, (unsigned long long)l,
+ (uint64_t)v, (uint64_t)l,
matched);
break;
@@ -1876,7 +1876,7 @@ magiccheck(struct magic_set *ms, struct magic *m)
matched = v == l;
if ((ms->flags & MAGIC_DEBUG) != 0)
(void) fprintf(stderr, "%llu == %llu = %d\n",
- (unsigned long long)v, (unsigned long long)l,
+ (uint64_t)v, (uint64_t)l,
matched);
break;
@@ -1885,14 +1885,14 @@ magiccheck(struct magic_set *ms, struct magic *m)
matched = v > l;
if ((ms->flags & MAGIC_DEBUG) != 0)
(void) fprintf(stderr, "%llu > %llu = %d\n",
- (unsigned long long)v,
- (unsigned long long)l, matched);
+ (uint64_t)v,
+ (uint64_t)l, matched);
}
else {
matched = (int64_t) v > (int64_t) l;
if ((ms->flags & MAGIC_DEBUG) != 0)
(void) fprintf(stderr, "%lld > %lld = %d\n",
- (long long)v, (long long)l, matched);
+ (uint64_t)v, (uint64_t)l, matched);
}
break;
@@ -1901,14 +1901,14 @@ magiccheck(struct magic_set *ms, struct magic *m)
matched = v < l;
if ((ms->flags & MAGIC_DEBUG) != 0)
(void) fprintf(stderr, "%llu < %llu = %d\n",
- (unsigned long long)v,
- (unsigned long long)l, matched);
+ (uint64_t)v,
+ (uint64_t)l, matched);
}
else {
matched = (int64_t) v < (int64_t) l;
if ((ms->flags & MAGIC_DEBUG) != 0)
(void) fprintf(stderr, "%lld < %lld = %d\n",
- (long long)v, (long long)l, matched);
+ (int64_t)v, (int64_t)l, matched);
}
break;
@@ -1916,16 +1916,16 @@ magiccheck(struct magic_set *ms, struct magic *m)
matched = (v & l) == l;
if ((ms->flags & MAGIC_DEBUG) != 0)
(void) fprintf(stderr, "((%llx & %llx) == %llx) = %d\n",
- (unsigned long long)v, (unsigned long long)l,
- (unsigned long long)l, matched);
+ (uint64_t)v, (uint64_t)l,
+ (uint64_t)l, matched);
break;
case '^':
matched = (v & l) != l;
if ((ms->flags & MAGIC_DEBUG) != 0)
(void) fprintf(stderr, "((%llx & %llx) != %llx) = %d\n",
- (unsigned long long)v, (unsigned long long)l,
- (unsigned long long)l, matched);
+ (uint64_t)v, (uint64_t)l,
+ (uint64_t)l, matched);
break;
default: