replace non-ANSI strcmpi by as_strcmpi
authorbernhardheld <bernhardheld@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sun, 26 Jan 2003 19:39:50 +0000 (19:39 +0000)
committerbernhardheld <bernhardheld@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sun, 26 Jan 2003 19:39:50 +0000 (19:39 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@2180 4a8a32a2-be11-0410-ad9d-d568d2c75423

14 files changed:
ChangeLog
as/mcs51/Makefile.aslink
as/mcs51/Makefile.asx8051
as/mcs51/Makefile.bcc
as/mcs51/Makefile.in
as/mcs51/aslink.h
as/mcs51/asm.h
as/mcs51/asmain.c
as/mcs51/assym.c
as/mcs51/lkmem.c
as/mcs51/lknoice.c
as/mcs51/lksym.c
as/mcs51/strcmpi.c [new file with mode: 0644]
as/mcs51/strcmpi.h [new file with mode: 0644]

index 933f3e0be4a77b0b40d2c57259dc78c6f586d67b..43cea7f04981751b8fe02e41f7ed057331d467c7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2003-01-26  Bernhard Held <bernhard@bernhardheld.de>
+
+       * as/mcs51/strcmpi.c: added, provides as_strcmpi(); strcmpi() is not ANSI
+       * as/mcs51/strcmpi.h: added
+       * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
+       * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
+       * as/mcs51/asmain.c: strcmpi -> as_strcmpi
+       * as/mcs51/assym.c: strcmpi -> as_strcmpi
+       * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
+       * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
+       * as/mcs51/lksym.c: strcmpi -> as_strcmpi
+       * as/mcs51/Makefile.aslink: new module strcmpi
+       * as/mcs51/Makefile.asx8051: new module strcmpi
+       * as/mcs51/Makefil.bcc: new module strcmpi
+       * as/mcs51/Makefile.in: new module strcmpi
+
 2003-01-26    <johan@balder>
 
        * src/SDCCglue.c: reverted back to 1.124
index 7de7fa56e86fdd1a765b997b729c799b3008532e..0aebe56e6c1c6ac198a41fb16cdb43e1fe6ec3b1 100644 (file)
@@ -7,7 +7,7 @@ TARGETS=$(SDCCDIR)/bin/aslink
 ALLOBJECTS= lkmain.o lkhead.o lkarea.o lkdata.o\
              lkeval.o lklex.o lksym.o lkrloc.o\
              lklibr.o lklist.o lkihx.o lks19.o\
-             lkstore.o lknoice.o lkmem.o lkaomf51.o
+             lkstore.o lknoice.o lkmem.o lkaomf51.o strcmpi.o
 all:: $(TARGETS)
 
 clean::
@@ -55,6 +55,9 @@ lkstore.o : lkstore.c aslink.h
 lknoice.o : lknoice.c aslink.h
        $(CC) $(CFLAGS) $(LDFLAGS) -c -o lknoice.o lknoice.c
 
+strcmpi.o : strcmpi.c strcmpi.h
+       $(CC) $(CFLAGS) $(LDFLAGS) -c -o strcmpi.o strcmpi.c
+
 lkmem.o : lkmem.c aslink.h
        $(CC) $(CFLAGS) $(LDFLAGS) -c -o lkmem.o lkmem.c
 
index 316ab86495ec8d10849c4de873719b74bb96e2a5..cac540342483d6c5d47e57b8b3849808f836af81 100644 (file)
@@ -6,7 +6,7 @@ CFLAGS=-ggdb -O2 -I $(INCROOT)
 TARGETS=$(SDCCDIR)/bin/asx8051
 ALLOBJECTS= asmain.o aslex.o assym.o assubr.o asnoice.o \
             asexpr.o asdata.o aslist.o asout.o asstore.o \
-            i51ext.o i51pst.o i51mch.o i51adr.o    
+            i51ext.o i51pst.o i51mch.o i51adr.o strcmpi.o
 
 all:: $(TARGETS)
 
@@ -55,5 +55,8 @@ i51mch.o  : i51mch.c asm.h i8051.h
 i51adr.o  : i51adr.c asm.h i8051.h
        $(CC) $(CFLAGS) $(LDFLAGS) -c -o i51adr.o i51adr.c
 
+strcmpi.o  : strcmpi.c strcmpi.h
+       $(CC) $(CFLAGS) $(LDFLAGS) -c -o strcmpi.o strcmpi.c
+
 $(TARGETS): $(ALLOBJECTS)
        $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(ALLOBJECTS) 
index f6a4cd58b8287b3eac99e52ab9ff15aaf5d52439..418cdac79013f84ccc9b6867d68511de98c1da7d 100644 (file)
@@ -18,12 +18,12 @@ LDFLAGS             =
 
 ASOBJECTS       = asmain.obj aslex.obj assym.obj assubr.obj asnoice.obj \
                   asexpr.obj asdata.obj aslist.obj asout.obj asstore.obj \
-                  i51ext.obj i51pst.obj i51mch.obj i51adr.obj
+                  i51ext.obj i51pst.obj i51mch.obj i51adr.obj strcmpi.obj
 
 LKOBJECTS       = lkmain.obj lkhead.obj lkarea.obj lkdata.obj \
                   lkeval.obj lklex.obj lksym.obj lkrloc.obj \
                   lklibr.obj lklist.obj lkihx.obj lks19.obj \
-                  lkstore.obj lknoice.obj lkmem.obj lkaomf51.obj
+                  lkstore.obj lknoice.obj lkmem.obj lkaomf51.obj strcmpi.obj
 
 ASX8051         = $(PRJDIR)/bin/asx8051.exe
 ASLINK          = $(PRJDIR)/bin/aslink.exe
index 4dd914e3a9d113cfc41bb762e02a792059adcf3a..1c4e48b862b97fe2212820fccf05c2157347199f 100644 (file)
@@ -34,13 +34,13 @@ LDFLAGS             = @LDFLAGS@
 
 ASOBJECTS      = asmain.o aslex.o assym.o assubr.o asnoice.o \
                  asexpr.o asdata.o aslist.o asout.o asstore.o \
-                 i51ext.o i51pst.o i51mch.o i51adr.o    
+                 i51ext.o i51pst.o i51mch.o i51adr.o strcmpi.o
 ASSOURCES      = $(patsubst %.o,%.c,$(ASOBJECTS))
 
 LKOBJECTS      = lkmain.o lkhead.o lkarea.o lkdata.o \
                  lkeval.o lklex.o lksym.o lkrloc.o \
                  lklibr.o lklist.o lkihx.o lks19.o \
-                 lkstore.o lknoice.o lkmem.o lkaomf51.o
+                 lkstore.o lknoice.o lkmem.o lkaomf51.o strcmpi.o
 LKSOURCES      = $(patsubst %.o,%.c,$(LKOBJECTS))
 
 ASX8051                = $(PRJDIR)/bin/asx8051
index 6d8500e0a745e779571052871187fd63b73b65ed..6928054f2e9d00116254e630bc5c0f4bc5b1e66b 100644 (file)
@@ -760,8 +760,3 @@ extern int summary(struct area * xp);
 /* JCF: lkaomf51.c */
 extern void SaveLinkedFilePath(char * filepath);
 extern void CreateAOMF51(void);
-
-/* SD added this to change
-       strcmpi --> strcmp (strcmpi NOT ANSI) */
-#define strcmpi strcmp
-
index f90c8c2bad398be19d65ba2f6e17165914e53c5d..b66ab5118009f7ce80dd09f456b6b62a693bd70b 100644 (file)
@@ -674,7 +674,3 @@ extern      struct  mne     mne[];
 
 extern VOID            minit();
 extern VOID machine(struct mne *);
-
-/* SD added THIS define to change
-   strcmpi --> strcmp (strcmpi is NOT ANSI) */
-#define strcmpi strcmp
index 79934663b7702ae7aeeff89cca18c99ac893c8f3..fabbd5bb9f13c63efaf0e499424c7710b51fd7ed 100644 (file)
@@ -17,6 +17,7 @@
 #include <string.h>
 
 #include "asm.h"
+#include "strcmpi.h"
 
 /*)Module      asmain.c
  *
@@ -931,7 +932,7 @@ loop:
                {
                    getst(id, -1);
                    
-                   if (!strcmpi(id, "on"))
+                   if (!as_strcmpi(id, "on"))
                    {
                        /* Quick sanity check: size of 
                         * Addr_T must be at least 24 bits.
@@ -949,7 +950,7 @@ loop:
                            flat24Mode = 1;
                        }
                    }
-                   else if (!strcmpi(id, "off"))
+                   else if (!as_strcmpi(id, "off"))
                    {
                        flat24Mode = 0;
                    }
index 3bc66141a988b0c461ecf6b163d01024fff75fc8..6f504deab5af9224f8fb256d9535ddf33f52daf9 100644 (file)
@@ -27,6 +27,7 @@
 #include <alloc.h>
 #endif
 #include "asm.h"
+#include "strcmpi.h"
 
 /*)Module      assym.c
  *
@@ -194,7 +195,7 @@ char *id;
        h = hash(id);
        mp = mnehash[h];
        while (mp) {
-               if (strcmpi(id, mp->m_id) == 0) /* JLH: case insensitive */
+               if (as_strcmpi(id, mp->m_id) == 0)      /* JLH: case insensitive */
                        return (mp);
                mp = mp->m_mp;
        }
@@ -360,7 +361,7 @@ register char *p1, *p2;
 #if    CASE_SENSITIVE
                return (strcmp( p1, p2 ) == 0);
 #else
-               return (strcmpi( p1, p2 ) == 0);
+               return (as_strcmpi( p1, p2 ) == 0);
 #endif
 }
 
index 661f611167ea5a74fb994b272c606923d1f53b02..ba31c4d567d9c420625c9c1952ea295508f376f7 100644 (file)
 #include <string.h>
 #include <stdlib.h>
 #include "aslink.h"
+#include "strcmpi.h"
 
 int summary(struct area * areap) 
 {
-       #define EQ(A,B) !strcmpi((A),(B))
+       #define EQ(A,B) !as_strcmpi((A),(B))
        #define MIN_STACK 16
        #define REPORT_ERROR(A, H) \
        {\
index 744bda0f78450d764f919cade9c61d67394fd666..2cd6a91cdcbbbb0164a1efadd4107c7cb3145948 100644 (file)
@@ -12,6 +12,7 @@
 #include <setjmp.h>
 #include <string.h>
 #include "aslink.h"
+#include "strcmpi.h"
 
 static void DefineGlobal( char *name, Addr_T value, int page );
 static void DefineScoped( char *name, Addr_T value, int page );
@@ -140,7 +141,7 @@ void DefineScoped( char *name, Addr_T value, int page )
  */
 void DefineFile( char *name, Addr_T value, int page )
 {
-       if (strcmpi( name, currentFile ) != 0)
+       if (as_strcmpi( name, currentFile ) != 0)
        {
                strcpy( currentFile, name );
                if (value != 0)
@@ -161,7 +162,7 @@ void DefineFile( char *name, Addr_T value, int page )
  */
 void DefineFunction( char *name, Addr_T value, int page )
 {
-       if (strcmpi( name, currentFunction ) != 0)
+       if (as_strcmpi( name, currentFunction ) != 0)
        {
                strcpy( currentFunction, name );
                 if (value != 0)
@@ -184,7 +185,7 @@ void DefineFunction( char *name, Addr_T value, int page )
  */
 void DefineStaticFunction( char *name, Addr_T value, int page )
 {
-       if (strcmpi( name, currentFunction ) != 0)
+       if (as_strcmpi( name, currentFunction ) != 0)
        {
                strcpy( currentFunction, name );
                if (value != 0)
index f266f31d816f3dfb29bac8b99f6543bbbdd065b4..1ebc49cc5d4204f2840b4280f4fa167a959f165c 100644 (file)
@@ -404,7 +404,7 @@ register char *p1, *p2;
 #if    CASE_SENSITIVE
                return (strcmp( p1, p2 ) == 0);
 #else
-               return (strcmpi( p1, p2 ) == 0);
+               return (as_strcmpi( p1, p2 ) == 0);
 #endif
 }
 
diff --git a/as/mcs51/strcmpi.c b/as/mcs51/strcmpi.c
new file mode 100644 (file)
index 0000000..434529c
--- /dev/null
@@ -0,0 +1,35 @@
+/* strcmpi.c */
+
+/*
+ * Compare two strings ignoring case.
+ *
+ * Taken from GLIBC 2.2.5. Original code is copyrighted "Free
+ * Software Foundation" and published under the GNU Lesser General
+ * Public License.
+ * 
+ */
+
+#include <ctype.h>
+#include "strcmpi.h"
+
+int as_strcmpi (const char *s1, const char *s2)
+{
+  const unsigned char *p1 = (const unsigned char *) s1;
+  const unsigned char *p2 = (const unsigned char *) s2;
+  unsigned char c1, c2;
+
+  if (p1 == p2)
+    return 0;
+
+  do
+    {
+      c1 = tolower (*p1++);
+      c2 = tolower (*p2++);
+      if (c1 == '\0')
+       break;
+    }
+  while (c1 == c2);
+  
+  return c1 - c2;
+}
+
diff --git a/as/mcs51/strcmpi.h b/as/mcs51/strcmpi.h
new file mode 100644 (file)
index 0000000..63c35c4
--- /dev/null
@@ -0,0 +1,3 @@
+/* strcmpi.h */
+
+int as_strcmpi (const char *s1, const char *s2);