summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorJulien Nabet <serval2412@yahoo.fr>2022-09-17 21:17:16 +0200
committerEike Rathke <erack@redhat.com>2022-09-18 22:41:27 +0200
commit35784dffccd6a950c72e9426a6d5bf0cca433aab (patch)
tree48bfa5601878bcb9d131e00bc20b643352723187 /sc
parentb59177e5ced9dcbbc20bacee17a3f0f2b19a44c8 (diff)
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 <erack@redhat.com> Reviewed-by: Eike Rathke <erack@redhat.com>
Diffstat (limited to 'sc')
-rw-r--r--sc/source/ui/docshell/docsh.cxx46
1 files changed, 19 insertions, 27 deletions
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 )