Hi,
> - If the get_next() invocation is simple, then style (1) is perfectly fine.
Fully agree. Duplicating a single line is perfectly fine if it is
simple enough that you can hardly get it wrong.
> - Style (2) is the worst of all.
Yes, especially because the break is three lines not two due to qemu
code style.
> - If style (1) is not appropriate for whatever reason, then style (3) is
> frequently a good replacement. Style (3) is sometimes rejected by coding
> style documents though. Style (3) is not usable if is_valid() is a
> function-like macro that does not evaluate its argument exactly once.
> Frequently, is_valid() is simply open-coded with C operators (using extra
> parens), for example:
> or more verbosely
>
> while ((cmd = virtqueue_pop(vq, sizeof(struct virtio_gpu_ctrl_command)))
> !=
> NULL) {
Style 3 tends to generate long lines, which in turn need line breaks
like this. Also many parens don't help making code more readable.
So I'd prefer to just leave things as-is.
take care,
Gerd