struct StringsBase *StringsBase=0L; /*#define RUN*/ #ifdef RUN char *ToLower(s) register char *s; { register char c,*p; if(s) { p=s; c=*p; do {if(c>='A') if(c<='Z') c|=32; *p++=c; c=*p; } while(*p); } return s; }; /* $VER: ToLower mrz06 0.1 */ #endif long test(s) char *s; { long el=0,l=StrLen(s); char os[256],*p; sprintf(os,"<%s>",s); if(s) { printf("%29s ",os); p=(char *)ToLower(s); sprintf(os,"<%s>",s); printf(" %29s %8x %ld\n",os,p,l); } if(!s) p=(char *)ToUpper(s), printf("ZEROPOINTER return = %x\n",p); return el; } int main() { /* MAIN */ long el; StringsBase=(struct StringsBase *)OpenLibrary("Strings.library",0); puts(" inputstring \t\t outputstring\t\t return len"); el=test("TESTING ToLower(LOWERCASE)"); el=test("abcdefghijklmnopqrstuvwxyz "); el=test("!@#$%^&*()__+|1234567890"); el=test("ABCDEF GHIJKL MNOPQ RSTUV"); el=test("WXYZ \[];',../<>{}:<>?"); el=test("a"); el=test("B"); el=test(""); el=test(0); if(StringsBase) CloseLibrary(StringsBase); return 0; } /* END */ #ifdef COMMENT _ToLower: move.l 8(a5),a0 move.l a0,d0 cmp.l #0,a0 beq ToLowerEnd move.l a0,a1 move.b (a1),d1 ToLowerLoop: cmp.b #65,d1 blt ToLowerJump cmp.b #90,d1 bgt ToLowerJump or.b #32,d1 ToLowerJump: move.b d1,(a1)+ move.b (a1),d1 bne ToLowerLoop ToLowerEnd: rts ; mrz06 inputstring outputstring return len 2868F2 26 2868D6 27 2868BD 24 2868A3 25 {}:<>?> {}:<>?> 28688D 21 28688B 1 286889 1 <> <> 286888 0 ZEROPOINTER return = 0 #endif