diff --git a/src/SIL.Machine/Corpora/UpdateUsfmParserHandler.cs b/src/SIL.Machine/Corpora/UpdateUsfmParserHandler.cs index 8010affd..f21be754 100644 --- a/src/SIL.Machine/Corpora/UpdateUsfmParserHandler.cs +++ b/src/SIL.Machine/Corpora/UpdateUsfmParserHandler.cs @@ -490,6 +490,10 @@ public string GetUsfm(UsfmStylesheet stylesheet) index++; } + // If the next token is a verse, add \nb to prevent the verse appearing in the remark + if (tokens[index].Type == UsfmTokenType.Verse) + tokens.Insert(index, new UsfmToken(UsfmTokenType.Paragraph, "nb", null, null)); + tokens.InsertRange(index, remarkTokens.Value); } } diff --git a/tests/SIL.Machine.Tests/Corpora/UpdateUsfmParserHandlerTests.cs b/tests/SIL.Machine.Tests/Corpora/UpdateUsfmParserHandlerTests.cs index d168f8c6..cddf0df8 100644 --- a/tests/SIL.Machine.Tests/Corpora/UpdateUsfmParserHandlerTests.cs +++ b/tests/SIL.Machine.Tests/Corpora/UpdateUsfmParserHandlerTests.cs @@ -1366,6 +1366,61 @@ public void GetUsfm_PassRemark() \ide UTF-8 \rem Existing remark \c 1 +\p +\v 1 Some text +\v 2 +\v 3 Other text +\c 2 +\rem Existing remark +\p +\v 1 More text +\c 3 +"; + + string target = UpdateUsfm( + rows, + usfm, + textBehavior: UpdateUsfmTextBehavior.PreferExisting, + remarks: [(0, "New remark 0"), (1, "New remark 1"), (2, "New remark 2"), (3, "New remark 3")] + ); + + string result = + @"\id MAT - Test +\ide UTF-8 +\rem Existing remark +\rem New remark 0 +\c 1 +\rem New remark 1 +\p +\v 1 Some text +\v 2 Update 2 +\v 3 Other text +\c 2 +\rem Existing remark +\rem New remark 2 +\p +\v 1 More text +\c 3 +\rem New remark 3 +"; + + AssertUsfmEquals(target, result); + } + + [Test] + public void GetUsfm_PassRemark_NoBodyParagraph() + { + List rows = + [ + new UpdateUsfmRow(ScrRef("MAT 1:1"), "Update 1"), + new UpdateUsfmRow(ScrRef("MAT 1:2"), "Update 2"), + ]; + + string usfm = + @"\id MAT - Test +\ide UTF-8 +\rem Existing remark +\c 1 \v 1 Some text \v 2 \v 3 Other text @@ -1389,12 +1444,14 @@ public void GetUsfm_PassRemark() \rem New remark 0 \c 1 \rem New remark 1 +\nb \v 1 Some text \v 2 Update 2 \v 3 Other text \c 2 \rem Existing remark \rem New remark 2 +\nb \v 1 More text \c 3 \rem New remark 3 @@ -1455,6 +1512,7 @@ public void GetUsfm_MultipleRemarksSameChapter() \ide UTF-8 \rem Existing remark \c 1 +\q1 \v 1 Some text \v 2 \v 3 Other text @@ -1476,6 +1534,7 @@ public void GetUsfm_MultipleRemarksSameChapter() \c 1 \rem New remark 1.1 \rem New remark 1.2 +\q1 \v 1 Some text \v 2 Update 2 \v 3 Other text