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