/* Collection of code snippets by Arne Vajhøj */
/* (from articles on eksperten.dk / vajhoej.dk written sometime between 2004 and now) */
#define TRUE 1
#define FALSE 0
static int comma = FALSE;

#define json_start_anon_array(fp) fprintf(fp, "%s[", comma ? "," : ""); comma = FALSE
#define json_start_named_array(fp, propnam) fprintf(fp, "%s\"%s\":[", comma ? "," : "", propnam); comma = FALSE
#define json_end_array(fp) fprintf(fp, "]"); comma = TRUE

#define json_start_anon_object(fp) fprintf(fp, "%s{", comma ? "," : ""); comma = FALSE
#define json_start_named_object(fp, propnam) fprintf(fp, "%s\"%s\":{", comma ? "," : "", propnam); comma = FALSE
#define json_end_object(fp) fprintf(fp, "}"); comma = TRUE

#define json_anon_int_value(fp, val) fprintf(fp, "%s%d", comma ? "," : "", val); comma = TRUE
#define json_named_int_value(fp, propnam, val) fprintf(fp, "%s\"%s\":%d", comma ? "," : "", propnam, val); comma = TRUE

#define json_anon_string_value(fp, val) fprintf(fp, "%s\"%s\"", comma ? "," : "", val); comma = TRUE
#define json_named_string_value(fp, propnam, val) fprintf(fp, "%s\"%s\":\"%s\"", comma ? "," : "", propnam, val); comma = TRUE
