fixed some bugs, added LIST, Makefile & .distr
authoreck <none@none>
Mon, 18 Dec 1989 16:02:55 +0000 (16:02 +0000)
committereck <none@none>
Mon, 18 Dec 1989 16:02:55 +0000 (16:02 +0000)
16 files changed:
lang/cem/libcc.ansi/string/.distr [new file with mode: 0644]
lang/cem/libcc.ansi/string/LIST
lang/cem/libcc.ansi/string/Makefile [new file with mode: 0644]
lang/cem/libcc.ansi/string/memchr.c
lang/cem/libcc.ansi/string/memcmp.c
lang/cem/libcc.ansi/string/memcpy.c
lang/cem/libcc.ansi/string/memmove.c
lang/cem/libcc.ansi/string/memset.c
lang/cem/libcc.ansi/string/strchr.c
lang/cem/libcc.ansi/string/strcspn.c
lang/cem/libcc.ansi/string/strerror.c
lang/cem/libcc.ansi/string/strlen.c
lang/cem/libcc.ansi/string/strpbrk.c
lang/cem/libcc.ansi/string/strrchr.c
lang/cem/libcc.ansi/string/strstr.c
lang/cem/libcc.ansi/string/strxfrm.c

diff --git a/lang/cem/libcc.ansi/string/.distr b/lang/cem/libcc.ansi/string/.distr
new file mode 100644 (file)
index 0000000..b59e61d
--- /dev/null
@@ -0,0 +1,24 @@
+LIST
+Makefile
+memchr.c
+memcmp.c
+memcpy.c
+memmove.c
+memset.c
+strcat.c
+strchr.c
+strcmp.c
+strcoll.c
+strcpy.c
+strcspn.c
+strerror.c
+strlen.c
+strncat.c
+strncmp.c
+strncpy.c
+strpbrk.c
+strrchr.c
+strspn.c
+strstr.c
+strtok.c
+strxfrm.c
diff --git a/lang/cem/libcc.ansi/string/Makefile b/lang/cem/libcc.ansi/string/Makefile
new file mode 100644 (file)
index 0000000..4bd9008
--- /dev/null
@@ -0,0 +1,35 @@
+CFLAGS=-L -LIB
+
+.SUFFIXES: .o .e .c
+
+.e.o:
+       $(CC) $(CFLAGS) -c -o $@ $*.e
+
+clean:
+       rm -rf memchr.o memcmp.o memcpy.o memmove.o memset.o strcat.o \
+               strchr.o strcmp.o strcoll.o strcpy.o strcspn.o strerror.o \
+               strncat.o strncpy.o strrchr.o strstr.o strlen.o strtok.o \
+               strpbrk.o strspn.o strncmp.o strxfrm.o OLIST
+
+memchr.o:
+memcmp.o:
+memcpy.o:
+memmove.o:
+memset.o:
+strcat.o:
+strchr.o:
+strcmp.o:
+strcoll.o:
+strcpy.o:
+strcspn.o:
+strerror.o:
+strncat.o:
+strncpy.o:
+strrchr.o:
+strstr.o:
+strlen.o:
+strtok.o:
+strpbrk.o:
+strspn.o:
+strncmp.o:
+strxfrm.o:
index f5dbd0a..b91644a 100644 (file)
@@ -9,13 +9,13 @@
 void *
 memchr(const void *s, int c, register size_t n)
 {
-       register unsigned char *s1 = (unsigned char *)s;
+       register const unsigned char *s1 = s;
        unsigned char c1 = (unsigned char) c;
        
        while (n > 0) {
                n--;
                if (*s1++ == c1)
-                       return (void *) --s1;
+                       return (void *) (s1 - 1);
        }
-       return (void *) NULL;
+       return NULL;
 }
index 0f9bd84..8ae481b 100644 (file)
@@ -7,12 +7,14 @@
 #include       <string.h>
 
 int
-memcmp(register const void *s1, register const void *s2, size_t n)
+memcmp(const void *s1, const void *s2, size_t n)
 {
+       register const char *p1 = s1, *p2 = s2;
+
        while (n > 0) {
                n--;
-               if (*s1++ != *s2++)
-                       return *--s1 - *--s2;
+               if (*p1++ != *p2++)
+                       return *--p1 - *--p2;
        }
        return 0;
 }
index a36010a..11b27b0 100644 (file)
@@ -9,11 +9,13 @@
 void *
 memcpy(register void *s1, register const void *s2, register size_t n)
 {
-       void *ret = s1;
+       register char *p1 = s1;
+       register const char *p2 = s2;
+
 
        while (n > 0) {
                n--;
-               *s1++ = *s2++;
+               *p1++ = *p2++;
        }
-       return ret;
+       return s1;
 }
index baa45bc..33c7f5b 100644 (file)
@@ -7,22 +7,23 @@
 #include       <string.h>
 
 void *
-memmove(register void *s1, register const void *s2, register size_t n)
+memmove(void *s1, const void *s2, register size_t n)
 {
-       void *ret = s1;
+       register char *p1 = s1;
+       register const char *p2 = s2;
 
-       if (s2 <= s1 && s2 + (n-1) >= s1) {
+       if (p2 <= p1 && p2 + (n-1) >= p1) {
                /* overlap, copy backwards */
-               s1 += n;
-               s2 += n;
+               p1 += n;
+               p2 += n;
                while (n > 0) {
                        n--;
-                       *--s1 = *--s2;
+                       *--p1 = *--p2;
                }
        } else
                while (n > 0) {
                        n--;
-                       *s1++ = *s2++;
+                       *p1++ = *p2++;
                }
-       return ret;
+       return s1;
 }
index 6fa8b97..469de4f 100644 (file)
@@ -9,7 +9,7 @@
 void *
 memset(void *s, int c, register size_t n)
 {
-       register void *s1 = s;
+       register char *s1 = s;
 
        while (n > 0) {
                n--;
index 1a14e67..979f435 100644 (file)
@@ -13,7 +13,7 @@ strchr(register const char *s, int c)
 
        do {
                if (*s == c1)
-                       return s;
+                       return (char *)s;
        } while (*s++ != '\0');
 
        return (char *)NULL;
index 8db4d1a..fbdc1d0 100644 (file)
@@ -9,7 +9,7 @@
 size_t
 strcspn(const char *string, const char *notin)
 {
-       register char *s1, *s2;
+       register const char *s1, *s2;
 
        for (s1 = string; *s1; s1++) {
                for(s2 = notin; *s2 != *s1 && *s2; s2++)
index 7bb41b5..a5841c7 100644 (file)
@@ -14,5 +14,5 @@ strerror(register int errnum)
 
        if (errnum < 0 || errnum >= _sys_nerr)
                return "unknown error";
-       return _sys_errlist[errnum];
+       return (char *)_sys_errlist[errnum];
 }
index bd4cb81..ca8f7d8 100644 (file)
@@ -9,7 +9,7 @@
 size_t
 strlen(register const char *s)
 {
-       char *org = s;
+       const char *org = s;
 
        while (*s++)
                /* EMPTY */ ;
index a0c4cdb..5f08731 100644 (file)
@@ -9,13 +9,13 @@
 char *
 strpbrk(register const char *string, register const char *brk)
 {
-       register char *s1;
+       register const char *s1;
 
        while (*string) {
                for (s1 = brk; *s1 && *s1 != *string; s1++)
                        /* EMPTY */ ;
                if (*s1)
-                       return string;
+                       return (char *)string;
                string++;
        }
        return (char *)NULL;
index 1bf6cea..e98d8d7 100644 (file)
@@ -9,7 +9,7 @@
 char *
 strrchr(register const char *s, int c)
 {
-       register char *result;
+       register const char *result;
        register char c1 = (char) c;
 
        result = (char *)NULL;
@@ -18,5 +18,5 @@ strrchr(register const char *s, int c)
                        result = s;
        } while (*s++);
 
-       return(result);
+       return (char *)result;
 }
index 18d7ae8..4c2b234 100644 (file)
@@ -11,8 +11,9 @@ strstr(register const char *s, register const char *wanted)
 {
        int len = strlen(wanted);
 
+       if (len == 0) return (char *)s;
        while (*s != *wanted || strncmp(s, wanted, len))
                if (*s++ == '\0')
                        return (char *)NULL;
-       return s;
+       return (char *)s;
 }
index 3ec1b3a..92e0c76 100644 (file)
@@ -9,7 +9,7 @@
 size_t
 strxfrm(register char *s1, register const char *s2, register size_t n)
 {
-       char *save = s2;
+       const char *save = s2;
 
        while (*s2) {
                if (n > 1) {