#!/usr/bin/perl
# Display the ANSI color table

if ($ENV{TERM} eq "xterm") {
	for (my $b = 0; $b < 256; $b += 32) {
		for (my $g = 0; $g < 256; $g += 32) {
			for (my $r = 0; $r < 256; $r += 16) {
				printf "\e[30;48;2;$r;$g;${b}m.";
			}
			printf "\e[0m\n";
		}
	}
	for (my $c = 0x0; $c <= 0xFF; ++$c) {
		printf "\e[30;48;5;${c}m-%02x-", $c;
		if (($c - 3) % 6 == 0) {
			print "\e[0m\n";
		}
	}
}

for (my $bg = -1; $bg < 8; ++$bg) {
	for my $bit (0,1,7) {
		for $fg (30..37, 39) {
			my $lo_fg = $fg - 30;
			my $lo_bg = $bg;
			if ($bit == 1) {
				$lo_fg |= 8;
			} elsif ($bit == 7) {
				$lo_bg |= 8;
			}
			if ($bg == -1) {
				printf "\e[0;$bit;${fg}m%02x", $lo_fg;
			} else {
				printf "\e[0;$bit;$fg;4${bg}m%x%x", $lo_bg, $lo_fg;
			}
		}
	}
	print "\e[0m\n";
}
print "\e[1mbold\e[0m \e[2mdim\e[0m \e[3mitalic\e[0m \e[4munderscore\e[0m ",
      "\e[5mblink\e[0m \e[6mrapidblink\e[0m \e[7mreverse\e[0m\ndefault ",
      "\e[37mgray\e[0m\n";

