]> SALOME platform Git repositories - modules/visu.git/commitdiff
Salome HOME
IPAL20862 WinTC5.1.4: Not all the files are created in MultiFile mode.
authordmv <dmv@opencascade.com>
Tue, 14 Sep 2010 12:39:24 +0000 (12:39 +0000)
committerdmv <dmv@opencascade.com>
Tue, 14 Sep 2010 12:39:24 +0000 (12:39 +0000)
src/VISU_I/VISU_ResultUtils.cc

index 55b14d556a9e9323c0ed778556dd4e76149193a4..ea918c298cb5a5d858888b110f40417263e7ce9b 100644 (file)
@@ -649,16 +649,36 @@ namespace VISU
   CopyFile(const std::string& theSourceFileName,
           const std::string& theTargetFileName)
   {
-    QFileInfo aSourceFileInfo(theSourceFileName.c_str());
-    QFileInfo aTargetFileInfo(theTargetFileName.c_str());
+    QString aSourcePath = theSourceFileName.c_str();
+#ifdef WNT
+    aSourcePath.replace( QString("/"), QString("\\") );
+    int prevSlash = 0;
+    for ( int ind = 0; ind < aSourcePath.length(); ind ++ )
+    {
+      if ( aSourcePath.at( ind ) == '\\' )
+        prevSlash = ind;
+      if ( aSourcePath.at( ind ) == ' ' )
+      {
+        int nextSlash = aSourcePath.indexOf( '\\', ind);
+        if ( aSourcePath.at( nextSlash - 1 ) != '"' )
+        {
+          aSourcePath.insert( nextSlash, '"');
+          aSourcePath.insert( prevSlash + 1, '"');
+          ind++;
+        }
+      }
+    }
+#endif
+
+    QFileInfo aSourceFileInfo( aSourcePath );
+    QFileInfo aTargetFileInfo( theTargetFileName.c_str() );
     if(aSourceFileInfo.absoluteFilePath() == aTargetFileInfo.absoluteFilePath())
       return true;
 
     QString aCommand;
-    aCommand.sprintf("%s %s %s",
-                    COPY_COMMAND,
-                    aSourceFileInfo.filePath().toLatin1().data(),
-                    aTargetFileInfo.filePath().toLatin1().data());
+    aCommand.sprintf("%s %s %s", COPY_COMMAND,
+                     aSourcePath.toLatin1().data(),
+                     theTargetFileName.c_str());
 
     return system(aCommand.toLatin1().data()) == 0;
   }