diff --git a/scripts/sipify.pl b/scripts/sipify.pl index a48b7176114..f21dda56f22 100755 --- a/scripts/sipify.pl +++ b/scripts/sipify.pl @@ -189,6 +189,15 @@ while ($line_idx < $line_count){ # SIP_SKIP if ( $line =~ m/SIP_SKIP/ ){ $comment = ''; + # if multiline definition, remove previous lines + if ( $MULTILINE_DEFINITION == 1){ + my $opening_line = ''; + while ( $opening_line !~ m/^[^()]*\(([^()]*\([^()]*\)[^()]*)*[^()]*$/){ + $opening_line = pop(@output); + $#output >= 0 or die 'could not reach opening definition'; + } + $MULTILINE_DEFINITION = 0; + } next; } diff --git a/tests/scripts/sipifyheader.expected.sip b/tests/scripts/sipifyheader.expected.sip index 4622764455d..db850f73470 100644 --- a/tests/scripts/sipifyheader.expected.sip +++ b/tests/scripts/sipifyheader.expected.sip @@ -120,6 +120,7 @@ A multiline method signature void nonAnnotatedMethodFollowingSkip(); + virtual QgsMapLayerRenderer *createMapRenderer( QgsRenderContext &rendererContext ) /Factory/; %Docstring Factory annotation diff --git a/tests/scripts/sipifyheader.h b/tests/scripts/sipifyheader.h index cf2db638a92..59ac586c327 100644 --- a/tests/scripts/sipifyheader.h +++ b/tests/scripts/sipifyheader.h @@ -163,6 +163,10 @@ class CORE_EXPORT QgsSipifyHeader : public QtClass, private Ui::QgsBas void nonAnnotatedMethodFollowingSkip(); + bool myMultiLineSkipped( const QList &list1, + const QList &list2, + const QList &list3 ) SIP_SKIP; + //! Factory annotation virtual QgsMapLayerRenderer *createMapRenderer( QgsRenderContext &rendererContext ) override SIP_FACTORY;