about summary refs log tree commit diff
path: root/third_party/git/compat/win32
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/git/compat/win32')
-rw-r--r--third_party/git/compat/win32/path-utils.c24
-rw-r--r--third_party/git/compat/win32/path-utils.h10
-rw-r--r--third_party/git/compat/win32/pthread.h8
3 files changed, 6 insertions, 36 deletions
diff --git a/third_party/git/compat/win32/path-utils.c b/third_party/git/compat/win32/path-utils.c
index ebf2f12eb6..d9d3641de8 100644
--- a/third_party/git/compat/win32/path-utils.c
+++ b/third_party/git/compat/win32/path-utils.c
@@ -1,29 +1,5 @@
 #include "../../git-compat-util.h"
 
-int win32_has_dos_drive_prefix(const char *path)
-{
-	int i;
-
-	/*
-	 * Does it start with an ASCII letter (i.e. highest bit not set),
-	 * followed by a colon?
-	 */
-	if (!(0x80 & (unsigned char)*path))
-		return *path && path[1] == ':' ? 2 : 0;
-
-	/*
-	 * While drive letters must be letters of the English alphabet, it is
-	 * possible to assign virtually _any_ Unicode character via `subst` as
-	 * a drive letter to "virtual drives". Even `1`, or `ä`. Or fun stuff
-	 * like this:
-	 *
-	 *      subst ֍: %USERPROFILE%\Desktop
-	 */
-	for (i = 1; i < 4 && (0x80 & (unsigned char)path[i]); i++)
-		; /* skip first UTF-8 character */
-	return path[i] == ':' ? i + 1 : 0;
-}
-
 int win32_skip_dos_drive_prefix(char **path)
 {
 	int ret = has_dos_drive_prefix(*path);
diff --git a/third_party/git/compat/win32/path-utils.h b/third_party/git/compat/win32/path-utils.h
index f2e70872cd..0f70d43920 100644
--- a/third_party/git/compat/win32/path-utils.h
+++ b/third_party/git/compat/win32/path-utils.h
@@ -1,9 +1,5 @@
-#ifndef WIN32_PATH_UTILS_H
-#define WIN32_PATH_UTILS_H
-
-int win32_has_dos_drive_prefix(const char *path);
-#define has_dos_drive_prefix win32_has_dos_drive_prefix
-
+#define has_dos_drive_prefix(path) \
+	(isalpha(*(path)) && (path)[1] == ':' ? 2 : 0)
 int win32_skip_dos_drive_prefix(char **path);
 #define skip_dos_drive_prefix win32_skip_dos_drive_prefix
 static inline int win32_is_dir_sep(int c)
@@ -22,5 +18,3 @@ static inline char *win32_find_last_dir_sep(const char *path)
 #define find_last_dir_sep win32_find_last_dir_sep
 int win32_offset_1st_component(const char *path);
 #define offset_1st_component win32_offset_1st_component
-
-#endif
diff --git a/third_party/git/compat/win32/pthread.h b/third_party/git/compat/win32/pthread.h
index 737983d00b..c6cb8dd219 100644
--- a/third_party/git/compat/win32/pthread.h
+++ b/third_party/git/compat/win32/pthread.h
@@ -50,8 +50,8 @@ typedef struct {
 	DWORD tid;
 } pthread_t;
 
-int pthread_create(pthread_t *thread, const void *unused,
-		   void *(*start_routine)(void*), void *arg);
+extern int pthread_create(pthread_t *thread, const void *unused,
+			  void *(*start_routine)(void*), void *arg);
 
 /*
  * To avoid the need of copying a struct, we use small macro wrapper to pass
@@ -59,10 +59,10 @@ int pthread_create(pthread_t *thread, const void *unused,
  */
 #define pthread_join(a, b) win32_pthread_join(&(a), (b))
 
-int win32_pthread_join(pthread_t *thread, void **value_ptr);
+extern int win32_pthread_join(pthread_t *thread, void **value_ptr);
 
 #define pthread_equal(t1, t2) ((t1).tid == (t2).tid)
-pthread_t pthread_self(void);
+extern pthread_t pthread_self(void);
 
 static inline void NORETURN pthread_exit(void *ret)
 {