summaryrefslogtreecommitdiff
path: root/oox/source/helper/storagebase.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'oox/source/helper/storagebase.cxx')
-rw-r--r--oox/source/helper/storagebase.cxx20
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;
}
}