<pre style='margin:0'>
Ken (kencu) pushed a commit to branch ws
in repository macports-legacy-support.

</pre>
<p><a href="https://github.com/macports/macports-legacy-support/commit/302bbcc9c8593eb15b5e972d989f139405c8ccd0">https://github.com/macports/macports-legacy-support/commit/302bbcc9c8593eb15b5e972d989f139405c8ccd0</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 302bbcc9c8593eb15b5e972d989f139405c8ccd0
</span>Author: Ken Cunningham <kencu@macports.org>
AuthorDate: Fri Dec 14 13:06:01 2018 -0800

<span style='display:block; white-space:pre;color:#404040;'>    wcsfunctions: add remaining missing functions
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    these are missing on 10.6 and earlier
</span><span style='display:block; white-space:pre;color:#404040;'>    all as a group, so have them all in one file with one guard
</span>---
 include/MacportsLegacySupport.h  |  2 +-
 include/wchar.h                  | 14 ++++++++--
 src/{wcsdup.c => wcsfunctions.c} | 55 ++++++++++++++++++++++++++++++++++++++--
 3 files changed, 66 insertions(+), 5 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/include/MacportsLegacySupport.h b/include/MacportsLegacySupport.h
</span><span style='display:block; white-space:pre;color:#808080;'>index 3b10a35..31a4496 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/include/MacportsLegacySupport.h
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/include/MacportsLegacySupport.h
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -39,7 +39,7 @@
</span> #define __MP_LEGACY_SUPPORT_MEMMEM__  __APPLE__ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070
 
 /* wcsdup */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#define __MP_LEGACY_SUPPORT_WCSDUP__  __APPLE__ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define __MP_LEGACY_SUPPORT_WCSFUNCTIONS__  __APPLE__ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070
</span> 
 /* llround */
 #define __MP_LEGACY_SUPPORT_LLROUND__  __APPLE__ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/include/wchar.h b/include/wchar.h
</span><span style='display:block; white-space:pre;color:#808080;'>index 6061965..25ed251 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/include/wchar.h
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/include/wchar.h
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -24,12 +24,22 @@
</span> /* MP support header */
 #include "MacportsLegacySupport.h"
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-/* wcsdup */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#if __MP_LEGACY_SUPPORT_WCSDUP__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/* all these functions are present or absent as a group */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#if __MP_LEGACY_SUPPORT_WCSFUNCTIONS__
</span> #ifdef __cplusplus
 extern "C" {
 #endif
   extern wchar_t * wcsdup(const wchar_t *s);
<span style='display:block; white-space:pre;background:#e0ffe0;'>+  extern size_t wcsxfrm_l(wchar_t *, const wchar_t *, size_t n, locale_t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  extern size_t wcsnlen (const wchar_t *, size_t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  extern int wcscasecmp_l(const wchar_t *, const wchar_t *, locale_t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  extern int wcscasecmp(const wchar_t *, const wchar_t *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  extern int wcscoll_l(const wchar_t *, const wchar_t *, locale_t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  extern int wcsncasecmp(const wchar_t *, const wchar_t *, size_t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  extern int wcsncasecmp_l(const wchar_t *, const wchar_t *, size_t, locale_t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  extern wchar_t *wcpcpy (wchar_t *, const wchar_t *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  extern wchar_t *wcpncpy (wchar_t *, const wchar_t *, size_t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> #ifdef __cplusplus
 }
 #endif
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/wcsdup.c b/src/wcsfunctions.c
</span>similarity index 59%
rename from src/wcsdup.c
rename to src/wcsfunctions.c
<span style='display:block; white-space:pre;color:#808080;'>index eaf1443..f6da586 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/wcsdup.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/wcsfunctions.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -27,10 +27,11 @@
</span> 
 // MP support header
 #include "MacportsLegacySupport.h"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#if __MP_LEGACY_SUPPORT_WCSDUP__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#if __MP_LEGACY_SUPPORT_WCSFUNCTIONS__
</span> 
 #include <sys/cdefs.h>
 #include <stdlib.h>
<span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <xlocale.h>
</span> #include <wchar.h>
 
 wchar_t *
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -45,5 +46,55 @@ wcsdup(const wchar_t *s)
</span>   return (wmemcpy(copy, s, len));
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#endif /*  __MP_LEGACY_SUPPORT_WCSDUP__ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+size_t wcsxfrm_l(wchar_t *dest, const wchar_t *src, size_t n, locale_t locale)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return wcsxfrm(dest, src, n);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+size_t wcsnlen(const wchar_t *s, size_t n)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const wchar_t *z = wmemchr(s, 0, n);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (z) n = z-s;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return n;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int wcsncasecmp_l(const wchar_t *l, const wchar_t *r, size_t n, locale_t locale)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return wcsncasecmp(l, r, n);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int wcsncasecmp(const wchar_t *l, const wchar_t *r, size_t n)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!n--) return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   for (; *l && *r && n && (*l == *r || towlower(*l) == towlower(*r)); l++, r++, n--);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return towlower(*l) - towlower(*r);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int wcscoll_l(const wchar_t *l, const wchar_t *r, locale_t locale)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return wcscoll(l, r);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int wcscasecmp_l(const wchar_t *l, const wchar_t *r, locale_t locale)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return wcscasecmp(l, r);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int wcscasecmp(const wchar_t *l, const wchar_t *r)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return wcsncasecmp(l, r, -1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+wchar_t *wcpncpy(wchar_t *d, const wchar_t *s, size_t n)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return wcsncpy(d, s, n) + wcsnlen(s, n);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+wchar_t *wcpcpy(wchar_t *d, const wchar_t *s)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return wcscpy(d, s) + wcslen(s);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif /*  __MP_LEGACY_SUPPORT_WCSFUNCTIONS__ */
</span> 
</pre><pre style='margin:0'>

</pre>