Debugger/DebuggerInterfacePython.py

branch
maintenance
changeset 6826
c6dda2cbe081
parent 6822
f34e48fdfd92
child 6848
7682182a0f0f
--- a/Debugger/DebuggerInterfacePython.py	Sat Feb 16 10:27:50 2019 +0100
+++ b/Debugger/DebuggerInterfacePython.py	Sat Mar 02 11:15:24 2019 +0100
@@ -75,8 +75,10 @@
             if Preferences.getDebugger("PathTranslation"):
                 self.translateRemote = \
                     Preferences.getDebugger("PathTranslationRemote")
+                self.translateRemoteWindows = "\\" in self.translateRemote
                 self.translateLocal = \
                     Preferences.getDebugger("PathTranslationLocal")
+                self.translateLocalWindows = "\\" in self.translateLocal
                 self.translate = self.__remoteTranslation
             else:
                 self.translate = self.__identityTranslation
@@ -105,9 +107,15 @@
         @return translated filename (string)
         """
         if remote2local:
-            return fn.replace(self.translateRemote, self.translateLocal)
+            path = fn.replace(self.translateRemote, self.translateLocal)
+            if self.translateLocalWindows:
+                path = path.replace("/", "\\")
         else:
-            return fn.replace(self.translateLocal, self.translateRemote)
+            path = fn.replace(self.translateLocal, self.translateRemote)
+            if not self.translateRemoteWindows:
+                path = path.replace("\\", "/")
+        
+        return path
         
     def __startProcess(self, program, arguments, environment=None,
                        workingDir=None):
@@ -235,9 +243,11 @@
                 if Preferences.getDebugger("PathTranslation"):
                     self.translateRemote = \
                         Preferences.getDebugger("PathTranslationRemote")
+                    self.translateRemoteWindows = "\\" in self.translateRemote
                     self.translateLocal = \
                         Preferences.getDebugger("PathTranslationLocal")
                     self.translate = self.__remoteTranslation
+                    self.translateLocalWindows = "\\" in self.translateLocal
                 else:
                     self.translate = self.__identityTranslation
                 return process, self.__isNetworked, ""
@@ -369,8 +379,8 @@
                 rhost = "localhost"
             if rexec:
                 args = Utilities.parseOptionString(rexec) + \
-                    [rhost, interpreter, os.path.abspath(debugClient),
-                        noencoding, str(port), redirect, ipaddr]
+                    [rhost, interpreter, debugClient, noencoding,
+                     str(port), redirect, ipaddr]
                 args[0] = Utilities.getExecutablePath(args[0])
                 process = self.__startProcess(args[0], args[1:],
                                               workingDir=workingDir)
@@ -385,13 +395,18 @@
                 if project.getDebugProperty("PATHTRANSLATION"):
                     self.translateRemote = \
                         project.getDebugProperty("REMOTEPATH")
+                    self.translateRemoteWindows = "\\" in self.translateRemote
                     self.translateLocal = \
                         project.getDebugProperty("LOCALPATH")
+                    self.translateLocalWindows = "\\" in self.translateLocal
                     self.translate = self.__remoteTranslation
                 else:
                     self.translate = self.__identityTranslation
                 return process, self.__isNetworked, ""
-        
+            else:
+                # remote shell command is missing
+                return None, self.__isNetworked, ""
+    
         # set translation function
         self.translate = self.__identityTranslation
         

eric ide

mercurial