index: release v1.18 with only altgr index linked
[sheet.git] / tools / mkdigraphs-vim
1 #!/bin/sh
2
3 VERSION=1.02
4
5 if [ "$#" -ne 0 ]
6 then
7         echo "Usage: $0 >digraphs-vim.inc.pl"
8         echo 'Collect digraph data from vim, standard output as Perl hash.'
9         exit 64 # EX_USAGE
10 fi
11
12 VIM='vim -RXZ -i NONE -u NONE -N -n'
13
14 $VIM -e -c'echo version' -cdigraphs -cq | perl -CSD -nE '
15         if ($. == 1) { # head
16                 say "# digraphs list from vim version ", m/(\d+)\s*\z/;
17                 say "# automatically generated by '"$0"'";
18                 say "+{";
19         } else { # body
20                 while (/\G(\S\S) (.[^ ]*) +([0-9]+)\s+/g) {
21                         my ($mnem, $chr, $cp) = ($1, $2, $3);
22                         $mnem =~ s/(?=[\\}])/\\/g;  # escape string delimiter
23                         $chrstr = sprintf q("\x{%x}"), $cp;
24                         say "q{$mnem} => $chrstr,";
25                 }
26         } END { # foot
27                 say "}";
28                 exit warn "only $. lines of :digraphs output\n" if $. < 6;
29         }
30 '