Skip to content

Commit

Permalink
Merge branch 'js/maint-apply-tab-in-indent-fix' into HEAD
Browse files Browse the repository at this point in the history
* js/maint-apply-tab-in-indent-fix:
  apply --whitespace=fix: fix tab-in-indent
  • Loading branch information
Junio C Hamano committed Dec 1, 2010
2 parents 7d43de9 + d35711a commit dee40e5
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 1 deletion.
28 changes: 28 additions & 0 deletions t/t4124-apply-ws-rule.sh
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,34 @@ test_expect_success 'whitespace=error-all, no rule (attribute)' '
'

test_expect_success 'spaces inserted by tab-in-indent' '
git config core.whitespace -trailing,-space,-indent,tab &&
rm -f .gitattributes &&
test_fix % &&
sed -e "s/_/ /g" -e "s/>/ /" <<-\EOF >expect &&
An_SP in an ordinary line>and a HT.
________A HT (%).
________A SP and a HT (@%).
_________A SP, a HT and a SP (@%).
_______Seven SP.
________Eight SP (#).
________Seven SP and a HT (@%).
________________Eight SP and a HT (@#%).
_________Seven SP, a HT and a SP (@%).
_________________Eight SP, a HT and a SP (@#%).
_______________Fifteen SP (#).
________________Fifteen SP and a HT (@#%).
________________Sixteen SP (#).
________________________Sixteen SP and a HT (@#%).
_____a__Five SP, a non WS, two SP.
A line with a (!) trailing SP_
A line with a (!) trailing HT>
EOF
test_cmp expect target
'

for t in - ''
do
case "$t" in '') tt='!' ;; *) tt= ;; esac
Expand Down
3 changes: 2 additions & 1 deletion ws.c
Original file line number Diff line number Diff line change
Expand Up @@ -363,12 +363,13 @@ void ws_fix_copy(struct strbuf *dst, const char *src, int len, unsigned ws_rule,
fixed = 1;
} else if ((ws_rule & WS_TAB_IN_INDENT) && last_tab_in_indent >= 0) {
/* Expand tabs into spaces */
int start = dst->len;
int last = last_tab_in_indent + 1;
for (i = 0; i < last; i++) {
if (src[i] == '\t')
do {
strbuf_addch(dst, ' ');
} while (dst->len % 8);
} while ((dst->len - start) % 8);
else
strbuf_addch(dst, src[i]);
}
Expand Down

0 comments on commit dee40e5

Please sign in to comment.