/* * Compares the paths of two fsentry structures for equality. */ static int fsentry_cmp(const struct fsentry *fse1, const struct fsentry *fse2) { int res; if (fse1 == fse2) return 0; /* compare the list parts first */ if (fse1->list != fse2->list && (res = fsentry_cmp( fse1->list ? fse1->list : fse1, fse2->list ? fse2->list : fse2))) return res; /* if list parts are equal, compare len and name */ if (fse1->len != fse2->len) return fse1->len - fse2->len; return strnicmp(fse1->name, fse2->name, fse1->len); }
/* * Compares the paths of two fsentry structures for equality. */ static int fsentry_cmp(void *unused_cmp_data, const struct fsentry *fse1, const struct fsentry *fse2, void *unused_keydata) { int res; if (fse1 == fse2) return 0; /* compare the list parts first */ if (fse1->list != fse2->list && (res = fsentry_cmp(NULL, fse1->list ? fse1->list : fse1, fse2->list ? fse2->list : fse2, NULL))) return res; /* if list parts are equal, compare len and name */ if (fse1->len != fse2->len) return fse1->len - fse2->len; return strnicmp(fse1->name, fse2->name, fse1->len); }