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 724189           static void uu_u64_2hex(const U64 in, char *out, const int len, const char *fmt) {
22 724189           U64 n = in;
23 724189           int i = len;
24              
25             do {
26 2669748           out[--i] = fmt[n % 16];
27 2669748           n >>= 4;
28 2669748 100         } while (n > 0);
29              
30 775561 100         while (i > 0)
31 51372           out[--i] = '0';
32 724189           }
33              
34 227           static void uu_unparse_x0(const struct_uu_t *in, char *out, const char *fmt) {
35 227           char *dst = out;
36              
37 227           uu_u64_2hex(in->v1.time_low, dst, 8, fmt); dst += 8; *dst++ = '-';
38 227           uu_u64_2hex(in->v1.time_mid, dst, 4, fmt); dst += 4; *dst++ = '-';
39 227           uu_u64_2hex(in->v1.time_high_and_version, dst, 4, fmt); dst += 4; *dst++ = '-';
40 227           uu_u64_2hex(in->v1.clock_seq_and_variant, dst, 4, fmt); dst += 4; *dst++ = '-';
41 227           uu_u64_2hex(in->v1.node[0], dst, 2, fmt); dst += 2;
42 227           uu_u64_2hex(in->v1.node[1], dst, 2, fmt); dst += 2;
43 227           uu_u64_2hex(in->v1.node[2], dst, 2, fmt); dst += 2;
44 227           uu_u64_2hex(in->v1.node[3], dst, 2, fmt); dst += 2;
45 227           uu_u64_2hex(in->v1.node[4], dst, 2, fmt); dst += 2;
46 227           uu_u64_2hex(in->v1.node[5], dst, 2, fmt); dst += 2;
47 227           *dst = 0;
48 227           }
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 227           void uu_unparse0(const struct_uu_t *in, char *out) {
59 227           uu_unparse_x0(in, out, FMT_DEFAULT);
60 227           }
61              
62              
63 14686           static void uu_unparse_x1(const struct_uu_t *in, char *out, const char *fmt) {
64 14686           char *dst = out;
65              
66 14686           uu_u64_2hex(in->v1.time_low, dst, 8, fmt); dst += 8; *dst++ = '-';
67 14686           uu_u64_2hex(in->v1.time_mid, dst, 4, fmt); dst += 4; *dst++ = '-';
68 14686           uu_u64_2hex(in->v1.time_high_and_version, dst, 4, fmt); dst += 4; *dst++ = '-';
69 14686           uu_u64_2hex(in->v1.clock_seq_and_variant, dst, 4, fmt); dst += 4; *dst++ = '-';
70 14686           uu_u64_2hex(in->v1.node[0], dst, 2, fmt); dst += 2;
71 14686           uu_u64_2hex(in->v1.node[1], dst, 2, fmt); dst += 2;
72 14686           uu_u64_2hex(in->v1.node[2], dst, 2, fmt); dst += 2;
73 14686           uu_u64_2hex(in->v1.node[3], dst, 2, fmt); dst += 2;
74 14686           uu_u64_2hex(in->v1.node[4], dst, 2, fmt); dst += 2;
75 14686           uu_u64_2hex(in->v1.node[5], dst, 2, fmt); dst += 2;
76 14686           *dst = 0;
77 14686           }
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 14048           void uu_unparse1(const struct_uu_t *in, char *out) {
88 14048           uu_unparse_x1(in, out, FMT_DEFAULT);
89 14048           }
90              
91              
92 14028           static void uu_unparse_x3(const struct_uu_t *in, char *out, const char *fmt) {
93 14028           char *dst = out;
94              
95 14028           uu_u64_2hex(in->v1.time_low, dst, 8, fmt); dst += 8; *dst++ = '-';
96 14028           uu_u64_2hex(in->v1.time_mid, dst, 4, fmt); dst += 4; *dst++ = '-';
97 14028           uu_u64_2hex(in->v1.time_high_and_version, dst, 4, fmt); dst += 4; *dst++ = '-';
98 14028           uu_u64_2hex(in->v1.clock_seq_and_variant, dst, 4, fmt); dst += 4; *dst++ = '-';
99 14028           uu_u64_2hex(in->v1.node[0], dst, 2, fmt); dst += 2;
100 14028           uu_u64_2hex(in->v1.node[1], dst, 2, fmt); dst += 2;
101 14028           uu_u64_2hex(in->v1.node[2], dst, 2, fmt); dst += 2;
102 14028           uu_u64_2hex(in->v1.node[3], dst, 2, fmt); dst += 2;
103 14028           uu_u64_2hex(in->v1.node[4], dst, 2, fmt); dst += 2;
104 14028           uu_u64_2hex(in->v1.node[5], dst, 2, fmt); dst += 2;
105 14028           *dst = 0;
106 14028           }
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 14028           void uu_unparse3(const struct_uu_t *in, char *out) {
117 14028           uu_unparse_x3(in, out, FMT_DEFAULT);
118 14028           }
119              
120              
121 14019           static void uu_unparse_x4(const struct_uu_t *in, char *out, const char *fmt) {
122 14019           char *dst = out;
123              
124 14019           uu_u64_2hex(in->v4.rand_a, dst, 8, fmt); dst += 8; *dst++ = '-';
125 14019           uu_u64_2hex(in->v4.rand_b_and_version >> 16, dst, 4, fmt); dst += 4; *dst++ = '-';
126 14019           uu_u64_2hex(in->v4.rand_b_and_version & 0xffff, dst, 4, fmt); dst += 4; *dst++ = '-';
127 14019           uu_u64_2hex(in->v4.rand_c_and_variant >> 16, dst, 4, fmt); dst += 4; *dst++ = '-';
128 14019           uu_u64_2hex(in->v4.rand_c_and_variant & 0xffff, dst, 4, fmt); dst += 4;
129 14019           uu_u64_2hex(in->v4.rand_d, dst, 8, fmt); dst += 8;
130 14019           *dst = 0;
131 14019           }
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 14019           void uu_unparse4(const struct_uu_t *in, char *out) {
142 14019           uu_unparse_x4(in, out, FMT_DEFAULT);
143 14019           }
144              
145              
146 14022           static void uu_unparse_x5(const struct_uu_t *in, char *out, const char *fmt) {
147 14022           char *dst = out;
148              
149 14022           uu_u64_2hex(in->v1.time_low, dst, 8, fmt); dst += 8; *dst++ = '-';
150 14022           uu_u64_2hex(in->v1.time_mid, dst, 4, fmt); dst += 4; *dst++ = '-';
151 14022           uu_u64_2hex(in->v1.time_high_and_version, dst, 4, fmt); dst += 4; *dst++ = '-';
152 14022           uu_u64_2hex(in->v1.clock_seq_and_variant, dst, 4, fmt); dst += 4; *dst++ = '-';
153 14022           uu_u64_2hex(in->v1.node[0], dst, 2, fmt); dst += 2;
154 14022           uu_u64_2hex(in->v1.node[1], dst, 2, fmt); dst += 2;
155 14022           uu_u64_2hex(in->v1.node[2], dst, 2, fmt); dst += 2;
156 14022           uu_u64_2hex(in->v1.node[3], dst, 2, fmt); dst += 2;
157 14022           uu_u64_2hex(in->v1.node[4], dst, 2, fmt); dst += 2;
158 14022           uu_u64_2hex(in->v1.node[5], dst, 2, fmt); dst += 2;
159 14022           *dst = 0;
160 14022           }
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 14022           void uu_unparse5(const struct_uu_t *in, char *out) {
171 14022           uu_unparse_x5(in, out, FMT_DEFAULT);
172 14022           }
173              
174              
175 14036           static void uu_unparse_x6(const struct_uu_t *in, char *out, const char *fmt) {
176 14036           char *dst = out;
177              
178 14036           uu_u64_2hex(in->v6.time_high, dst, 8, fmt); dst += 8; *dst++ = '-';
179 14036           uu_u64_2hex(in->v6.time_mid, dst, 4, fmt); dst += 4; *dst++ = '-';
180 14036           uu_u64_2hex(in->v6.time_low_and_version, dst, 4, fmt); dst += 4; *dst++ = '-';
181 14036           uu_u64_2hex(in->v6.clock_seq_and_variant, dst, 4, fmt); dst += 4; *dst++ = '-';
182 14036           uu_u64_2hex(in->v6.node[0], dst, 2, fmt); dst += 2;
183 14036           uu_u64_2hex(in->v6.node[1], dst, 2, fmt); dst += 2;
184 14036           uu_u64_2hex(in->v6.node[2], dst, 2, fmt); dst += 2;
185 14036           uu_u64_2hex(in->v6.node[3], dst, 2, fmt); dst += 2;
186 14036           uu_u64_2hex(in->v6.node[4], dst, 2, fmt); dst += 2;
187 14036           uu_u64_2hex(in->v6.node[5], dst, 2, fmt); dst += 2;
188 14036           *dst = 0;
189 14036           }
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 14036           void uu_unparse6(const struct_uu_t *in, char *out) {
200 14036           uu_unparse_x6(in, out, FMT_DEFAULT);
201 14036           }
202              
203              
204 14017           static void uu_unparse_x7(const struct_uu_t *in, char *out, const char *fmt) {
205 14017           char *dst = out;
206              
207 14017           uu_u64_2hex(in->v7.time_high, dst, 8, fmt); dst += 8; *dst++ = '-';
208 14017           uu_u64_2hex(in->v7.time_low, dst, 4, fmt); dst += 4; *dst++ = '-';
209 14017           uu_u64_2hex(in->v7.rand_a_and_version, dst, 4, fmt); dst += 4; *dst++ = '-';
210 14017           uu_u64_2hex(in->v7.rand_b_and_variant >> 48, dst, 4, fmt); dst += 4; *dst++ = '-';
211 14017           uu_u64_2hex(in->v7.rand_b_and_variant & 0xffffffffffffULL, dst, 12, fmt); dst += 12;
212 14017           *dst = 0;
213 14017           }
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 14017           void uu_unparse7(const struct_uu_t *in, char *out) {
224 14017           uu_unparse_x7(in, out, FMT_DEFAULT);
225 14017           }
226              
227             /* ex:set ts=2 sw=2 itab=spaces: */