xref: /AOO41X/main/icu/icu4c-4_2_1-src.patch (revision a7f9e8b9cc2047281ee7b12dc8708d28597a2805)
17ccb0d53SArrigo Marchioridiff -ru misc/icu/source/common/putil.c misc/build/icu/source/common/putil.c
27ccb0d53SArrigo Marchiori--- misc/icu/source/common/putil.c	2009-07-01 20:50:38.000000000 +0200
37ccb0d53SArrigo Marchiori+++ misc/build/icu/source/common/putil.c	2024-06-14 21:17:04.184218726 +0200
47ccb0d53SArrigo Marchiori@@ -52,7 +52,7 @@
57ccb0d53SArrigo Marchiori Poorly upgraded Solaris machines can't have this defined.
67ccb0d53SArrigo Marchiori Cleanly installed Solaris can use this #define.
77ccb0d53SArrigo Marchiori */
87ccb0d53SArrigo Marchiori-#if !defined(_XOPEN_SOURCE_EXTENDED) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ >= 199901L)
97ccb0d53SArrigo Marchiori+#if !defined(_XOPEN_SOURCE_EXTENDED) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L)
107ccb0d53SArrigo Marchiori #define _XOPEN_SOURCE_EXTENDED 1
117ccb0d53SArrigo Marchiori #endif
127ccb0d53SArrigo Marchiori
137ccb0d53SArrigo Marchioridiff -ru misc/icu/source/common/uloc.c misc/build/icu/source/common/uloc.c
147ccb0d53SArrigo Marchiori--- misc/icu/source/common/uloc.c	2009-07-01 20:50:38.000000000 +0200
157ccb0d53SArrigo Marchiori+++ misc/build/icu/source/common/uloc.c	2024-06-14 21:25:59.612644465 +0200
167ccb0d53SArrigo Marchiori@@ -1736,7 +1736,7 @@
177ccb0d53SArrigo Marchiori                 int32_t variantLen = _deleteVariant(variant, uprv_min(variantSize, (nameCapacity-len)), variantToCompare, n);
187ccb0d53SArrigo Marchiori                 len -= variantLen;
197ccb0d53SArrigo Marchiori                 if (variantLen > 0) {
207ccb0d53SArrigo Marchiori-                    if (name[len-1] == '_') { /* delete trailing '_' */
217ccb0d53SArrigo Marchiori+                    if (len > 0 && name[len-1] == '_') { /* delete trailing '_' */
227ccb0d53SArrigo Marchiori                         --len;
237ccb0d53SArrigo Marchiori                     }
247ccb0d53SArrigo Marchiori                     addKeyword = VARIANT_MAP[j].keyword;
257ccb0d53SArrigo Marchiori@@ -1744,7 +1744,7 @@
267ccb0d53SArrigo Marchiori                     break;
277ccb0d53SArrigo Marchiori                 }
287ccb0d53SArrigo Marchiori             }
297ccb0d53SArrigo Marchiori-            if (name[len-1] == '_') { /* delete trailing '_' */
307ccb0d53SArrigo Marchiori+            if (len > 0 && name[len-1] == '_') { /* delete trailing '_' */
317ccb0d53SArrigo Marchiori                 --len;
327ccb0d53SArrigo Marchiori             }
337ccb0d53SArrigo Marchiori         }
347ccb0d53SArrigo Marchioridiff -ru misc/icu/source/config/mh-bsd-gcc misc/build/icu/source/config/mh-bsd-gcc
357ccb0d53SArrigo Marchiori--- misc/icu/source/config/mh-bsd-gcc	2009-07-01 20:50:48.000000000 +0200
367ccb0d53SArrigo Marchiori+++ misc/build/icu/source/config/mh-bsd-gcc	2024-06-14 21:16:18.187059931 +0200
377ccb0d53SArrigo Marchiori@@ -18,8 +18,12 @@
387ccb0d53SArrigo Marchiori
397ccb0d53SArrigo Marchiori ## Compiler switch to embed a runtime search path
407ccb0d53SArrigo Marchiori LD_RPATH=
417ccb0d53SArrigo Marchiori-LD_RPATH_PRE=	-Wl,-rpath,
427ccb0d53SArrigo Marchiori+LD_RPATH_PRE=	-Wl,-z,origin -Wl,-rpath,
437ccb0d53SArrigo Marchiori
447ccb0d53SArrigo Marchiori+## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH
457ccb0d53SArrigo Marchiori+## (incl. the C++ runtime libs potentially found in the URE lib dir):
467ccb0d53SArrigo Marchiori+ENABLE_RPATH=YES
477ccb0d53SArrigo Marchiori+RPATHLDFLAGS=${LD_RPATH_PRE}'$$ORIGIN:$$ORIGIN/../ure-link/lib'
487ccb0d53SArrigo Marchiori ## Compiler switch to embed a library name
497ccb0d53SArrigo Marchiori LD_SONAME = -Wl,-soname -Wl,$(notdir $(MIDDLE_SO_TARGET))
507ccb0d53SArrigo Marchiori
517ccb0d53SArrigo Marchioridiff -ru misc/icu/source/config/mh-darwin misc/build/icu/source/config/mh-darwin
527ccb0d53SArrigo Marchiori--- misc/icu/source/config/mh-darwin	2009-07-01 20:50:48.000000000 +0200
537ccb0d53SArrigo Marchiori+++ misc/build/icu/source/config/mh-darwin	2024-06-14 21:19:02.155170814 +0200
547ccb0d53SArrigo Marchiori@@ -25,7 +25,7 @@
557ccb0d53SArrigo Marchiori SHLIB.cc=	$(CXX) -dynamiclib -dynamic $(CXXFLAGS) $(LDFLAGS)
567ccb0d53SArrigo Marchiori
577ccb0d53SArrigo Marchiori ## Compiler switches to embed a library name and version information
587ccb0d53SArrigo Marchiori-LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(notdir $(MIDDLE_SO_TARGET))
597ccb0d53SArrigo Marchiori+LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name @executable_path/$(notdir $(FINAL_SO_TARGET))
607ccb0d53SArrigo Marchiori
617ccb0d53SArrigo Marchiori ## Compiler switch to embed a runtime search path
627ccb0d53SArrigo Marchiori LD_RPATH=
637ccb0d53SArrigo Marchiori@@ -41,10 +41,6 @@
647ccb0d53SArrigo Marchiori ## Non-shared intermediate object suffix
657ccb0d53SArrigo Marchiori STATIC_O = ao
667ccb0d53SArrigo Marchiori
677ccb0d53SArrigo Marchiori-## Override Versioned target for a shared library.
687ccb0d53SArrigo Marchiori-FINAL_SO_TARGET=  $(basename $(SO_TARGET)).$(SO_TARGET_VERSION).$(SO)
697ccb0d53SArrigo Marchiori-MIDDLE_SO_TARGET= $(basename $(SO_TARGET)).$(SO_TARGET_VERSION_MAJOR).$(SO)
707ccb0d53SArrigo Marchiori-
717ccb0d53SArrigo Marchiori ## Compilation rules
727ccb0d53SArrigo Marchiori %.$(STATIC_O): $(srcdir)/%.c
737ccb0d53SArrigo Marchiori 	$(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $<
747ccb0d53SArrigo Marchiori@@ -76,15 +72,9 @@
757ccb0d53SArrigo Marchiori
767ccb0d53SArrigo Marchiori ## Versioned libraries rules
777ccb0d53SArrigo Marchiori
787ccb0d53SArrigo Marchiori-%.$(SO_TARGET_VERSION_MAJOR).$(SO): %.$(SO_TARGET_VERSION).$(SO)
797ccb0d53SArrigo Marchiori+%.$(SO).$(SO_TARGET_VERSION_MAJOR): %.$(SO).$(SO_TARGET_VERSION)
807ccb0d53SArrigo Marchiori 	$(RM) $@ && ln -s ${<F} $@
817ccb0d53SArrigo Marchiori-%.$(SO): %.$(SO_TARGET_VERSION_MAJOR).$(SO)
827ccb0d53SArrigo Marchiori-	$(RM) $@ && ln -s ${*F}.$(SO_TARGET_VERSION).$(SO) $@
837ccb0d53SArrigo Marchiori-
847ccb0d53SArrigo Marchiori-# tzcode option
857ccb0d53SArrigo Marchiori-TZORIG_EXTRA_CFLAGS=-DSTD_INSPIRED
867ccb0d53SArrigo Marchiori-
877ccb0d53SArrigo Marchiori-# genren opts
887ccb0d53SArrigo Marchiori-GENREN_PL_OPTS=-x Mach-O -n '-g' -p '| c++filt'
897ccb0d53SArrigo Marchiori+%.$(SO): %.$(SO).$(SO_TARGET_VERSION_MAJOR)
907ccb0d53SArrigo Marchiori+	$(RM) $@ && ln -s ${*F}.$(SO).$(SO_TARGET_VERSION) $@
917ccb0d53SArrigo Marchiori
927ccb0d53SArrigo Marchiori ## End Darwin-specific setup
937ccb0d53SArrigo Marchioridiff -ru misc/icu/source/config/mh-linux misc/build/icu/source/config/mh-linux
947ccb0d53SArrigo Marchiori--- misc/icu/source/config/mh-linux	2009-07-01 20:50:48.000000000 +0200
957ccb0d53SArrigo Marchiori+++ misc/build/icu/source/config/mh-linux	2024-06-14 21:19:31.827909846 +0200
967ccb0d53SArrigo Marchiori@@ -20,6 +20,11 @@
977ccb0d53SArrigo Marchiori LD_RPATH=
987ccb0d53SArrigo Marchiori LD_RPATH_PRE = -Wl,-rpath,
997ccb0d53SArrigo Marchiori
1007ccb0d53SArrigo Marchiori+## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH
1017ccb0d53SArrigo Marchiori+## (incl. the C++ runtime libs potentially found in the URE lib dir):
1027ccb0d53SArrigo Marchiori+ENABLE_RPATH=YES
1037ccb0d53SArrigo Marchiori+RPATHLDFLAGS=${LD_RPATH_PRE}'$$ORIGIN:$$ORIGIN/../ure-link/lib'
1047ccb0d53SArrigo Marchiori+
1057ccb0d53SArrigo Marchiori ## These are the library specific LDFLAGS
1067ccb0d53SArrigo Marchiori LDFLAGSICUDT=-nodefaultlibs -nostdlib
1077ccb0d53SArrigo Marchiori
1087ccb0d53SArrigo Marchioridiff -ru misc/icu/source/config/mh-mingw misc/build/icu/source/config/mh-mingw
1097ccb0d53SArrigo Marchiori--- misc/icu/source/config/mh-mingw	2009-07-01 20:50:48.000000000 +0200
1107ccb0d53SArrigo Marchiori+++ misc/build/icu/source/config/mh-mingw	2024-06-14 21:20:44.741721341 +0200
1117ccb0d53SArrigo Marchiori@@ -76,6 +76,8 @@
1127ccb0d53SArrigo Marchiori # Current full path directory for use in source code in a -D compiler option.
1137ccb0d53SArrigo Marchiori #CURR_SRCCODE_FULL_DIR=$(subst /,\\\\,$(shell pwd -W))#M# for MSYS
1147ccb0d53SArrigo Marchiori CURR_SRCCODE_FULL_DIR=$(subst \,/,$(shell cmd /c cd))#M# for Cygwin shell
1157ccb0d53SArrigo Marchiori+SRCDIR_DEPEND=$(shell cd $(SRCDIR) && pwd)
1167ccb0d53SArrigo Marchiori+DATAFILEPATHS_DEPEND=$(foreach p,$(DATAFILEPATHS),$(shell cd $(dir $(p)) && pwd)/$(notdir $(p)))
1177ccb0d53SArrigo Marchiori
1187ccb0d53SArrigo Marchiori ## Compilation rules
1197ccb0d53SArrigo Marchiori %.$(STATIC_O): $(srcdir)/%.c
1207ccb0d53SArrigo Marchioridiff -ru misc/icu/source/config/mh-solaris misc/build/icu/source/config/mh-solaris
1217ccb0d53SArrigo Marchiori--- misc/icu/source/config/mh-solaris	2009-07-01 20:50:48.000000000 +0200
1227ccb0d53SArrigo Marchiori+++ misc/build/icu/source/config/mh-solaris	2024-06-14 21:22:01.599625394 +0200
1237ccb0d53SArrigo Marchiori@@ -18,17 +18,21 @@
1247ccb0d53SArrigo Marchiori
1257ccb0d53SArrigo Marchiori ## Commands to link
1267ccb0d53SArrigo Marchiori ## For Sun Workshop, use CC to link to bring in C++ runtime
1277ccb0d53SArrigo Marchiori-LINK.c=		$(CXX) $(CXXFLAGS) $(LDFLAGS)
1287ccb0d53SArrigo Marchiori-LINK.cc=	$(CXX) $(CXXFLAGS) $(LDFLAGS)
1297ccb0d53SArrigo Marchiori+LINK.c=		$(CXX) $(CXXFLAGS) $(LDFLAGS) -norunpath
1307ccb0d53SArrigo Marchiori+LINK.cc=	$(CXX) $(CXXFLAGS) $(LDFLAGS) -norunpath
1317ccb0d53SArrigo Marchiori
1327ccb0d53SArrigo Marchiori ## Commands to make a shared library
1337ccb0d53SArrigo Marchiori SHLIB.c=	$(CC) $(CFLAGS) $(LDFLAGS) -G
1347ccb0d53SArrigo Marchiori-SHLIB.cc=	$(CXX) $(CXXFLAGS) $(LDFLAGS) -G
1357ccb0d53SArrigo Marchiori+SHLIB.cc=	$(CXX) $(CXXFLAGS) $(LDFLAGS) -G -norunpath
1367ccb0d53SArrigo Marchiori
1377ccb0d53SArrigo Marchiori ## Compiler switch to embed a runtime search path
1387ccb0d53SArrigo Marchiori LD_RPATH=	-R
1397ccb0d53SArrigo Marchiori LD_RPATH_PRE=
1407ccb0d53SArrigo Marchiori
1417ccb0d53SArrigo Marchiori+## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH
1427ccb0d53SArrigo Marchiori+ENABLE_RPATH=YES
1437ccb0d53SArrigo Marchiori+RPATHLDFLAGS=${LD_RPATH}'$$ORIGIN'
1447ccb0d53SArrigo Marchiori+
1457ccb0d53SArrigo Marchiori #LIBRARY_PATH_PREFIX=/usr/lib/lwp:
1467ccb0d53SArrigo Marchiori
1477ccb0d53SArrigo Marchiori ## Compiler switch to embed a library name
1487ccb0d53SArrigo Marchioridiff -ru misc/icu/source/layout/ArabicShaping.cpp misc/build/icu/source/layout/ArabicShaping.cpp
1497ccb0d53SArrigo Marchiori--- misc/icu/source/layout/ArabicShaping.cpp	2009-07-01 20:51:24.000000000 +0200
1507ccb0d53SArrigo Marchiori+++ misc/build/icu/source/layout/ArabicShaping.cpp	2024-06-14 21:23:05.557119301 +0200
1517ccb0d53SArrigo Marchiori@@ -79,7 +79,6 @@
1527ccb0d53SArrigo Marchiori #define markFeatureMask 0x00040000UL
1537ccb0d53SArrigo Marchiori #define mkmkFeatureMask 0x00020000UL
1547ccb0d53SArrigo Marchiori
1557ccb0d53SArrigo Marchiori-#define NO_FEATURES   0
1567ccb0d53SArrigo Marchiori #define ISOL_FEATURES (isolFeatureMask | ligaFeatureMask | msetFeatureMask | markFeatureMask | ccmpFeatureMask | rligFeatureMask | caltFeatureMask | dligFeatureMask | cswhFeatureMask | cursFeatureMask | kernFeatureMask | mkmkFeatureMask)
1577ccb0d53SArrigo Marchiori
1587ccb0d53SArrigo Marchiori #define SHAPE_MASK 0xF0000000UL
1597ccb0d53SArrigo Marchiori@@ -174,11 +173,7 @@
1607ccb0d53SArrigo Marchiori         LEUnicode c = chars[in];
1617ccb0d53SArrigo Marchiori         ShapeType t = getShapeType(c);
1627ccb0d53SArrigo Marchiori
1637ccb0d53SArrigo Marchiori-        if (t == ST_NOSHAPE_NONE) {
1647ccb0d53SArrigo Marchiori-            glyphStorage.setAuxData(out, NO_FEATURES, success);
1657ccb0d53SArrigo Marchiori-        } else {
1667ccb0d53SArrigo Marchiori-            glyphStorage.setAuxData(out, ISOL_FEATURES, success);
1677ccb0d53SArrigo Marchiori-        }
1687ccb0d53SArrigo Marchiori+        glyphStorage.setAuxData(out, ISOL_FEATURES, success);
1697ccb0d53SArrigo Marchiori
1707ccb0d53SArrigo Marchiori         if ((t & MASK_TRANSPARENT) != 0) {
1717ccb0d53SArrigo Marchiori             continue;
1727ccb0d53SArrigo Marchioridiff -ru misc/icu/source/tools/genuca/genuca.cpp misc/build/icu/source/tools/genuca/genuca.cpp
1737ccb0d53SArrigo Marchiori--- misc/icu/source/tools/genuca/genuca.cpp	2009-07-01 20:50:40.000000000 +0200
1747ccb0d53SArrigo Marchiori+++ misc/build/icu/source/tools/genuca/genuca.cpp	2024-06-14 21:27:57.031211233 +0200
1757ccb0d53SArrigo Marchiori@@ -395,7 +395,7 @@
1767ccb0d53SArrigo Marchiori                        copyright, status);
1777ccb0d53SArrigo Marchiori
1787ccb0d53SArrigo Marchiori     if(U_FAILURE(*status)) {
1797ccb0d53SArrigo Marchiori-        fprintf(stderr, "Error: unable to create %s"INVC_DATA_NAME", error %s\n", outputDir, u_errorName(*status));
1807ccb0d53SArrigo Marchiori+        fprintf(stderr, "Error: unable to create %s" INVC_DATA_NAME ", error %s\n", outputDir, u_errorName(*status));
1817ccb0d53SArrigo Marchiori         return;
1827ccb0d53SArrigo Marchiori     }
1837ccb0d53SArrigo Marchiori
1847ccb0d53SArrigo Marchiori@@ -757,7 +757,7 @@
1857ccb0d53SArrigo Marchiori                        copyright, status);
1867ccb0d53SArrigo Marchiori
1877ccb0d53SArrigo Marchiori     if(U_FAILURE(*status)) {
1887ccb0d53SArrigo Marchiori-        fprintf(stderr, "Error: unable to create %s"UCA_DATA_NAME", error %s\n", outputDir, u_errorName(*status));
1897ccb0d53SArrigo Marchiori+        fprintf(stderr, "Error: unable to create %s" UCA_DATA_NAME ", error %s\n", outputDir, u_errorName(*status));
1907ccb0d53SArrigo Marchiori         return;
1917ccb0d53SArrigo Marchiori     }
1927ccb0d53SArrigo Marchiori
1937ccb0d53SArrigo Marchiori@@ -904,9 +904,9 @@
1947ccb0d53SArrigo Marchiori       {0x20000, 0x2A6D6, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24)  },  //6 CJK_IMPLICIT_TAG,   /* 0x20000-0x2A6D6*/
1957ccb0d53SArrigo Marchiori       {0x2F800, 0x2FA1D, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24)  },  //7 CJK_IMPLICIT_TAG,   /* 0x2F800-0x2FA1D*/
1967ccb0d53SArrigo Marchiori #endif
1977ccb0d53SArrigo Marchiori-      {0xAC00, 0xD7B0, UCOL_SPECIAL_FLAG | (HANGUL_SYLLABLE_TAG << 24) },  //0 HANGUL_SYLLABLE_TAG,/* AC00-D7AF*/
1987ccb0d53SArrigo Marchiori+      {0xAC00, 0xD7B0, static_cast<int32_t>(UCOL_SPECIAL_FLAG | (HANGUL_SYLLABLE_TAG << 24)) },  //0 HANGUL_SYLLABLE_TAG,/* AC00-D7AF*/
1997ccb0d53SArrigo Marchiori       //{0xD800, 0xDC00, UCOL_SPECIAL_FLAG | (LEAD_SURROGATE_TAG << 24)  },  //1 LEAD_SURROGATE_TAG,  /* D800-DBFF*/
2007ccb0d53SArrigo Marchiori-      {0xDC00, 0xE000, UCOL_SPECIAL_FLAG | (TRAIL_SURROGATE_TAG << 24) },  //2 TRAIL_SURROGATE DC00-DFFF
2017ccb0d53SArrigo Marchiori+      {0xDC00, 0xE000, static_cast<int32_t>(UCOL_SPECIAL_FLAG | (TRAIL_SURROGATE_TAG << 24)) },  //2 TRAIL_SURROGATE DC00-DFFF
2027ccb0d53SArrigo Marchiori       // Now directly handled in the collation code by the swapCJK function.
2037ccb0d53SArrigo Marchiori       //{0x3400, 0x4DB6, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24)    },  //3 CJK_IMPLICIT_TAG,   /* 0x3400-0x4DB5*/
2047ccb0d53SArrigo Marchiori       //{0x4E00, 0x9FA6, UCOL_SPECIAL_FLAG | (CJK_IMPLICIT_TAG << 24)    },  //4 CJK_IMPLICIT_TAG,   /* 0x4E00-0x9FA5*/
2057ccb0d53SArrigo Marchiori
206*a7f9e8b9SArrigo Marchiori--- misc/icu/source/configure	2009-07-01 14:51:26.000000000 -0400
207*a7f9e8b9SArrigo Marchiori+++ misc/build/icu/source/configure	2024-10-19 16:35:02.000000000 -0400
208*a7f9e8b9SArrigo Marchiori@@ -7061,8 +7061,10 @@
209*a7f9e8b9SArrigo Marchiori 	# Check for potential -arch flags.  It is not universal unless
210*a7f9e8b9SArrigo Marchiori 	# there are some -arch flags.  Note that *ppc* also matches
211*a7f9e8b9SArrigo Marchiori 	# ppc64.  This check is also rather less than ideal.
212*a7f9e8b9SArrigo Marchiori+	echo "${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}"
213*a7f9e8b9SArrigo Marchiori 	case "${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" in  #(
214*a7f9e8b9SArrigo Marchiori-	  *-arch*ppc*|*-arch*i386*|*-arch*x86_64*) ac_cv_c_bigendian=universal;;
215*a7f9e8b9SArrigo Marchiori+	  *-arch*i386*|*-arch*x86_64*) ac_cv_c_bigendian=no;;
216*a7f9e8b9SArrigo Marchiori+	  *-arch*ppc*) ac_cv_c_bigendian=yes;;
217*a7f9e8b9SArrigo Marchiori 	esac
218*a7f9e8b9SArrigo Marchiori else
219*a7f9e8b9SArrigo Marchiori   $as_echo "$as_me: failed program was:" >&5
220*a7f9e8b9SArrigo Marchiori--- misc/icu/source/i18n/uspoof.cpp	2009-07-01 14:50:10.000000000 -0400
221*a7f9e8b9SArrigo Marchiori+++ misc/build/icu/source/i18n/uspoof.cpp	2024-10-19 16:36:44.000000000 -0400
222*a7f9e8b9SArrigo Marchiori@@ -366,7 +366,7 @@
223*a7f9e8b9SArrigo Marchiori         // u_strToUTF8() in preflight mode is an easy way to do it.
224*a7f9e8b9SArrigo Marchiori         U_ASSERT(position16 <= len16);
225*a7f9e8b9SArrigo Marchiori         u_strToUTF8(NULL, 0, position, text16, position16, status);
226*a7f9e8b9SArrigo Marchiori-        if (position > 0) {
227*a7f9e8b9SArrigo Marchiori+        if (position) {
228*a7f9e8b9SArrigo Marchiori             // position is the required buffer length from u_strToUTF8, which includes
229*a7f9e8b9SArrigo Marchiori             // space for a terminating NULL, which we don't want, hence the -1.
230*a7f9e8b9SArrigo Marchiori             *position -= 1;
231