xref: /inferno-os/libkern/strncmp.c (revision 37da2899f40661e3e9631e497da8dc59b971cbd0)
1*37da2899SCharles.Forsyth #include <lib9.h>
2*37da2899SCharles.Forsyth 
3*37da2899SCharles.Forsyth int
strncmp(char * s1,char * s2,long n)4*37da2899SCharles.Forsyth strncmp(char *s1, char *s2, long n)
5*37da2899SCharles.Forsyth {
6*37da2899SCharles.Forsyth 	unsigned c1, c2;
7*37da2899SCharles.Forsyth 
8*37da2899SCharles.Forsyth 	while(n > 0) {
9*37da2899SCharles.Forsyth 		c1 = *s1++;
10*37da2899SCharles.Forsyth 		c2 = *s2++;
11*37da2899SCharles.Forsyth 		n--;
12*37da2899SCharles.Forsyth 		if(c1 != c2) {
13*37da2899SCharles.Forsyth 			if(c1 > c2)
14*37da2899SCharles.Forsyth 				return 1;
15*37da2899SCharles.Forsyth 			return -1;
16*37da2899SCharles.Forsyth 		}
17*37da2899SCharles.Forsyth 		if(c1 == 0)
18*37da2899SCharles.Forsyth 			break;
19*37da2899SCharles.Forsyth 	}
20*37da2899SCharles.Forsyth 	return 0;
21*37da2899SCharles.Forsyth }
22