summaryrefslogtreecommitdiff
path: root/Build/source/utils/xindy/xindy-src/make-rules/inputenc/make-inp-rules.pl
blob: 437684a17119ec184008f987ea3283e9d4a583a3 (plain)
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
#!/usr/bin/perl

print <<"EOF";
;; this file was generated by make-inp-rules.pl
;; these rules map inputenc generated macros (back) to 8-bit characters

EOF


while (<STDIN>) {
  if (/\\indexentry\{(.+)--([8-9a-f][0-9a-f])\}\{1\}/) {
    if (!($1 =~ /inputenc Error|\@inpenc\@undefined/)) {
      $i = hex($2);
      $macro = $1;
      $macro =~ s/\~/~~/g;
      $macro =~ s/\"/~\"/g;
      printf("(merge-rule \"%s\" \"%c\" :string)\n",
        $macro, $i);
      if (@ARGV[0] eq "cyracc" &&
        $macro =~ /(cyra |cyre |cyri |cyro |cyru |cyrerev |cyryu |cyrya )/i) {
        printf("(merge-rule \"\\'{%s}\" \"\\'%c\" :string)\n",
          $macro, $i);
      }
    }
  }
}

print <<"EOF";

;; end of style file.
EOF