�PNG  IHDR��;���IDATx��ܻn�0���K�� �)(�pA��� ���7�LeG{�� �§㻢|��ذaÆ 6lذaÆ 6lذaÆ 6lom��$^�y���ذag�5bÆ 6lذaÆ 6lذa{���� 6lذaÆ �`����}H�Fkm�,�m����Ӫ���ô�ô!� �x�|'ܢ˟;�E:���9�&ᶒ�}�{�v]�n&�6� �h��_��t�ڠ͵-ҫ���Z;��Z$�.�P���k�ž)�!��o���>}l�eQfJ�T��u і���چ��\��X=8��Rن4`Vw�l�>����n�G�^��i�s��"ms�$�u��i��?w�bs[m�6�K4���O���.�4��%����/����b�C%��t ��M�ז� �-l�G6�mrz2���s�%�9��s@���-�k�9�=���)������k�B5����\��+͂�Zsٲ ��Rn��~G���R���C����� �wIcI��n7jJ���hۛNCS|���j0��8y�iHKֶۛ�k�Ɉ+;Sz������L/��F�*\��Ԕ�#"5��m�2��[S��������=�g��n�a�P�e�ғ�L�� lذaÆ 6l�^k��̱aÆ 6lذaÆ 6lذa;���� �_��ذaÆ 6lذaÆ 6lذaÆ ���R���IEND�B` package Pod::Perldoc::ToTerm; use strict; use warnings; use vars qw($VERSION); $VERSION = '3.28'; use parent qw(Pod::Perldoc::BaseTo); sub is_pageable { 1 } sub write_with_binmode { 0 } sub output_extension { 'txt' } use Pod::Text::Termcap (); sub alt { shift->_perldoc_elem('alt' , @_) } sub indent { shift->_perldoc_elem('indent' , @_) } sub loose { shift->_perldoc_elem('loose' , @_) } sub quotes { shift->_perldoc_elem('quotes' , @_) } sub sentence { shift->_perldoc_elem('sentence', @_) } sub width { my $self = shift; $self->_perldoc_elem('width' , @_) || $self->_get_columns_from_manwidth || $self->_get_columns_from_stty || $self->_get_default_width; } sub pager_configuration { my($self, $pager, $perldoc) = @_; # do not modify anything on Windows or DOS return if ( $perldoc->is_mswin32 || $perldoc->is_dos ); if ( $pager =~ /sensible-pager|less/ ) { $self->_maybe_modify_environment('LESS'); } elsif ( $pager =~ /more/ ) { $self->_maybe_modify_environment('MORE'); } return; } sub _maybe_modify_environment { my($self, $name) = @_; if ( ! defined $ENV{$name} ) { $ENV{$name} = "-R"; } # if the environment is set, don't modify # anything } sub _get_stty { `stty -a` } sub _get_columns_from_stty { my $output = $_[0]->_get_stty; if( $output =~ /\bcolumns\s+(\d+)/ ) { return $1; } elsif( $output =~ /;\s*(\d+)\s+columns;/ ) { return $1; } else { return 0 } } sub _get_columns_from_manwidth { my( $self ) = @_; return 0 unless defined $ENV{MANWIDTH}; unless( $ENV{MANWIDTH} =~ m/\A\d+\z/ ) { $self->warn( "Ignoring non-numeric MANWIDTH ($ENV{MANWIDTH})\n" ); return 0; } if( $ENV{MANWIDTH} == 0 ) { $self->warn( "Ignoring MANWIDTH of 0. Really? Why even run the program? :)\n" ); return 0; } if( $ENV{MANWIDTH} =~ m/\A(\d+)\z/ ) { return $1 } return 0; } sub _get_default_width { 76 } sub new { return bless {}, ref($_[0]) || $_[0] } sub parse_from_file { my $self = shift; $self->{width} = $self->width(); my @options = map {; $_, $self->{$_} } grep !m/^_/s, keys %$self ; defined(&Pod::Perldoc::DEBUG) and Pod::Perldoc::DEBUG() and print "About to call new Pod::Text::Termcap ", $Pod::Text::VERSION ? "(v$Pod::Text::Termcap::VERSION) " : '', "with options: ", @options ? "[@options]" : "(nil)", "\n"; ; Pod::Text::Termcap->new(@options)->parse_from_file(@_); } 1; =head1 NAME Pod::Perldoc::ToTerm - render Pod with terminal escapes =head1 SYNOPSIS perldoc -o term Some::Modulename =head1 DESCRIPTION This is a "plug-in" class that allows Perldoc to use Pod::Text as a formatter class. It supports the following options, which are explained in L: alt, indent, loose, quotes, sentence, width For example: perldoc -o term -w indent:5 Some::Modulename =head1 PAGER FORMATTING Depending on the platform, and because this class emits terminal escapes it will attempt to set the C<-R> flag on your pager by injecting the flag into your environment variable for C or C. On Windows and DOS, this class will not modify any environment variables. =head1 CAVEAT This module may change to use a different text formatter class in the future, and this may change what options are supported. =head1 SEE ALSO L, L, L =head1 COPYRIGHT AND DISCLAIMERS Copyright (c) 2017 Mark Allen. This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License. See http://dev.perl.org/licenses/ for more information. =head1 AUTHOR Mark Allen C<< >> =cut