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);
 }