0
0
mirror of https://github.com/vim/vim.git synced 2025-11-15 23:14:06 -05:00
Files
vim/src/libvterm/tbl2inc_c.pl
Bram Moolenaar e4f25e4a8d patch 8.0.0693: no terminal emulator support
Problem:    No terminal emulator support.  Cannot properly run commands in the
            GUI.  Cannot run a job interactively with an ssh connection.
Solution:   Very early implementation of the :terminal command.  Includes
            libvterm converted to ANSI C.  Many parts still missing.
2017-07-07 11:54:15 +02:00

52 lines
986 B
Perl

#!/usr/bin/perl
use strict;
use warnings;
my ( $encname ) = $ARGV[0] =~ m{/([^/.]+).tbl}
or die "Cannot parse encoding name out of $ARGV[0]\n";
print <<"EOF";
static const struct StaticTableEncoding encoding_$encname = {
{
NULL, /* init */
&decode_table /* decode */
},
{
EOF
my $row = 0;
while( <> ) {
s/\s*#.*//; # strip comment
if ($_ =~ m{^\d+/\d+}) {
my ($up, $low) = ($_ =~ m{^(\d+)/(\d+)});
my $thisrow = $up * 16 + $low;
while ($row < $thisrow) {
print " 0x0, /* $row */\n";
++$row;
}
}
s{^(\d+)/(\d+)}{""}e; # Remove 3/1
s{ = }{""}e; # Remove " = "
s{"(.)"}{sprintf "0x%04x", ord $1}e; # Convert "A" to 0x41
s{U\+}{0x}; # Convert U+0041 to 0x0041
s{$}{, /* $row */}; # append comma and index
print " $_";
++$row;
}
while ($row < 128) {
print " 0x0, /* $row */\n";
++$row;
}
print <<"EOF";
}
};
EOF