Blame


1 34b6a1d0 2022-02-08 op #!/bin/sh
2 34b6a1d0 2022-02-08 op
3 34b6a1d0 2022-02-08 op file="${1:?missing input file}"
4 34b6a1d0 2022-02-08 op
5 34b6a1d0 2022-02-08 op sed -e '/^$/d' \
6 34b6a1d0 2022-02-08 op -e '/^#/d' \
7 34b6a1d0 2022-02-08 op -e 's/;.*//' \
8 34b6a1d0 2022-02-08 op -e 's/[ \t]*$//' \
9 34b6a1d0 2022-02-08 op -e 's/\.\./ /' \
10 34b6a1d0 2022-02-08 op "$file" \
11 34b6a1d0 2022-02-08 op | awk '
12 34b6a1d0 2022-02-08 op BEGIN {
13 34b6a1d0 2022-02-08 op print "#include \"utf8.h\""
14 34b6a1d0 2022-02-08 op print "int is_emoji(uint32_t cp) {"
15 34b6a1d0 2022-02-08 op
16 34b6a1d0 2022-02-08 op e=""
17 34b6a1d0 2022-02-08 op }
18 34b6a1d0 2022-02-08 op
19 34b6a1d0 2022-02-08 op {
20 34b6a1d0 2022-02-08 op if (NF == 1) {
21 34b6a1d0 2022-02-08 op printf("%sif (cp == 0x%s)", e, $1);
22 34b6a1d0 2022-02-08 op } else {
23 34b6a1d0 2022-02-08 op printf("%sif (cp >= 0x%s && cp <= 0x%s)", e, $1, $2);
24 34b6a1d0 2022-02-08 op }
25 34b6a1d0 2022-02-08 op
26 34b6a1d0 2022-02-08 op print " return 1;"
27 34b6a1d0 2022-02-08 op
28 34b6a1d0 2022-02-08 op e="else "
29 34b6a1d0 2022-02-08 op }
30 34b6a1d0 2022-02-08 op
31 34b6a1d0 2022-02-08 op END {
32 34b6a1d0 2022-02-08 op print "return 0; }"
33 34b6a1d0 2022-02-08 op }
34 34b6a1d0 2022-02-08 op '