söndagen den 3 oktober 2010 11.56.44 skrev Ævar Arnfjörð Bjarmason: > From: Joshua Jensen <jjensen@xxxxxxxxxxxxxxxxx> > > When mydir/filea.txt is added, mydir/ is renamed to MyDir/, and > MyDir/fileb.txt is added, running git ls-files mydir only shows > mydir/filea.txt. Running git ls-files MyDir shows MyDir/fileb.txt. > Running git ls-files mYdIR shows nothing. > > With this patch running git ls-files for mydir, MyDir, and mYdIR shows > mydir/filea.txt and MyDir/fileb.txt. > > Wildcards are not handled case insensitively in this patch. Example: > MyDir/aBc/file.txt is added. git ls-files MyDir/a* works fine, but git > ls-files mydir/a* does not. > > Signed-off-by: Joshua Jensen <jjensen@xxxxxxxxxxxxxxxxx> > Signed-off-by: Johannes Sixt <j6t@xxxxxxxx> > Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> > --- > dir.c | 38 ++++++++++++++++++++++++++------------ > 1 files changed, 26 insertions(+), 12 deletions(-) > > diff --git a/dir.c b/dir.c > index cf8f65c..53aa4f3 100644 > --- a/dir.c > +++ b/dir.c > @@ -107,16 +107,30 @@ static int match_one(const char *match, const char > *name, int namelen) if (!*match) > return MATCHED_RECURSIVELY; > > - for (;;) { > - unsigned char c1 = *match; > - unsigned char c2 = *name; > - if (c1 == '\0' || is_glob_special(c1)) > - break; > - if (c1 != c2) > - return 0; > - match++; > - name++; > - namelen--; > + if (ignore_case) { > + for (;;) { > + unsigned char c1 = tolower(*match); > + unsigned char c2 = tolower(*name); Is anyone thinking "unicode" around here? -- robin -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html