00001
00038 #include <string.h>
00039 #include <generic/string.h>
00040
00041 int generic_strcmp(const char *str1, const char *str2)
00042 {
00043 char c1;
00044 char c2;
00045
00046 while (true) {
00047 c1 = *str1++;
00048 c2 = *str2++;
00049
00050 if (!c1 || !c2 || c1 != c2)
00051 break;
00052 }
00053
00054 return ((int)c1 - (int)c2);
00055 }
00056
00057 int generic_strncmp(const char *str1, const char *str2, size_t n)
00058 {
00059 char c1;
00060 char c2;
00061
00062 if (!n)
00063 return 0;
00064
00065 do {
00066 c1 = *str1++;
00067 c2 = *str2++;
00068
00069 if (!c1 || !c2 || c1 != c2)
00070 break;
00071 } while (--n);
00072
00073 return ((int)c1 - (int)c2);
00074 }