From 171ee405f9e4a390fb760b72daa9ff8015c89e2a Mon Sep 17 00:00:00 2001 From: Lizzy Fleckenstein Date: Sun, 12 Apr 2026 21:23:36 +0200 Subject: fix standard compliance issues --- meson.build | 2 ++ src/fmt/nut.c | 1 + src/render.c | 9 +++++++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build index db0abc7..277e822 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,7 @@ project('animtool', 'c', default_options: ['warning_level=2', 'c_std=c23']) +add_project_arguments(['-D_XOPEN_SOURCE=800', '-D_POSIX_C_SOURCE=202405L'], language: 'c') + cc = meson.get_compiler('c') opengl = dependency('opengl') diff --git a/src/fmt/nut.c b/src/fmt/nut.c index 99f9a69..f9ca9fd 100644 --- a/src/fmt/nut.c +++ b/src/fmt/nut.c @@ -1,3 +1,4 @@ +#define _DEFAULT_SOURCE // can be removed once glibc knows about in POSIX 2024 #include #include #include diff --git a/src/render.c b/src/render.c index 9c7d796..fd88278 100644 --- a/src/render.c +++ b/src/render.c @@ -146,8 +146,13 @@ static void render_seq(size_t n_inst, struct seq_inst inst[n_inst], struct scene (ts_now.tv_nsec - state->start_ts.tv_nsec) / 1000000000.0 + (ts_now.tv_sec - state->start_ts.tv_sec); double ahead = time - e_time - scene->live.data; - if (ahead > 0.0) - usleep(ahead * 1000000.0); + if (ahead > 0.0) { + uint64_t nanos = ahead * 1000000000.0; + struct timespec ts_sleep; + ts_sleep.tv_nsec = nanos % 1000000000; + ts_sleep.tv_sec = nanos / 1000000000; + nanosleep(&ts_sleep, nullptr); + } } struct draw_frame frame; -- cgit v1.2.3