[mapguide-trac] #1118: Alias with unicode path can't work
    MapGuide Open Source 
    trac_mapguide at osgeo.org
       
    Thu Oct 15 05:24:24 EDT 2009
    
    
  
#1118: Alias with unicode path can't work
--------------------------+-------------------------------------------------
 Reporter:  christinebao  |         Owner:  Christine Bao
     Type:  defect        |        Status:  new          
 Priority:  medium        |     Milestone:  2.2          
Component:  General       |       Version:  2.0.2        
 Severity:  major         |    Resolution:               
 Keywords:                |   External_id:  1262444      
--------------------------+-------------------------------------------------
Comment (by christinebao):
 Tech diagnosis:[[BR]]
 The defect happens in UnmanagedDataManager.cpp, [[BR]]
 {{{
 int MgUnmanagedDataManager::SubstituteDataPathAliases(string& doc)
 {
     //some code
                     STRING mappingDir = stringProp->GetValue();
                     // replace the mappingName with the actual directory
                     if (!MgFileUtil::EndsWithSlash(mappingDir))
                         MgFileUtil::AppendSlashToEndOfPath(mappingDir);
                     size_t dirLen = mappingDir.length();
                     doc.replace(startPos, len1 + nameLen + len2,
 MgUtil::WideCharToMultiByte(mappingDir), 0, dirLen);
     //some code
 }
 }}}
 mappingDir is STRING type, which stands for std::wstring. However doc
 stands for string and composited by char. So use the size of mappingDir to
 replace the content in doc causing path to be cut off.
 To fix this, mappingDir should be converted to string type first and then
 replace the content in doc.
-- 
Ticket URL: <https://trac.osgeo.org/mapguide/ticket/1118#comment:1>
MapGuide Open Source <http://mapguide.osgeo.org/>
MapGuide Open Source Internals
    
    
More information about the mapguide-trac
mailing list