3d037f1724b73796cef5ca3f84b18fbbfcaa7510
[m17n/m17n-docs.git] / utils / expand-mdb.awk
1 BEGIN {
2     SUBDIR["input-method-*"] = "MIM/";
3     SUBDIR["font-layouter-*"] = "FLT/";
4     SUBDIR["language-name-*"] = "LANGDATA/";
5     SUBDIR["standard-language-iso639"] = "LANGDATA/";
6     KEY="";
7 }
8
9 /^<item / {
10     match($0, "key0=\"[^\"]*");
11     KEY=substr($0, RSTART + 6, RLENGTH - 6);
12     if (match($0, "key1=\"[^\"]*") > 0) {
13         KEY = sprintf("%s-%s", KEY, substr($0, RSTART + 6, RLENGTH - 6));
14         if (match($0, "key2=\"[^\"]*") > 0)
15             KEY = sprintf("%s-%s", KEY, substr($0, RSTART + 6, RLENGTH - 6));
16     }
17     print;
18     next;
19 }
20
21 /<filename>[^<]*<\/filename>/ {
22     from = match($0, "<filename>");
23     HEAD = substr($0, 1, from - 1)
24     if (length(HEAD) > 1 && ! match(HEAD, "^[ \t]*$"))
25         printf "%s\n", substr($0, 1, from - 1);
26     to = match($0, "<\/filename>");
27     TAIL = substr($0, to + RLENGTH);
28     FILE = sprintf("%s%s", SUBDIR[KEY], substr($0, from+10, to - (from+10)));
29     system(sprintf("ls %s/%s|sed -f %s", M17NDB, FILE, SEDFILE));
30     if (length(TAIL) > 0 && ! match(TAIL, "^[ \t]*$"))
31         print TAIL;
32     next;
33 }
34
35 {
36     print;
37 }