-
Notifications
You must be signed in to change notification settings - Fork 0
/
src.c
40 lines (40 loc) · 1.15 KB
/
src.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/* (c) 2019, xcmats */
#include <stdio.h>
char *src[] = {
"/* (c) 2019, xcmats */",
"#include <stdio.h>",
"char *src[] = {",
"}, buf[100];",
"char *esc (char *b, char *s) {",
" int i, j;",
" for (i = 0, j = 0; s[i] != 0; i++, j++) {",
" if (s[i] == '\\\\' || s[i] == '\\\"') b[j++] = '\\\\';",
" b[j] = s[i];",
" }",
" b[j] = 0;",
" return b;",
"}",
"int main () {",
" int i;",
" for (i = 0; i < 3; i++) puts(src[i]);",
" for (i = 0; i < 19; i++) printf(\" \\\"%s\\\",\\n\", esc(buf, src[i]));",
" printf(\" \\\"%s\\\"\\n\", esc(buf, src[19]));",
" for (i = 3; i < 20; i++) puts(src[i]);",
"}"
}, buf[100];
char *esc (char *b, char *s) {
int i, j;
for (i = 0, j = 0; s[i] != 0; i++, j++) {
if (s[i] == '\\' || s[i] == '\"') b[j++] = '\\';
b[j] = s[i];
}
b[j] = 0;
return b;
}
int main () {
int i;
for (i = 0; i < 3; i++) puts(src[i]);
for (i = 0; i < 19; i++) printf(" \"%s\",\n", esc(buf, src[i]));
printf(" \"%s\"\n", esc(buf, src[19]));
for (i = 3; i < 20; i++) puts(src[i]);
}