tdf#149157 - Break multiline continuation in a comment after a new line

Change-Id: I3dd875152a6f2cfafb67f13f597c36f01a4759b4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135018
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
diff --git a/basic/qa/cppunit/test_compiler_checks.cxx b/basic/qa/cppunit/test_compiler_checks.cxx
index 24b380e..e2882f3 100644
--- a/basic/qa/cppunit/test_compiler_checks.cxx
+++ b/basic/qa/cppunit/test_compiler_checks.cxx
@@ -33,4 +33,44 @@ CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testDoubleArgument)
    CPPUNIT_ASSERT_EQUAL(ERRCODE_BASIC_VAR_DEFINED, aMacro.getError().StripDynamic());
}

CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testTdf149157)
{
    MacroSnippet aMacro("Function extentComment() As Integer\n"
                        "  ' _\n"
                        "  If Not extentComment Then\n"
                        "     extentComment = 1\n"
                        "  End If\n"
                        "End Function\n");
    aMacro.Compile();
    CPPUNIT_ASSERT(!aMacro.HasError());
}

CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testTdf149157_compatible)
{
    MacroSnippet aMacro("Option Compatible\n"
                        "Function extentComment() As Integer\n"
                        "  ' _\n"
                        "\n"
                        "  If Not extentComment Then\n"
                        "     extentComment = 1\n"
                        "  End If\n"
                        "End Function\n");
    aMacro.Compile();
    CPPUNIT_ASSERT(!aMacro.HasError());
}

CPPUNIT_TEST_FIXTURE(CppUnit::TestFixture, testTdf149157_vba)
{
    MacroSnippet aMacro("Option VBASupport 1\n"
                        "Function extentComment() As Integer\n"
                        "  ' _\n"
                        "\n"
                        "  If Not extentComment Then\n"
                        "     extentComment = 1\n"
                        "  End If\n"
                        "End Function\n");
    aMacro.Compile();
    CPPUNIT_ASSERT(!aMacro.HasError());
}

/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/basic/source/comp/scanner.cxx b/basic/source/comp/scanner.cxx
index 63d5259..4cb2e34 100644
--- a/basic/source/comp/scanner.cxx
+++ b/basic/source/comp/scanner.cxx
@@ -702,6 +702,8 @@ eoln:
        aSym = "\n";
        nColLock = 0;
        bClosingUnderscore = false;
        // tdf#149157 - break multiline continuation in a comment after a new line
        bPrevLineExtentsComment = false;
        return true;
    }
}