summaryrefslogtreecommitdiff
path: root/ws.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2010-04-03 00:37:00 +0100
committerJunio C Hamano <gitster@pobox.com>2010-04-02 21:07:44 -0700
commit727c3718a51605a2b93a7b2ac57e0175decc122a (patch)
tree90bd971a8683c4846fbbc38e7a03c57168c0d240 /ws.c
parent87b3c0117a340df61bdbac6794611c74696bd42a (diff)
downloadgit-727c3718a51605a2b93a7b2ac57e0175decc122a.tar.gz
whitespace: we cannot "catch all errors known to git" anymore
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>
Diffstat (limited to 'ws.c')
-rw-r--r--ws.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/ws.c b/ws.c
index c0893386e6..f4afcddd4f 100644
--- a/ws.c
+++ b/ws.c
@@ -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 },
@@ -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)) {