From a6616abd6cc2bf337146bb04bdcffcb9e5bb8272 Mon Sep 17 00:00:00 2001
From: Marcus Comstedt <marcus@mc.pp.se>
Date: Sat, 30 May 2020 15:57:32 +0200
Subject: [PATCH] Master: Fixes for combine_path removal of .. breaking
 PIKE_MODULE_RELOC

---
 lib/master.pike.in | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/lib/master.pike.in b/lib/master.pike.in
index a78be8f547..71f2b79617 100644
--- a/lib/master.pike.in
+++ b/lib/master.pike.in
@@ -780,6 +780,11 @@ string getcwd()
 
 string combine_path_with_cwd(string ... paths)
 {
+#ifdef PIKE_MODULE_RELOC
+  /* This is necessary to find compat modules... */
+  if (has_prefix(paths[0], "/${PIKE_MODULE_PATH}/"+UPDIR))
+    return "/${PIKE_MODULE_PATH}/"+combine_path(paths[0][21..],@paths[1..]);
+#endif
   return combine_path(IS_ABSOLUTE_PATH(paths[0])?"":getcwd(),@paths);
 }
 
@@ -1659,7 +1664,11 @@ program low_cast_to_program(string pname,
     { 
       return prog;
     }
-    pname=combine_path("",pname);
+#ifdef PIKE_MODULE_RELOC
+    /* This is necessary to find compat modules... */
+    if (!has_prefix(pname, "/${PIKE_MODULE_PATH}/"+UPDIR))
+#endif
+      pname=combine_path("",pname);
     return findprog(pname,ext,handler,mkobj);
   }
   else {
-- 
GitLab