#!/usr/bin/perl
$SIG{USR1} = sub {
	print "kick\n";
};
%lookup = (
	4 => "eof",
	8 => "backspace",
	9 => "tab",
	13 => "enter",
	27 => "escape",
	32 => "space",
);
$| = 1;
my $in_pid = open IN, "get |";
$SIG{INT} = sub {
	kill 2, $in_pid;
	close IN;
	exit;
};
while (defined ($_ = <IN>)) {
	chomp;
	if ($_ > 32 and $_ < 127) {
		$_ = chr($_);
	} elsif ($lookup{$_}) {
		$_ = $lookup{$_};
	} else {
		$_ = sprintf "%03d", $_;
	}
	print "$_\n";
}
