[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
texinfo/tp texi2any.pl
From: |
Patrice Dumas |
Subject: |
texinfo/tp texi2any.pl |
Date: |
Sun, 27 Jan 2013 12:19:02 +0000 |
CVSROOT: /sources/texinfo
Module name: texinfo
Changes by: Patrice Dumas <pertusus> 13/01/27 12:19:02
Modified files:
tp : texi2any.pl
Log message:
Merge set_format and set_texi2dvi_format and report an error if format
is unknown in set_format to have a warning if TEXINFO_OUTPUT_FORMAT is
used as a customization variable.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texinfo/tp/texi2any.pl?cvsroot=texinfo&r1=1.165&r2=1.166
Patches:
Index: texi2any.pl
===================================================================
RCS file: /sources/texinfo/texinfo/tp/texi2any.pl,v
retrieving revision 1.165
retrieving revision 1.166
diff -u -b -r1.165 -r1.166
--- texi2any.pl 26 Jan 2013 23:14:02 -0000 1.165
+++ texi2any.pl 27 Jan 2013 12:19:02 -0000 1.166
@@ -529,20 +529,106 @@
'xml' => 'texinfoxml',
);
-sub set_format($)
+my %formats_table = (
+ 'info' => {
+ 'nodes_tree' => 1,
+ 'floats' => 1,
+ 'converter' => sub{Texinfo::Convert::Info->converter(@_)},
+ },
+ 'plaintext' => {
+ 'nodes_tree' => 1,
+ 'floats' => 1,
+ 'converter' => sub{Texinfo::Convert::Plaintext->converter(@_)},
+ },
+ 'html' => {
+ 'nodes_tree' => 1,
+ 'floats' => 1,
+ 'split' => 1,
+ 'internal_links' => 1,
+ 'simple_menu' => 1,
+ 'move_index_entries_after_items' => 1,
+ 'converter' => sub{Texinfo::Convert::HTML->converter(@_)},
+ },
+ 'texinfoxml' => {
+ 'nodes_tree' => 1,
+ 'converter' => sub{Texinfo::Convert::TexinfoXML->converter(@_)},
+ },
+ 'texinfosxml' => {
+ 'nodes_tree' => 1,
+ 'converter' => sub{Texinfo::Convert::TexinfoSXML->converter(@_)},
+ },
+ 'ixinsxml' => {
+ 'nodes_tree' => 1,
+ 'converter' => sub{Texinfo::Convert::IXINSXML->converter(@_)},
+ },
+ 'docbook' => {
+ 'move_index_entries_after_items' => 1,
+ 'converter' => sub{Texinfo::Convert::DocBook->converter(@_)},
+ },
+ 'pdf' => {
+ 'texi2dvi_format' => 1,
+ },
+ 'ps' => {
+ 'texi2dvi_format' => 1,
+ },
+ 'dvi' => {
+ 'texi2dvi_format' => 1,
+ },
+ 'dvipdf' => {
+ 'texi2dvi_format' => 1,
+ },
+ 'debugcount' => {
+ 'nodes_tree' => 1,
+ 'floats' => 1,
+ 'converter' => sub{DebugTexinfo::DebugCount->converter(@_)},
+ },
+ 'debugtree' => {
+ 'split' => 1,
+ 'converter' => sub{DebugTexinfo::DebugTree->converter(@_)},
+ },
+ 'textcontent' => {
+ 'converter' => sub{Texinfo::Convert::TextContent->converter(@_)},
+ },
+ 'rawtext' => {
+ 'converter' => sub{Texinfo::Convert::Text->converter(@_)},
+ },
+ 'plaintexinfo' => {
+ 'converter' => sub{Texinfo::Convert::PlainTexinfo->converter(@_)},
+ },
+);
+
+my $call_texi2dvi = 0;
+
+# previous_format should be in argument if there is a possibility of error.
+# as a fallback, the $format global variable is used.
+sub set_format($;$)
{
my $set_format = shift;
+ my $previous_format = shift;
- $default_expanded_format = [$set_format]
- if ($Texinfo::Common::texinfo_output_formats{$set_format});
- $format_from_command_line = 1;
- my $format;
+ my $new_format;
if ($format_command_line_names{$set_format}) {
- $format = $format_command_line_names{$set_format};
+ $new_format = $format_command_line_names{$set_format};
} else {
- $format = $set_format;
+ $new_format = $set_format;
}
- return $format;
+ my $expanded_format = $new_format;
+ if (!$formats_table{$new_format}) {
+ warn sprintf(__("%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value
`%s'.\n"),
+ $real_command_name, $new_format);
+ $new_format = $previous_format;
+ $new_format = $format if (!defined($new_format));
+ } else {
+ if ($formats_table{$new_format}->{'texi2dvi_format'}) {
+ $call_texi2dvi = 1;
+ push @texi2dvi_args, '--'.$new_format;
+ $expanded_format = 'tex';
+ }
+ $default_expanded_format = [$expanded_format]
+ if ($Texinfo::Common::texinfo_output_formats{$expanded_format});
+ $format_from_command_line = 1;
+ }
+ return $new_format;
}
sub set_global_format($)
@@ -551,18 +637,6 @@
$format = set_format($set_format);
}
-my $call_texi2dvi = 0;
-sub set_texi2dvi_format($)
-{
- my $format = shift;
- $call_texi2dvi = 1;
- push @texi2dvi_args, '--'.$format;
- $format_from_command_line = 1;
- set_format('tex');
- return $format;
-}
-
-
sub document_warn($) {
return if (get_conf('NO_WARN'));
my $text = shift;
@@ -831,7 +905,7 @@
}
# special case, this is a pseudo format for debug
if ($var eq 'TEXINFO_OUTPUT_FORMAT') {
- $format = set_format($value);
+ $format = set_format($value, $format);
} elsif ($var eq 'TEXI2HTML') {
$format = set_format('html');
$parser_default_options->{'values'}->{'texi2html'} = 1;
@@ -878,10 +952,10 @@
'info' => sub {$format = set_format($_[0]);},
'docbook' => sub {$format = set_format($_[0]);},
'xml' => sub {$format = set_format($_[0]);},
- 'dvi' => sub {$format = set_texi2dvi_format($_[0]);},
- 'dvipdf' => sub {$format = set_texi2dvi_format($_[0]);},
- 'ps' => sub {$format = set_texi2dvi_format($_[0]);},
- 'pdf' => sub {$format = set_texi2dvi_format($_[0]);},
+ 'dvi' => sub {$format = set_format($_[0]);},
+ 'dvipdf' => sub {$format = set_format($_[0]);},
+ 'ps' => sub {$format = set_format($_[0]);},
+ 'pdf' => sub {$format = set_format($_[0]);},
'debug=i' => sub {set_from_cmdline('DEBUG', $_[1]);
$parser_default_options->{'DEBUG'} = $_[1];
push @texi2dvi_args, '--'.$_[0]; },
@@ -905,73 +979,6 @@
}
}
-my %formats_table = (
- 'info' => {
- 'nodes_tree' => 1,
- 'floats' => 1,
- 'converter' => sub{Texinfo::Convert::Info->converter(@_)},
- },
- 'plaintext' => {
- 'nodes_tree' => 1,
- 'floats' => 1,
- 'converter' => sub{Texinfo::Convert::Plaintext->converter(@_)},
- },
- 'html' => {
- 'nodes_tree' => 1,
- 'floats' => 1,
- 'split' => 1,
- 'internal_links' => 1,
- 'simple_menu' => 1,
- 'move_index_entries_after_items' => 1,
- 'converter' => sub{Texinfo::Convert::HTML->converter(@_)},
- },
- 'texinfoxml' => {
- 'nodes_tree' => 1,
- 'converter' => sub{Texinfo::Convert::TexinfoXML->converter(@_)},
- },
- 'texinfosxml' => {
- 'nodes_tree' => 1,
- 'converter' => sub{Texinfo::Convert::TexinfoSXML->converter(@_)},
- },
- 'ixinsxml' => {
- 'nodes_tree' => 1,
- 'converter' => sub{Texinfo::Convert::IXINSXML->converter(@_)},
- },
- 'docbook' => {
- 'move_index_entries_after_items' => 1,
- 'converter' => sub{Texinfo::Convert::DocBook->converter(@_)},
- },
- 'pdf' => {
- 'texi2dvi_format' => 1,
- },
- 'ps' => {
- 'texi2dvi_format' => 1,
- },
- 'dvi' => {
- 'texi2dvi_format' => 1,
- },
- 'dvipdf' => {
- 'texi2dvi_format' => 1,
- },
- 'debugcount' => {
- 'nodes_tree' => 1,
- 'floats' => 1,
- 'converter' => sub{DebugTexinfo::DebugCount->converter(@_)},
- },
- 'debugtree' => {
- 'split' => 1,
- 'converter' => sub{DebugTexinfo::DebugTree->converter(@_)},
- },
- 'textcontent' => {
- 'converter' => sub{Texinfo::Convert::TextContent->converter(@_)},
- },
- 'rawtext' => {
- 'converter' => sub{Texinfo::Convert::Text->converter(@_)},
- },
- 'plaintexinfo' => {
- 'converter' => sub{Texinfo::Convert::PlainTexinfo->converter(@_)},
- },
-);
my %format_names = (
'info' => 'Info',
@@ -994,16 +1001,7 @@
if (!$format_from_command_line and defined($ENV{'TEXINFO_OUTPUT_FORMAT'})
and $ENV{'TEXINFO_OUTPUT_FORMAT'} ne '') {
- if (!$formats_table{$ENV{'TEXINFO_OUTPUT_FORMAT'}}) {
- warn sprintf(__("%s: Ignoring unrecognized TEXINFO_OUTPUT_FORMAT value
`%s'.\n"),
- $real_command_name, $ENV{'TEXINFO_OUTPUT_FORMAT'});
- } else {
- if ($formats_table{$ENV{'TEXINFO_OUTPUT_FORMAT'}}->{'texi2dvi_format'}) {
- $format = set_texi2dvi_format($ENV{'TEXINFO_OUTPUT_FORMAT'});
- } else {
- $format = set_format($ENV{'TEXINFO_OUTPUT_FORMAT'});
- }
- }
+ $format = set_format($ENV{'TEXINFO_OUTPUT_FORMAT'}, $format);
}
if ($call_texi2dvi) {
- texinfo/tp texi2any.pl,
Patrice Dumas <=