Skip to content

Commit 4780271

Browse files
committed
Change logic behavior and add test
1 parent 7e504ea commit 4780271

File tree

2 files changed

+28
-3
lines changed

2 files changed

+28
-3
lines changed

src/SIL.Machine/Corpora/UpdateUsfmParserHandler.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -388,14 +388,18 @@ public string GetUsfm(UsfmStylesheet stylesheet)
388388

389389
if (tokens.Count > 0 && tokens[0].Marker == "id")
390390
{
391+
int index = 1;
391392
if (tokens.Count > 1 && tokens[1].Type == UsfmTokenType.Text)
392393
{
393-
tokens.InsertRange(2, remarkTokens);
394+
index = 2;
394395
}
395-
else
396+
while (tokens[index].Marker == "rem")
396397
{
397-
tokens.InsertRange(1, remarkTokens);
398+
index++;
399+
if (tokens.Count > index && tokens[index].Type == UsfmTokenType.Text)
400+
index++;
398401
}
402+
tokens.InsertRange(index, remarkTokens);
399403
}
400404
}
401405
return tokenizer.Detokenize(tokens);

tests/SIL.Machine.Tests/Corpora/UpdateUsfmParserHandlerTests.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1219,6 +1219,7 @@ public void GetUsfm_PreferExisting_AddRemark()
12191219
};
12201220
string usfm =
12211221
@"\id MAT - Test
1222+
\rem Existing remark
12221223
\c 1
12231224
\v 1 Some text
12241225
\v 2
@@ -1232,11 +1233,31 @@ public void GetUsfm_PreferExisting_AddRemark()
12321233
);
12331234
string result =
12341235
@"\id MAT - Test
1236+
\rem Existing remark
12351237
\rem New remark
12361238
\c 1
12371239
\v 1 Some text
12381240
\v 2 Update 2
12391241
\v 3 Other text
1242+
";
1243+
1244+
AssertUsfmEquals(target, result);
1245+
1246+
target = UpdateUsfm(
1247+
rows,
1248+
target,
1249+
textBehavior: UpdateUsfmTextBehavior.PreferExisting,
1250+
remarks: ["New remark 2"]
1251+
);
1252+
result =
1253+
@"\id MAT - Test
1254+
\rem Existing remark
1255+
\rem New remark
1256+
\rem New remark 2
1257+
\c 1
1258+
\v 1 Some text
1259+
\v 2 Update 2
1260+
\v 3 Other text
12401261
";
12411262

12421263
AssertUsfmEquals(target, result);

0 commit comments

Comments
 (0)