fixed some bugs, added LIST, Makefile & .distr
This commit is contained in:
parent
8a409311da
commit
dc2dd991c6
16 changed files with 93 additions and 29 deletions
24
lang/cem/libcc.ansi/string/.distr
Normal file
24
lang/cem/libcc.ansi/string/.distr
Normal file
|
@ -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
|
|
@ -1,4 +1,3 @@
|
||||||
libs
|
|
||||||
memchr.c
|
memchr.c
|
||||||
memcmp.c
|
memcmp.c
|
||||||
memcpy.c
|
memcpy.c
|
||||||
|
|
35
lang/cem/libcc.ansi/string/Makefile
Normal file
35
lang/cem/libcc.ansi/string/Makefile
Normal file
|
@ -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:
|
|
@ -9,13 +9,13 @@
|
||||||
void *
|
void *
|
||||||
memchr(const void *s, int c, register size_t n)
|
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;
|
unsigned char c1 = (unsigned char) c;
|
||||||
|
|
||||||
while (n > 0) {
|
while (n > 0) {
|
||||||
n--;
|
n--;
|
||||||
if (*s1++ == c1)
|
if (*s1++ == c1)
|
||||||
return (void *) --s1;
|
return (void *) (s1 - 1);
|
||||||
}
|
}
|
||||||
return (void *) NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,12 +7,14 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
int
|
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) {
|
while (n > 0) {
|
||||||
n--;
|
n--;
|
||||||
if (*s1++ != *s2++)
|
if (*p1++ != *p2++)
|
||||||
return *--s1 - *--s2;
|
return *--p1 - *--p2;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,11 +9,13 @@
|
||||||
void *
|
void *
|
||||||
memcpy(register void *s1, register const void *s2, register size_t n)
|
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) {
|
while (n > 0) {
|
||||||
n--;
|
n--;
|
||||||
*s1++ = *s2++;
|
*p1++ = *p2++;
|
||||||
}
|
}
|
||||||
return ret;
|
return s1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,22 +7,23 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
void *
|
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 */
|
/* overlap, copy backwards */
|
||||||
s1 += n;
|
p1 += n;
|
||||||
s2 += n;
|
p2 += n;
|
||||||
while (n > 0) {
|
while (n > 0) {
|
||||||
n--;
|
n--;
|
||||||
*--s1 = *--s2;
|
*--p1 = *--p2;
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
while (n > 0) {
|
while (n > 0) {
|
||||||
n--;
|
n--;
|
||||||
*s1++ = *s2++;
|
*p1++ = *p2++;
|
||||||
}
|
}
|
||||||
return ret;
|
return s1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
void *
|
void *
|
||||||
memset(void *s, int c, register size_t n)
|
memset(void *s, int c, register size_t n)
|
||||||
{
|
{
|
||||||
register void *s1 = s;
|
register char *s1 = s;
|
||||||
|
|
||||||
while (n > 0) {
|
while (n > 0) {
|
||||||
n--;
|
n--;
|
||||||
|
|
|
@ -13,7 +13,7 @@ strchr(register const char *s, int c)
|
||||||
|
|
||||||
do {
|
do {
|
||||||
if (*s == c1)
|
if (*s == c1)
|
||||||
return s;
|
return (char *)s;
|
||||||
} while (*s++ != '\0');
|
} while (*s++ != '\0');
|
||||||
|
|
||||||
return (char *)NULL;
|
return (char *)NULL;
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
size_t
|
size_t
|
||||||
strcspn(const char *string, const char *notin)
|
strcspn(const char *string, const char *notin)
|
||||||
{
|
{
|
||||||
register char *s1, *s2;
|
register const char *s1, *s2;
|
||||||
|
|
||||||
for (s1 = string; *s1; s1++) {
|
for (s1 = string; *s1; s1++) {
|
||||||
for(s2 = notin; *s2 != *s1 && *s2; s2++)
|
for(s2 = notin; *s2 != *s1 && *s2; s2++)
|
||||||
|
|
|
@ -14,5 +14,5 @@ strerror(register int errnum)
|
||||||
|
|
||||||
if (errnum < 0 || errnum >= _sys_nerr)
|
if (errnum < 0 || errnum >= _sys_nerr)
|
||||||
return "unknown error";
|
return "unknown error";
|
||||||
return _sys_errlist[errnum];
|
return (char *)_sys_errlist[errnum];
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
size_t
|
size_t
|
||||||
strlen(register const char *s)
|
strlen(register const char *s)
|
||||||
{
|
{
|
||||||
char *org = s;
|
const char *org = s;
|
||||||
|
|
||||||
while (*s++)
|
while (*s++)
|
||||||
/* EMPTY */ ;
|
/* EMPTY */ ;
|
||||||
|
|
|
@ -9,13 +9,13 @@
|
||||||
char *
|
char *
|
||||||
strpbrk(register const char *string, register const char *brk)
|
strpbrk(register const char *string, register const char *brk)
|
||||||
{
|
{
|
||||||
register char *s1;
|
register const char *s1;
|
||||||
|
|
||||||
while (*string) {
|
while (*string) {
|
||||||
for (s1 = brk; *s1 && *s1 != *string; s1++)
|
for (s1 = brk; *s1 && *s1 != *string; s1++)
|
||||||
/* EMPTY */ ;
|
/* EMPTY */ ;
|
||||||
if (*s1)
|
if (*s1)
|
||||||
return string;
|
return (char *)string;
|
||||||
string++;
|
string++;
|
||||||
}
|
}
|
||||||
return (char *)NULL;
|
return (char *)NULL;
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
char *
|
char *
|
||||||
strrchr(register const char *s, int c)
|
strrchr(register const char *s, int c)
|
||||||
{
|
{
|
||||||
register char *result;
|
register const char *result;
|
||||||
register char c1 = (char) c;
|
register char c1 = (char) c;
|
||||||
|
|
||||||
result = (char *)NULL;
|
result = (char *)NULL;
|
||||||
|
@ -18,5 +18,5 @@ strrchr(register const char *s, int c)
|
||||||
result = s;
|
result = s;
|
||||||
} while (*s++);
|
} while (*s++);
|
||||||
|
|
||||||
return(result);
|
return (char *)result;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,8 +11,9 @@ strstr(register const char *s, register const char *wanted)
|
||||||
{
|
{
|
||||||
int len = strlen(wanted);
|
int len = strlen(wanted);
|
||||||
|
|
||||||
|
if (len == 0) return (char *)s;
|
||||||
while (*s != *wanted || strncmp(s, wanted, len))
|
while (*s != *wanted || strncmp(s, wanted, len))
|
||||||
if (*s++ == '\0')
|
if (*s++ == '\0')
|
||||||
return (char *)NULL;
|
return (char *)NULL;
|
||||||
return s;
|
return (char *)s;
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
size_t
|
size_t
|
||||||
strxfrm(register char *s1, register const char *s2, register size_t n)
|
strxfrm(register char *s1, register const char *s2, register size_t n)
|
||||||
{
|
{
|
||||||
char *save = s2;
|
const char *save = s2;
|
||||||
|
|
||||||
while (*s2) {
|
while (*s2) {
|
||||||
if (n > 1) {
|
if (n > 1) {
|
||||||
|
|
Loading…
Reference in a new issue