diff options
Diffstat (limited to 'oox/source/helper/storagebase.cxx')
-rw-r--r-- | oox/source/helper/storagebase.cxx | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/oox/source/helper/storagebase.cxx b/oox/source/helper/storagebase.cxx index 2201320fad1a..7e5b2d0f4966 100644 --- a/oox/source/helper/storagebase.cxx +++ b/oox/source/helper/storagebase.cxx @@ -49,17 +49,25 @@ using ::rtl::OUStringBuffer; namespace { -void lclSplitFirstElement( OUString& orElement, OUString& orRemainder, const OUString& rFullName ) +void lclSplitFirstElement( OUString& orElement, OUString& orRemainder, OUString aFullName ) { - sal_Int32 nSlashPos = rFullName.indexOf( '/' ); - if( (0 <= nSlashPos) && (nSlashPos < rFullName.getLength()) ) + sal_Int32 nSlashPos = aFullName.indexOf( '/' ); + + // strip leading slashes + while( nSlashPos == 0 ) + { + aFullName = aFullName.copy(1); + nSlashPos = aFullName.indexOf( '/' ); + } + + if( (0 <= nSlashPos) && (nSlashPos < aFullName.getLength()) ) { - orElement = rFullName.copy( 0, nSlashPos ); - orRemainder = rFullName.copy( nSlashPos + 1 ); + orElement = aFullName.copy( 0, nSlashPos ); + orRemainder = aFullName.copy( nSlashPos + 1 ); } else { - orElement = rFullName; + orElement = aFullName; } } |