X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/eb99584832bca2d68aa9338148cd0479d2a7b445..HEAD:/tools/mkdigraphs-vim diff --git a/tools/mkdigraphs-vim b/tools/mkdigraphs-vim index a94812f..ceea4b7 100755 --- a/tools/mkdigraphs-vim +++ b/tools/mkdigraphs-vim @@ -1,13 +1,28 @@ #!/bin/sh -VERSION=1.00 +VERSION=1.02 -vim -e -c'echo version' -cdigraphs -cq | perl -CSD -nE ' +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 ", s/\s*\z//r; + say "# digraphs list from vim version ", m/(\d+)\s*\z/; + say "# automatically generated by '"$0"'"; say "+{"; } else { # body - say "q{$1} => $3," while /\G(\S\S) (.[^ ]*) +([0-9]+)\s+/g; + 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;