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: [email protected] [mailto:[email protected]] On
Behalf Of Andreas Schultz
Sent: Friday, February 2, 2018 12:47 PM
To: [email protected]
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
[email protected]
https://lists.fd.io/mailman/listinfo/vpp-dev