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

</pre>
<p><a href="https://github.com/macports/macports-legacy-support/commit/9f6e0d24cf4b74cfc29645cfd4ac538fca580613">https://github.com/macports/macports-legacy-support/commit/9f6e0d24cf4b74cfc29645cfd4ac538fca580613</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 9f6e0d24cf4b74cfc29645cfd4ac538fca580613
</span>Author: Fred Wright <fw@fwright.net>
AuthorDate: Thu Jan 16 18:55:00 2025 -0800

<span style='display:block; white-space:pre;color:#404040;'>    Implement clock_settime().
</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/71399
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    TESTED:
</span><span style='display:block; white-space:pre;color:#404040;'>    Passes the new (manual) test on all platforms.
</span>---
 include/time.h |  6 +++++-
 src/time.c     | 20 ++++++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/include/time.h b/include/time.h
</span><span style='display:block; white-space:pre;color:#808080;'>index 087abfb..57436ad 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/include/time.h
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/include/time.h
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -59,6 +59,7 @@ _CLOCK_REALTIME = 0,
</span> #define CLOCK_REALTIME _CLOCK_REALTIME
 _CLOCK_MONOTONIC = 6,
 #define CLOCK_MONOTONIC _CLOCK_MONOTONIC
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> #if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
 _CLOCK_MONOTONIC_RAW = 4,
 #define CLOCK_MONOTONIC_RAW _CLOCK_MONOTONIC_RAW
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -68,7 +69,8 @@ _CLOCK_UPTIME_RAW = 8,
</span> #define CLOCK_UPTIME_RAW _CLOCK_UPTIME_RAW
 _CLOCK_UPTIME_RAW_APPROX = 9,
 #define CLOCK_UPTIME_RAW_APPROX _CLOCK_UPTIME_RAW_APPROX
<span style='display:block; white-space:pre;background:#ffe0e0;'>-#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif /* !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> _CLOCK_PROCESS_CPUTIME_ID = 12,
 #define CLOCK_PROCESS_CPUTIME_ID _CLOCK_PROCESS_CPUTIME_ID
 _CLOCK_THREAD_CPUTIME_ID = 16
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -84,6 +86,8 @@ extern int clock_getres ( clockid_t clk_id, struct timespec *ts );
</span> __uint64_t clock_gettime_nsec_np(clockid_t __clock_id);
 #endif
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+extern int clock_settime(clockid_t clk_id, const struct timespec *ts);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> __MP__END_DECLS
 
 #endif /* __MPLS_SDK_SUPPORT_GETTIME__ */
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/time.c b/src/time.c
</span><span style='display:block; white-space:pre;color:#808080;'>index 95f8ef1..3b23aa7 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/time.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/time.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -20,6 +20,8 @@
</span> 
 #if __MPLS_LIB_SUPPORT_GETTIME__
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <errno.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <stddef.h>
</span> #include <time.h>
 
 #include <sys/time.h>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -139,6 +141,24 @@ int clock_getres( clockid_t clk_id, struct timespec *ts )
</span>   return ret;
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+clock_settime(clockid_t clk_id, const struct timespec *ts)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  struct timeval tv;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  switch (clk_id) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  case CLOCK_REALTIME:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    tv.tv_sec = ts->tv_sec;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    tv.tv_usec = ts->tv_nsec / 1000;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return settimeofday(&tv, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  default:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    errno = EINVAL;
</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;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> #endif /* __MPLS_LIB_SUPPORT_GETTIME__ */
 
 #if __MPLS_LIB_SUPPORT_TIMESPEC_GET__
</pre><pre style='margin:0'>

</pre>