sc/source/ui/docshell/docsh.cxx | 46 ++++++++++++++++------------------------ 1 file changed, 19 insertions(+), 27 deletions(-)
New commits: commit 35784dffccd6a950c72e9426a6d5bf0cca433aab Author: Julien Nabet <[email protected]> AuthorDate: Sat Sep 17 21:17:16 2022 +0200 Commit: Eike Rathke <[email protected]> CommitDate: Sun Sep 18 22:41:27 2022 +0200 Simplify by using replaceAll instead of insert in some loops (sc) Change-Id: I1defbbcd391230b928d57ebd049c514781bf720a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140107 Tested-by: Eike Rathke <[email protected]> Reviewed-by: Eike Rathke <[email protected]> diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx index ee240c5c3663..e4e5fc40c532 100644 --- a/sc/source/ui/docshell/docsh.cxx +++ b/sc/source/ui/docshell/docsh.cxx @@ -1928,18 +1928,6 @@ sal_Int32 getTextSepPos( return nPos; } -template<typename StrT, typename StrBufT> -void escapeTextSep(sal_Int32 nPos, const StrT& rStrDelim, StrT& rStr) -{ - while (nPos >= 0) - { - StrBufT aBuf(rStr); - aBuf.insert(nPos, rStrDelim); - rStr = aBuf.makeStringAndClear(); - nPos = rStr.indexOf(rStrDelim, nPos+1+rStrDelim.getLength()); - } -} - } void ScDocShell::AsciiSave( SvStream& rStream, const ScImportOptions& rAsciiOpt, SCTAB nTab ) @@ -2240,11 +2228,13 @@ void ScDocShell::AsciiSave( SvStream& rStream, const ScImportOptions& rAsciiOpt, if ( eCharSet == RTL_TEXTENCODING_UNICODE ) { bool bNeedQuotes = false; - sal_Int32 nPos = getTextSepPos( - aUniString, rAsciiOpt, cStrDelim, cDelim, bNeedQuotes); - - escapeTextSep<OUString, OUStringBuffer>( - nPos, OUString(cStrDelim), aUniString); + sal_Int32 nPos = getTextSepPos(aUniString, rAsciiOpt, cStrDelim, cDelim, bNeedQuotes); + if (nPos >= 0) + { + OUString strFrom(cStrDelim); + OUString strTo = strFrom + strFrom; + aUniString = aUniString.replaceAll(strFrom, strTo); + } if ( bNeedQuotes || bForceQuotes ) rStream.WriteUniOrByteChar( cStrDelim, eCharSet ); @@ -2277,11 +2267,12 @@ void ScDocShell::AsciiSave( SvStream& rStream, const ScImportOptions& rAsciiOpt, // search on re-decoded string bool bNeedQuotes = false; - sal_Int32 nPos = getTextSepPos( - aStrDec, rAsciiOpt, aStrDelimDecoded, aDelimDecoded, bNeedQuotes); - - escapeTextSep<OUString, OUStringBuffer>( - nPos, aStrDelimDecoded, aStrDec); + sal_Int32 nPos = getTextSepPos(aStrDec, rAsciiOpt, aStrDelimDecoded, aDelimDecoded, bNeedQuotes); + if (nPos >= 0) + { + OUString strTo = aStrDelimDecoded + aStrDelimDecoded; + aStrDec = aStrDec.replaceAll(aStrDelimDecoded, strTo); + } // write byte re-encoded if ( bNeedQuotes || bForceQuotes ) @@ -2296,11 +2287,12 @@ void ScDocShell::AsciiSave( SvStream& rStream, const ScImportOptions& rAsciiOpt, // search on encoded string bool bNeedQuotes = false; - sal_Int32 nPos = getTextSepPos( - aStrEnc, rAsciiOpt, aStrDelimEncoded, aDelimEncoded, bNeedQuotes); - - escapeTextSep<OString, OStringBuffer>( - nPos, aStrDelimEncoded, aStrEnc); + sal_Int32 nPos = getTextSepPos(aStrEnc, rAsciiOpt, aStrDelimEncoded, aDelimEncoded, bNeedQuotes); + if (nPos >= 0) + { + OString strTo = aStrDelimEncoded + aStrDelimEncoded; + aStrEnc = aStrEnc.replaceAll(aStrDelimEncoded, strTo); + } // write byte encoded if ( bNeedQuotes || bForceQuotes )
