aboutsummaryrefslogblamecommitdiffstats
path: root/util/gen_builtin_db.pl
blob: 036a55614cbe942c2cd7c2fb07c9d44d6582560a (plain) (tree)

































































































                                                                      
#!/usr/bin/env perl
use strict;
use warnings;

my @terms = qw(
    linux
    xterm
    xterm-256color
    screen
    screen-256color
    rxvt
    rxvt-unicode
    aterm
    Eterm
    kterm
    gnome
);

my @caps = qw(
    clear
    setaf
    setab
    op
    sgr0
    home
    cup
    smul
    rmul
    smso
    rmso
    rev
    bold
    blink
    civis
    cnorm
    smcup
    rmcup
    smkx
    rmkx
    kbs
    cr
    ht
    kcuu1
    kcud1
    kcub1
    kcuf1
    khome
    kend
    kich1
    kdch1
    kf1
    kf2
    kf3
    kf4
    kf5
    kf6
    kf7
    kf8
    kf9
    kf10
    kf11
    kf12
);

my @db;
for my $term (@terms) {
    my @vals;
    for my $cap (@caps) {
        my $str = `tput -T$term $cap`;
        if ($? == 0) {
            push @vals, $str;
        }
        else {
            push @vals, undef;
        }
    }
    push @db, \@vals;
}

my $i = 0;
for my $row (@db) {
    print "    [ // " . $terms[$i] . "\n";
    my $j = 0;
    for my $val (@$row) {
        print "        ";
        if (defined $val) {
            $val =~ s/(\P{Print})/"\\x" . sprintf("%02x", ord($1))/ge;
            print "Some(\"$val\"),";
        }
        else {
            print "None,";
        }
        print " // " . $caps[$j] . "\n";
        $j++;
    }
    print "    ],\n";
    $i++;
}