blob: 5594502f623d5ecab88713bd4e7171c0cda0ece4 (
plain) (
blame)
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
26
27
28
29
|
/* See LICENSE file for copyright and license details. */
#include "internals.h"
int
zcmpmag(z_t a, z_t b)
{
size_t i, j;
if (unlikely(zzero(a)))
return -!zzero(b);
if (unlikely(zzero(b)))
return 1;
i = a->used - 1;
j = b->used - 1;
for (; i > j; i--) {
if (a->chars[i])
return +1;
a->used--;
}
for (; j > i; j--) {
if (b->chars[j])
return -1;
b->used--;
}
for (; i; i--)
if (a->chars[i] != b->chars[i])
return (a->chars[i] > b->chars[i]) * 2 - 1;
return a->chars[0] < b->chars[0] ? -1 : a->chars[0] > b->chars[0];
}
|