From c33019b36d613f951787ce9836e34d74bfbd6a1b Mon Sep 17 00:00:00 2001 From: Norbert Thiebaud Date: Tue, 27 Nov 2012 02:35:09 -0600 Subject: String->OUString in svl urifilter and restrictedpaths Change-Id: If11b8752c3aa21554c3ee06de07d63639695e284 --- svl/inc/svl/adrparse.hxx | 15 +- svl/inc/svl/restrictedpaths.hxx | 9 +- svl/inc/svl/urlfilter.hxx | 9 +- svl/source/misc/adrparse.cxx | 618 ++++++++++++++++++------------------ svl/source/misc/restrictedpaths.cxx | 50 +-- svtools/source/contnr/fileview.cxx | 12 +- 6 files changed, 348 insertions(+), 365 deletions(-) diff --git a/svl/inc/svl/adrparse.hxx b/svl/inc/svl/adrparse.hxx index f788b03300fb..063ba11a95a9 100644 --- a/svl/inc/svl/adrparse.hxx +++ b/svl/inc/svl/adrparse.hxx @@ -21,21 +21,20 @@ #define _ADRPARSE_HXX #include "svl/svldllapi.h" -#include #include //============================================================================ struct SvAddressEntry_Impl { - rtl::OUString m_aAddrSpec; - rtl::OUString m_aRealName; + OUString m_aAddrSpec; + OUString m_aRealName; SvAddressEntry_Impl() { } - SvAddressEntry_Impl(const rtl::OUString& rTheAddrSpec, - const rtl::OUString& rTheRealName) + SvAddressEntry_Impl(const OUString& rTheAddrSpec, + const OUString& rTheRealName) : m_aAddrSpec(rTheAddrSpec) , m_aRealName(rTheRealName) { @@ -55,19 +54,19 @@ class SVL_DLLPUBLIC SvAddressParser bool m_bHasFirst; public: - SvAddressParser(const rtl::OUString& rInput); + SvAddressParser(const OUString& rInput); ~SvAddressParser(); sal_Int32 Count() const { return m_bHasFirst ? m_aRest.size() + 1 : 0; } - const rtl::OUString& GetEmailAddress(sal_Int32 nIndex) const + const OUString& GetEmailAddress(sal_Int32 nIndex) const { return nIndex == 0 ? m_aFirst.m_aAddrSpec : m_aRest[ nIndex - 1 ]->m_aAddrSpec; } - const rtl::OUString& GetRealName(sal_Int32 nIndex) const + const OUString& GetRealName(sal_Int32 nIndex) const { return nIndex == 0 ? m_aFirst.m_aRealName : m_aRest[ nIndex - 1 ]->m_aRealName; diff --git a/svl/inc/svl/restrictedpaths.hxx b/svl/inc/svl/restrictedpaths.hxx index 92ece853aa1e..85326a569654 100644 --- a/svl/inc/svl/restrictedpaths.hxx +++ b/svl/inc/svl/restrictedpaths.hxx @@ -22,7 +22,6 @@ #include #include -#include #include @@ -31,7 +30,7 @@ namespace svt class SVL_DLLPUBLIC RestrictedPaths : public IUrlFilter { private: - ::std::vector< String > m_aUnrestrictedURLs; + ::std::vector< OUString > m_aUnrestrictedURLs; bool m_bFilterIsEnabled; public: @@ -39,7 +38,7 @@ namespace svt virtual ~RestrictedPaths(); inline bool hasFilter() const { return !m_aUnrestrictedURLs.empty(); } - inline const ::std::vector< String >& getFilter() const { return m_aUnrestrictedURLs; } + inline const ::std::vector< OUString >& getFilter() const { return m_aUnrestrictedURLs; } inline void enableFilter( bool _bEnable ) { m_bFilterIsEnabled = _bEnable; } inline bool isFilterEnabled() const { return m_bFilterIsEnabled; } @@ -53,7 +52,7 @@ namespace svt

If no "access restriction" is effective, this method always returns .

*/ - virtual bool isUrlAllowed( const String& _rURL ) const; + virtual bool isUrlAllowed( const OUString& _rURL ) const; /** checks URL access permissions @@ -66,7 +65,7 @@ namespace svt

If no "access restriction" is effective, this method always returns .

*/ - bool isUrlAllowed( const String& _rURL, bool allowParents ) const; + bool isUrlAllowed( const OUString& _rURL, bool allowParents ) const; }; } // namespace svt diff --git a/svl/inc/svl/urlfilter.hxx b/svl/inc/svl/urlfilter.hxx index 9e13d4393c66..abcf0fd07091 100644 --- a/svl/inc/svl/urlfilter.hxx +++ b/svl/inc/svl/urlfilter.hxx @@ -20,7 +20,6 @@ #ifndef SVTOOLS_URL_FILTER_HXX #define SVTOOLS_URL_FILTER_HXX -#include #include #include #include @@ -29,7 +28,7 @@ class IUrlFilter { public: - virtual bool isUrlAllowed( const String& _rURL ) const = 0; + virtual bool isUrlAllowed( const OUString& _rURL ) const = 0; protected: virtual inline ~IUrlFilter() = 0; @@ -40,16 +39,16 @@ inline IUrlFilter::~IUrlFilter() {} struct FilterMatch : public ::std::unary_function< bool, WildCard > { private: - const String& m_rCompareString; + const OUString& m_rCompareString; public: - FilterMatch( const String& _rCompareString ) : m_rCompareString( _rCompareString ) { } + FilterMatch( const OUString& _rCompareString ) : m_rCompareString( _rCompareString ) { } bool operator()( const WildCard& _rMatcher ) { return _rMatcher.Matches( m_rCompareString ) ? true : false; } - static void createWildCardFilterList(const String& _rFilterList,::std::vector< WildCard >& _rFilters); + static void createWildCardFilterList(const OUString& _rFilterList,::std::vector< WildCard >& _rFilters); }; #endif // SVTOOLS_URL_FILTER_HXX diff --git a/svl/source/misc/adrparse.cxx b/svl/source/misc/adrparse.cxx index fd5553e2e083..b8914eaca053 100644 --- a/svl/source/misc/adrparse.cxx +++ b/svl/source/misc/adrparse.cxx @@ -106,14 +106,14 @@ class SvAddressParser_Impl bool readToken(); - static rtl::OUString reparse(sal_Unicode const * pBegin, - sal_Unicode const * pEnd, bool bAddrSpec); + static OUString reparse(sal_Unicode const * pBegin, + sal_Unicode const * pEnd, bool bAddrSpec); - static rtl::OUString reparseComment(sal_Unicode const * pBegin, - sal_Unicode const * pEnd); + static OUString reparseComment(sal_Unicode const * pBegin, + sal_Unicode const * pEnd); public: - SvAddressParser_Impl(SvAddressParser * pParser, const rtl::OUString& rIn); + SvAddressParser_Impl(SvAddressParser * pParser, const OUString& rIn); }; inline void SvAddressParser_Impl::resetRealNameAndFirstComment() @@ -229,7 +229,7 @@ bool SvAddressParser_Impl::readToken() m_pCurTokenContentBegin = 0; m_pCurTokenContentEnd = 0; bool bEscaped = false; - xub_StrLen nLevel = 0; + int nLevel = 0; for (;;) { if (m_pInputPos >= m_pInputEnd) @@ -318,112 +318,112 @@ bool SvAddressParser_Impl::readToken() //============================================================================ // static -rtl::OUString SvAddressParser_Impl::reparse(sal_Unicode const * pBegin, - sal_Unicode const * pEnd, bool bAddrSpec) +OUString SvAddressParser_Impl::reparse(sal_Unicode const * pBegin, + sal_Unicode const * pEnd, bool bAddrSpec) { - rtl::OUStringBuffer aResult; + OUStringBuffer aResult; TokenType eMode = TOKEN_ATOM; bool bEscaped = false; bool bEndsWithSpace = false; - xub_StrLen nLevel = 0; + int nLevel = 0; while (pBegin < pEnd) { sal_Unicode cChar = *pBegin++; switch (eMode) { - case TOKEN_QUOTED: - if (bEscaped) - { + case TOKEN_QUOTED: + if (bEscaped) + { + aResult.append(cChar); + bEscaped = false; + } + else if (cChar == '"') + { + if (bAddrSpec) aResult.append(cChar); - bEscaped = false; - } - else if (cChar == '"') - { - if (bAddrSpec) - aResult.append(cChar); - eMode = TOKEN_ATOM; - } - else if (cChar == '\\') - { - if (bAddrSpec) - aResult.append(cChar); - bEscaped = true; - } - else + eMode = TOKEN_ATOM; + } + else if (cChar == '\\') + { + if (bAddrSpec) aResult.append(cChar); - break; + bEscaped = true; + } + else + aResult.append(cChar); + break; - case TOKEN_DOMAIN: - if (bEscaped) - { + case TOKEN_DOMAIN: + if (bEscaped) + { + aResult.append(cChar); + bEscaped = false; + } + else if (cChar == ']') + { + aResult.append(cChar); + eMode = TOKEN_ATOM; + } + else if (cChar == '\\') + { + if (bAddrSpec) aResult.append(cChar); - bEscaped = false; + bEscaped = true; + } + else + aResult.append(cChar); + break; + + case TOKEN_COMMENT: + if (bEscaped) + bEscaped = false; + else if (cChar == '(') + ++nLevel; + else if (cChar == ')') + if (nLevel) + --nLevel; + else + eMode = TOKEN_ATOM; + else if (cChar == '\\') + bEscaped = true; + break; + + case TOKEN_ATOM: + if (cChar <= ' ' || cChar == 0x7F) // DEL + { + if (!bAddrSpec && !bEndsWithSpace) + { + aResult.append(' '); + bEndsWithSpace = true; } - else if (cChar == ']') + } + else if (cChar == '(') + { + if (!bAddrSpec && !bEndsWithSpace) { - aResult.append(cChar); - eMode = TOKEN_ATOM; + aResult.append(' '); + bEndsWithSpace = true; } - else if (cChar == '\\') + eMode = TOKEN_COMMENT; + } + else + { + bEndsWithSpace = false; + if (cChar == '"') { if (bAddrSpec) aResult.append(cChar); - bEscaped = true; - } - else - aResult.append(cChar); - break; - - case TOKEN_COMMENT: - if (bEscaped) - bEscaped = false; - else if (cChar == '(') - ++nLevel; - else if (cChar == ')') - if (nLevel) - --nLevel; - else - eMode = TOKEN_ATOM; - else if (cChar == '\\') - bEscaped = true; - break; - - case TOKEN_ATOM: - if (cChar <= ' ' || cChar == 0x7F) // DEL - { - if (!bAddrSpec && !bEndsWithSpace) - { - aResult.append(' '); - bEndsWithSpace = true; - } + eMode = TOKEN_QUOTED; } - else if (cChar == '(') + else if (cChar == '[') { - if (!bAddrSpec && !bEndsWithSpace) - { - aResult.append(' '); - bEndsWithSpace = true; - } - eMode = TOKEN_COMMENT; + aResult.append(cChar); + eMode = TOKEN_QUOTED; } else - { - bEndsWithSpace = false; - if (cChar == '"') - { - if (bAddrSpec) - aResult.append(cChar); - eMode = TOKEN_QUOTED; - } - else if (cChar == '[') - { - aResult.append(cChar); - eMode = TOKEN_QUOTED; - } - else - aResult.append(cChar); - } - break; + aResult.append(cChar); + } + break; } } return aResult.makeStringAndClear(); @@ -431,10 +431,10 @@ rtl::OUString SvAddressParser_Impl::reparse(sal_Unicode const * pBegin, //============================================================================ // static -rtl::OUString SvAddressParser_Impl::reparseComment(sal_Unicode const * pBegin, - sal_Unicode const * pEnd) +OUString SvAddressParser_Impl::reparseComment(sal_Unicode const * pBegin, + sal_Unicode const * pEnd) { - rtl::OUStringBuffer aResult; + OUStringBuffer aResult; while (pBegin < pEnd) { sal_Unicode cChar = *pBegin++; @@ -447,7 +447,7 @@ rtl::OUString SvAddressParser_Impl::reparseComment(sal_Unicode const * pBegin, //============================================================================ SvAddressParser_Impl::SvAddressParser_Impl(SvAddressParser * pParser, - const rtl::OUString& rInput) + const OUString& rInput) { m_pInputPos = rInput.getStr(); m_pInputEnd = m_pInputPos + rInput.getLength(); @@ -469,272 +469,258 @@ SvAddressParser_Impl::SvAddressParser_Impl(SvAddressParser * pParser, } switch (m_nCurToken) { - case TOKEN_QUOTED: - if (m_pAddrSpec->m_eLastElem != ELEMENT_END) - { - if (m_pAddrSpec->m_bAtFound - || m_pAddrSpec->m_eLastElem <= ELEMENT_DELIM) - m_pAddrSpec->reset(); - addTokenToAddrSpec(ELEMENT_ITEM); - } - if (!m_bRealNameFinished && m_eState != AFTER_LESS) + case TOKEN_QUOTED: + if (m_pAddrSpec->m_eLastElem != ELEMENT_END) + { + if (m_pAddrSpec->m_bAtFound + || m_pAddrSpec->m_eLastElem <= ELEMENT_DELIM) + m_pAddrSpec->reset(); + addTokenToAddrSpec(ELEMENT_ITEM); + } + if (!m_bRealNameFinished && m_eState != AFTER_LESS) + { + if (m_bCurTokenReparse) { - if (m_bCurTokenReparse) - { - if (!m_pRealNameBegin) - m_pRealNameBegin = m_pCurTokenBegin; - m_pRealNameEnd = m_pCurTokenEnd; - m_bRealNameReparse = true; - } - else if (m_bRealNameReparse) - m_pRealNameEnd = m_pCurTokenEnd; - else if (!m_pRealNameBegin) - { + if (!m_pRealNameBegin) m_pRealNameBegin = m_pCurTokenBegin; - m_pRealNameContentBegin = m_pCurTokenContentBegin; - m_pRealNameEnd = m_pRealNameContentEnd - = m_pCurTokenContentEnd; - } - else - { - m_pRealNameEnd = m_pCurTokenEnd; - m_bRealNameReparse = true; - } + m_pRealNameEnd = m_pCurTokenEnd; + m_bRealNameReparse = true; } - m_eType = TOKEN_ATOM; - break; - - case TOKEN_DOMAIN: - if (m_pAddrSpec->m_eLastElem != ELEMENT_END) + else if (m_bRealNameReparse) + m_pRealNameEnd = m_pCurTokenEnd; + else if (!m_pRealNameBegin) { - if (m_pAddrSpec->m_bAtFound - && m_pAddrSpec->m_eLastElem == ELEMENT_DELIM) - addTokenToAddrSpec(ELEMENT_ITEM); - else - m_pAddrSpec->reset(); + m_pRealNameBegin = m_pCurTokenBegin; + m_pRealNameContentBegin = m_pCurTokenContentBegin; + m_pRealNameEnd = m_pRealNameContentEnd = m_pCurTokenContentEnd; } - addTokenToRealName(); - m_eType = TOKEN_ATOM; - break; - - case TOKEN_COMMENT: - if (!m_bRealNameFinished && m_eState != AFTER_LESS - && !m_pFirstCommentBegin && m_pCurTokenContentBegin) + else { - m_pFirstCommentBegin = m_pCurTokenContentBegin; - m_pFirstCommentEnd = m_pCurTokenContentEnd; - m_bFirstCommentReparse = m_bCurTokenReparse; + m_pRealNameEnd = m_pCurTokenEnd; + m_bRealNameReparse = true; } - m_eType = TOKEN_ATOM; - break; + } + m_eType = TOKEN_ATOM; + break; - case TOKEN_ATOM: - if (m_pAddrSpec->m_eLastElem != ELEMENT_END) - { - if (m_pAddrSpec->m_eLastElem != ELEMENT_DELIM) - m_pAddrSpec->reset(); + case TOKEN_DOMAIN: + if (m_pAddrSpec->m_eLastElem != ELEMENT_END) + { + if (m_pAddrSpec->m_bAtFound && m_pAddrSpec->m_eLastElem == ELEMENT_DELIM) addTokenToAddrSpec(ELEMENT_ITEM); - } - addTokenToRealName(); + else + m_pAddrSpec->reset(); + } + addTokenToRealName(); + m_eType = TOKEN_ATOM; + break; + + case TOKEN_COMMENT: + if (!m_bRealNameFinished && m_eState != AFTER_LESS + && !m_pFirstCommentBegin && m_pCurTokenContentBegin) + { + m_pFirstCommentBegin = m_pCurTokenContentBegin; + m_pFirstCommentEnd = m_pCurTokenContentEnd; + m_bFirstCommentReparse = m_bCurTokenReparse; + } + m_eType = TOKEN_ATOM; + break; + + case TOKEN_ATOM: + if (m_pAddrSpec->m_eLastElem != ELEMENT_END) + { + if (m_pAddrSpec->m_eLastElem != ELEMENT_DELIM) + m_pAddrSpec->reset(); + addTokenToAddrSpec(ELEMENT_ITEM); + } + addTokenToRealName(); + break; + + case '(': + m_eType = TOKEN_COMMENT; + break; + + case ')': + case '\\': + case ']': + m_pAddrSpec->finish(); + addTokenToRealName(); + break; + + case '<': + switch (m_eState) + { + case BEFORE_COLON: + case BEFORE_LESS: + m_aOuterAddrSpec.finish(); + if (m_pRealNameBegin) + m_bRealNameFinished = true; + m_pAddrSpec = &m_aInnerAddrSpec; + m_eState = AFTER_LESS; break; - case '(': - m_eType = TOKEN_COMMENT; + case AFTER_LESS: + m_aInnerAddrSpec.finish(); break; - case ')': - case '\\': - case ']': - m_pAddrSpec->finish(); + case AFTER_GREATER: + m_aOuterAddrSpec.finish(); addTokenToRealName(); break; + } + break; - case '<': - switch (m_eState) + case '>': + if (m_eState == AFTER_LESS) + { + m_aInnerAddrSpec.finish(); + if (m_aInnerAddrSpec.isValid()) + m_aOuterAddrSpec.m_eLastElem = ELEMENT_END; + m_pAddrSpec = &m_aOuterAddrSpec; + m_eState = AFTER_GREATER; + } + else + { + m_aOuterAddrSpec.finish(); + addTokenToRealName(); + } + break; + + case '@': + if (m_pAddrSpec->m_eLastElem != ELEMENT_END) + { + if (!m_pAddrSpec->m_bAtFound + && m_pAddrSpec->m_eLastElem == ELEMENT_ITEM) { - case BEFORE_COLON: - case BEFORE_LESS: - m_aOuterAddrSpec.finish(); - if (m_pRealNameBegin) - m_bRealNameFinished = true; - m_pAddrSpec = &m_aInnerAddrSpec; - m_eState = AFTER_LESS; - break; - - case AFTER_LESS: - m_aInnerAddrSpec.finish(); - break; - - case AFTER_GREATER: - m_aOuterAddrSpec.finish(); - addTokenToRealName(); - break; + addTokenToAddrSpec(ELEMENT_DELIM); + m_pAddrSpec->m_bAtFound = true; } - break; + else + m_pAddrSpec->reset(); + } + addTokenToRealName(); + break; - case '>': - if (m_eState == AFTER_LESS) + case ',': + case ';': + if (m_eState == AFTER_LESS) + if (m_nCurToken == ',') { + if (m_aInnerAddrSpec.m_eLastElem != ELEMENT_END) + m_aInnerAddrSpec.reset(); + } + else m_aInnerAddrSpec.finish(); - if (m_aInnerAddrSpec.isValid()) - m_aOuterAddrSpec.m_eLastElem = ELEMENT_END; + else + { + if(m_aInnerAddrSpec.isValid() || (!m_aOuterAddrSpec.isValid() && m_aInnerAddrSpec.isPoorlyValid())) + { + m_pAddrSpec = &m_aInnerAddrSpec; + } + else if(m_aOuterAddrSpec.isPoorlyValid()) + { m_pAddrSpec = &m_aOuterAddrSpec; - m_eState = AFTER_GREATER; } else { - m_aOuterAddrSpec.finish(); - addTokenToRealName(); + m_pAddrSpec = 0; } - break; - case '@': - if (m_pAddrSpec->m_eLastElem != ELEMENT_END) + if (m_pAddrSpec) { - if (!m_pAddrSpec->m_bAtFound - && m_pAddrSpec->m_eLastElem == ELEMENT_ITEM) + OUString aTheAddrSpec; + if (m_pAddrSpec->m_bReparse) + aTheAddrSpec = reparse(m_pAddrSpec->m_pBegin, m_pAddrSpec->m_pEnd, true); + else { - addTokenToAddrSpec(ELEMENT_DELIM); - m_pAddrSpec->m_bAtFound = true; + sal_Int32 nLen = ( m_pAddrSpec->m_pEnd - m_pAddrSpec->m_pBegin); + if (nLen == rInput.getLength()) + aTheAddrSpec = rInput; + else + aTheAddrSpec = rInput.copy( (m_pAddrSpec->m_pBegin - rInput.getStr()), + nLen); } - else - m_pAddrSpec->reset(); - } - addTokenToRealName(); - break; - - case ',': - case ';': - if (m_eState == AFTER_LESS) - if (m_nCurToken == ',') + OUString aTheRealName; + if (!m_pRealNameBegin || + (m_pAddrSpec == &m_aOuterAddrSpec && + m_pRealNameBegin == m_aOuterAddrSpec.m_pBegin && + m_pRealNameEnd == m_aOuterAddrSpec.m_pEnd && + m_pFirstCommentBegin)) { - if (m_aInnerAddrSpec.m_eLastElem - != ELEMENT_END) - m_aInnerAddrSpec.reset(); + if (!m_pFirstCommentBegin) + aTheRealName = aTheAddrSpec; + else if (m_bFirstCommentReparse) + aTheRealName = reparseComment(m_pFirstCommentBegin, + m_pFirstCommentEnd); + else + aTheRealName = rInput.copy( (m_pFirstCommentBegin - rInput.getStr()), + (m_pFirstCommentEnd - m_pFirstCommentBegin)); } + else if (m_bRealNameReparse) + aTheRealName = reparse(m_pRealNameBegin, m_pRealNameEnd, false); else - m_aInnerAddrSpec.finish(); - else - { - m_pAddrSpec = m_aInnerAddrSpec.isValid() - || (!m_aOuterAddrSpec.isValid() - && m_aInnerAddrSpec.isPoorlyValid()) ? - &m_aInnerAddrSpec : - m_aOuterAddrSpec.isPoorlyValid() ? - &m_aOuterAddrSpec : 0; - if (m_pAddrSpec) { - rtl::OUString aTheAddrSpec; - if (m_pAddrSpec->m_bReparse) - aTheAddrSpec = reparse(m_pAddrSpec->m_pBegin, - m_pAddrSpec->m_pEnd, true); + sal_Int32 nLen = (m_pRealNameContentEnd - m_pRealNameContentBegin); + if (nLen == rInput.getLength()) + aTheRealName = rInput; else - { - sal_Int32 nLen = ( - m_pAddrSpec->m_pEnd - - m_pAddrSpec->m_pBegin); - if (nLen == rInput.getLength()) - aTheAddrSpec = rInput; - else - aTheAddrSpec - = rInput.copy( - (m_pAddrSpec->m_pBegin - - rInput.getStr()), - nLen); - } - rtl::OUString aTheRealName; - if (!m_pRealNameBegin - || (m_pAddrSpec == &m_aOuterAddrSpec - && m_pRealNameBegin - == m_aOuterAddrSpec.m_pBegin - && m_pRealNameEnd == m_aOuterAddrSpec.m_pEnd - && m_pFirstCommentBegin)) - if (!m_pFirstCommentBegin) - aTheRealName = aTheAddrSpec; - else if (m_bFirstCommentReparse) - aTheRealName - = reparseComment(m_pFirstCommentBegin, - m_pFirstCommentEnd); - else - aTheRealName - = rInput.copy( - (m_pFirstCommentBegin - - rInput.getStr()), - (m_pFirstCommentEnd - - m_pFirstCommentBegin)); - else if (m_bRealNameReparse) - aTheRealName = reparse(m_pRealNameBegin, - m_pRealNameEnd, false); - else - { - sal_Int32 nLen = - (m_pRealNameContentEnd - - m_pRealNameContentBegin); - if (nLen == rInput.getLength()) - aTheRealName = rInput; - else - aTheRealName - = rInput.copy( - (m_pRealNameContentBegin - - rInput.getStr()), nLen); - } - if (pParser->m_bHasFirst) - pParser->m_aRest.push_back(new SvAddressEntry_Impl( - aTheAddrSpec, - aTheRealName) - ); - else - { - pParser->m_bHasFirst = true; - pParser->m_aFirst.m_aAddrSpec = aTheAddrSpec; - pParser->m_aFirst.m_aRealName = aTheRealName; - } + aTheRealName = rInput.copy( (m_pRealNameContentBegin - rInput.getStr()), nLen); + } + if (pParser->m_bHasFirst) + pParser->m_aRest.push_back(new SvAddressEntry_Impl( aTheAddrSpec, + aTheRealName) ); + else + { + pParser->m_bHasFirst = true; + pParser->m_aFirst.m_aAddrSpec = aTheAddrSpec; + pParser->m_aFirst.m_aRealName = aTheRealName; } - if (bDone) - return; - reset(); - } - break; - - case ':': - switch (m_eState) - { - case BEFORE_COLON: - m_aOuterAddrSpec.reset(); - resetRealNameAndFirstComment(); - m_eState = BEFORE_LESS; - break; - - case BEFORE_LESS: - case AFTER_GREATER: - m_aOuterAddrSpec.finish(); - addTokenToRealName(); - break; - - case AFTER_LESS: - m_aInnerAddrSpec.reset(); - break; } - break; + if (bDone) + return; + reset(); + } + break; - case '"': - m_eType = TOKEN_QUOTED; + case ':': + switch (m_eState) + { + case BEFORE_COLON: + m_aOuterAddrSpec.reset(); + resetRealNameAndFirstComment(); + m_eState = BEFORE_LESS; break; - case '.': - if (m_pAddrSpec->m_eLastElem != ELEMENT_END) - { - if (m_pAddrSpec->m_eLastElem != ELEMENT_DELIM) - addTokenToAddrSpec(ELEMENT_DELIM); - else - m_pAddrSpec->reset(); - } + case BEFORE_LESS: + case AFTER_GREATER: + m_aOuterAddrSpec.finish(); addTokenToRealName(); break; - case '[': - m_eType = TOKEN_DOMAIN; + case AFTER_LESS: + m_aInnerAddrSpec.reset(); break; + } + break; + + case '"': + m_eType = TOKEN_QUOTED; + break; + + case '.': + if (m_pAddrSpec->m_eLastElem != ELEMENT_END) + { + if (m_pAddrSpec->m_eLastElem != ELEMENT_DELIM) + addTokenToAddrSpec(ELEMENT_DELIM); + else + m_pAddrSpec->reset(); + } + addTokenToRealName(); + break; + + case '[': + m_eType = TOKEN_DOMAIN; + break; } } } @@ -745,7 +731,7 @@ SvAddressParser_Impl::SvAddressParser_Impl(SvAddressParser * pParser, // //============================================================================ -SvAddressParser::SvAddressParser(const rtl::OUString& rInput) +SvAddressParser::SvAddressParser(const OUString& rInput) : m_bHasFirst(false) { SvAddressParser_Impl aDoParse(this, rInput); diff --git a/svl/source/misc/restrictedpaths.cxx b/svl/source/misc/restrictedpaths.cxx index 25608c4db3c5..1cff9712fd8d 100644 --- a/svl/source/misc/restrictedpaths.cxx +++ b/svl/source/misc/restrictedpaths.cxx @@ -33,16 +33,16 @@ namespace svt /** retrieves the value of an environment variable @return if and only if the retrieved string value is not empty */ - bool lcl_getEnvironmentValue( const sal_Char* _pAsciiEnvName, ::rtl::OUString& _rValue ) + bool lcl_getEnvironmentValue( const sal_Char* _pAsciiEnvName, OUString& _rValue ) { - _rValue = ::rtl::OUString(); - ::rtl::OUString sEnvName = ::rtl::OUString::createFromAscii( _pAsciiEnvName ); + _rValue = OUString(); + OUString sEnvName = OUString::createFromAscii( _pAsciiEnvName ); osl_getEnvironment( sEnvName.pData, &_rValue.pData ); return !_rValue.isEmpty(); } //----------------------------------------------------------------- - void lcl_convertStringListToUrls( const rtl::OUString& _rColonSeparatedList, ::std::vector< String >& _rTokens ) + void lcl_convertStringListToUrls( const OUString& _rColonSeparatedList, ::std::vector< OUString >& _rTokens ) { const sal_Unicode cSeparator = #if defined(WNT) @@ -55,12 +55,12 @@ namespace svt do { // the current token in the list - rtl::OUString sCurrentToken = _rColonSeparatedList.getToken( 0, cSeparator, nIndex ); + OUString sCurrentToken = _rColonSeparatedList.getToken( 0, cSeparator, nIndex ); if ( !sCurrentToken.isEmpty() ) { INetURLObject aCurrentURL; - rtl::OUString sURL; + OUString sURL; if ( ::utl::LocalFileHelper::ConvertPhysicalNameToURL( sCurrentToken, sURL ) ) aCurrentURL = INetURLObject( sURL ); else @@ -87,10 +87,10 @@ namespace svt #ifdef WNT SvtSysLocale m_aSysLocale; #endif - String m_sCheckURL; // the URL to check + OUString m_sCheckURL; // the URL to check bool m_bAllowParent; public: - inline CheckURLAllowed( const String& _rCheckURL, bool bAllowParent = true ) + inline CheckURLAllowed( const OUString& _rCheckURL, bool bAllowParent = true ) :m_sCheckURL( _rCheckURL ), m_bAllowParent( bAllowParent ) { #ifdef WNT @@ -100,27 +100,27 @@ namespace svt #endif } - bool operator()( const String& _rApprovedURL ) + bool operator()( const OUString& _rApprovedURL ) { #ifdef WNT // on windows, assume that the relevant file systems are case insensitive, // thus normalize the URL - String sApprovedURL( m_aSysLocale.GetCharClass().lowercase( _rApprovedURL, 0, _rApprovedURL.Len() ) ); + OUString sApprovedURL( m_aSysLocale.GetCharClass().lowercase( _rApprovedURL, 0, _rApprovedURL.getLength() ) ); #else - String sApprovedURL( _rApprovedURL ); + OUString sApprovedURL( _rApprovedURL ); #endif - xub_StrLen nLenApproved = sApprovedURL.Len(); - xub_StrLen nLenChecked = m_sCheckURL.Len(); + sal_Int32 nLenApproved = sApprovedURL.getLength(); + sal_Int32 nLenChecked = m_sCheckURL.getLength(); if ( nLenApproved > nLenChecked ) { if ( m_bAllowParent ) { - if ( sApprovedURL.Search( m_sCheckURL ) == 0 ) + if ( sApprovedURL.indexOf( m_sCheckURL ) == 0 ) { - if ( ( m_sCheckURL.GetChar( nLenChecked - 1 ) == '/' ) - || ( sApprovedURL.GetChar( nLenChecked ) == '/' ) ) + if ( ( m_sCheckURL[ nLenChecked - 1 ] == '/' ) + || ( sApprovedURL[ nLenChecked ] == '/' ) ) return true; } } @@ -128,17 +128,17 @@ namespace svt { // just a difference in final slash? if ( ( nLenApproved == ( nLenChecked + 1 ) ) && - ( sApprovedURL.GetChar( nLenApproved - 1 ) == '/' ) ) + ( sApprovedURL[ nLenApproved - 1 ] == '/' ) ) return true; } return false; } else if ( nLenApproved < nLenChecked ) { - if ( m_sCheckURL.Search( sApprovedURL ) == 0 ) + if ( m_sCheckURL.indexOf( sApprovedURL ) == 0 ) { - if ( ( sApprovedURL.GetChar( nLenApproved - 1 ) == '/' ) - || ( m_sCheckURL.GetChar( nLenApproved ) == '/' ) ) + if ( ( sApprovedURL[ nLenApproved - 1 ] == '/' ) + || ( m_sCheckURL[ nLenApproved ] == '/' ) ) return true; } return false; @@ -158,7 +158,7 @@ namespace svt RestrictedPaths::RestrictedPaths() :m_bFilterIsEnabled( true ) { - ::rtl::OUString sRestrictedPathList; + OUString sRestrictedPathList; if ( lcl_getEnvironmentValue( "RestrictedPath", sRestrictedPathList ) ) // append a final slash. This ensures that when we later on check // for unrestricted paths, we don't allow paths like "/home/user35" just because @@ -169,12 +169,12 @@ namespace svt RestrictedPaths::~RestrictedPaths() {} // -------------------------------------------------------------------- - bool RestrictedPaths::isUrlAllowed( const String& _rURL ) const + bool RestrictedPaths::isUrlAllowed( const OUString& _rURL ) const { if ( m_aUnrestrictedURLs.empty() || !m_bFilterIsEnabled ) return true; - ::std::vector< String >::const_iterator aApprovedURL = ::std::find_if( + ::std::vector< OUString >::const_iterator aApprovedURL = ::std::find_if( m_aUnrestrictedURLs.begin(), m_aUnrestrictedURLs.end(), CheckURLAllowed( _rURL, true ) @@ -184,12 +184,12 @@ namespace svt } // -------------------------------------------------------------------- - bool RestrictedPaths::isUrlAllowed( const String& _rURL, bool allowParents ) const + bool RestrictedPaths::isUrlAllowed( const OUString& _rURL, bool allowParents ) const { if ( m_aUnrestrictedURLs.empty() || !m_bFilterIsEnabled ) return true; - ::std::vector< String >::const_iterator aApprovedURL = ::std::find_if( + ::std::vector< OUString >::const_iterator aApprovedURL = ::std::find_if( m_aUnrestrictedURLs.begin(), m_aUnrestrictedURLs.end(), CheckURLAllowed( _rURL, allowParents ) diff --git a/svtools/source/contnr/fileview.cxx b/svtools/source/contnr/fileview.cxx index 988827772174..5233af647014 100644 --- a/svtools/source/contnr/fileview.cxx +++ b/svtools/source/contnr/fileview.cxx @@ -138,27 +138,27 @@ namespace // ----------------------------------------------------------------------- -void FilterMatch::createWildCardFilterList(const String& _rFilterList,::std::vector< WildCard >& _rFilters) +void FilterMatch::createWildCardFilterList(const OUString& _rFilterList,::std::vector< WildCard >& _rFilters) { - if( _rFilterList.Len() ) + if( _rFilterList.getLength() ) { // filter is given - xub_StrLen nIndex = 0; + sal_Int32 nIndex = 0; OUString sToken; do { - sToken = _rFilterList.GetToken( 0, ';', nIndex ); + sToken = _rFilterList.getToken( 0, ';', nIndex ); if ( !sToken.isEmpty() ) { _rFilters.push_back( WildCard( sToken.toAsciiUpperCase() ) ); } } - while ( nIndex != STRING_NOTFOUND ); + while ( nIndex >= 0 ); } else { // no filter is given -> match all - _rFilters.push_back( WildCard(rtl::OUString("*")) ); + _rFilters.push_back( WildCard(OUString("*")) ); } } // class ViewTabListBox_Impl --------------------------------------------- -- cgit