Erik Faye-Lund wrote: > But I think I might have been a bit too care-less; I didn't fix the > switch-case to check for multiple backslashes on Windows. It's not > immediately obvious if this is needed or not, but I don't think it can > cause harm; we should never have created an index like that anyway. > > So something like this on top, perhaps? Nitpick: If you already know that c != '\0' and !is_dir_sep(c), then why do continue? It will check for '\0' and is_dir_sep(c) again, but you already know that both ifs will be false. So you could just as easy jump straight to c = *path++, which IMHO also makes the code easier to follow: diff --git a/read-cache.c b/read-cache.c index 68faa51..089cd3e 100644 --- a/read-cache.c +++ b/read-cache.c @@ -763,17 +763,15 @@ int verify_path(const char *path) if (is_dir_sep(c)) { inside: c = *path++; - switch (c) { - default: - continue; - case '/': case '\0': - break; - case '.': + if (c == '.') { + if (verify_dotfile(path)) continue; - } + } else if (!is_dir_sep(c) && c != '\0') + goto next; return 0; } +next: c = *path++; } } -- 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