Johannes Sixt <j...@kdbg.org> 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) == tolower(path2)
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.
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html