|
|
Message-ID: <20150405174531.GA8664@openwall.com>
Date: Sun, 5 Apr 2015 20:45:31 +0300
From: Solar Designer <solar@...nwall.com>
To: john-dev@...ts.openwall.com
Subject: Re: Coding Style
On Sun, Apr 05, 2015 at 08:28:06PM +0300, Alexander Cherepanov wrote:
> I don't think such issues could be discussed in isolation. One of the
> peculiarities of your style is the absence of indent in the following
> code (from http://www.openwall.com/lists/john-dev/2011/07/15/2 ):
>
> for (i = 0; i < 10; i++)
> for (j = 0; j < 10; j++)
> for (k = 0; k < 10; k++) {
> ... body ...
> ... body ...
> }
>
> This compensates for wide tabs to some degree. But I find this approach
> very strange. Surely, the example above looks nice. But your next example:
>
> for (i = 0; i < 10; i++)
> if (ok(i))
> while (j))
> ... body ...
> ... body ...
> }
>
> doesn't look better without indentation.
To me, it looks fine without indentation (but you lost the opening curly
brace there). I simply treat the for/if/while lines of it as one
complicated loop/condition for the following block.
> And combined with the fact that there are fragments like this:
>
> for (pos = &ciphertext[4]; atoi16[ARCH_INDEX(*pos)] != 0x7F; pos++);
> if (*pos || pos - ciphertext != 20) return 0;
These are actually no good. Today, I'd format them as:
for (pos = &ciphertext[4]; atoi16[ARCH_INDEX(*pos)] != 0x7F; pos++)
continue;
if (*pos || pos - ciphertext != 20)
return 0;
or better yet, rewrite the "for" loop as "while":
pos = ciphertext + 4;
while (atoi16[ARCH_INDEX(*pos)] != 0x7F)
pos++;
BTW, we need to replace ARCH_INDEX() with an arch-neutral macro, perhaps
in common.h.
> it greatly undermines the usefulness of indentation -- you cannot be
> sure anymore where a block ended without fully parsing all the code.
With the above corrections, I think you can. So I think corrections
like these is what we should make.
> I think the principle that you can find the end of the block just by
> mentally drawing a vertical line until you meet something with less or
> equal indentation
This is a required property, yes.
> overweights the usefulness of alignment like the first example above.
What "first example above"? The one with "for ... ;" all on one line?
Yes, we should get rid of those.
Alexander
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.