From 887af8e41a6b0ace0d59e1ed78504d469389d40a Mon Sep 17 00:00:00 2001 From: lurchi Date: Fri, 17 Aug 2018 00:17:53 +0200 Subject: [PATCH] fix parseMethod --- parse.nim | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/parse.nim b/parse.nim index 3599fac..93577cb 100644 --- a/parse.nim +++ b/parse.nim @@ -50,7 +50,7 @@ proc parseKeyword(input: string, packet: var PsycPacket): tuple[complete: bool, value: string] = assert(packet.cursor < input.len()) proc validate(c: char): bool = c == '_' or c.isAlphaNumeric() - result = input.getUntil([' ', '\t'], packet, validate) + result = input.getUntil([' ', '\t', '\n'], packet, validate) if result.complete: packet.cursor.inc() if result.value.isNil() or result.value.len() == 0 or result.value[0] != '_': @@ -293,4 +293,10 @@ suite "parser tests": check(packet.entityHeader[0] == Modifier(op: ':', name: "_hello", value: "world")) check(packet.entityHeader[1] == Modifier(op: ':', name: "_hallo", value: "welt")) + test "method": + let input = ":_target\talice\n\n_hello_world\n|\n" + while packet.state != ParseState.Complete: + discard parse(input, packet) + check(packet.methodName == "_hello_world") + echo "parser tests completed"