Johannes Sixt <j6t@xxxxxxxx> writes: > Am 12.09.2013 16:13, schrieb Torsten Bögershausen: >> On 2013-09-12 11.12, Jiang Xin wrote: >>> +static int have_same_root(const char *path1, const char *path2) >>> +{ >>> + int is_abs1, is_abs2; >>> + >>> + is_abs1 = is_absolute_path(path1); >>> + is_abs2 = is_absolute_path(path2); >>> + return (is_abs1 && is_abs2 && !strncasecmp(path1, path2, 1)) || >> ^^^^^^^^^^^ >> I wonder: should strncasecmp() be replaced with strncmp_icase() ? > > I don't think so: On POSIX, it is irrelevant, because the call will only > compare a slash to a slash. On Windows, it compares the drive letters > (or a slash); it is *always* case-insensitive, even if the volume > mounted is NTFS with case-sensitivity enabled and core.ignorecase is false. Ah, you are right, of course. We could even do tolower(path1[0]) == tolower(path2[0]) which might be more explicit. For systems that need POSIX escape hatch for Apollo Domain ;-), we would need a bit more work. When both path1 and path2 begin with a double-dash, we would need to check if they match up to the next slash, so that - //host1/usr/src and //host1/usr/lib share the same root and the former can be made to ../src relative to the latter; - //host1/usr/src and //host2/usr/lib are of separate roots. or something. -- 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