From 28f3247dbb786a42f0460a7aa88d558056a68144 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Sat, 20 Dec 2025 06:49:30 +0100 Subject: First commit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- libcmap.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 libcmap.h (limited to 'libcmap.h') diff --git a/libcmap.h b/libcmap.h new file mode 100644 index 0000000..54e60cc --- /dev/null +++ b/libcmap.h @@ -0,0 +1,47 @@ +/* See LICENSE file for copyright and license details. */ +#ifndef LIBCMAP_H +#define LIBCMAP_H + +#include +#include + +#if defined(__GNUC__) +# define LIBCMAP_PURE_ __attribute__((__pure__)) +# define LIBCMAP_CONST_ __attribute__((__const__)) +#else +# define LIBCMAP_PURE_ +# define LIBCMAP_CONST_ +#endif + + +struct libcmap_range { + uint32_t first; + uint32_t last; +}; + +struct libcmap_block { + const char *name; + struct libcmap_range range; +}; + +struct libcmap_script { + const char *name; + struct libcmap_range *ranges; + size_t nranges; +}; + + +extern const struct libcmap_block *const libcmap_block_list; +extern const size_t libcmap_block_list_size; + +extern const struct libcmap_script *const libcmap_script_list; +extern const size_t libcmap_script_list_size; + + +const struct libcmap_block *libcmap_find_block(uint32_t codepoint, size_t *offset_out); +const struct libcmap_script *libcmap_find_script(uint32_t codepoint, size_t *offset_out, size_t *subrange_out); + + +#undef LIBCMAP_PURE_ +#undef LIBCMAP_CONST_ +#endif -- cgit v1.3.1