3 ms·
I get that, but your initial comment implied you were about to showcase a counter to "Hundreds of lines just to grab a query parameter from a URL", but instead
by bruce343434 10mo ago
I get that, but your initial comment implied you were about to showcase a counter to "Hundreds of lines just to grab a query parameter from a URL", but instead you showed "Poorly and incompletely parsing a single parameter can be done in less than 100 lines".
You said you allocated 5 minutes max to this snippet, well in php this would be 5 seconds and 1 line. And it would be a proper solution.
$name = $_GET['name'] ?? SOME_DEFAULT;
- 1718627440 10mo agoAnd in the code in C it looks like this, which is also a proper solution, I did not measure the time, it took me to write that. name = cgiGetValue (cgi, "name"); if (!name) name = SOME_DEFAULT; If you allow for GCC extensions, it looks like this: name = cgiGetValue (cgi, "name") ?: SOME_DEFAULT;
- shakna 10mo agoThat would fail on a user supplying a multiple where you don't expect. > If multiple fields are used (i.e. a variable that may contain several values) the value returned contains all these values concatenated together with a newline character as separator.
- deleted 10mo ago[deleted]
- 1718627440 10mo agoWhy? The actual implementation of cgiGetValue I am talking about does exactly that: > concatenated together with a newline character
- stouset 10mo agoIn GP’s defense, there is no standard behavior in the spec for handling repeated GET query parameters. Therefore any implementation-defined behavior is reasonable, including: keeping only the first, keeping only the last, keeping one at random, allowing access to all of them, concatenating them all with a separator, discarding the entire thing, etc.