this is purely subjective, but IMO, there is too much blank line here. Moreover, I think pfixtools use a half-indentation for labels and cases.

```
while (ibuf->len) {
    const char *co, *p;

    switch (context->state) {
      default:
      case ...:
        code;