Why not simply: while (…) { if (unformat(input, “name %s”, &name)) ; else if (…) ; else break; }
if (<didn’t parse required args>) return clib_error_return (0, "parse error: '%U'", format_unformat_error, input); D. From: vpp-dev-boun...@lists.fd.io [mailto:vpp-dev-boun...@lists.fd.io] On Behalf Of Andreas Schultz Sent: Friday, February 2, 2018 12:47 PM To: vpp-dev@lists.fd.io Subject: [vpp-dev] unformat %s eats newlines A typical construct to parse arguments is to use unformat in a while loop that checks for UNFORMAT_END_OF_INPUT. For multiline input that relies on the detection of "\n" in the input stream. The problem is that a construct like: unformat (input, "name %_%v%_", &name) eats the newline when it is the only characted following the string to be parsed. This even break reading a multi line config with exec. Regards Andreas
_______________________________________________ vpp-dev mailing list vpp-dev@lists.fd.io https://lists.fd.io/mailman/listinfo/vpp-dev