(JAL-1022) reverted to original strategy of escaping filenames in Jmol scripts becaus...
[jalview.git] / src / jalview / gui / Jalview2XML.java
index 3c5259e..b1b1f55 100644 (file)
@@ -38,6 +38,7 @@ import jalview.datamodel.SequenceI;
 import jalview.schemabinding.version2.*;
 import jalview.schemes.*;
 import jalview.structure.StructureSelectionManager;
+import jalview.util.Platform;
 import jalview.util.jarInputStreamProvider;
 
 /**
@@ -1823,7 +1824,7 @@ public class Jalview2XML
         }
         ;
         out.close();
-        String t=outFile.toURI().getPath().substring(1);
+        String t=outFile.getAbsolutePath();
         alreadyLoadedPDB.put(pdbId, t);
         return t;
       }
@@ -2730,6 +2731,8 @@ public class Jalview2XML
               {
                 newFileLoc = new StringBuffer();
               }
+              do {
+                // look for next filename in load statement
               newFileLoc.append(state.substring(cp,
                       ncp = (state.indexOf("\"", ncp + 1) + 1)));
               String oldfilenam = state.substring(ncp,
@@ -2738,7 +2741,7 @@ public class Jalview2XML
               // have to normalize filename - since Jmol and jalview do filename
               // translation differently.
               Object[] filedat = oldFiles.get(new File(oldfilenam));
-              newFileLoc.append(((String) filedat[0]));
+              newFileLoc.append(Platform.escapeString((String) filedat[0]));
               pdbfilenames.addElement((String) filedat[0]);
               pdbids.addElement((String) filedat[1]);
               seqmaps.addElement((SequenceI[]) ((Vector<SequenceI>) filedat[2])
@@ -2746,6 +2749,7 @@ public class Jalview2XML
               newFileLoc.append("\"");
               cp = ecp + 1; // advance beyond last \" and set cursor so we can
                             // look for next file statement.
+              } while ((ncp=state.indexOf("/*file*/",cp))>-1);
             }
             if (cp > 0)
             {