test-line-buffer: simplify command parsing
commit8968b7b0a8bf265a6018682a854002421c2ea84c
authorJeff King <peff@peff.net>
Thu, 21 Sep 2017 06:22:43 +0000 (21 02:22 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 22 Sep 2017 03:49:53 +0000 (22 12:49 +0900)
tree222dbfb83df8bd0107bf0f9eb5a77c2a70506794
parent59c0ea183ad1c5c2b3790caa5046e4ecfa839247
test-line-buffer: simplify command parsing

The handle_command() function matches an incoming command
string with a sequence of starts_with() checks. But it also
surrounds these with a switch on the first character of the
command, which lets us jump to the right block of
starts_with() without going linearly through the list.

However, each case arm of the switch falls through to the
one below it. This is pointless (we know that a command
starting with 'b' does not need to check any of the commands
in the 'c' block), and it makes gcc's -Wimplicit-fallthrough
complain.

We could solve this by adding a break at the end of each
block. However, this optimization isn't helping anything.
Even if it does make matching faster (which is debatable),
this is code that is run only in the test suite, and each
run receives at most two of these "commands". We should
favor simplicity and readability over micro-optimizing.

Instead, let's drop the switch statement completely and
replace it with an if/else cascade.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/helper/test-line-buffer.c