texinfo-commits
[Top][All Lists]
Advanced

[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) {



reply via email to

[Prev in Thread] Current Thread [Next in Thread]