Re: [PATCH] is_hfs_dotgit: loosen over-eager match of \u{..47}
From: Junio C Hamano <hidden>
Date: 2016-06-15 23:03:21
Jonathan Nieder [off-list ref] writes:
quoted
+++ b/t/t1450-fsck.sh[...]quoted
+ git fsck 2>err && + cat err && + ! test -s errNit: if this said test_line_count = 0 err then the error message would be more obvious when it fails with --verbose.
That's a good suggestion, I think. This is meant to apply on top of d08c13b, and we already had test_line_count back then. So far I collected these follow-ups to squash into Peff's patch. t/t1450-fsck.sh | 3 +-- utf8.c | 15 ++++++++------- 2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/t/t1450-fsck.sh b/t/t1450-fsck.sh
index 5e42385..0279b2b 100755
--- a/t/t1450-fsck.sh
+++ b/t/t1450-fsck.sh@@ -284,8 +284,7 @@ test_expect_success 'fsck allows .Ňit' ' printf "100644 blob $blob\t.\\305\\207it" >tree && tree=$(git mktree <tree) && git fsck 2>err && - cat err && - ! test -s err + test_line_count = 0 err ) '
diff --git a/utf8.c b/utf8.c
index 18a8f42..9c9fa3a 100644
--- a/utf8.c
+++ b/utf8.c@@ -630,8 +630,8 @@ int mbs_chrlen(const char **text, size_t *remainder_p, const char *encoding) } /* - * Pick the next char from the stream, folding as an HFS+ filename comparison - * would. Note that this is _not_ complete by any means. It's just enough + * Pick the next char from the stream, ignoring codepoints an HFS+ would. + * Note that this is _not_ complete by any means. It's just enough * to make is_hfs_dotgit() work, and should not be used otherwise. */ static ucs_char_t next_hfs_char(const char **in)
@@ -668,11 +668,6 @@ static ucs_char_t next_hfs_char(const char **in) continue; } - /* - * there's a great deal of other case-folding that occurs, - * but this is enough to catch anything that will convert - * to ".git" - */ return out; } }
@@ -685,6 +680,12 @@ int is_hfs_dotgit(const char *path) if (c != '.') return 0; c = next_hfs_char(&path); + + /* + * there's a great deal of other case-folding that occurs + * in HFS+, but this is enough to catch anything that will + * convert to ".git" + */ if (c != 'g' && c != 'G') return 0; c = next_hfs_char(&path);