MSYS2-packages/which/msys2-allow-windows-mixed-absolute-paths.patch
2025-04-20 20:20:01 +02:00

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);