[Libreoffice-commits] core.git: vcl/generic

Luboš Luňák l.lunak at suse.cz
Fri Feb 8 08:10:39 PST 2013


 vcl/generic/fontmanager/fontmanager.cxx |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

New commits:
commit fd44b28e6880b3a976b876a03bb4bc0280b47eae
Author: Luboš Luňák <l.lunak at suse.cz>
Date:   Fri Feb 8 17:07:17 2013 +0100

    what a convoluted way to split path into dir and file; and broken, too
    
    This should make it handle paths with spaces properly.
    
    Change-Id: Ic4e36449435e1bab2441ea011ccea018f14b98cf

diff --git a/vcl/generic/fontmanager/fontmanager.cxx b/vcl/generic/fontmanager/fontmanager.cxx
index f2ccc29..b571955 100644
--- a/vcl/generic/fontmanager/fontmanager.cxx
+++ b/vcl/generic/fontmanager/fontmanager.cxx
@@ -1049,9 +1049,10 @@ int PrintFontManager::getDirectoryAtom( const OString& rDirectory, bool bCreate
 std::vector<fontID> PrintFontManager::addFontFile( const ::rtl::OString& rFileName )
 {
     rtl_TextEncoding aEncoding = osl_getThreadTextEncoding();
-    INetURLObject aPath( OStringToOUString( rFileName, aEncoding ), INET_PROT_FILE, INetURLObject::ENCODE_ALL );
-    OString aName( OUStringToOString( aPath.GetName(), aEncoding ) );
-    OString aDir( OUStringToOString( aPath.GetPath(), aEncoding ) );
+    INetURLObject aPath( OStringToOUString( rFileName, aEncoding ), INetURLObject::FSYS_DETECT );
+    OString aName( OUStringToOString( aPath.GetName( INetURLObject::DECODE_WITH_CHARSET, aEncoding ), aEncoding ) );
+    OString aDir( OUStringToOString(
+        INetURLObject::decode( aPath.GetPath(), '%', INetURLObject::DECODE_WITH_CHARSET, aEncoding ), aEncoding ) );
 
     int nDirID = getDirectoryAtom( aDir, true );
     std::vector<fontID> aFontIds = findFontFileIDs( nDirID, aName );


More information about the Libreoffice-commits mailing list