35 lines
1.0 KiB
Diff
35 lines
1.0 KiB
Diff
diff --git a/which.c b/which.c
|
|
index 496db08..f9f609b 100644
|
|
--- a/which.c
|
|
+++ b/which.c
|
|
@@ -104,7 +104,14 @@ static char *find_command_in_path(const char *name, const char *path_list, int *
|
|
if (abs_path)
|
|
free(abs_path);
|
|
|
|
+#if defined(__MSYS__)
|
|
+ if (*name != '.' && !IS_ABSOLUTE(name) && *name != '~'
|
|
+ && !((strlen (name) > 2
|
|
+ && tolower (name[0]) >= 'a' && tolower (name[0]) <= 'z'
|
|
+ && name[1] == ':' && name[2] == '/')))
|
|
+#else
|
|
if (*name != '.' && !IS_ABSOLUTE(name) && *name != '~')
|
|
+#endif
|
|
{
|
|
abs_path = (char *) xmalloc(3 + name_len);
|
|
strcpy(abs_path, "./");
|
|
@@ -250,7 +257,14 @@ static char *path_clean_up(const char *path)
|
|
|
|
int saw_slash = 0, saw_slash_dot = 0, saw_slash_dot_dot = 0;
|
|
|
|
+#if defined(__MSYS__)
|
|
+ if (!IS_ABSOLUTE(p1)
|
|
+ && !((strlen (p1) > 2
|
|
+ && tolower (p1[0]) >= 'a' && tolower (p1[0]) <= 'z'
|
|
+ && p1[1] == ':' && p1[2] == '/')))
|
|
+#else
|
|
if (!IS_ABSOLUTE(p1))
|
|
+#endif
|
|
{
|
|
get_current_working_directory();
|
|
strcpy(result, cwd);
|