Commit ac971ecf by Russell Belfer

Better fix for isalpha in drive letter detection

Missed a place that used this and missed git__isalpha
parent d17db71b
...@@ -17,6 +17,10 @@ ...@@ -17,6 +17,10 @@
#include <stdio.h> #include <stdio.h>
#include <ctype.h> #include <ctype.h>
#ifdef GIT_WIN32
#define LOOKS_LIKE_DRIVE_PREFIX(S) (git__isalpha((S)[0]) && (S)[1] == ':')
#endif
/* /*
* Based on the Android implementation, BSD licensed. * Based on the Android implementation, BSD licensed.
* Check http://android.git.kernel.org/ * Check http://android.git.kernel.org/
...@@ -105,7 +109,7 @@ int git_path_dirname_r(git_buf *buffer, const char *path) ...@@ -105,7 +109,7 @@ int git_path_dirname_r(git_buf *buffer, const char *path)
/* Mimic unix behavior where '/.git' returns '/': 'C:/.git' will return /* Mimic unix behavior where '/.git' returns '/': 'C:/.git' will return
'C:/' here */ 'C:/' here */
if (len == 2 && isalpha(path[0]) && path[1] == ':') { if (len == 2 && LOOKS_LIKE_DRIVE_PREFIX(path)) {
len = 3; len = 3;
goto Exit; goto Exit;
} }
...@@ -170,8 +174,7 @@ int git_path_root(const char *path) ...@@ -170,8 +174,7 @@ int git_path_root(const char *path)
#ifdef GIT_WIN32 #ifdef GIT_WIN32
/* Does the root of the path look like a windows drive ? */ /* Does the root of the path look like a windows drive ? */
if (((path[0] >= 'a' && path[0] <= 'z') || if (LOOKS_LIKE_DRIVE_PREFIX(path))
(path[0] >= 'A' && path[0] <= 'Z')) && path[1] == ':')
offset += 2; offset += 2;
/* Are we dealing with a windows network path? */ /* Are we dealing with a windows network path? */
...@@ -211,7 +214,7 @@ int git_path_prettify(git_buf *path_out, const char *path, const char *base) ...@@ -211,7 +214,7 @@ int git_path_prettify(git_buf *path_out, const char *path, const char *base)
giterr_set(GITERR_OS, "Failed to resolve path '%s'", path); giterr_set(GITERR_OS, "Failed to resolve path '%s'", path);
git_buf_clear(path_out); git_buf_clear(path_out);
return error; return error;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment