diff --git a/Doc/perl/python.perl b/Doc/perl/python.perl
index 7f7d01038e1..020f31e5866 100644
--- a/Doc/perl/python.perl
+++ b/Doc/perl/python.perl
@@ -101,9 +101,14 @@ sub use_wrappers{
return $before . $stuff . $after . $_;
}
-sub use_current{
- return use_wrappers(@_[0], '', '');
+sub use_env_wrappers{
+ local($_,$before,$after,$tag) = @_;
+ push(@open_tags,$tag);
+ my $s = join('', $before,
+ translate_commands(next_argument()), $after, $_);
+ return $s;
}
+
sub use_sans_serif{
return use_wrappers(@_[0], '', '');
}
@@ -121,9 +126,9 @@ sub do_cmd_optional{
# output files for users that read them over the network rather than
# from local repositories.
-sub do_cmd_pytype{ return use_current(@_); }
-sub do_cmd_makevar{ return use_current(@_); }
-sub do_cmd_code{ return use_wrappers(@_[0], '', ''); }
+sub do_cmd_pytype{ return @_[0]; }
+sub do_cmd_makevar{ return @_[0]; }
+sub do_cmd_code{ return use_env_wrappers(@_[0], '', '', 'tt'); }
sub do_cmd_module{ return do_cmd_code(@_); }
sub do_cmd_keyword{ return do_cmd_code(@_); }
sub do_cmd_exception{ return do_cmd_code(@_); }
@@ -140,11 +145,19 @@ sub do_cmd_character{ return do_cmd_samp(@_); }
sub do_cmd_program{ return do_cmd_strong(@_); }
sub do_cmd_email{ return use_sans_serif(@_); }
sub do_cmd_mimetype{ return use_sans_serif(@_); }
-sub do_cmd_var{ return use_italics(@_); }
+sub do_cmd_var{
+ local($_, *open_args) = @_;
+ my $prevtag = $open_args[(scalar @open_args) - 1];
+ if ($prevtag eq "code" || $prevtag eq "tt") {
+ # in code of some sort....
+ my $text = next_argument();
+ return "$prevtag>$text<$prevtag>$_";
+ }
+ return use_italics(@_); }
sub do_cmd_dfn{ return use_italics(@_); } # make an index entry?
sub do_cmd_emph{ return use_italics(@_); }
sub do_cmd_file{ return use_wrappers(@_[0], '"', '"'); }
-sub do_cmd_samp{ return use_wrappers(@_[0], '"', '"'); }
+sub do_cmd_samp{ return use_env_wrappers(@_[0], '"', '"', 'tt'); }
sub do_cmd_kbd{ return use_wrappers(@_[0], '', ''); }
sub do_cmd_strong{ return use_wrappers(@_[0], '', ''); }
@@ -1024,4 +1037,10 @@ sub do_cmd_term{
}
+process_commands_wrap_deferred(<<_RAW_ARG_DEFERRED_CMDS_);
+code # {}
+samp # {}
+_RAW_ARG_DEFERRED_CMDS_
+
+
1; # This must be the last line