Torsten Bögershausen <tboegi@xxxxxx> writes: > Implementation: > Two files are added to the "compat" directory, darwin.h and darwin.c. > They implement basically 3 new functions: > darwin_opendir(), darwin_readdir() and darwin_closedir(). I haven't looked at the patch yet but that sounds exactly the right way to go about this. Nice. > No decomposed file names in a git repository: > In order to prevent that ever a file name in decomposed unicode is entering > the index, a "brute force" attempt is taken: > all arguments into git (technically argv[1]..argv[n]) are converted into > precomposed unicode. That also sounds sensible, but... > This is done in git.c by calling argv_precompose() for all commands > except "git commit". ... I think it generally is a bad idea to say "all except foo". There may be a reason why "foo" happens to be special in today's code, but who says there won't be another command "bar" that shares the same reason with "foo" to be treated specially? Or depending on the options, perhaps some codepath of "foo" may not want the special casing and want to go through the argv_precompose(), no? After all, "git commit -- pathspec" will have to get the pathspec from the command line, and match them against the paths in the index, the latter of which you are keeping in the canonical form, so you would want the argv[] also be in the same form, and applying your argv_precompose() would be a sensible way to do so, no? I would also suspect that the cleanest way to implement it is to replace the main() entry point (see how compat/mingw.h does this). -- 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