# console output for DCT, by Shiar

# 1.11.0 200410152225 - class in file name, so check is not needed anymore
# 1.10.1 200410142200 - startup message omitted (now shown by main)
# 1.10.0 200410140120 - never clear screen (just let it scroll)
#                     - try to get width/height from environment vars
#                     - use escape sequences for clear/reposition/invert
#                     - print everything to STDOUT

use strict;
use warnings;

#return 0 if $set{display};
#$set{display} = "stdout";

push @{$hook{init}}, sub {
#	print "\ec";  # reset (clear screen, go home)
#	print "\e[4mDCT $::VERSION\e[24m ";  # print intro (underlined)
	END { print "\n"; }

	$set{height} = $ENV{LINES}-2 if $ENV{LINES} and $ENV{LINES}>=3;
	$set{width} = $ENV{COLUMNS} if $ENV{COLUMNS};
}; # init

push @{$hook{showerror}}, sub {
	print "\n\a\e[7m$_[0]\e[27m";  # bell and reverse video
}; # showerror

push @{$hook{showstack}}, sub {
	for (reverse 0..@stack-1) {
		print "\n$_: ", showval($stack[$_], $set{base});
	} # show stack
	print "\n> ";  # prompt
}; # showstack

push @{$hook{showentry}}, sub {
	print "\e[3G\e[K", $_[0];  # cursor to column #3; erase line
}; # showentry

return {
	author  => "Shiar",
	title   => "console output",
	version => "1.11",
};

