22 fprintf(stderr,
"Out of memory allocating %zu*%zu bytes!\n", num, len);
24 fprintf(stderr,
"Out of memory allocating %zu bytes!\n", len);
32 void *r = malloc(len ? len : 1);
41 if (len && (num * len) / len != num)
50 old = malloc(len ? len : 1);
52 old = realloc(old, len ? len : 1);
61 if (len && (num * len) / len != num)
70 if (num == 0 || len == 0)
93 if (gettimeofday(&tv, 0))
95 r = (((
unsigned int)tv.tv_sec >> 16) * 1000) << 16;
96 r += ((
unsigned int)tv.tv_sec & 0xffff) * 1000;
97 r += (
unsigned int)tv.tv_usec / 1000;
106 #if defined(__GLIBC__)
108 # if HAVE_QSORT_R || HAVE___QSORT_R
110 sat_sort(
void *base,
size_t nmemb,
size_t size,
int (*compar)(
const void *,
const void *,
void *),
void *compard)
113 qsort_r(base, nmemb, size, compar, compard);
116 __qsort_r(base, nmemb, size, compar, compard);
128 int (*
compar)(
const void *,
const void *,
void *);
155 l1 = str1 ? strlen(str1) : 0;
156 l2 = str2 ? strlen(str2) : 0;
157 l3 = str3 ? strlen(str3) : 0;
189 const char *str = *strp;
192 for (i = 0; i < bufl; i++)
196 if (c >=
'0' && c <=
'9')
198 else if (c >=
'a' && c <=
'f')
200 else if (c >=
'A' && c <=
'F')
206 if (c >=
'0' && c <=
'9')
208 else if (c >=
'a' && c <=
'f')
210 else if (c >=
'A' && c <=
'F')
225 for (i = 0; i < l; i++, buf++)
228 *str++ = c < 10 ? c +
'0' : c + (
'a' - 10);
230 *str++ = c < 10 ? c +
'0' : c + (
'a' - 10);