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(const ss_string_t *s1, const ss_string_t *s2)
 {
     SS_ENTER(ss_string_cmp, int);
     int         retval=0;

     if (!s1 || !s2) SS_ERROR_FMT(USAGE, ("no ss_string_t supplied"));
     if (!s1->p && !s2->p) {
         retval = 0;
     } else if (!s1->p) {
         retval = -1;
     } else if (!s2->p) {
         retval = 1;
     } else {
         retval = memcmp(s1->p, s2->p, MIN(s1->nbytes, s2->nbytes));
         if (0==retval) {
             if (s1->nbytes>s2->nbytes) retval = 1;
             if (s1->nbytes<s2->nbytes) retval = -1;
         }
     }

 SS_CLEANUP:
     SS_RETVAL(-2);
     SS_LEAVE(retval);
 }