#!/bin/sh 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 "+{"; } 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; } '