*** empty log message ***
[m17n/m17n-docs.git] / utils / expand-mdb.awk
1 BEGIN {
2     SUBDIR["input-method-*"] = "MIM/";
3     SUBDIR["font-layouter-*"] = "FLT/";
4     SUBDIR["standard-language-iso639"] = "LANGDATA/";
5     IGNORED["language-name-*"] = 1;
6     KEY="";
7     XINCLUDEFMT="<xi:include xmlns:xi=\"http://www.w3.org/2001/XInclude\" parse=\"xml\" href=\"%s\"/>\n";
8 }
9
10 /^<item / {
11     match($0, "key0=\"[^\"]*");
12     KEY = substr($0, RSTART + 6, RLENGTH - 6);
13     for (i = 1; i < 4 && match($0, sprintf("key%d=\"[^\"]*", i)) > 0; i++)
14         KEY=KEY"-"substr($0, RSTART + 6, RLENGTH - 6);
15     print;
16     next;
17 }
18
19 /<filename>[^<]*<\/filename>/ {
20     if (IGNORED[KEY])
21         print;
22     else {
23         from = match($0, "<filename>[^<]*</filename>");
24         to = from + RLENGTH;
25         printf "%s", substr($0, 1, from - 1);
26         TAIL = substr($0, to);
27         FILE = substr($0, from + 10, to - from - 21);
28         COMMAND = "cd "M17NDB"/"SUBDIR[KEY]"; ls "FILE;
29         COMMAND | getline LINE;
30         print "<filename>"LINE"</filename>";
31         printf XINCLUDEFMT, M17NDB"/"SUBDIR[KEY]LINE;
32         while (COMMAND | getline LINE) {
33             print "<filename>"LINE"</filename>";
34             printf XINCLUDEFMT, M17NDB"/"SUBDIR[KEY]LINE;
35         }
36         if (length(TAIL) > 0 && ! match(TAIL, "^[ \t]*$"))
37             print TAIL;
38     }
39     next;
40 }
41
42 {
43     print;
44 }