source: bootcd/isolinux/syslinux-6.03/com32/modules/zzjson.c @ dd1be7c

Last change on this file since dd1be7c was e16e8f2, checked in by Edwin Eefting <edwin@datux.nl>, 3 years ago

bootstuff

  • Property mode set to 100644
File size: 3.1 KB
Line 
1/*
2 * Display directory contents
3 */
4#include <stdlib.h>
5#include <stdio.h>
6#include <console.h>
7#include <string.h>
8#include <com32.h>
9#include <zzjson/zzjson.h>
10#include <stdarg.h>
11
12static void myerror(void *ehandle, const char *format, ...) {
13    va_list ap;
14    fprintf(ehandle, "error: ");
15    va_start(ap, format);
16    vfprintf(ehandle, format, ap);
17    va_end(ap);
18    fputc('\n', ehandle);
19}
20
21
22int main(int argc, char *argv[])
23{
24#if 0
25        /* this hangs! */
26    openconsole(&dev_rawcon_r, &dev_stdcon_w);
27#else
28        /* this works */
29    openconsole(&dev_rawcon_r, &dev_ansiserial_w);
30#endif
31    (void) argc;
32    (void) argv;
33    ZZJSON  *tmp;
34    ZZJSON_CONFIG config = { ZZJSON_VERY_STRICT, NULL,
35                             (int(*)(void*)) fgetc,
36                             NULL,
37                             malloc, calloc, free, realloc,
38                             stderr, myerror, stdout,
39                             (int(*)(void*,const char*,...)) fprintf,
40                             (int(*)(int,void*)) fputc };
41   
42    do {
43        ZZJSON *tmp2;
44
45        tmp = zzjson_create_array(&config,
46                zzjson_create_number_d(&config, 3.14),
47                zzjson_create_number_i(&config, 1234LL),
48                zzjson_create_number_i(&config, -4321LL),
49                zzjson_create_true(&config),
50                zzjson_create_false(&config),
51                zzjson_create_null(&config),
52                zzjson_create_string(&config, "hello, world"),
53                zzjson_create_object(&config,
54                    "picard", zzjson_create_string(&config, "jean-luc"),
55                    "riker",  zzjson_create_string(&config, "william t."),
56                    NULL),
57                zzjson_create_object(&config, NULL),
58                zzjson_create_array(&config, NULL),
59                NULL );
60
61        if (!tmp) {
62            fprintf(stderr, "error during creation of json tree\n");
63            break;
64        }
65
66        tmp2 = zzjson_array_prepend(&config, tmp,
67                    zzjson_create_string(&config, "prepended string"));
68
69        if (!tmp2) {
70            fprintf(stderr, "error during prepend\n");
71            break;
72        }
73        tmp = tmp2;
74
75        tmp2 = zzjson_array_append(&config, tmp,
76                    zzjson_create_string(&config, "appended string (slow)"));
77
78        if (!tmp2) {
79            fprintf(stderr, "error during append\n");
80            break;
81        }
82        tmp = tmp2;
83
84        zzjson_print(&config, tmp);
85    } while(0);
86    if (tmp) zzjson_free(&config, tmp);
87
88    {
89        tmp = zzjson_create_array(&config, NULL); /* empty array */
90        tmp = zzjson_array_prepend(&config, tmp, zzjson_create_true(&config));
91        zzjson_print(&config, tmp);
92        zzjson_free(&config, tmp);
93    }
94
95    {
96        tmp = zzjson_create_object(&config, NULL); /* empty object */
97        tmp = zzjson_object_prepend(&config, tmp, "hello",
98                                zzjson_create_string(&config, "world"));
99        tmp = zzjson_object_append(&config, tmp, "goodbye",
100                                zzjson_create_string(&config, "cruel world"));
101        zzjson_print(&config, tmp);
102        zzjson_free(&config, tmp);
103    }
104
105    return 0;
106}
107 
Note: See TracBrowser for help on using the repository browser.