changeset 2063:bd109c0a7b88

Improve IFF probing.
author Matti Hamalainen <ccr@tnsp.org>
date Wed, 05 Dec 2018 12:54:28 +0200
parents f11fad2dc3b5
children 3617ef01c1de
files tools/libgfx.c
diffstat 1 files changed, 5 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/tools/libgfx.c	Tue Dec 04 21:19:45 2018 +0200
+++ b/tools/libgfx.c	Wed Dec 05 12:54:28 2018 +0200
@@ -1507,14 +1507,12 @@
 static int fmtProbeIFF(const Uint8 *buf, const size_t len)
 {
     if (len > 32 &&
-        buf[ 0] == 'F' && buf[ 1] == 'O' &&
-        buf[ 2] == 'R' && buf[ 3] == 'M' && (
-        (buf[ 8] == 'I' && buf[ 9] == 'L' && buf[10] == 'B' && buf[11] == 'M') ||
-        (buf[ 8] == 'P' && buf[ 9] == 'B' && buf[10] == 'M' && buf[11] == 0x20)
-        ))
+        DM_BE32_TO_NATIVE(*(Uint32 *) (buf + 0)) == IFF_ID_FORM && (
+        DM_BE32_TO_NATIVE(*(Uint32 *) (buf + 8)) == IFF_ID_ILBM ||
+        DM_BE32_TO_NATIVE(*(Uint32 *) (buf + 8)) == IFF_ID_PBM ||
+        DM_BE32_TO_NATIVE(*(Uint32 *) (buf + 8)) == IFF_ID_ACBM))
     {
-        if (buf[12] == 'B' && buf[13] == 'M' &&
-            buf[14] == 'H' && buf[15] == 'D')
+        if (DM_BE32_TO_NATIVE(*(Uint32 *) (buf + 12)) == IFF_ID_BMHD)
             return DM_PROBE_SCORE_MAX;
         else
             return DM_PROBE_SCORE_GOOD;