Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 3cdb89d

Browse files
committed
do_cmd_shortversion(),
do_cmd_setshortversion(): Implementation for new markup. convert_args(): New helper function. do_cmd_optional(): Modified to understand when it is called from within a convert_args() invocation. do_env_funcdesc(), do_env_funcdescni(), do_cmd_funcline(), do_cmd_funclineni(), handle_classlike_descriptor(), do_env_methoddesc(), do_end_methoddescni(), do_cmd_methodline(), do_cmd_methodlineni(): Modified to use helper convert_args(). The convert_args() helper and related changes fix the generation of HTML for the \optional markup, so that bogus </var>...<var> is not generated. This closes SourceForge bug #113800.
1 parent af2b714 commit 3cdb89d

1 file changed

Lines changed: 32 additions & 11 deletions

File tree

Doc/perl/python.perl

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -71,15 +71,23 @@ sub do_cmd_let{
7171
sub do_cmd_e{ '&#92;' . @_[0]; }
7272

7373
$DEVELOPER_ADDRESS = '';
74+
$SHORT_VERSION = '';
7475
$PYTHON_VERSION = '';
7576

7677
sub do_cmd_version{ $PYTHON_VERSION . @_[0]; }
78+
sub do_cmd_shortversion{ $SHORT_VERSION . @_[0]; }
7779
sub do_cmd_release{
7880
local($_) = @_;
7981
$PYTHON_VERSION = next_argument();
8082
return $_;
8183
}
8284

85+
sub do_cmd_setshortversion{
86+
local($_) = @_;
87+
$SHORT_VERSION = next_argument();
88+
return $_;
89+
}
90+
8391
sub do_cmd_authoraddress{
8492
local($_) = @_;
8593
$DEVELOPER_ADDRESS = next_argument();
@@ -109,9 +117,15 @@ sub use_italics{
109117
return use_wrappers(@_[0], '<i>', '</i>');
110118
}
111119

120+
$IN_DESC_HANDLER = 0;
112121
sub do_cmd_optional{
113-
return use_wrappers(@_[0], "</var><big>\[</big><var>",
114-
"</var><big>\]</big><var>");
122+
if ($IN_DESC_HANDLER) {
123+
return use_wrappers(@_[0], "</var><big>\[</big><var>",
124+
"</var><big>\]</big><var>");
125+
}
126+
else {
127+
return use_wrappers(@_[0], "<big>\[</big>", "<big>\]</big>");
128+
}
115129
}
116130

117131
# Logical formatting (some based on texinfo), needs to be converted to
@@ -720,12 +734,19 @@ sub do_env_cvardesc{
720734
. '</dl>';
721735
}
722736

737+
sub convert_args($){
738+
local($IN_DESC_HANDLER) = 1;
739+
local($_) = @_;
740+
return translate_commands($_);
741+
}
742+
723743
sub do_env_funcdesc{
724744
local($_) = @_;
725745
my $function_name = next_argument();
726-
my $arg_list = next_argument();
746+
my $arg_list = convert_args(next_argument());
727747
my $idx = make_str_index_entry("<tt class='function'>$function_name()</tt>"
728748
. get_indexsubitem());
749+
print "\n--- funcdesc arg_list:\n$arg_list\n===";
729750
$idx =~ s/ \(.*\)//;
730751
$idx =~ s/\(\)<\/tt>/<\/tt>/;
731752
return "<dl><dt><b>$idx</b> (<var>$arg_list</var>)\n<dd>" . $_ . '</dl>';
@@ -734,7 +755,7 @@ sub do_env_funcdesc{
734755
sub do_env_funcdescni{
735756
local($_) = @_;
736757
my $function_name = next_argument();
737-
my $arg_list = next_argument();
758+
my $arg_list = convert_args(next_argument());
738759
return "<dl><dt><b><tt class='function'>$function_name</tt></b>"
739760
. " (<var>$arg_list</var>)\n"
740761
. '<dd>'
@@ -745,7 +766,7 @@ sub do_env_funcdescni{
745766
sub do_cmd_funcline{
746767
local($_) = @_;
747768
my $function_name = next_argument();
748-
my $arg_list = next_argument();
769+
my $arg_list = convert_args(next_argument());
749770
my $prefix = "<tt class='function'>$function_name()</tt>";
750771
my $idx = make_str_index_entry($prefix . get_indexsubitem());
751772
$prefix =~ s/\(\)//;
@@ -756,7 +777,7 @@ sub do_cmd_funcline{
756777
sub do_cmd_funclineni{
757778
local($_) = @_;
758779
my $function_name = next_argument();
759-
my $arg_list = next_argument();
780+
my $arg_list = convert_args(next_argument());
760781
my $prefix = "<tt class='function'>$function_name</tt>";
761782

762783
return "<dt><b>$prefix</b> (<var>$arg_list</var>)\n<dd>" . $_;
@@ -834,7 +855,7 @@ sub do_env_excdesc{
834855
sub handle_classlike_descriptor{
835856
local($_, $what) = @_;
836857
$THIS_CLASS = next_argument();
837-
my $arg_list = next_argument();
858+
my $arg_list = convert_args(next_argument());
838859
$idx = make_str_index_entry(
839860
"<tt class='$what'>$THIS_CLASS</tt> ($what in $THIS_MODULE)" );
840861
$idx =~ s/ \(.*\)//;
@@ -856,7 +877,7 @@ sub do_env_methoddesc{
856877
$class_name = $THIS_CLASS
857878
unless $class_name;
858879
my $method = next_argument();
859-
my $arg_list = next_argument();
880+
my $arg_list = convert_args(next_argument());
860881
my $extra = '';
861882
if ($class_name) {
862883
$extra = " ($class_name method)";
@@ -874,7 +895,7 @@ sub do_cmd_methodline{
874895
$class_name = $THIS_CLASS
875896
unless $class_name;
876897
my $method = next_argument();
877-
my $arg_list = next_argument();
898+
my $arg_list = convert_args(next_argument());
878899
my $extra = '';
879900
if ($class_name) {
880901
$extra = " ($class_name method)";
@@ -891,7 +912,7 @@ sub do_cmd_methodlineni{
891912
local($_) = @_;
892913
next_optional_argument();
893914
my $method = next_argument();
894-
my $arg_list = next_argument();
915+
my $arg_list = convert_args(next_argument());
895916
return "<dt><b>$method</b> (<var>$arg_list</var>)\n<dd>"
896917
. $_;
897918
}
@@ -900,7 +921,7 @@ sub do_env_methoddescni{
900921
local($_) = @_;
901922
next_optional_argument();
902923
my $method = next_argument();
903-
my $arg_list = next_argument();
924+
my $arg_list = convert_args(next_argument());
904925
return "<dl><dt><b>$method</b> (<var>$arg_list</var>)\n<dd>"
905926
. $_
906927
. '</dl>';

0 commit comments

Comments
 (0)