X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/054d1037c3f618df44d195a3e63b4832d0eab3b7..HEAD:/tools/mkdigraphs-vim diff --git a/tools/mkdigraphs-vim b/tools/mkdigraphs-vim index d47a733..ceea4b7 100755 --- a/tools/mkdigraphs-vim +++ b/tools/mkdigraphs-vim @@ -1,10 +1,30 @@ #!/bin/sh -vim -e -cdigraphs -cq | perl -CSD -nE ' - BEGIN { + +VERSION=1.02 + +if [ "$#" -ne 0 ] +then + echo "Usage: $0 >digraphs-vim.inc.pl" + echo 'Collect digraph data from vim, standard output as Perl hash.' + exit 64 # EX_USAGE +fi + +VIM='vim -RXZ -i NONE -u NONE -N -n' + +$VIM -e -c'echo version' -cdigraphs -cq | perl -CSD -nE ' + if ($. == 1) { # head + say "# digraphs list from vim version ", m/(\d+)\s*\z/; + say "# automatically generated by '"$0"'"; say "+{"; - } - say "q{$1} => $3," while /\G(\S\S) (.[^ ]*) +([0-9]+)\s+/g; - END { + } else { # body + while (/\G(\S\S) (.[^ ]*) +([0-9]+)\s+/g) { + my ($mnem, $chr, $cp) = ($1, $2, $3); + $mnem =~ s/(?=[\\}])/\\/g; # escape string delimiter + $chrstr = sprintf q("\x{%x}"), $cp; + say "q{$mnem} => $chrstr,"; + } + } END { # foot say "}"; + exit warn "only $. lines of :digraphs output\n" if $. < 6; } '