* as/z80/assym.c (mlookup): ignore case when looking up mnemonics
[fw/sdcc] / as / z80 / assym.c
index 3285265f813665a52cde841150f9795cb5e3ee4b..77e0c2682d9feca0b91df3804b6284e23f971dff 100644 (file)
 #include <stdio.h>
 #include <setjmp.h>
 #include <string.h>
-#include <malloc.h>
-
-//#if defined(_MSC_VER)
-//#include <malloc.h>
-//#else
-//#include <alloc.h>
-//#endif
-
+#include <stdlib.h>
 #include "asm.h"
+#include "strcmpi.h"
 
 /*)Module      assym.c
  *
@@ -188,7 +182,7 @@ char *id;
        h = hash(id);
        mp = mnehash[h];
        while (mp) {
-               if (symeq(id, mp->m_id))
+               if (as_strcmpi(id, mp->m_id) == 0)      /* JLH: case insensitive */
                        return (mp);
                mp = mp->m_mp;
        }
@@ -360,7 +354,7 @@ register char *p1, *p2;
                if (*p1++ != *p2++)
                        return (0);
 #else
-               if (ccase[*p1++] != ccase[*p2++])
+               if (ccase[(unsigned char)(*p1++)] != ccase[(unsigned char)(*p2++)])
                        return (0);
 #endif
 
@@ -389,7 +383,7 @@ register char *p1, *p2;
  *     side effects:
  *             none
  */
+
 int
 hash(p)
 register char *p;
@@ -403,7 +397,7 @@ register char *p;
 #if    CASE_SENSITIVE
                h += *p++;
 #else
-               h += ccase[*p++];
+               h += ccase[(unsigned char)(*p++)];
 #endif
 
        } while (--n);