From: bernhardheld Date: Sun, 26 Jan 2003 19:39:50 +0000 (+0000) Subject: replace non-ANSI strcmpi by as_strcmpi X-Git-Url: https://git.gag.com/?a=commitdiff_plain;ds=sidebyside;h=57b16299d7cd3c71c3644c39089a5cee84639d83;p=fw%2Fsdcc replace non-ANSI strcmpi by as_strcmpi git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@2180 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- diff --git a/ChangeLog b/ChangeLog index 933f3e0b..43cea7f0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,19 @@ +2003-01-26 Bernhard Held + + * 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 * src/SDCCglue.c: reverted back to 1.124 diff --git a/as/mcs51/Makefile.aslink b/as/mcs51/Makefile.aslink index 7de7fa56..0aebe56e 100644 --- a/as/mcs51/Makefile.aslink +++ b/as/mcs51/Makefile.aslink @@ -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 diff --git a/as/mcs51/Makefile.asx8051 b/as/mcs51/Makefile.asx8051 index 316ab864..cac54034 100644 --- a/as/mcs51/Makefile.asx8051 +++ b/as/mcs51/Makefile.asx8051 @@ -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) diff --git a/as/mcs51/Makefile.bcc b/as/mcs51/Makefile.bcc index f6a4cd58..418cdac7 100644 --- a/as/mcs51/Makefile.bcc +++ b/as/mcs51/Makefile.bcc @@ -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 diff --git a/as/mcs51/Makefile.in b/as/mcs51/Makefile.in index 4dd914e3..1c4e48b8 100644 --- a/as/mcs51/Makefile.in +++ b/as/mcs51/Makefile.in @@ -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 diff --git a/as/mcs51/aslink.h b/as/mcs51/aslink.h index 6d8500e0..6928054f 100644 --- a/as/mcs51/aslink.h +++ b/as/mcs51/aslink.h @@ -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 - diff --git a/as/mcs51/asm.h b/as/mcs51/asm.h index f90c8c2b..b66ab511 100644 --- a/as/mcs51/asm.h +++ b/as/mcs51/asm.h @@ -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 diff --git a/as/mcs51/asmain.c b/as/mcs51/asmain.c index 79934663..fabbd5bb 100644 --- a/as/mcs51/asmain.c +++ b/as/mcs51/asmain.c @@ -17,6 +17,7 @@ #include #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; } diff --git a/as/mcs51/assym.c b/as/mcs51/assym.c index 3bc66141..6f504dea 100644 --- a/as/mcs51/assym.c +++ b/as/mcs51/assym.c @@ -27,6 +27,7 @@ #include #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 } diff --git a/as/mcs51/lkmem.c b/as/mcs51/lkmem.c index 661f6111..ba31c4d5 100644 --- a/as/mcs51/lkmem.c +++ b/as/mcs51/lkmem.c @@ -22,10 +22,11 @@ #include #include #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) \ {\ diff --git a/as/mcs51/lknoice.c b/as/mcs51/lknoice.c index 744bda0f..2cd6a91c 100644 --- a/as/mcs51/lknoice.c +++ b/as/mcs51/lknoice.c @@ -12,6 +12,7 @@ #include #include #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) diff --git a/as/mcs51/lksym.c b/as/mcs51/lksym.c index f266f31d..1ebc49cc 100644 --- a/as/mcs51/lksym.c +++ b/as/mcs51/lksym.c @@ -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 index 00000000..434529ce --- /dev/null +++ b/as/mcs51/strcmpi.c @@ -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 +#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 index 00000000..63c35c43 --- /dev/null +++ b/as/mcs51/strcmpi.h @@ -0,0 +1,3 @@ +/* strcmpi.h */ + +int as_strcmpi (const char *s1, const char *s2);