libgrapheme

Freestanding C library for unicode string handling
git clone https://git.sinitax.com/suckless/libgrapheme
Log | Files | Refs | README | LICENSE | sfeed.txt

util.h (1612B)


      1/* See LICENSE file for copyright and license details. */
      2#ifndef UTIL_H
      3#define UTIL_H
      4
      5#include "../gen/types.h"
      6#include "../grapheme.h"
      7
      8#undef MIN
      9#define MIN(x, y) ((x) < (y) ? (x) : (y))
     10#undef LEN
     11#define LEN(x) (sizeof(x) / sizeof(*(x)))
     12
     13struct unit_test_next_break {
     14	const char *description;
     15
     16	struct {
     17		const uint_least32_t *src;
     18		size_t srclen;
     19	} input;
     20
     21	struct {
     22		size_t ret;
     23	} output;
     24};
     25
     26struct unit_test_next_break_utf8 {
     27	const char *description;
     28
     29	struct {
     30		const char *src;
     31		size_t srclen;
     32	} input;
     33
     34	struct {
     35		size_t ret;
     36	} output;
     37};
     38
     39int run_break_tests(size_t (*next_break)(const uint_least32_t *, size_t),
     40                    const struct break_test *test, size_t testlen,
     41                    const char *);
     42int run_unit_tests(int (*unit_test_callback)(const void *, size_t, const char *,
     43                                             const char *),
     44                   const void *, size_t, const char *, const char *);
     45
     46int unit_test_callback_next_break(const struct unit_test_next_break *, size_t,
     47                                  size_t (*next_break)(const uint_least32_t *,
     48                                                       size_t),
     49                                  const char *, const char *);
     50int unit_test_callback_next_break_utf8(const struct unit_test_next_break_utf8 *,
     51                                       size_t,
     52                                       size_t (*next_break_utf8)(const char *,
     53                                                                 size_t),
     54                                       const char *, const char *);
     55
     56#endif /* UTIL_H */