diff options
author | Russ Allbery <rra@stanford.edu> | 2001-11-27 12:42:49 -0800 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2001-11-28 04:21:05 +0000 |
commit | a97e9142f06343b44ca70ad10bbeffad52da196a (patch) | |
tree | 613c64a5d0b3d53dd1dffcd9803ed9c2fabd753c /lib/Pod | |
parent | 8ef7c2e567196652a85b06b3c848967334ceef2c (diff) | |
download | perl-a97e9142f06343b44ca70ad10bbeffad52da196a.tar.gz |
Replace #13335 with
Subject: Re: [PATCH perl@13323] Termcap.pm with no termios
Message-ID: <yl667vv73q.fsf@windlord.stanford.edu>
p4raw-id: //depot/perl@13336
Diffstat (limited to 'lib/Pod')
-rw-r--r-- | lib/Pod/Text/Termcap.pm | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/lib/Pod/Text/Termcap.pm b/lib/Pod/Text/Termcap.pm index 94ea316fb1..41e68601c7 100644 --- a/lib/Pod/Text/Termcap.pm +++ b/lib/Pod/Text/Termcap.pm @@ -18,7 +18,6 @@ package Pod::Text::Termcap; require 5.004; -use Config; use Pod::Text (); use POSIX (); use Term::Cap; @@ -31,7 +30,7 @@ use vars qw(@ISA $VERSION); # Don't use the CVS revision as the version, since this module is also in Perl # core and too many things could munge CVS magic revision strings. This # number should ideally be the same as the CVS revision in podlators, however. -$VERSION = 1.05; +$VERSION = 1.06; ############################################################################## @@ -42,25 +41,30 @@ $VERSION = 1.05; # do all the stuff we normally do. sub initialize { my $self = shift; + my ($ospeed, $term, $termios); # The default Term::Cap path won't work on Solaris. $ENV{TERMPATH} = "$ENV{HOME}/.termcap:/etc/termcap" . ":/usr/share/misc/termcap:/usr/share/lib/termcap"; - my $ospeed = '9600'; - if (defined $Config{'i_termios'}) { - my $termios = POSIX::Termios->new; - $termios->getattr; - $ospeed = $termios->getospeed; + # Fall back on a hard-coded terminal speed if POSIX::Termios isn't + # available. + eval { $termios = POSIX::Termios->new }; + if ($@) { + $ospeed = '9600'; + } else { + $termios->getattr; + $ospeed = $termios->getospeed; } - my $term; + + # Fall back on the ANSI escape sequences if Term::Cap doesn't work. eval { $term = Tgetent Term::Cap { TERM => undef, OSPEED => $ospeed } }; $$self{BOLD} = $$term{_md} || "\e[1m"; $$self{UNDL} = $$term{_us} || "\e[4m"; $$self{NORM} = $$term{_me} || "\e[m"; unless (defined $$self{width}) { - $$self{width} = $ENV{COLUMNS} || $$term{_co} || 78; + $$self{width} = $ENV{COLUMNS} || $$term{_co} || 80; $$self{width} -= 2; } |