|
Message-ID: <552170A6.6020203@openwall.com> Date: Sun, 05 Apr 2015 20:28:06 +0300 From: Alexander Cherepanov <ch3root@...nwall.com> To: john-dev@...ts.openwall.com Subject: Re: Coding Style On 2015-04-05 15:04, Solar Designer wrote: > On Sun, Apr 05, 2015 at 12:43:23PM +0200, magnum wrote: >> On 2015-04-05 12:02, Solar Designer wrote: >>> As discussed before, this is about the closest match to what we need: >>> >>> indent -kr -i8 -nlp -nbbo -ncs -l79 -lc79 >>> >>> although I dislike a few things about it - e.g., how it indents goto >>> labels. Oh, and IIRC our fmt_main struct initializers are mangled by >>> this really bad. >>> >>> Maybe we should patch indent(1) for our use? >> >> I think GNU indent has more options that are applicabe to us, than the >> most basic variants. I *think* I could get around the struct issue but I >> don't have any notes left from that. Someone should investigate what can >> be used (and we should list it as an alternative for GNU indent only) > > I think it'd be helpful if you or Kai or someone else investigates this > and posts in here. The ideal indent program and its options would > produce results close to the current formatting of the core tree. BTW, the previous discussion is here: http://thread.gmane.org/gmane.comp.security.openwall.john.devel/584 http://www.openwall.com/lists/john-dev/2011/07/14/9 >> BTW I am tempted to officially have Jumbo deviate from core's tab width >> recommentdation, using 4 instead of 8. With the "indent with TABs, align >> with spaces" requirement (which I'm prepared to kill for) this only >> affects how long a line gets[*]. It seems to me absolutely no-one use 8 >> (except I use to do it when working with John - but I'm about to give >> that up) so many lines are committed that did not exceed column 80 with >> the author's TAB setting but do when 8 is used. > > I use 8 char tabs, and I like them. In early 1990s, I used to prefer > indentation with a few spaces (2 or 3), but later I realized that if I > need so many indentation levels that 8 char tabs start being a problem > (push lines beyond 80 chars), this usually means that the code needs to > be refactored (usually split into more functions). 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. 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; it greatly undermines the usefulness of indentation -- you cannot be sure anymore where a block ended without fully parsing all the code. 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 overweights the usefulness of alignment like the first example above. I consider this issue much more important than tab size. -- Alexander Cherepanov
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.