strcasecmp.c 477 B

123456789101112131415161718192021222324252627282930
  1. #include <string.h>
  2. __attribute__((used))
  3. int strcasecmp(const char *s1, const char *s2)
  4. {
  5. while (*s1 == *s2 || (*s1 ^ 0x20) == *s2) {
  6. if (!*s1)
  7. return 0;
  8. ++s1;
  9. ++s2;
  10. }
  11. return *(unsigned char *)s1 - *(unsigned char *)s2;
  12. }
  13. __attribute__((used))
  14. int strncasecmp(const char *s1, const char *s2, size_t n)
  15. {
  16. while ((*s1 == *s2 || (*s1 ^ 0x20) == *s2) && --n) {
  17. if (!*s1)
  18. return 0;
  19. ++s1;
  20. ++s2;
  21. }
  22. return *(unsigned char *)s1 - *(unsigned char *)s2;
  23. }