summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cppu/qa/test_unotype.cxx53
-rw-r--r--include/cppu/unotype.hxx16
-rw-r--r--include/rtl/ustrbuf.hxx5
-rw-r--r--include/sal/types.h4
4 files changed, 78 insertions, 0 deletions
diff --git a/cppu/qa/test_unotype.cxx b/cppu/qa/test_unotype.cxx
index 27323371e28b..338c6f77103f 100644
--- a/cppu/qa/test_unotype.cxx
+++ b/cppu/qa/test_unotype.cxx
@@ -233,7 +233,11 @@ void Test::testUnoType() {
}
void Test::testGetTypeFavourUnsigned() {
+#if defined SAL_W32 && !defined __MINGW32__ // cf. sal/types.h sal_Unicode
CPPUNIT_ASSERT(typeid(sal_Unicode) == typeid(sal_uInt16));
+#else
+ CPPUNIT_ASSERT(typeid(sal_Unicode) != typeid(sal_uInt16));
+#endif
CPPUNIT_ASSERT_EQUAL(
cppu::getTypeFavourUnsigned(static_cast<cppu::UnoVoidType *>(nullptr)),
cppu::UnoType<cppu::UnoVoidType>::get());
@@ -277,9 +281,15 @@ void Test::testGetTypeFavourUnsigned() {
CPPUNIT_ASSERT_EQUAL(
cppu::getTypeFavourUnsigned(static_cast<cppu::UnoCharType *>(nullptr)),
cppu::UnoType<cppu::UnoCharType>::get());
+#if defined SAL_W32 && !defined __MINGW32__ // cf. sal/types.h sal_Unicode
CPPUNIT_ASSERT_EQUAL(
cppu::getTypeFavourUnsigned(static_cast<sal_Unicode *>(nullptr)),
cppu::UnoType<cppu::UnoUnsignedShortType>::get());
+#else
+ CPPUNIT_ASSERT_EQUAL(
+ cppu::getTypeFavourUnsigned(static_cast<sal_Unicode *>(nullptr)),
+ cppu::UnoType<cppu::UnoCharType>::get());
+#endif
CPPUNIT_ASSERT_EQUAL(
cppu::getTypeFavourUnsigned(static_cast<OUString *>(nullptr)),
cppu::UnoType<OUString>::get());
@@ -316,6 +326,7 @@ void Test::testGetTypeFavourUnsigned() {
cppu::UnoType<
cppu::UnoSequenceType<
cppu::UnoSequenceType<cppu::UnoUnsignedShortType>>>::get());
+#if defined SAL_W32 && !defined __MINGW32__ // cf. sal/types.h sal_Unicode
CPPUNIT_ASSERT_EQUAL(
cppu::getTypeFavourUnsigned(
static_cast<css::uno::Sequence<sal_Unicode> *>(nullptr)),
@@ -329,6 +340,20 @@ void Test::testGetTypeFavourUnsigned() {
cppu::UnoType<
cppu::UnoSequenceType<
cppu::UnoSequenceType<cppu::UnoUnsignedShortType>>>::get());
+#else
+ CPPUNIT_ASSERT_EQUAL(
+ cppu::getTypeFavourUnsigned(
+ static_cast<css::uno::Sequence<sal_Unicode> *>(nullptr)),
+ cppu::UnoType<cppu::UnoSequenceType<cppu::UnoCharType>>::get());
+ CPPUNIT_ASSERT_EQUAL(
+ cppu::getTypeFavourUnsigned(
+ static_cast<
+ css::uno::Sequence<
+ css::uno::Sequence<sal_Unicode>> *>(nullptr)),
+ cppu::UnoType<
+ cppu::UnoSequenceType<
+ cppu::UnoSequenceType<cppu::UnoCharType>>>::get());
+#endif
CPPUNIT_ASSERT_EQUAL(
cppu::getTypeFavourUnsigned(
static_cast<css::uno::TypeClass *>(nullptr)),
@@ -399,7 +424,11 @@ void Test::testGetTypeFavourUnsigned() {
}
void Test::testGetTypeFavourChar() {
+#if defined SAL_W32 && !defined __MINGW32__ // cf. sal/types.h sal_Unicode
CPPUNIT_ASSERT(typeid(sal_Unicode) == typeid(sal_uInt16));
+#else
+ CPPUNIT_ASSERT(typeid(sal_Unicode) != typeid(sal_uInt16));
+#endif
CPPUNIT_ASSERT_EQUAL(
cppu::getTypeFavourChar(static_cast<cppu::UnoVoidType *>(nullptr)),
cppu::UnoType<cppu::UnoVoidType>::get());
@@ -419,9 +448,15 @@ void Test::testGetTypeFavourChar() {
cppu::getTypeFavourChar(
static_cast<cppu::UnoUnsignedShortType *>(nullptr)),
cppu::UnoType<cppu::UnoUnsignedShortType>::get());
+#if defined SAL_W32 && !defined __MINGW32__ // cf. sal/types.h sal_Unicode
CPPUNIT_ASSERT_EQUAL(
cppu::getTypeFavourChar(static_cast<sal_uInt16 *>(nullptr)),
cppu::UnoType<cppu::UnoCharType>::get());
+#else
+ CPPUNIT_ASSERT_EQUAL(
+ cppu::getTypeFavourChar(static_cast<sal_uInt16 *>(nullptr)),
+ cppu::UnoType<cppu::UnoUnsignedShortType>::get());
+#endif
CPPUNIT_ASSERT_EQUAL(
cppu::getTypeFavourChar(static_cast<sal_Int32 *>(nullptr)),
cppu::UnoType<sal_Int32>::get());
@@ -461,10 +496,18 @@ void Test::testGetTypeFavourChar() {
cppu::UnoSequenceType<cppu::UnoUnsignedShortType> *>(nullptr)),
cppu::UnoType<
cppu::UnoSequenceType<cppu::UnoUnsignedShortType>>::get());
+#if defined SAL_W32 && !defined __MINGW32__ // cf. sal/types.h sal_Unicode
CPPUNIT_ASSERT_EQUAL(
cppu::getTypeFavourChar(
static_cast<css::uno::Sequence<sal_uInt16> *>(nullptr)),
cppu::UnoType<cppu::UnoSequenceType<cppu::UnoCharType>>::get());
+#else
+ CPPUNIT_ASSERT_EQUAL(
+ cppu::getTypeFavourChar(
+ static_cast<css::uno::Sequence<sal_uInt16> *>(nullptr)),
+ cppu::UnoType<
+ cppu::UnoSequenceType<cppu::UnoUnsignedShortType>>::get());
+#endif
CPPUNIT_ASSERT_EQUAL(
cppu::getTypeFavourChar(
static_cast<
@@ -474,6 +517,7 @@ void Test::testGetTypeFavourChar() {
cppu::UnoType<
cppu::UnoSequenceType<
cppu::UnoSequenceType<cppu::UnoUnsignedShortType>>>::get());
+#if defined SAL_W32 && !defined __MINGW32__ // cf. sal/types.h sal_Unicode
CPPUNIT_ASSERT_EQUAL(
cppu::getTypeFavourChar(
static_cast<
@@ -481,6 +525,15 @@ void Test::testGetTypeFavourChar() {
cppu::UnoType<
cppu::UnoSequenceType<
cppu::UnoSequenceType<cppu::UnoCharType>>>::get());
+#else
+ CPPUNIT_ASSERT_EQUAL(
+ cppu::getTypeFavourChar(
+ static_cast<
+ css::uno::Sequence<css::uno::Sequence<sal_uInt16>> *>(nullptr)),
+ cppu::UnoType<
+ cppu::UnoSequenceType<
+ cppu::UnoSequenceType<cppu::UnoUnsignedShortType>>>::get());
+#endif
CPPUNIT_ASSERT_EQUAL(
cppu::getTypeFavourChar(
static_cast<css::uno::Sequence<sal_Unicode> *>(nullptr)),
diff --git a/include/cppu/unotype.hxx b/include/cppu/unotype.hxx
index 2ab7681e61f5..a59445043735 100644
--- a/include/cppu/unotype.hxx
+++ b/include/cppu/unotype.hxx
@@ -149,6 +149,14 @@ cppu_detail_getUnoType(
::typelib_TypeClass_UNSIGNED_SHORT);
}
+#if LIBO_INTERNAL_ONLY && (!defined SAL_W32 || defined __MINGW32__)
+ // cf. sal/types.h sal_Unicode
+inline css::uno::Type const &
+cppu_detail_getUnoType(SAL_UNUSED_PARAMETER sal_uInt16 const *) {
+ return cppu::detail::getTypeFromTypeClass(typelib_TypeClass_UNSIGNED_SHORT);
+}
+#endif
+
inline css::uno::Type const &
cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::sal_Int32 const *) {
return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_LONG);
@@ -186,6 +194,14 @@ cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::cppu::UnoCharType const *) {
return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_CHAR);
}
+#if LIBO_INTERNAL_ONLY && (!defined SAL_W32 || defined __MINGW32__)
+ // cf. sal/types.h sal_Unicode
+inline css::uno::Type const &
+cppu_detail_getUnoType(SAL_UNUSED_PARAMETER sal_Unicode const *) {
+ return cppu::detail::getTypeFromTypeClass(typelib_TypeClass_CHAR);
+}
+#endif
+
inline css::uno::Type const &
cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::rtl::OUString const *) {
return ::cppu::detail::getTypeFromTypeClass(::typelib_TypeClass_STRING);
diff --git a/include/rtl/ustrbuf.hxx b/include/rtl/ustrbuf.hxx
index ef2564da978b..f8dda00538a0 100644
--- a/include/rtl/ustrbuf.hxx
+++ b/include/rtl/ustrbuf.hxx
@@ -638,6 +638,11 @@ public:
return append( &c, 1 );
}
+#if LIBO_INTERNAL_ONLY && (!defined SAL_W32 || defined __MINGW32__)
+ // cf. sal/types.h sal_Unicode
+ void append(sal_uInt16) = delete;
+#endif
+
/**
Appends the string representation of the <code>sal_Int32</code>
argument to this string buffer.
diff --git a/include/sal/types.h b/include/sal/types.h
index 3f999fc15e4e..9cd77f846767 100644
--- a/include/sal/types.h
+++ b/include/sal/types.h
@@ -149,8 +149,12 @@ typedef unsigned char sal_uChar;
typedef wchar_t sal_Unicode;
#else
#define SAL_UNICODE_NOTEQUAL_WCHAR_T
+#if LIBO_INTERNAL_ONLY && defined __cplusplus
+ typedef char16_t sal_Unicode;
+#else
typedef sal_uInt16 sal_Unicode;
#endif
+#endif
typedef void * sal_Handle;