176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * Display directory contents 376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */ 476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include <stdlib.h> 576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include <stdio.h> 676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include <console.h> 776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include <string.h> 876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include <com32.h> 976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include <zzjson/zzjson.h> 1076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include <stdarg.h> 1176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanstatic void myerror(void *ehandle, const char *format, ...) { 1376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman va_list ap; 1476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman fprintf(ehandle, "error: "); 1576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman va_start(ap, format); 1676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman vfprintf(ehandle, format, ap); 1776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman va_end(ap); 1876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman fputc('\n', ehandle); 1976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} 2076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanint main(int argc, char *argv[]) 2376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman{ 2476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#if 0 2576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman /* this hangs! */ 2676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman openconsole(&dev_rawcon_r, &dev_stdcon_w); 2776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#else 2876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman /* this works */ 2976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman openconsole(&dev_rawcon_r, &dev_ansiserial_w); 3076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 3176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman (void) argc; 3276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman (void) argv; 3376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman ZZJSON *tmp; 3476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman ZZJSON_CONFIG config = { ZZJSON_VERY_STRICT, NULL, 3576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman (int(*)(void*)) fgetc, 3676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman NULL, 3776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman malloc, calloc, free, realloc, 3876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman stderr, myerror, stdout, 3976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman (int(*)(void*,const char*,...)) fprintf, 4076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman (int(*)(int,void*)) fputc }; 4176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 4276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman do { 4376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman ZZJSON *tmp2; 4476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 4576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman tmp = zzjson_create_array(&config, 4676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman zzjson_create_number_d(&config, 3.14), 4776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman zzjson_create_number_i(&config, 1234LL), 4876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman zzjson_create_number_i(&config, -4321LL), 4976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman zzjson_create_true(&config), 5076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman zzjson_create_false(&config), 5176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman zzjson_create_null(&config), 5276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman zzjson_create_string(&config, "hello, world"), 5376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman zzjson_create_object(&config, 5476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman "picard", zzjson_create_string(&config, "jean-luc"), 5576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman "riker", zzjson_create_string(&config, "william t."), 5676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman NULL), 5776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman zzjson_create_object(&config, NULL), 5876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman zzjson_create_array(&config, NULL), 5976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman NULL ); 6076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 6176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman if (!tmp) { 6276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman fprintf(stderr, "error during creation of json tree\n"); 6376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman break; 6476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman } 6576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 6676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman tmp2 = zzjson_array_prepend(&config, tmp, 6776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman zzjson_create_string(&config, "prepended string")); 6876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 6976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman if (!tmp2) { 7076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman fprintf(stderr, "error during prepend\n"); 7176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman break; 7276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman } 7376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman tmp = tmp2; 7476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 7576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman tmp2 = zzjson_array_append(&config, tmp, 7676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman zzjson_create_string(&config, "appended string (slow)")); 7776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 7876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman if (!tmp2) { 7976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman fprintf(stderr, "error during append\n"); 8076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman break; 8176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman } 8276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman tmp = tmp2; 8376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 8476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman zzjson_print(&config, tmp); 8576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman } while(0); 8676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman if (tmp) zzjson_free(&config, tmp); 8776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 8876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman { 8976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman tmp = zzjson_create_array(&config, NULL); /* empty array */ 9076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman tmp = zzjson_array_prepend(&config, tmp, zzjson_create_true(&config)); 9176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman zzjson_print(&config, tmp); 9276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman zzjson_free(&config, tmp); 9376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman } 9476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 9576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman { 9676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman tmp = zzjson_create_object(&config, NULL); /* empty object */ 9776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman tmp = zzjson_object_prepend(&config, tmp, "hello", 9876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman zzjson_create_string(&config, "world")); 9976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman tmp = zzjson_object_append(&config, tmp, "goodbye", 10076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman zzjson_create_string(&config, "cruel world")); 10176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman zzjson_print(&config, tmp); 10276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman zzjson_free(&config, tmp); 10376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman } 10476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 10576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman return 0; 10676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman} 10776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 108