Browse Source

CodingGuidelines: avoid "test <cond> -a/-o <cond>"

The construct is error-prone; "test" being built-in in most modern
shells, the reason to avoid "test <cond> && test <cond>" spawning
one extra process by using a single "test <cond> -a <cond>" no
longer exists.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Junio C Hamano 11 years ago
parent
commit
897f964c0d
  1. 13
      Documentation/CodingGuidelines

13
Documentation/CodingGuidelines

@ -151,6 +151,19 @@ For shell scripts specifically (not exhaustive): @@ -151,6 +151,19 @@ For shell scripts specifically (not exhaustive):
interface translatable. See "Marking strings for translation" in
po/README.

- We do not write our "test" command with "-a" and "-o" and use "&&"
or "||" to concatenate multiple "test" commands instead, because
the use of "-a/-o" is often error-prone. E.g.

test -n "$x" -a "$a" = "$b"

is buggy and breaks when $x is "=", but

test -n "$x" && test "$a" = "$b"

does not have such a problem.


For C programs:

- We use tabs to indent, and interpret tabs as taking up to

Loading…
Cancel
Save