<pre style='margin:0'>
Renee Otten (reneeotten) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/c629a8a1a9b627d7152b011c99d029e65b95c580">https://github.com/macports/macports-ports/commit/c629a8a1a9b627d7152b011c99d029e65b95c580</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit c629a8a1a9b627d7152b011c99d029e65b95c580
</span>Author: David Gilman <davidgilman1@gmail.com>
AuthorDate: Sat May 10 10:04:03 2025 -0400

<span style='display:block; white-space:pre;color:#404040;'>    postgresql17: update to 17.5
</span>---
 databases/postgresql17/Portfile                   |  13 +-
 databases/postgresql17/files/patch-strchrnul.diff | 213 ----------------------
 2 files changed, 5 insertions(+), 221 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/databases/postgresql17/Portfile b/databases/postgresql17/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index caa0db744df..26bb8bea8b9 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/databases/postgresql17/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/databases/postgresql17/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7,8 +7,8 @@ PortGroup           muniversal 1.0
</span> PortGroup           legacysupport 1.1
 
 name                postgresql17
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version             17.4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             17.5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            0
</span> 
 categories          databases
 maintainers         {gmail.com:davidgilman1 @dgilman} \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -28,9 +28,9 @@ homepage            https://www.postgresql.org/
</span> master_sites        postgresql:source/v${version}/
 distname            postgresql-${version}
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums           rmd160  693312ec10edb2c21f565e736fef0c1e0529800b \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  c4605b73fea11963406699f949b966e5d173a7ee0ccaef8938dec0ca8a995fe7 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    size    21519810
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  7d01aace5f4f6acb310e335b732ab15e6f22a22b \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  fcb7ab38e23b264d1902cb25e6adafb4525a6ebcbd015434aeef9eda80f528d8 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    21595174
</span> 
 use_bzip2           yes
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -43,9 +43,6 @@ platform darwin powerpc {
</span>                        patch-fix-ppc-asm.diff
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# https://www.postgresql.org/message-id/flat/E1tziZ6-002AW9-2C%40gemulon.postgresql.org
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles-append   patch-strchrnul.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> depends_lib         port:readline path:lib/libssl.dylib:openssl port:zlib \
                     port:libxml2 port:libxslt \
                     path:lib/pkgconfig/icu-uc.pc:icu \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/databases/postgresql17/files/patch-strchrnul.diff b/databases/postgresql17/files/patch-strchrnul.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 569dc78b3e0..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/databases/postgresql17/files/patch-strchrnul.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,213 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 915e88968034a7422679b74c3002f5c150c33e35 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Tom Lane <tgl@sss.pgh.pa.us>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Tue, 1 Apr 2025 16:49:51 -0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] Fix detection and handling of strchrnul() for macOS 15.4.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-As of 15.4, macOS has strchrnul(), but access to it is blocked behind
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-a check for MACOSX_DEPLOYMENT_TARGET >= 15.4.  But our does-it-link
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-configure check finds it, so we try to use it, and fail with the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-present default deployment target (namely 15.0).  This accounts for
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-today's buildfarm failures on indri and sifaka.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This is the identical problem that we faced some years ago when Apple
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-introduced preadv and pwritev in the same way.  We solved that in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-commit f014b1b9b by using AC_CHECK_DECLS instead of AC_CHECK_FUNCS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-to check the functions' availability.  So do the same now for
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-strchrnul().  Interestingly, we already had a workaround for
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-"the link check doesn't agree with <string.h>" cases with glibc,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-which we no longer need since only the header declaration is being
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-checked.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Testing this revealed that the meson version of this check has never
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-worked, because it failed to use "-Werror=unguarded-availability-new".
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(Apparently nobody's tried to build with meson on macOS versions that
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-lack preadv/pwritev as standard.)  Adjust that while at it.  Also,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-we had never put support for "-Werror=unguarded-availability-new"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-into v13, but we need that now.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Co-authored-by: Tom Lane <tgl@sss.pgh.pa.us>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Co-authored-by: Peter Eisentraut <peter@eisentraut.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Discussion: https://postgr.es/m/385134.1743523038@sss.pgh.pa.us
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Backpatch-through: 13
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure                  | 14 +++++++++++++-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.ac               |  2 +-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- meson.build                | 21 ++++++++++++++++++---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/include/pg_config.h.in |  7 ++++---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- src/port/snprintf.c        | 29 +++++++++++++----------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 5 files changed, 49 insertions(+), 24 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git configure configure
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 055fd1b825bc7..b1442afe4c192 100755
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- configure
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ configure
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15272,7 +15272,7 @@ fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LIBS_including_readline="$LIBS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LIBS=`echo "$LIBS" | sed -e 's/-ledit//g' -e 's/-lreadline//g'`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--for ac_func in backtrace_symbols copyfile copy_file_range getifaddrs getpeerucred inet_pton kqueue mbstowcs_l memset_s posix_fallocate ppoll pthread_is_threaded_np setproctitle setproctitle_fast strchrnul strsignal syncfs sync_file_range uselocale wcstombs_l
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+for ac_func in backtrace_symbols copyfile copy_file_range getifaddrs getpeerucred inet_pton kqueue mbstowcs_l memset_s posix_fallocate ppoll pthread_is_threaded_np setproctitle setproctitle_fast strsignal syncfs sync_file_range uselocale wcstombs_l
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- do :
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15816,6 +15816,18 @@ cat >>confdefs.h <<_ACEOF
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define HAVE_DECL_PWRITEV $ac_have_decl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- _ACEOF
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ac_fn_c_check_decl "$LINENO" "strchrnul" "ac_cv_have_decl_strchrnul" "#include <string.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if test "x$ac_cv_have_decl_strchrnul" = xyes; then :
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ac_have_decl=1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ac_have_decl=0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+cat >>confdefs.h <<_ACEOF
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define HAVE_DECL_STRCHRNUL $ac_have_decl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+_ACEOF
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # This is probably only present on macOS, but may as well check always
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ac_fn_c_check_decl "$LINENO" "F_FULLFSYNC" "ac_cv_have_decl_F_FULLFSYNC" "#include <fcntl.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git configure.ac configure.ac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 82b4640193179..6f0230b0bf501 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- configure.ac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ configure.ac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1763,7 +1763,6 @@ AC_CHECK_FUNCS(m4_normalize([
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   pthread_is_threaded_np
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   setproctitle
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   setproctitle_fast
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  strchrnul
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   strsignal
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   syncfs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   sync_file_range
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1803,6 +1802,7 @@ AC_CHECK_DECLS([strlcat, strlcpy, strnlen])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # won't handle deployment target restrictions on macOS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AC_CHECK_DECLS([preadv], [], [], [#include <sys/uio.h>])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AC_CHECK_DECLS([pwritev], [], [], [#include <sys/uio.h>])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_CHECK_DECLS([strchrnul], [], [], [#include <string.h>])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # This is probably only present on macOS, but may as well check always
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AC_CHECK_DECLS(F_FULLFSYNC, [], [], [#include <fcntl.h>])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git meson.build meson.build
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 842d4f745a2b3..78b0542b1462f 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- meson.build
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ meson.build
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2469,6 +2469,7 @@ decl_checks = [
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- decl_checks += [
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   ['preadv', 'sys/uio.h'],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   ['pwritev', 'sys/uio.h'],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ['strchrnul', 'string.h'],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Check presence of some optional LLVM functions.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2485,8 +2486,23 @@ foreach c : decl_checks
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   args = c.get(2, {})
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   varname = 'HAVE_DECL_' + func.underscorify().to_upper()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  found = cc.has_header_symbol(header, func,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    args: test_c_args, include_directories: postgres_inc,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  found = cc.compiles('''
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <@0@>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+int main()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifndef @1@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    (void) @1@;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+'''.format(header, func),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    name: 'test whether @0@ is declared'.format(func),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # need to add cflags_warn to get at least
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # -Werror=unguarded-availability-new if applicable
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    args: test_c_args + cflags_warn,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    include_directories: postgres_inc,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     kwargs: args)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   cdata.set10(varname, found, description:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- '''Define to 1 if you have the declaration of `@0@', and to 0 if you
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2724,7 +2740,6 @@ func_checks = [
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   ['shm_unlink', {'dependencies': [rt_dep], 'define': false}],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   ['shmget', {'dependencies': [cygipc_dep], 'define': false}],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   ['socket', {'dependencies': [socket_dep], 'define': false}],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  ['strchrnul'],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   ['strerror_r', {'dependencies': [thread_dep]}],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   ['strlcat'],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   ['strlcpy'],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git src/include/pg_config.h.in src/include/pg_config.h.in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 2397d90b465cf..0ee4a63eaa63d 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/include/pg_config.h.in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/include/pg_config.h.in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -115,6 +115,10 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    don't. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #undef HAVE_DECL_PWRITEV
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* Define to 1 if you have the declaration of `strchrnul', and to 0 if you
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   don't. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#undef HAVE_DECL_STRCHRNUL
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Define to 1 if you have the declaration of `strlcat', and to 0 if you
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    don't. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #undef HAVE_DECL_STRLCAT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -393,9 +397,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Define to 1 if you have the <stdlib.h> header file. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #undef HAVE_STDLIB_H
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/* Define to 1 if you have the `strchrnul' function. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#undef HAVE_STRCHRNUL
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Define to 1 if you have the `strerror_r' function. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #undef HAVE_STRERROR_R
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git src/port/snprintf.c src/port/snprintf.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 884f0262dd15c..14fb1783866c5 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/port/snprintf.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/port/snprintf.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -338,13 +338,22 @@ static void leading_pad(int zpad, int signvalue, int *padlen,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void trailing_pad(int padlen, PrintfTarget *target);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * If strchrnul exists (it's a glibc-ism), it's a good bit faster than the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * equivalent manual loop.  If it doesn't exist, provide a replacement.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * If strchrnul exists (it's a glibc-ism, but since adopted by some other
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * platforms), it's a good bit faster than the equivalent manual loop.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Use it if possible, and if it doesn't exist, use this replacement.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  * Note: glibc declares this as returning "char *", but that would require
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  * casting away const internally, so we don't follow that detail.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Note: macOS has this too as of Sequoia 15.4, but it's hidden behind
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * a deployment-target check that causes compile errors if the deployment
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * target isn't high enough.  So !HAVE_DECL_STRCHRNUL may mean "yes it's
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * declared, but it doesn't compile".  To avoid failing in that scenario,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * use a macro to avoid matching <string.h>'s name.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#ifndef HAVE_STRCHRNUL
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if !HAVE_DECL_STRCHRNUL
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define strchrnul pg_strchrnul
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static inline const char *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- strchrnul(const char *s, int c)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -354,19 +363,7 @@ strchrnul(const char *s, int c)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   return s;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * glibc's <string.h> declares strchrnul only if _GNU_SOURCE is defined.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * While we typically use that on glibc platforms, configure will set
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * HAVE_STRCHRNUL whether it's used or not.  Fill in the missing declaration
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * so that this file will compile cleanly with or without _GNU_SOURCE.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#ifndef _GNU_SOURCE
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--extern char *strchrnul(const char *s, int c);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#endif                                                    /* HAVE_STRCHRNUL */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif                                                    /* !HAVE_DECL_STRCHRNUL */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*
</span></pre><pre style='margin:0'>

</pre>