ack/lang/cem/libcc.ansi/string/strncmp.c

27 lines
541 B
C
Raw Normal View History

1989-05-11 10:09:52 +00:00
/*
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
* See the copyright notice in the ACK home directory, in the file "Copyright".
*/
/* $Header$ */
#include <string.h>
int
strncmp(register const char *s1, register const char *s2, register size_t n)
1989-05-11 10:09:52 +00:00
{
if (n) {
do {
if (*s1 != *s2++)
break;
if (*s1++ == '\0')
return 0;
} while (--n > 0);
if (n > 0) {
if (*s1 == '\0') return -1;
if (*--s2 == '\0') return 1;
return (unsigned char) *s1 - (unsigned char) *s2;
}
1989-05-11 10:09:52 +00:00
}
return 0;
}