aboutsummaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2013-04-13 18:50:56 -0500
committerJesse Luehrs <doy@tozt.net>2013-04-13 18:50:56 -0500
commit8f0edcb9b9846ec123c47f41cd1fd0db9b8d129d (patch)
treea442aca07eb28e1f798ab535344e9c05089e343f /util
parent97c2f6b5560f4d8ca91ab72f9e0032b02a948081 (diff)
downloadrust-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.pl98
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++;
+}