From 6b7a9bde41992ee5cef54c9a1cea2be6bd909944 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Wed, 28 Aug 2024 10:53:10 -0400 Subject: [PATCH] build: Move feature test macros to prelude.h This replaces the explicit CPPFLAGS list in flags.mk with just `-include src/prelude.h`, shortening our compiler command lines and allowing them to be easily documented. --- build/flags.mk | 14 +----------- src/alloc.c | 1 - src/alloc.h | 2 -- src/atomic.h | 2 -- src/bar.c | 1 - src/bfs.h | 2 -- src/bfstd.c | 1 - src/bfstd.h | 2 -- src/bftw.c | 1 - src/bit.h | 2 -- src/color.c | 1 - src/color.h | 2 -- src/ctx.h | 2 -- src/diag.c | 1 - src/diag.h | 2 -- src/dir.c | 1 - src/dir.h | 2 -- src/dstring.c | 1 - src/dstring.h | 2 -- src/eval.c | 1 - src/eval.h | 2 -- src/exec.c | 1 - src/expr.h | 2 -- src/fsade.c | 1 - src/fsade.h | 2 -- src/ioq.c | 1 - src/ioq.h | 2 -- src/main.c | 4 +--- src/mtab.c | 1 - src/mtab.h | 2 -- src/opt.c | 1 - src/parse.c | 1 - src/prelude.h | 58 +++++++++++++++++++++++++++++++++++++++++++++++-- src/printf.c | 1 - src/pwcache.c | 1 - src/sanity.h | 2 -- src/sighook.c | 1 - src/stat.c | 1 - src/stat.h | 2 -- src/thread.c | 1 - src/thread.h | 2 -- src/trie.c | 1 - src/version.c | 2 -- src/xregex.c | 1 - src/xspawn.c | 1 - src/xspawn.h | 2 -- src/xtime.c | 1 - tests/alloc.c | 1 - tests/bfstd.c | 1 - tests/bit.c | 3 +-- tests/ioq.c | 1 - tests/list.c | 3 +-- tests/main.c | 1 - tests/sighook.c | 1 - tests/tests.h | 2 -- tests/trie.c | 3 +-- tests/xspawn.c | 1 - tests/xtime.c | 3 +-- tests/xtouch.c | 2 -- 59 files changed, 62 insertions(+), 100 deletions(-) diff --git a/build/flags.mk b/build/flags.mk index 4636620f..afe19bca 100644 --- a/build/flags.mk +++ b/build/flags.mk @@ -7,19 +7,7 @@ include build/prelude.mk include gen/vars.mk # Internal flags -_CPPFLAGS := \ - -Isrc \ - -Igen \ - -D__EXTENSIONS__ \ - -D_ATFILE_SOURCE \ - -D_BSD_SOURCE \ - -D_DARWIN_C_SOURCE \ - -D_DEFAULT_SOURCE \ - -D_GNU_SOURCE \ - -D_POSIX_PTHREAD_SEMANTICS \ - -D_FILE_OFFSET_BITS=64 \ - -D_TIME_BITS=64 - +_CPPFLAGS := -Isrc -Igen -include src/prelude.h _CFLAGS := -std=c17 -pthread _LDFLAGS := _LDLIBS := diff --git a/src/alloc.c b/src/alloc.c index 43340f73..223d737e 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -1,7 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" #include "alloc.h" #include "bfs.h" diff --git a/src/alloc.h b/src/alloc.h index 51138393..7b97b8c4 100644 --- a/src/alloc.h +++ b/src/alloc.h @@ -8,8 +8,6 @@ #ifndef BFS_ALLOC_H #define BFS_ALLOC_H -#include "prelude.h" - #include "bfs.h" #include diff --git a/src/atomic.h b/src/atomic.h index 5e29974a..2682c29b 100644 --- a/src/atomic.h +++ b/src/atomic.h @@ -8,8 +8,6 @@ #ifndef BFS_ATOMIC_H #define BFS_ATOMIC_H -#include "prelude.h" - #include "bfs.h" #include diff --git a/src/bar.c b/src/bar.c index c574790a..24e51e9f 100644 --- a/src/bar.c +++ b/src/bar.c @@ -1,7 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" #include "bar.h" #include "alloc.h" diff --git a/src/bfs.h b/src/bfs.h index 8820ab9c..91c65408 100644 --- a/src/bfs.h +++ b/src/bfs.h @@ -8,8 +8,6 @@ #ifndef BFS_H #define BFS_H -#include "prelude.h" - // Standard versions /** Possible __STDC_VERSION__ values. */ diff --git a/src/bfstd.c b/src/bfstd.c index 5a6038dc..b29fb7b0 100644 --- a/src/bfstd.c +++ b/src/bfstd.c @@ -1,7 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" #include "bfstd.h" #include "bfs.h" diff --git a/src/bfstd.h b/src/bfstd.h index 67894cd1..557f253a 100644 --- a/src/bfstd.h +++ b/src/bfstd.h @@ -8,8 +8,6 @@ #ifndef BFS_BFSTD_H #define BFS_BFSTD_H -#include "prelude.h" - #include "bfs.h" #include diff --git a/src/bftw.c b/src/bftw.c index 351cc367..64991b05 100644 --- a/src/bftw.c +++ b/src/bftw.c @@ -18,7 +18,6 @@ * various helper functions to take fewer parameters. */ -#include "prelude.h" #include "bftw.h" #include "alloc.h" diff --git a/src/bit.h b/src/bit.h index 0c11895c..c7530f1f 100644 --- a/src/bit.h +++ b/src/bit.h @@ -8,8 +8,6 @@ #ifndef BFS_BIT_H #define BFS_BIT_H -#include "prelude.h" - #include "bfs.h" #include diff --git a/src/color.c b/src/color.c index 0c38c7da..7f653b08 100644 --- a/src/color.c +++ b/src/color.c @@ -1,7 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" #include "color.h" #include "alloc.h" diff --git a/src/color.h b/src/color.h index 61024809..38f5ad7b 100644 --- a/src/color.h +++ b/src/color.h @@ -8,8 +8,6 @@ #ifndef BFS_COLOR_H #define BFS_COLOR_H -#include "prelude.h" - #include "bfs.h" #include "dstring.h" diff --git a/src/ctx.h b/src/ctx.h index 0b4be45e..e532550f 100644 --- a/src/ctx.h +++ b/src/ctx.h @@ -8,8 +8,6 @@ #ifndef BFS_CTX_H #define BFS_CTX_H -#include "prelude.h" - #include "alloc.h" #include "bftw.h" #include "diag.h" diff --git a/src/diag.c b/src/diag.c index 30525acd..590d45ca 100644 --- a/src/diag.c +++ b/src/diag.c @@ -1,7 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" #include "diag.h" #include "alloc.h" diff --git a/src/diag.h b/src/diag.h index 2d056543..3bea9b2a 100644 --- a/src/diag.h +++ b/src/diag.h @@ -8,8 +8,6 @@ #ifndef BFS_DIAG_H #define BFS_DIAG_H -#include "prelude.h" - #include "bfs.h" #include "bfstd.h" diff --git a/src/dir.c b/src/dir.c index 0a93fe01..4bf72a15 100644 --- a/src/dir.c +++ b/src/dir.c @@ -1,7 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" #include "dir.h" #include "alloc.h" diff --git a/src/dir.h b/src/dir.h index 0008d453..44820036 100644 --- a/src/dir.h +++ b/src/dir.h @@ -8,8 +8,6 @@ #ifndef BFS_DIR_H #define BFS_DIR_H -#include "prelude.h" - #include "bfs.h" #include diff --git a/src/dstring.c b/src/dstring.c index 2f3abc55..36ed2c72 100644 --- a/src/dstring.c +++ b/src/dstring.c @@ -1,7 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" #include "dstring.h" #include "alloc.h" diff --git a/src/dstring.h b/src/dstring.h index a6103e3c..6d50bc80 100644 --- a/src/dstring.h +++ b/src/dstring.h @@ -8,8 +8,6 @@ #ifndef BFS_DSTRING_H #define BFS_DSTRING_H -#include "prelude.h" - #include "bfs.h" #include "bfstd.h" diff --git a/src/eval.c b/src/eval.c index bbafadbf..a97c73b4 100644 --- a/src/eval.c +++ b/src/eval.c @@ -5,7 +5,6 @@ * Implementation of all the primary expressions. */ -#include "prelude.h" #include "eval.h" #include "atomic.h" diff --git a/src/eval.h b/src/eval.h index 4dd79964..48184c75 100644 --- a/src/eval.h +++ b/src/eval.h @@ -9,8 +9,6 @@ #ifndef BFS_EVAL_H #define BFS_EVAL_H -#include "prelude.h" - struct bfs_ctx; struct bfs_expr; diff --git a/src/exec.c b/src/exec.c index 8f78d7b8..45c9f1d9 100644 --- a/src/exec.c +++ b/src/exec.c @@ -1,7 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" #include "exec.h" #include "alloc.h" diff --git a/src/expr.h b/src/expr.h index a6edff11..f14b9369 100644 --- a/src/expr.h +++ b/src/expr.h @@ -8,8 +8,6 @@ #ifndef BFS_EXPR_H #define BFS_EXPR_H -#include "prelude.h" - #include "color.h" #include "eval.h" #include "stat.h" diff --git a/src/fsade.c b/src/fsade.c index b10c8519..30b3018d 100644 --- a/src/fsade.c +++ b/src/fsade.c @@ -1,7 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" #include "fsade.h" #include "atomic.h" diff --git a/src/fsade.h b/src/fsade.h index 9c7d1178..77cf82a9 100644 --- a/src/fsade.h +++ b/src/fsade.h @@ -9,8 +9,6 @@ #ifndef BFS_FSADE_H #define BFS_FSADE_H -#include "prelude.h" - #include "bfs.h" #define BFS_CAN_CHECK_ACL (BFS_HAS_ACL_GET_FILE || BFS_HAS_ACL_TRIVIAL) diff --git a/src/ioq.c b/src/ioq.c index 10d45367..f936ff82 100644 --- a/src/ioq.c +++ b/src/ioq.c @@ -118,7 +118,6 @@ * [1]: https://arxiv.org/abs/2201.02179 */ -#include "prelude.h" #include "ioq.h" #include "alloc.h" diff --git a/src/ioq.h b/src/ioq.h index 82269418..458c9e7b 100644 --- a/src/ioq.h +++ b/src/ioq.h @@ -8,8 +8,6 @@ #ifndef BFS_IOQ_H #define BFS_IOQ_H -#include "prelude.h" - #include "dir.h" #include "stat.h" diff --git a/src/main.c b/src/main.c index 9f785228..da075086 100644 --- a/src/main.c +++ b/src/main.c @@ -20,6 +20,7 @@ * - bftw.[ch] (an extended version of nftw(3)) * * - Utilities: + * - prelude.h (feature test macros; automatically included) * - alloc.[ch] (memory allocation) * - atomic.h (atomic operations) * - bar.[ch] (a terminal status bar) @@ -27,7 +28,6 @@ * - bfs.h (configuration and fundamental utilities) * - bfstd.[ch] (standard library wrappers/polyfills) * - color.[ch] (for pretty terminal colors) - * - prelude.h (configuration and feature/platform detection) * - diag.[ch] (formats diagnostic messages) * - dir.[ch] (a directory API facade) * - dstring.[ch] (a dynamic string library) @@ -48,8 +48,6 @@ * - xtime.[ch] (date/time handling utilities) */ -#include "prelude.h" - #include "bfstd.h" #include "ctx.h" #include "diag.h" diff --git a/src/mtab.c b/src/mtab.c index a013e41e..79f3100a 100644 --- a/src/mtab.c +++ b/src/mtab.c @@ -1,7 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" #include "mtab.h" #include "alloc.h" diff --git a/src/mtab.h b/src/mtab.h index 67290c21..6c7d5cbe 100644 --- a/src/mtab.h +++ b/src/mtab.h @@ -8,8 +8,6 @@ #ifndef BFS_MTAB_H #define BFS_MTAB_H -#include "prelude.h" - struct bfs_stat; /** diff --git a/src/opt.c b/src/opt.c index f75d9c97..425a540c 100644 --- a/src/opt.c +++ b/src/opt.c @@ -25,7 +25,6 @@ * effects are reachable at all, skipping the traversal if not. */ -#include "prelude.h" #include "opt.h" #include "bfs.h" diff --git a/src/parse.c b/src/parse.c index a90dc2d3..57c60aec 100644 --- a/src/parse.c +++ b/src/parse.c @@ -8,7 +8,6 @@ * flags like always-true options, and skipping over paths wherever they appear. */ -#include "prelude.h" #include "parse.h" #include "alloc.h" diff --git a/src/prelude.h b/src/prelude.h index 5f7203e9..a0cc2a10 100644 --- a/src/prelude.h +++ b/src/prelude.h @@ -2,12 +2,66 @@ // SPDX-License-Identifier: 0BSD /** - * Configuration and feature/platform detection. + * Praeludium. + * + * This header is automatically included in every translation unit, before any + * other headers, so it can set feature test macros[1][2]. This sets up our own + * mini-dialect of C, which includes + * + * - Standard C17 and POSIX.1 2024 features + * - Portable and platform-specific extensions + * - Convenience macros like `bool`, `alignof`, etc. + * - Common compiler extensions like __has_include() + * + * Further bfs-specific utilities are defined in "bfs.h". + * + * [1]: https://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html + * [2]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/V2_chap02.html */ #ifndef BFS_PRELUDE_H #define BFS_PRELUDE_H +// Feature test macros + +/** + * Linux and BSD handle _POSIX_C_SOURCE differently: on Linux, it enables POSIX + * interfaces that are not visible by default. On BSD, it also *disables* most + * extensions, giving a strict POSIX environment. Since we want the extensions, + * we don't set _POSIX_C_SOURCE. + */ +// #define _POSIX_C_SOURCE 202405L + +/** openat() etc. */ +#define _ATFILE_SOURCE 1 + +/** BSD-derived extensions. */ +#define _BSD_SOURCE 1 + +/** glibc successor to _BSD_SOURCE. */ +#define _DEFAULT_SOURCE 1 + +/** GNU extensions. */ +#define _GNU_SOURCE 1 + +/** Use 64-bit off_t. */ +#define _FILE_OFFSET_BITS 64 + +/** Use 64-bit time_t. */ +#define _TIME_BITS 64 + +/** macOS extensions. */ +#if __APPLE__ +# define _DARWIN_C_SOURCE 1 +#endif + +/** Solaris extensions. */ +#if __sun +# define __EXTENSIONS__ 1 +// https://illumos.org/man/3C/getpwnam#standard-conforming +# define _POSIX_PTHREAD_SEMANTICS 1 +#endif + // Get the convenience macros that became standard spellings in C23 #if __STDC_VERSION__ < 202311L @@ -20,7 +74,7 @@ /** * C23 deprecates `noreturn void` in favour of `[[noreturn]] void`, so we expose - * _noreturn instead with the other attributes. + * _noreturn instead with the other attributes in "bfs.h". */ // #include diff --git a/src/printf.c b/src/printf.c index 39abdcc7..30ec201e 100644 --- a/src/printf.c +++ b/src/printf.c @@ -1,7 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" #include "printf.h" #include "alloc.h" diff --git a/src/pwcache.c b/src/pwcache.c index 35a9925d..c2b575ea 100644 --- a/src/pwcache.c +++ b/src/pwcache.c @@ -1,7 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" #include "pwcache.h" #include "alloc.h" diff --git a/src/sanity.h b/src/sanity.h index 17450a3a..0b770cfe 100644 --- a/src/sanity.h +++ b/src/sanity.h @@ -8,8 +8,6 @@ #ifndef BFS_SANITY_H #define BFS_SANITY_H -#include "prelude.h" - #include // Call macro(ptr, size) or macro(ptr, sizeof(*ptr)) diff --git a/src/sighook.c b/src/sighook.c index d697895c..861a0b5a 100644 --- a/src/sighook.c +++ b/src/sighook.c @@ -17,7 +17,6 @@ * drop to zero. Once it does, the old pointer can be safely freed. */ -#include "prelude.h" #include "sighook.h" #include "alloc.h" diff --git a/src/stat.c b/src/stat.c index 9f2918d4..e99e711a 100644 --- a/src/stat.c +++ b/src/stat.c @@ -1,7 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" #include "stat.h" #include "atomic.h" diff --git a/src/stat.h b/src/stat.h index a3da1bf5..8d0bd9b1 100644 --- a/src/stat.h +++ b/src/stat.h @@ -12,8 +12,6 @@ #ifndef BFS_STAT_H #define BFS_STAT_H -#include "prelude.h" - #include "bfs.h" #include diff --git a/src/thread.c b/src/thread.c index c555d1f4..d61ff8c2 100644 --- a/src/thread.c +++ b/src/thread.c @@ -1,7 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" #include "thread.h" #include "bfstd.h" diff --git a/src/thread.h b/src/thread.h index 7ecda862..7d124684 100644 --- a/src/thread.h +++ b/src/thread.h @@ -8,8 +8,6 @@ #ifndef BFS_THREAD_H #define BFS_THREAD_H -#include "prelude.h" - #include /** Thread entry point type. */ diff --git a/src/trie.c b/src/trie.c index 848f172d..a92950bb 100644 --- a/src/trie.c +++ b/src/trie.c @@ -81,7 +81,6 @@ * and insert intermediate singleton "jump" nodes when necessary. */ -#include "prelude.h" #include "trie.h" #include "alloc.h" diff --git a/src/version.c b/src/version.c index 28229275..7479a9f4 100644 --- a/src/version.c +++ b/src/version.c @@ -1,8 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" - #include "bfs.h" const char bfs_version[] = { diff --git a/src/xregex.c b/src/xregex.c index 52f82228..796544eb 100644 --- a/src/xregex.c +++ b/src/xregex.c @@ -1,7 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" #include "xregex.h" #include "alloc.h" diff --git a/src/xspawn.c b/src/xspawn.c index 0b83c8d8..b3eed791 100644 --- a/src/xspawn.c +++ b/src/xspawn.c @@ -1,7 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" #include "xspawn.h" #include "alloc.h" diff --git a/src/xspawn.h b/src/xspawn.h index 60ef1ab5..9cfbaf76 100644 --- a/src/xspawn.h +++ b/src/xspawn.h @@ -8,8 +8,6 @@ #ifndef BFS_XSPAWN_H #define BFS_XSPAWN_H -#include "prelude.h" - #include #include #include diff --git a/src/xtime.c b/src/xtime.c index 75ace72e..dd9b60f4 100644 --- a/src/xtime.c +++ b/src/xtime.c @@ -1,7 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" #include "xtime.h" #include "bfs.h" diff --git a/tests/alloc.c b/tests/alloc.c index ec8e8f71..f91b4281 100644 --- a/tests/alloc.c +++ b/tests/alloc.c @@ -1,7 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" #include "tests.h" #include "alloc.h" diff --git a/tests/bfstd.c b/tests/bfstd.c index 068e3713..fe64ff3b 100644 --- a/tests/bfstd.c +++ b/tests/bfstd.c @@ -1,7 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" #include "tests.h" #include "bfstd.h" diff --git a/tests/bit.c b/tests/bit.c index 854398cc..1446b138 100644 --- a/tests/bit.c +++ b/tests/bit.c @@ -1,12 +1,11 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" +#include "tests.h" #include "bfs.h" #include "bit.h" #include "diag.h" -#include "tests.h" #include #include diff --git a/tests/ioq.c b/tests/ioq.c index 61a924f4..a2db8134 100644 --- a/tests/ioq.c +++ b/tests/ioq.c @@ -1,7 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" #include "tests.h" #include "bfstd.h" diff --git a/tests/list.c b/tests/list.c index 820fbe48..b3d74a19 100644 --- a/tests/list.c +++ b/tests/list.c @@ -1,11 +1,10 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" +#include "tests.h" #include "bfs.h" #include "list.h" -#include "tests.h" struct item { int n; diff --git a/tests/main.c b/tests/main.c index 9cbdcfb4..dcb5d982 100644 --- a/tests/main.c +++ b/tests/main.c @@ -5,7 +5,6 @@ * Entry point for unit tests. */ -#include "prelude.h" #include "tests.h" #include "bfstd.h" diff --git a/tests/sighook.c b/tests/sighook.c index adc53d8d..4121a44e 100644 --- a/tests/sighook.c +++ b/tests/sighook.c @@ -1,7 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" #include "tests.h" #include "atomic.h" diff --git a/tests/tests.h b/tests/tests.h index 2c1eb3a4..4c6b3d25 100644 --- a/tests/tests.h +++ b/tests/tests.h @@ -8,8 +8,6 @@ #ifndef BFS_TESTS_H #define BFS_TESTS_H -#include "prelude.h" - #include "bfstd.h" #include "diag.h" diff --git a/tests/trie.c b/tests/trie.c index 41b729ed..9e9a2944 100644 --- a/tests/trie.c +++ b/tests/trie.c @@ -1,11 +1,10 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" +#include "tests.h" #include "bfs.h" #include "diag.h" -#include "tests.h" #include "trie.h" #include diff --git a/tests/xspawn.c b/tests/xspawn.c index 20617de1..3194adc2 100644 --- a/tests/xspawn.c +++ b/tests/xspawn.c @@ -1,7 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" #include "tests.h" #include "alloc.h" diff --git a/tests/xtime.c b/tests/xtime.c index 6d7716d4..c87a69ec 100644 --- a/tests/xtime.c +++ b/tests/xtime.c @@ -1,12 +1,11 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" +#include "tests.h" #include "bfs.h" #include "bfstd.h" #include "diag.h" -#include "tests.h" #include "xtime.h" #include diff --git a/tests/xtouch.c b/tests/xtouch.c index 705d4e26..e7c2e00e 100644 --- a/tests/xtouch.c +++ b/tests/xtouch.c @@ -1,8 +1,6 @@ // Copyright © Tavian Barnes // SPDX-License-Identifier: 0BSD -#include "prelude.h" - #include "bfstd.h" #include "sanity.h" #include "xtime.h"