# PlainTexinfo.pm: convert the Texinfo tree as Texinfo
#
# Copyright 2012-2024 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License,
# or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
#
# Original author: Patrice Dumas
# This calls Texinfo::Convert::Texinfo::convert_to_texinfo while
# inheriting standard functions from Texinfo::Convert::Converter.
package Texinfo::Convert::PlainTexinfo;
use 5.006;
use strict;
use Texinfo::Convert::ConvertXS;
use Texinfo::XSLoader;
use Texinfo::Convert::Texinfo;
use Texinfo::Convert::Converter;
our @ISA = qw(Texinfo::Convert::Converter);
our $VERSION = '7.2';
my $XS_convert = Texinfo::XSLoader::XS_convert_enabled();
our $module_loaded = 0;
sub import {
if (!$module_loaded) {
if ($XS_convert) {
# We do not simply override, we must check at runtime
# that the document tree was stored by the XS parser.
Texinfo::XSLoader::override(
"Texinfo::Convert::PlainTexinfo::_convert_tree_with_XS",
"Texinfo::Convert::ConvertXS::plain_texinfo_convert_tree"
);
}
$module_loaded = 1;
}
# The usual import method
goto &Exporter::import;
}
my %defaults = (
# Customization option variables
'EXTENSION' => 'texi',
# different from the default, which is undef
'OUTFILE' => '-',
);
sub converter_defaults($$)
{
return \%defaults;
}
sub _convert_tree_with_XS($)
{
}
sub convert_tree($$)
{
my $self = shift;
my $root = shift;
if ($XS_convert and defined($root->{'tree_document_descriptor'})
and $Texinfo::Convert::ConvertXS::XS_package) {
return _convert_tree_with_XS($root);
}
return Texinfo::Convert::Texinfo::convert_to_texinfo($root);
}
sub output($$)
{
my $self = shift;
my $document = shift;
return $self->output_tree($document);
}
sub convert($$)
{
my $self = shift;
my $document = shift;
my $root = $document->tree();
return $self->convert_tree($root);
}
1;