#!/usr/bin/perl
#

use FileHandle;
use Getopt::Std;

getopts('d:l:');
$opt_d = "-P$opt_d" if $opt_d;

#print STDERR "Printer is: $opt_d\n" if $opt_d;

my $message = join(' ',@ARGV);

if(length($message)<=16)
{
    send_message($message,$opt_d);
}else
{
    $opt_l = 5 if !$opt_l;
    $tmes = $message." ..... ".substr($message,0,15);
    foreach $loop(1..$opt_l-1)
    {
	scroll_message($tmes,$opt_d);
    }
    scroll_message($message."................",$opt_d);
}


sub
scroll_message
{
    my($message,$printer)=@_;
    my($offset,$tmes);
    foreach $offset(0..length($message)-16)
    {
	$tmes = substr($message,$offset,16);
	send_message($tmes,$printer);
	select(undef, undef, undef, 0.25);
    }
}

sub
send_message
{
    my($message,$printer)=@_;
    my $fh = new FileHandle;
    open $fh,"| lpr -h $printer" or die;
    print $fh "\@PJL RDYMSG DISPLAY=\"".$message."\"\n";
    close $fh;
}
