File tree 1 file changed +10
-2
lines changed
1 file changed +10
-2
lines changed Original file line number Diff line number Diff line change @@ -959,7 +959,9 @@ sub detect_non_method_member{
959
959
my $is_scope_based = " 0" ;
960
960
$is_scope_based = " 1" if defined $2 ;
961
961
my $monkeypatch = " 0" ;
962
- $monkeypatch = " 1" if defined $is_scope_based eq " 1" and $LINE =~ m / SIP_MONKEYPATCH_SCOPEENUM/ ;
962
+ $monkeypatch = " 1" if defined $is_scope_based eq " 1" and $LINE =~ m / SIP_MONKEYPATCH_SCOPEENUM(:?\(\s *(?<emkb>\w +)\s *\) )/ ;
963
+ my $enum_mk_base = " " ;
964
+ $enum_mk_base = $+ {emkb } if defined $+ {emkb };
963
965
if ($LINE =~ m /\{ ((\s *\w +)(\s *=\s *[\w\s\d <|]+.*?)?(,?))+\s *\} / ){
964
966
# one line declaration
965
967
$LINE !~ m / =/ or exit_with_error(" spify.pl does not handle enum one liners with value assignment. Use multiple lines instead." );
@@ -986,7 +988,13 @@ sub detect_non_method_member{
986
988
push @enum_members_doc , " '* $enum_member : ' + $ACTUAL_CLASS .$enum_qualname .$2 .__doc__" ;
987
989
my $comment = $+ {co };
988
990
push @OUTPUT_PYTHON , " $ACTUAL_CLASS .$enum_qualname .$enum_member .__doc__ = \" $comment \"\n " if $is_scope_based eq " 1" ;
989
- push @OUTPUT_PYTHON , " $ACTUAL_CLASS .$enum_member = $ACTUAL_CLASS .$enum_qualname .$enum_member \n " if $monkeypatch eq " 1" ;
991
+ if ($monkeypatch eq " 1" ) {
992
+ if ( $enum_mk_base ne " " ){
993
+ push @OUTPUT_PYTHON , " $enum_mk_base .$enum_member = $enum_qualname .$enum_member \n " ;
994
+ } else {
995
+ push @OUTPUT_PYTHON , " $ACTUAL_CLASS .$enum_member = $ACTUAL_CLASS .$enum_qualname .$enum_member \n " ;
996
+ }
997
+ }
990
998
$enum_decl = fix_annotations($enum_decl );
991
999
write_output(" ENU3" , " $enum_decl \n " );
992
1000
};
You can’t perform that action at this time.
0 commit comments