diff options
author | Kurt Zenker <kz@openoffice.org> | 2010-08-18 12:39:06 +0200 |
---|---|---|
committer | Kurt Zenker <kz@openoffice.org> | 2010-08-18 12:39:06 +0200 |
commit | 459a214a0fa801114be408f1cc55cea47eca4297 (patch) | |
tree | 7928546dc726f316f741a7e5e97cac30b4b9e268 | |
parent | bbed40128fc546cc054a4578775ba9a67b8ac5e2 (diff) | |
parent | 64910a778a9a37dee885fca38af04205367bae9f (diff) |
CWS-TOOLING: integrate CWS fwk151
-rw-r--r-- | unotools/inc/unotools/configpathes.hxx | 6 | ||||
-rw-r--r-- | unotools/source/config/configpathes.cxx | 11 |
2 files changed, 13 insertions, 4 deletions
diff --git a/unotools/inc/unotools/configpathes.hxx b/unotools/inc/unotools/configpathes.hxx index 2a1e76abf1fc..4e537193b22f 100644 --- a/unotools/inc/unotools/configpathes.hxx +++ b/unotools/inc/unotools/configpathes.hxx @@ -76,6 +76,9 @@ namespace utl If this is not a valid configuration path, it is interpreted as a single name of a node. + @param _sOutPath + If non-null, contains the remainder of the path upon return. + @returns The plain (non-escaped) name of the node that is the first step when traversing <var>_sInPath</var>.<BR/> @@ -83,7 +86,8 @@ namespace utl configuration path, it is returned unaltered. */ - UNOTOOLS_DLLPUBLIC ::rtl::OUString extractFirstFromConfigurationPath(::rtl::OUString const& _sInPath); + UNOTOOLS_DLLPUBLIC ::rtl::OUString extractFirstFromConfigurationPath( + ::rtl::OUString const& _sInPath, ::rtl::OUString* _sOutPath = 0); //---------------------------------------------------------------------------- /** check whether a path is to a nested node with respect to a parent path. diff --git a/unotools/source/config/configpathes.cxx b/unotools/source/config/configpathes.cxx index dc66854a8d43..5e7a4c80813e 100644 --- a/unotools/source/config/configpathes.cxx +++ b/unotools/source/config/configpathes.cxx @@ -154,7 +154,7 @@ sal_Bool splitLastFromConfigurationPath(OUString const& _sInPath, } //---------------------------------------------------------------------------- -OUString extractFirstFromConfigurationPath(OUString const& _sInPath) +OUString extractFirstFromConfigurationPath(OUString const& _sInPath, OUString* _sOutPath) { sal_Int32 nSep = _sInPath.indexOf('/'); sal_Int32 nBracket = _sInPath.indexOf('['); @@ -179,8 +179,7 @@ OUString extractFirstFromConfigurationPath(OUString const& _sInPath) nBracket = nEnd; } OSL_ENSURE(nEnd > nStart && _sInPath[nBracket] == ']', "Invalid config path: improper mismatch of quote or bracket"); - OSL_DEBUG_ONLY(nSep = nBracket+1); - OSL_ENSURE(nSep == _sInPath.getLength() || _sInPath[nSep] == '/', "Invalid config path: brackets not followed by slash"); + OSL_ENSURE((nBracket+1 == _sInPath.getLength() && nSep == -1) || (_sInPath[nBracket+1] == '/' && nSep == nBracket+1), "Invalid config path: brackets not followed by slash"); } else // ... but our initial element name is in simple form nStart = 0; @@ -188,6 +187,12 @@ OUString extractFirstFromConfigurationPath(OUString const& _sInPath) OUString sResult = (nEnd >= 0) ? _sInPath.copy(nStart, nEnd-nStart) : _sInPath; lcl_resolveCharEntities(sResult); + + if (_sOutPath != 0) + { + *_sOutPath = (nSep >= 0) ? _sInPath.copy(nSep + 1) : OUString(); + } + return sResult; } |