Skip to content

Commit

Permalink
whitespace: we cannot "catch all errors known to git" anymore
Browse files Browse the repository at this point in the history
Traditionally, "*.txt whitespace" in .gitattributes file has been an
instruction to catch _all_ classes of whitespace errors known to git.

This has to change, however, in order to introduce "tab-in-indent" which
is inherently incompatible with "indent-with-non-tab".  As we do not want
to break configuration of existing users, add a mechanism to allow marking
selected rules to be excluded from "all rules known to git".

Signed-off-by: Chris Webb <chris@arachsys.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Junio C Hamano committed Apr 3, 2010
1 parent 87b3c01 commit 727c371
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions ws.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
static struct whitespace_rule {
const char *rule_name;
unsigned rule_bits;
unsigned loosens_error;
unsigned loosens_error:1,
exclude_default:1;
} whitespace_rule_names[] = {
{ "trailing-space", WS_TRAILING_SPACE, 0 },
{ "space-before-tab", WS_SPACE_BEFORE_TAB, 0 },
Expand Down Expand Up @@ -82,7 +83,8 @@ unsigned whitespace_rule(const char *pathname)
unsigned all_rule = 0;
int i;
for (i = 0; i < ARRAY_SIZE(whitespace_rule_names); i++)
if (!whitespace_rule_names[i].loosens_error)
if (!whitespace_rule_names[i].loosens_error &&
!whitespace_rule_names[i].exclude_default)
all_rule |= whitespace_rule_names[i].rule_bits;
return all_rule;
} else if (ATTR_FALSE(value)) {
Expand Down

0 comments on commit 727c371

Please sign in to comment.