From 15ff89cec14ea6d1bc05a5975dedfcb6e712720b Mon Sep 17 00:00:00 2001 From: Miran Date: Tue, 25 Aug 2020 09:57:15 +0200 Subject: [backport] fix #15064, strscans.scanf edge case for '$+' (#15223) --- tests/stdlib/tstrscans.nim | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'tests/stdlib/tstrscans.nim') diff --git a/tests/stdlib/tstrscans.nim b/tests/stdlib/tstrscans.nim index 08fc14e45..6f952368c 100644 --- a/tests/stdlib/tstrscans.nim +++ b/tests/stdlib/tstrscans.nim @@ -79,8 +79,22 @@ block EmptyTuple: block Arrow: let text = "foo;bar;baz;" var idx = 0 - var res = "" doAssert scanp(text, idx, +(~{';','\0'} -> (discard $_)), ';') doAssert scanp(text, idx, +(~{';','\0'} -> (discard $_)), ';') doAssert scanp(text, idx, +(~{';','\0'} -> (discard $_)), ';') doAssert scanp(text, idx, +(~{';','\0'} -> (discard $_)), ';') == false + + +block issue15064: + var nick1, msg1: string + doAssert scanf(" a", "<$+> $+", nick1, msg1) + doAssert nick1 == "abcd" + doAssert msg1 == "a" + + var nick2, msg2: string + doAssert(not scanf(" ", "<$+> $+", nick2, msg2)) + + var nick3, msg3: string + doAssert scanf(" ", "<$+> $*", nick3, msg3) + doAssert nick3 == "abcd" + doAssert msg3 == "" -- cgit 1.4.1-2-gfad0