diff options
author | Jesse Luehrs <doy@tozt.net> | 2013-04-13 18:50:56 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2013-04-13 18:50:56 -0500 |
commit | 8f0edcb9b9846ec123c47f41cd1fd0db9b8d129d (patch) | |
tree | a442aca07eb28e1f798ab535344e9c05089e343f /util | |
parent | 97c2f6b5560f4d8ca91ab72f9e0032b02a948081 (diff) | |
download | rust-term-8f0edcb9b9846ec123c47f41cd1fd0db9b8d129d.tar.gz rust-term-8f0edcb9b9846ec123c47f41cd1fd0db9b8d129d.zip |
sketch out a hardcoded backend
"make" will now build this, "make CURSES=1" will build the version that
uses ncurses
Diffstat (limited to 'util')
-rw-r--r-- | util/gen_builtin_db.pl | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/util/gen_builtin_db.pl b/util/gen_builtin_db.pl new file mode 100644 index 0000000..036a556 --- /dev/null +++ b/util/gen_builtin_db.pl @@ -0,0 +1,98 @@ +#!/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++; +} |