]> granicus.if.org Git - python/commitdiff
Handle \p and \op in parameter lists for the environment and macro
authorFred Drake <fdrake@acm.org>
Wed, 28 Apr 1999 16:33:04 +0000 (16:33 +0000)
committerFred Drake <fdrake@acm.org>
Wed, 28 Apr 1999 16:33:04 +0000 (16:33 +0000)
description environments.

Doc/perl/ltxmarkup.perl

index 9136e61f696b2363932d32a064409e4b338b0d65..92667e4496014ba2edf9eea880cb64f2f7f4b066 100644 (file)
@@ -15,22 +15,37 @@ sub ltx_next_argument{
 sub do_cmd_macro{
     local($_) = @_;
     my $macro = ltx_next_argument();
-    return "<tt class='macro'>&#92;$macro</tt>" . $_;
+    return "<tt class=macro>&#92;$macro</tt>" . $_;
 }
 
 sub do_cmd_env{
     local($_) = @_;
     my $env = ltx_next_argument();
-    return "<tt class='environment'>&#92;$env</tt>" . $_;
+    return "<tt class=environment>&#92;$env</tt>" . $_;
+}
+
+sub ltx_process_params{
+    # Handle processing of \p and \op for parameter specifications for
+    # envdesc and macrodesc.  It's done this way to avoid defining do_cmd_p()
+    # and do_cmd_op() functions, which would be interpreted outside the context
+    # in which these commands are legal, and cause LaTeX2HTML to think they're
+    # defined.  This way, other uses of \p and \op are properly flagged as
+    # unknown macros.
+    my $s = @_[0];
+    $s =~ s%\\op<<(\d+)>>(.+)<<\1>>%<tt>[</tt><var>$2</var><tt>]</tt>%;
+    while ($s =~ /\\p<<(\d+)>>(.+)<<\1>>/) {
+       $s =~ s%\\p<<(\d+)>>(.+)<<\1>>%<tt>{</tt><var>$2</var><tt>}</tt>%;
+    }
+    return $s;
 }
 
 sub do_env_macrodesc{
     local($_) = @_;
     my $macro = ltx_next_argument();
-    my $params = ltx_next_argument();
-    return "\n<dl class='macrodesc'>"
-         . "\n<dt><b><tt class='macro'>&#92;$macro</tt></b>"
-         . "\n                         $params"
+    my $params = ltx_process_params(ltx_next_argument());
+    return "\n<dl class=macrodesc>"
+         . "\n<dt><b><tt class=macro>&#92;$macro</tt></b>"
+         . "\n                       $params"
         . "\n<dd>"
         . $_
         . "</dl>";
@@ -39,10 +54,10 @@ sub do_env_macrodesc{
 sub do_env_envdesc{
     local($_) = @_;
     my $env = ltx_next_argument();
-    my $params = ltx_next_argument();
-    return "\n<dl class='envdesc'>"
-         . "\n<dt><b><tt class='environment'>&#92;$env</tt></b>"
-         . "\n                               $params"
+    my $params = ltx_process_params(ltx_next_argument());
+    return "\n<dl class=envdesc>"
+         . "\n<dt><b><tt class=environment>&#92;$env</tt></b>"
+         . "\n                             $params"
         . "\n<dd>"
         . $_
         . "</dl>";