cistrncmp.c 366 B

12345678910111213141516171819202122232425262728
  1. #include <u.h>
  2. #include <libc.h>
  3. int
  4. cistrncmp(char *s1, char *s2, int n)
  5. {
  6. int c1, c2;
  7. while(*s1 && n-- > 0){
  8. c1 = *(uchar*)s1++;
  9. c2 = *(uchar*)s2++;
  10. if(c1 == c2)
  11. continue;
  12. if(c1 >= 'A' && c1 <= 'Z')
  13. c1 -= 'A' - 'a';
  14. if(c2 >= 'A' && c2 <= 'Z')
  15. c2 -= 'A' - 'a';
  16. if(c1 != c2)
  17. return c1 - c2;
  18. }
  19. if(n <= 0)
  20. return 0;
  21. return -*s2;
  22. }