From 242b87209b778d033d1da828ae9ec47170c17f38 Mon Sep 17 00:00:00 2001 From: Mitya Selivanov Date: Fri, 22 Sep 2023 20:23:05 +0200 Subject: fix single header --- include/kit.inl.h | 46 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) (limited to 'include/kit.inl.h') diff --git a/include/kit.inl.h b/include/kit.inl.h index 1b66297..9752919 100644 --- a/include/kit.inl.h +++ b/include/kit.inl.h @@ -1,9 +1,9 @@ // ================================================================ // // kit.inl.h -// https://guattari.tech/git/?p=kit.git;a=tree +// https://guattari.tech/kit.git // -// Header-only utility library for C. +// Single header-only utility library for C. // // ================================================================ // @@ -2867,6 +2867,48 @@ void thrd_yield(void) { } # endif #endif +/********************************************************************* + * * + * File: source/kit/array_ref.c * + * * + *********************************************************************/ +#include +i8 kit_ar_equal_bytes(i64 left_element_size, i64 left_size, + void *left_data, i64 right_element_size, + i64 right_size, void *right_data) { + i64 i; + if (left_element_size != right_element_size) + return 0; + if (left_size != right_size) + return 0; + for (i = 0; i < left_size; i++) + if (memcmp((u8 *) left_data + i * left_element_size, + (u8 *) right_data + i * left_element_size, + left_element_size) != 0) + return 0; + return 1; +} +i8 kit_ar_compare(i64 left_element_size, i64 left_size, + void *left_data, i64 right_element_size, + i64 right_size, void *right_data, + kit_ar_compare_fn compare) { + i64 i; + if (left_element_size < right_element_size) + return -1; + if (left_element_size > right_element_size) + return 1; + for (i = 0; i < left_size && i < right_size; i++) { + i8 c = compare((u8 *) left_data + i * left_element_size, + (u8 *) right_data + i * left_element_size); + if (c != 0) + return c; + } + if (left_size < right_size) + return -1; + if (left_size > right_size) + return 1; + return 0; +} /********************************************************************* * * * File: source/kit/dynamic_array.c * -- cgit v1.2.3