Skip to content

Commit f4f3246

Browse files
committed
Fix test.c when printing object name.
1 parent d91e1f0 commit f4f3246

File tree

1 file changed

+42
-41
lines changed

1 file changed

+42
-41
lines changed

test.c

Lines changed: 42 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,46 @@
66

77
void print_json_value(const json_value_t *val, int depth);
88

9+
void print_json_string(const char *str)
10+
{
11+
printf("\"");
12+
while (*str)
13+
{
14+
switch (*str)
15+
{
16+
case '\r':
17+
printf("\\r");
18+
break;
19+
case '\n':
20+
printf("\\n");
21+
break;
22+
case '\f':
23+
printf("\\f");
24+
break;
25+
case '\b':
26+
printf("\\b");
27+
break;
28+
case '\"':
29+
printf("\\\"");
30+
break;
31+
case '\t':
32+
printf("\\t");
33+
break;
34+
case '\\':
35+
printf("\\\\");
36+
break;
37+
default:
38+
if ((unsigned char)*str < 0x20)
39+
printf("\\u00%02x", *str);
40+
else
41+
printf("%c", *str);
42+
break;
43+
}
44+
str++;
45+
}
46+
printf("\"");
47+
}
48+
949
void print_json_object(const json_object_t *obj, int depth)
1050
{
1151
const char *name;
@@ -27,7 +67,8 @@ void print_json_object(const json_object_t *obj, int depth)
2767
n++;
2868
for (i = 0; i < depth + 1; i++)
2969
printf(" ");
30-
printf("\"%s\": ", name);
70+
print_json_string(name);
71+
printf(": ");
3172
print_json_value(val, depth + 1);
3273
}
3374

@@ -66,46 +107,6 @@ void print_json_array(const json_array_t *arr, int depth)
66107
printf("]");
67108
}
68109

69-
void print_json_string(const char *str)
70-
{
71-
printf("\"");
72-
while (*str)
73-
{
74-
switch (*str)
75-
{
76-
case '\r':
77-
printf("\\r");
78-
break;
79-
case '\n':
80-
printf("\\n");
81-
break;
82-
case '\f':
83-
printf("\\f");
84-
break;
85-
case '\b':
86-
printf("\\b");
87-
break;
88-
case '\"':
89-
printf("\\\"");
90-
break;
91-
case '\t':
92-
printf("\\t");
93-
break;
94-
case '\\':
95-
printf("\\\\");
96-
break;
97-
default:
98-
if ((unsigned char)*str < 0x20)
99-
printf("\\u00%02x", *str);
100-
else
101-
printf("%c", *str);
102-
break;
103-
}
104-
str++;
105-
}
106-
printf("\"");
107-
}
108-
109110
void print_json_number(double number)
110111
{
111112
long long integer = number;

0 commit comments

Comments
 (0)