File Coverage

ulib/unparse.c
Criterion Covered Total %
statement 125 161 77.6
branch 4 4 100.0
condition n/a
subroutine n/a
pod n/a
total 129 165 78.1


line stmt bran cond sub pod time code
1             #ifdef __cplusplus
2             extern "C" {
3             #endif
4              
5             #include "ulib/unparse.h"
6              
7             #ifdef __cplusplus
8             }
9             #endif
10              
11             static const char *fmt_lower = "0123456789abcdef";
12             static const char *fmt_upper = "0123456789ABCDEF";
13              
14             #ifdef UUID_UNPARSE_DEFAULT_UPPER
15             #define FMT_DEFAULT fmt_upper
16             #else
17             #define FMT_DEFAULT fmt_lower
18             #endif
19              
20             /* convert U64 to hex chars. */
21 17399           static void uu_u64_2hex(const U64 in, char *out, const int len, const char *fmt) {
22 17399           U64 n = in;
23 17399           int i = len;
24              
25             do {
26 69355           out[--i] = fmt[n % 16];
27 69355           n >>= 4;
28 69355 100         } while (n > 0);
29              
30 20876 100         while (i > 0)
31 3477           out[--i] = '0';
32 17399           }
33              
34 168           static void uu_unparse_x0(const struct_uu_t *in, char *out, const char *fmt) {
35 168           char *dst = out;
36              
37 168           uu_u64_2hex(in->v1.time_low, dst, 8, fmt); dst += 8; *dst++ = '-';
38 168           uu_u64_2hex(in->v1.time_mid, dst, 4, fmt); dst += 4; *dst++ = '-';
39 168           uu_u64_2hex(in->v1.time_high_and_version, dst, 4, fmt); dst += 4; *dst++ = '-';
40 168           uu_u64_2hex(in->v1.clock_seq_and_variant, dst, 4, fmt); dst += 4; *dst++ = '-';
41 168           uu_u64_2hex(in->v1.node[0], dst, 2, fmt); dst += 2;
42 168           uu_u64_2hex(in->v1.node[1], dst, 2, fmt); dst += 2;
43 168           uu_u64_2hex(in->v1.node[2], dst, 2, fmt); dst += 2;
44 168           uu_u64_2hex(in->v1.node[3], dst, 2, fmt); dst += 2;
45 168           uu_u64_2hex(in->v1.node[4], dst, 2, fmt); dst += 2;
46 168           uu_u64_2hex(in->v1.node[5], dst, 2, fmt); dst += 2;
47 168           *dst = 0;
48 168           }
49              
50 0           void uu_unparse_lower0(const struct_uu_t *in, char *out) {
51 0           uu_unparse_x0(in, out, fmt_lower);
52 0           }
53              
54 0           void uu_unparse_upper0(const struct_uu_t *in, char *out) {
55 0           uu_unparse_x0(in, out, fmt_upper);
56 0           }
57              
58 168           void uu_unparse0(const struct_uu_t *in, char *out) {
59 168           uu_unparse_x0(in, out, FMT_DEFAULT);
60 168           }
61              
62              
63 686           static void uu_unparse_x1(const struct_uu_t *in, char *out, const char *fmt) {
64 686           char *dst = out;
65              
66 686           uu_u64_2hex(in->v1.time_low, dst, 8, fmt); dst += 8; *dst++ = '-';
67 686           uu_u64_2hex(in->v1.time_mid, dst, 4, fmt); dst += 4; *dst++ = '-';
68 686           uu_u64_2hex(in->v1.time_high_and_version, dst, 4, fmt); dst += 4; *dst++ = '-';
69 686           uu_u64_2hex(in->v1.clock_seq_and_variant, dst, 4, fmt); dst += 4; *dst++ = '-';
70 686           uu_u64_2hex(in->v1.node[0], dst, 2, fmt); dst += 2;
71 686           uu_u64_2hex(in->v1.node[1], dst, 2, fmt); dst += 2;
72 686           uu_u64_2hex(in->v1.node[2], dst, 2, fmt); dst += 2;
73 686           uu_u64_2hex(in->v1.node[3], dst, 2, fmt); dst += 2;
74 686           uu_u64_2hex(in->v1.node[4], dst, 2, fmt); dst += 2;
75 686           uu_u64_2hex(in->v1.node[5], dst, 2, fmt); dst += 2;
76 686           *dst = 0;
77 686           }
78              
79 634           void uu_unparse_lower1(const struct_uu_t *in, char *out) {
80 634           uu_unparse_x1(in, out, fmt_lower);
81 634           }
82              
83 4           void uu_unparse_upper1(const struct_uu_t *in, char *out) {
84 4           uu_unparse_x1(in, out, fmt_upper);
85 4           }
86              
87 48           void uu_unparse1(const struct_uu_t *in, char *out) {
88 48           uu_unparse_x1(in, out, FMT_DEFAULT);
89 48           }
90              
91              
92 28           static void uu_unparse_x3(const struct_uu_t *in, char *out, const char *fmt) {
93 28           char *dst = out;
94              
95 28           uu_u64_2hex(in->v1.time_low, dst, 8, fmt); dst += 8; *dst++ = '-';
96 28           uu_u64_2hex(in->v1.time_mid, dst, 4, fmt); dst += 4; *dst++ = '-';
97 28           uu_u64_2hex(in->v1.time_high_and_version, dst, 4, fmt); dst += 4; *dst++ = '-';
98 28           uu_u64_2hex(in->v1.clock_seq_and_variant, dst, 4, fmt); dst += 4; *dst++ = '-';
99 28           uu_u64_2hex(in->v1.node[0], dst, 2, fmt); dst += 2;
100 28           uu_u64_2hex(in->v1.node[1], dst, 2, fmt); dst += 2;
101 28           uu_u64_2hex(in->v1.node[2], dst, 2, fmt); dst += 2;
102 28           uu_u64_2hex(in->v1.node[3], dst, 2, fmt); dst += 2;
103 28           uu_u64_2hex(in->v1.node[4], dst, 2, fmt); dst += 2;
104 28           uu_u64_2hex(in->v1.node[5], dst, 2, fmt); dst += 2;
105 28           *dst = 0;
106 28           }
107              
108 0           void uu_unparse_lower3(const struct_uu_t *in, char *out) {
109 0           uu_unparse_x3(in, out, fmt_lower);
110 0           }
111              
112 0           void uu_unparse_upper3(const struct_uu_t *in, char *out) {
113 0           uu_unparse_x3(in, out, fmt_upper);
114 0           }
115              
116 28           void uu_unparse3(const struct_uu_t *in, char *out) {
117 28           uu_unparse_x3(in, out, FMT_DEFAULT);
118 28           }
119              
120              
121 1319           static void uu_unparse_x4(const struct_uu_t *in, char *out, const char *fmt) {
122 1319           char *dst = out;
123              
124 1319           uu_u64_2hex(in->v4.rand_a, dst, 8, fmt); dst += 8; *dst++ = '-';
125 1319           uu_u64_2hex(in->v4.rand_b_and_version >> 16, dst, 4, fmt); dst += 4; *dst++ = '-';
126 1319           uu_u64_2hex(in->v4.rand_b_and_version & 0xffff, dst, 4, fmt); dst += 4; *dst++ = '-';
127 1319           uu_u64_2hex(in->v4.rand_c_and_variant >> 16, dst, 4, fmt); dst += 4; *dst++ = '-';
128 1319           uu_u64_2hex(in->v4.rand_c_and_variant & 0xffff, dst, 4, fmt); dst += 4;
129 1319           uu_u64_2hex(in->v4.rand_d, dst, 8, fmt); dst += 8;
130 1319           *dst = 0;
131 1319           }
132              
133 0           void uu_unparse_lower4(const struct_uu_t *in, char *out) {
134 0           uu_unparse_x4(in, out, fmt_lower);
135 0           }
136              
137 0           void uu_unparse_upper4(const struct_uu_t *in, char *out) {
138 0           uu_unparse_x4(in, out, fmt_upper);
139 0           }
140              
141 1319           void uu_unparse4(const struct_uu_t *in, char *out) {
142 1319           uu_unparse_x4(in, out, FMT_DEFAULT);
143 1319           }
144              
145              
146 22           static void uu_unparse_x5(const struct_uu_t *in, char *out, const char *fmt) {
147 22           char *dst = out;
148              
149 22           uu_u64_2hex(in->v1.time_low, dst, 8, fmt); dst += 8; *dst++ = '-';
150 22           uu_u64_2hex(in->v1.time_mid, dst, 4, fmt); dst += 4; *dst++ = '-';
151 22           uu_u64_2hex(in->v1.time_high_and_version, dst, 4, fmt); dst += 4; *dst++ = '-';
152 22           uu_u64_2hex(in->v1.clock_seq_and_variant, dst, 4, fmt); dst += 4; *dst++ = '-';
153 22           uu_u64_2hex(in->v1.node[0], dst, 2, fmt); dst += 2;
154 22           uu_u64_2hex(in->v1.node[1], dst, 2, fmt); dst += 2;
155 22           uu_u64_2hex(in->v1.node[2], dst, 2, fmt); dst += 2;
156 22           uu_u64_2hex(in->v1.node[3], dst, 2, fmt); dst += 2;
157 22           uu_u64_2hex(in->v1.node[4], dst, 2, fmt); dst += 2;
158 22           uu_u64_2hex(in->v1.node[5], dst, 2, fmt); dst += 2;
159 22           *dst = 0;
160 22           }
161              
162 0           void uu_unparse_lower5(const struct_uu_t *in, char *out) {
163 0           uu_unparse_x5(in, out, fmt_lower);
164 0           }
165              
166 0           void uu_unparse_upper5(const struct_uu_t *in, char *out) {
167 0           uu_unparse_x5(in, out, fmt_upper);
168 0           }
169              
170 22           void uu_unparse5(const struct_uu_t *in, char *out) {
171 22           uu_unparse_x5(in, out, FMT_DEFAULT);
172 22           }
173              
174              
175 36           static void uu_unparse_x6(const struct_uu_t *in, char *out, const char *fmt) {
176 36           char *dst = out;
177              
178 36           uu_u64_2hex(in->v6.time_high, dst, 8, fmt); dst += 8; *dst++ = '-';
179 36           uu_u64_2hex(in->v6.time_mid, dst, 4, fmt); dst += 4; *dst++ = '-';
180 36           uu_u64_2hex(in->v6.time_low_and_version, dst, 4, fmt); dst += 4; *dst++ = '-';
181 36           uu_u64_2hex(in->v6.clock_seq_and_variant, dst, 4, fmt); dst += 4; *dst++ = '-';
182 36           uu_u64_2hex(in->v6.node[0], dst, 2, fmt); dst += 2;
183 36           uu_u64_2hex(in->v6.node[1], dst, 2, fmt); dst += 2;
184 36           uu_u64_2hex(in->v6.node[2], dst, 2, fmt); dst += 2;
185 36           uu_u64_2hex(in->v6.node[3], dst, 2, fmt); dst += 2;
186 36           uu_u64_2hex(in->v6.node[4], dst, 2, fmt); dst += 2;
187 36           uu_u64_2hex(in->v6.node[5], dst, 2, fmt); dst += 2;
188 36           *dst = 0;
189 36           }
190              
191 0           void uu_unparse_lower6(const struct_uu_t *in, char *out) {
192 0           uu_unparse_x6(in, out, fmt_lower);
193 0           }
194              
195 0           void uu_unparse_upper6(const struct_uu_t *in, char *out) {
196 0           uu_unparse_x6(in, out, fmt_upper);
197 0           }
198              
199 36           void uu_unparse6(const struct_uu_t *in, char *out) {
200 36           uu_unparse_x6(in, out, FMT_DEFAULT);
201 36           }
202              
203              
204 17           static void uu_unparse_x7(const struct_uu_t *in, char *out, const char *fmt) {
205 17           char *dst = out;
206              
207 17           uu_u64_2hex(in->v7.time_high, dst, 8, fmt); dst += 8; *dst++ = '-';
208 17           uu_u64_2hex(in->v7.time_low, dst, 4, fmt); dst += 4; *dst++ = '-';
209 17           uu_u64_2hex(in->v7.rand_a_and_version, dst, 4, fmt); dst += 4; *dst++ = '-';
210 17           uu_u64_2hex(in->v7.rand_b_and_variant >> 48, dst, 4, fmt); dst += 4; *dst++ = '-';
211 17           uu_u64_2hex(in->v7.rand_b_and_variant & 0xffffffffffffULL, dst, 12, fmt); dst += 12;
212 17           *dst = 0;
213 17           }
214              
215 0           void uu_unparse_lower7(const struct_uu_t *in, char *out) {
216 0           uu_unparse_x7(in, out, fmt_lower);
217 0           }
218              
219 0           void uu_unparse_upper7(const struct_uu_t *in, char *out) {
220 0           uu_unparse_x7(in, out, fmt_upper);
221 0           }
222              
223 17           void uu_unparse7(const struct_uu_t *in, char *out) {
224 17           uu_unparse_x7(in, out, FMT_DEFAULT);
225 17           }
226              
227             /* ex:set ts=2 sw=2 itab=spaces: */