Bläddra i källkod

wxGUI: MS Windows related fixes (spaces in database path) [sync'ed with develbr6]

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@31201 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa 17 år sedan
förälder
incheckning
50a8411fbd
2 ändrade filer med 15 tillägg och 6 borttagningar
  1. 11 5
      gui/wxpython/gui_modules/dbm.py
  2. 4 1
      gui/wxpython/wxgui.py

+ 11 - 5
gui/wxpython/gui_modules/dbm.py

@@ -3030,16 +3030,22 @@ class VectorDBInfo:
         # list of available layers & (table, database, driver)
         for line in layerCommand.ReadStdOutput():
             lineList = line.split(' ')
-            if '/' in lineList[0]:
-                lineList[0], layer_name = lineList[0].split('/')
+            layer = lineList[0]
+            if '/' in layer:
+                layer, layer_name = lineList[0].split('/')
             else:
                 layer_name = None
-            self.layers[int(lineList[0])] = {
+            # database can contain ' ' in it's path
+            if len(lineList) > 5:
+                database = ''.join(lineList[3:-1])
+            else:
+                database = lineList[3]
+            self.layers[int(layer)] = {
                 "name"     : layer_name,
                 "table"    : lineList[1],
                 "key"      : lineList[2],
-                "database" : lineList[3],
-                "driver"   : lineList[4]
+                "database" : database,
+                "driver"   : lineList[-1]
                 }
             
         if (len(self.layers.keys()) == 0):

+ 4 - 1
gui/wxpython/wxgui.py

@@ -580,8 +580,11 @@ class GMFrame(wx.Frame):
             file = open(filename, "r")
 
             fileStream = ''.join(file.readlines())
-            p = re.compile( '(grass-gxw.dtd)')
+            p = re.compile('(grass-gxw.dtd)')
             p.search(fileStream)
+            if subprocess.mswindows:
+                # FIXME mixing '\' and '/' causes error in p.sub
+                dtdFilename = dtdFilename.replace("\\", "/") 
             fileStream = p.sub(dtdFilename, fileStream)
 
             # sax