1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | int
ss_string_cmp_s(const ss_string_t *str, const char *s)
{
SS_ENTER(ss_string_cmp_s, int);
size_t slen = s ? strlen(s)+1 : 0;
int retval = 0;
if (!str) SS_ERROR_FMT(USAGE, ("no ss_string_t supplied"));
if (!str->p && !s) {
retval = 0;
} else if (!str->p) {
retval = -1;
} else if (!s) {
retval = 1;
} else {
retval = memcmp(str->p, s, MIN(str->nbytes, slen));
if (0==retval) {
if (str->nbytes>slen) retval = 1;
if (str->nbytes<slen) retval = -1;
}
}
SS_CLEANUP:
SS_RETVAL(-2);
SS_LEAVE(retval);
}
|