summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2021-11-22 14:08:27 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2021-11-23 14:00:08 +0100
commitec1c4c49301758c54394f9943252e192ad54638b (patch)
treeb53af3cb9154a388495b1af35c3f8ff41d6ebe1f /include
parentdb0f2c29bf3a6ad5a08f8524ea0e65aa90792bb2 (diff)
O[U]String::replaceAt overloads that take string_view
which results in lots of nice string_view improvements picked up by the plugins Change-Id: Ib0ec3887816b3d4436d003b739d9814f83e244b2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125657 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'include')
-rw-r--r--include/comphelper/string.hxx2
-rw-r--r--include/rtl/string.h5
-rw-r--r--include/rtl/string.hxx12
-rw-r--r--include/rtl/ustring.h5
-rw-r--r--include/rtl/ustring.hxx12
5 files changed, 35 insertions, 1 deletions
diff --git a/include/comphelper/string.hxx b/include/comphelper/string.hxx
index 349dc17360a4..d4c9ccd1b947 100644
--- a/include/comphelper/string.hxx
+++ b/include/comphelper/string.hxx
@@ -234,7 +234,7 @@ inline OUStringBuffer& padToLength(
@return original string with token nToken replaced by rNewToken
*/
COMPHELPER_DLLPUBLIC OUString setToken(const OUString& rIn, sal_Int32 nToken, sal_Unicode cTok,
- const OUString& rNewToken);
+ std::u16string_view rNewToken);
/** Find any of a list of code units in the string.
@param rIn OUString to search
diff --git a/include/rtl/string.h b/include/rtl/string.h
index e0d751f18bd3..f80bef02ca91 100644
--- a/include/rtl/string.h
+++ b/include/rtl/string.h
@@ -1108,6 +1108,11 @@ SAL_DLLPUBLIC void SAL_CALL rtl_string_newConcat( rtl_String ** newStr, rtl_Stri
SAL_DLLPUBLIC void SAL_CALL rtl_string_newReplaceStrAt(
rtl_String ** newStr, rtl_String * str, sal_Int32 idx, sal_Int32 count, rtl_String * subStr ) SAL_THROW_EXTERN_C();
+#ifdef LIBO_INTERNAL_ONLY
+SAL_DLLPUBLIC void SAL_CALL rtl_string_newReplaceStrAt_WithLength (
+ rtl_String ** newStr, rtl_String * str, sal_Int32 idx, sal_Int32 count, char const * subStr, sal_Int32 substrLen ) SAL_THROW_EXTERN_C();
+#endif
+
/** Create a new string by replacing all occurrences of a single character
within another string.
diff --git a/include/rtl/string.hxx b/include/rtl/string.hxx
index cebaa114517d..440f80900855 100644
--- a/include/rtl/string.hxx
+++ b/include/rtl/string.hxx
@@ -1594,6 +1594,8 @@ public:
}
#endif
+// hide this from internal code to avoid ambiguous lookup error
+#ifndef LIBO_INTERNAL_ONLY
/**
Returns a new string resulting from replacing n = count characters
from position index in this string with newStr.
@@ -1613,6 +1615,16 @@ public:
rtl_string_newReplaceStrAt( &pNew, pData, index, count, newStr.pData );
return OString( pNew, SAL_NO_ACQUIRE );
}
+#endif
+
+#ifdef LIBO_INTERNAL_ONLY
+ SAL_WARN_UNUSED_RESULT OString replaceAt( sal_Int32 index, sal_Int32 count, std::string_view newStr ) const
+ {
+ rtl_String* pNew = NULL;
+ rtl_string_newReplaceStrAt_WithLength ( &pNew, pData, index, count, newStr.data(), newStr.size() );
+ return OString( pNew, SAL_NO_ACQUIRE );
+ }
+#endif
/**
Returns a new string resulting from replacing all occurrences of
diff --git a/include/rtl/ustring.h b/include/rtl/ustring.h
index b4990fec12eb..16ec6ed5931c 100644
--- a/include/rtl/ustring.h
+++ b/include/rtl/ustring.h
@@ -1541,6 +1541,11 @@ SAL_DLLPUBLIC void SAL_CALL rtl_uString_newConcatUtf16L(
SAL_DLLPUBLIC void SAL_CALL rtl_uString_newReplaceStrAt(
rtl_uString ** newStr, rtl_uString * str, sal_Int32 idx, sal_Int32 count, rtl_uString * subStr ) SAL_THROW_EXTERN_C();
+#ifdef LIBO_INTERNAL_ONLY
+SAL_DLLPUBLIC void SAL_CALL rtl_uString_newReplaceStrAtUtf16L(
+ rtl_uString ** newStr, rtl_uString * str, sal_Int32 idx, sal_Int32 count, sal_Unicode const * subStr, sal_Int32 substrLen ) SAL_THROW_EXTERN_C();
+#endif
+
/** Create a new string by replacing all occurrences of a single character
within another string.
diff --git a/include/rtl/ustring.hxx b/include/rtl/ustring.hxx
index e14549482f35..13cc367c5589 100644
--- a/include/rtl/ustring.hxx
+++ b/include/rtl/ustring.hxx
@@ -2223,6 +2223,8 @@ public:
}
#endif
+// hide this from internal code to avoid ambiguous lookup error
+#ifndef LIBO_INTERNAL_ONLY
/**
Returns a new string resulting from replacing n = count characters
from position index in this string with newStr.
@@ -2242,6 +2244,16 @@ public:
rtl_uString_newReplaceStrAt( &pNew, pData, index, count, newStr.pData );
return OUString( pNew, SAL_NO_ACQUIRE );
}
+#endif
+
+#ifdef LIBO_INTERNAL_ONLY
+ SAL_WARN_UNUSED_RESULT OUString replaceAt( sal_Int32 index, sal_Int32 count, std::u16string_view newStr ) const
+ {
+ rtl_uString* pNew = NULL;
+ rtl_uString_newReplaceStrAtUtf16L( &pNew, pData, index, count, newStr.data(), newStr.size() );
+ return OUString( pNew, SAL_NO_ACQUIRE );
+ }
+#endif
/**
Returns a new string resulting from replacing all occurrences of