summaryrefslogtreecommitdiffstats
path: root/src/out-default.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/out-default.c')
-rw-r--r--src/out-default.c79
1 files changed, 1 insertions, 78 deletions
diff --git a/src/out-default.c b/src/out-default.c
index 676a677..5d4b6fc 100644
--- a/src/out-default.c
+++ b/src/out-default.c
@@ -39,46 +39,7 @@
39#include "strbuf.h" 39#include "strbuf.h"
40#include "time64.h" 40#include "time64.h"
41#include "hashtable.h" 41#include "hashtable.h"
42 42#include "common.h"
43#define MAC_EPOCH 978307200
44
45static size_t dtostr(char *buf, size_t bufsize, double realval)
46{
47 int slen = 0;
48 if (isnan(realval)) {
49 slen = snprintf(buf, bufsize, "nan");
50 } else if (isinf(realval)) {
51 slen = snprintf(buf, bufsize, "%cinfinity", (realval > 0.0) ? '+' : '-');
52 } else if (realval == 0.0f) {
53 slen = snprintf(buf, bufsize, "0.0");
54 } else {
55 slen = snprintf(buf, bufsize, "%.*g", 17, realval);
56 if (slen < 0) {
57 return 0;
58 }
59 if (!buf || bufsize == 0) {
60 return (size_t)slen;
61 }
62 size_t len = (size_t)slen;
63 if (len >= bufsize) {
64 len = bufsize - 1;
65 }
66 size_t i = 0;
67 for (i = 0; i < len; i++) {
68 if (buf[i] == ',') {
69 buf[i] = '.';
70 break;
71 } else if (buf[i] == '.') {
72 break;
73 }
74 }
75 return len;
76 }
77 if (slen < 0) {
78 return 0;
79 }
80 return (size_t)slen;
81}
82 43
83static plist_err_t node_to_string(node_t node, bytearray_t **outbuf, uint32_t depth, uint32_t indent, int partial_data) 44static plist_err_t node_to_string(node_t node, bytearray_t **outbuf, uint32_t depth, uint32_t indent, int partial_data)
84{ 45{
@@ -313,44 +274,6 @@ static plist_err_t node_to_string(node_t node, bytearray_t **outbuf, uint32_t de
313 return PLIST_ERR_SUCCESS; 274 return PLIST_ERR_SUCCESS;
314} 275}
315 276
316#define PO10i_LIMIT (INT64_MAX/10)
317
318/* based on https://stackoverflow.com/a/4143288 */
319static int num_digits_i(int64_t i)
320{
321 int n;
322 int64_t po10;
323 n=1;
324 if (i < 0) {
325 i = (i == INT64_MIN) ? INT64_MAX : -i;
326 n++;
327 }
328 po10=10;
329 while (i>=po10) {
330 n++;
331 if (po10 > PO10i_LIMIT) break;
332 po10*=10;
333 }
334 return n;
335}
336
337#define PO10u_LIMIT (UINT64_MAX/10)
338
339/* based on https://stackoverflow.com/a/4143288 */
340static int num_digits_u(uint64_t i)
341{
342 int n;
343 uint64_t po10;
344 n=1;
345 po10=10;
346 while (i>=po10) {
347 n++;
348 if (po10 > PO10u_LIMIT) break;
349 po10*=10;
350 }
351 return n;
352}
353
354static plist_err_t _node_estimate_size(node_t node, uint64_t *size, uint32_t depth, uint32_t indent, int partial_data, hashtable_t *visited) 277static plist_err_t _node_estimate_size(node_t node, uint64_t *size, uint32_t depth, uint32_t indent, int partial_data, hashtable_t *visited)
355{ 278{
356 plist_data_t data; 279 plist_data_t data;