/usr/local/CPAN/WAIT/WAIT/Format/Term.pm
# -*- Mode: Perl -*-
# Term.pm --
# ITIID : $ITI$ $Header $__Header$
# Author : Ulrich Pfeifer
# Created On : Wed Sep 18 20:10:42 1996
# Last Modified By: Ulrich Pfeifer
# Last Modified On: Sun Nov 22 18:44:44 1998
# Language : CPerl
# Update Count : 15
# Status : Unknown, Use with caution!
#
# Copyright (c) 1996-1997, Ulrich Pfeifer
#
package WAIT::Format::Term;
require WAIT::Format::Base;
use strict;
use vars qw(@ISA);
require Term::Cap;
my %DEFAULT;
@ISA = qw(WAIT::Format::Base);
my $terminal = eval {Tgetent Term::Cap { TERM => undef, OSPEED => 9200 }};
unless (defined $terminal) {
eval { require Term::Info; };
if ($@ ne '') {
warn "Neither Term::Cap nor Term::Info seems to work.".
" Reverting to dumb settings";
%DEFAULT = (
bold_s => '*',
bold_e => '*',
query_s => '[',
query_e => ']',
italic_s => '_',
italic_e => '_',
);
} else {
import Term::Info qw(Tput);
%DEFAULT = (
bold_s => Tput("bold"),
bold_e => Tput("sgr0"),
query_s => Tput("rev"),
query_e => Tput("sgr0"),
italic_s => Tput("smul"),
italic_e => Tput("sgr0"),
);
}
} else {
%DEFAULT = (
bold_s => $terminal->{_md},
bold_e => $terminal->{_me},
query_s => $terminal->{_mr} || $terminal->{_md},
query_e => $terminal->{_me},
italic_s => $terminal->{_us},
italic_e => $terminal->{_ue},
);
}
sub new {
my $type = shift;
my %parm = @_;
my %self = %DEFAULT;
for (keys %DEFAULT) {
$self{$_} = $parm{$_} if exists $parm{$_};
}
bless \%self, ref($type) || $type;
}
sub bold {
my $self = shift;
$self->{bold_s} . $_[0] . $self->{bold_e};
}
sub italic {
my $self = shift;
$self->{italic_s} . $_[0] . $self->{italic_e};
}
sub query {
my $self = shift;
$self->{query_s} . $_[0] . $self->{query_e};
}
1;