diff options
author | Junio C Hamano <gitster@pobox.com> | 2010-04-03 03:37:00 +0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-04-03 08:07:44 +0400 |
commit | 727c3718a51605a2b93a7b2ac57e0175decc122a (patch) | |
tree | 90bd971a8683c4846fbbc38e7a03c57168c0d240 | |
parent | 87b3c0117a340df61bdbac6794611c74696bd42a (diff) |
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>
-rw-r--r-- | ws.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -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)) { |