<pre style='margin:0'>
Chris Jones (cjones051073) pushed a commit to branch master
in repository macports-legacy-support.

</pre>
<p><a href="https://github.com/macports/macports-legacy-support/commit/67f0316ae6298c90b7272c5d531354ee25263bb9">https://github.com/macports/macports-legacy-support/commit/67f0316ae6298c90b7272c5d531354ee25263bb9</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 67f0316  stdio.h: implement dprintf (added in 10.7)
</span>67f0316 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 67f0316ae6298c90b7272c5d531354ee25263bb9
</span>Author: Evan Miller <emmiller@gmail.com>
AuthorDate: Sat Oct 23 13:49:17 2021 -0400

<span style='display:block; white-space:pre;color:#404040;'>    stdio.h: implement dprintf (added in 10.7)
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/61160
</span>---
 README.md                       |  2 +-
 include/MacportsLegacySupport.h |  3 +++
 include/stdio.h                 |  9 +++++++++
 src/dprintf.c                   | 39 +++++++++++++++++++++++++++++++++++++++
 test/test_dprintf.c             |  7 +++++++
 5 files changed, 59 insertions(+), 1 deletion(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/README.md b/README.md
</span><span style='display:block; white-space:pre;color:#808080;'>index d6237e5..130f394 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/README.md
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/README.md
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -51,7 +51,7 @@ Wrapped headers and replaced functions are:
</span>   </tr>
   <tr>
     <td><code>stdio.h</code></td>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    <td>Adds <code>getline</code> and <code>getdelim</code> functions</td>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    <td>Adds <code>dprintf</code>, <code>getline</code>, and <code>getdelim</code> functions</td>
</span>     <td>OSX10.6</td>
   </tr>
   <tr>
<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 68f0a04..b078cec 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;'>@@ -62,6 +62,9 @@
</span> /* strndup */
 #define __MP_LEGACY_SUPPORT_STRNDUP__         (__APPLE__ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070)
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+/* dprintf */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define __MP_LEGACY_SUPPORT_DPRINTF__         (__APPLE__ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> /* getline */
 #define __MP_LEGACY_SUPPORT_GETLINE__         (__APPLE__ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070)
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/include/stdio.h b/include/stdio.h
</span><span style='display:block; white-space:pre;color:#808080;'>index 59181d8..77a0b88 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/include/stdio.h
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/include/stdio.h
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -25,6 +25,15 @@
</span> /* Include the primary system time.h */
 #include_next <stdio.h>
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+/* dprintf */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#if __MP_LEGACY_SUPPORT_DPRINTF__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+__MP__BEGIN_DECLS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+extern int dprintf(int fd, const char * __restrict format, ...);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+__MP__END_DECLS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif /* __MP_LEGACY_SUPPORT_DPRINTF__ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> /* getline */
 #if __MP_LEGACY_SUPPORT_GETLINE__
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/dprintf.c b/src/dprintf.c
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..83f7e9d
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/dprintf.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,39 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Copyright (c) 2021, Evan Miller   <emmiller@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Permission to use, copy, modify, and distribute this software for any
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * purpose with or without fee is hereby granted, provided that the above
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * copyright notice and this permission notice appear in all copies.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
</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;'>+// MP support header
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include "MacportsLegacySupport.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#if __MP_LEGACY_SUPPORT_DPRINTF__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <stdarg.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <stdio.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <sys/errno.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int dprintf(int fildes, const char * __restrict format, ...) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    FILE *stream = fdopen(fildes, "w");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if (stream == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        errno = EBADF;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    va_list ap;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    va_start(ap, format);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    int result = vfprintf(stream, format, ap);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    va_end(ap);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    fclose(stream);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return result;
</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_DPRINTF__ */
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/test/test_dprintf.c b/test/test_dprintf.c
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..3a15670
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/test/test_dprintf.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <stdio.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int main() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    dprintf(fileno(stdout), "Hello, %s! My favorite number is %d\n", "Joe", 42);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span></pre><pre style='margin:0'>

</pre>