[hackers] [libgrapheme] Apply clang-format || Laslo Hunhold

From: <git_AT_suckless.org>
Date: Tue, 15 Nov 2022 15:56:07 +0100 (CET)

commit abdc2ba0c764c527aaa2ed9fe42db27d71a10bc2
Author: Laslo Hunhold <dev_AT_frign.de>
AuthorDate: Tue Nov 15 15:53:56 2022 +0100
Commit: Laslo Hunhold <dev_AT_frign.de>
CommitDate: Tue Nov 15 15:54:35 2022 +0100

    Apply clang-format
    
    Even though this disrupts the backtrackability of the code a bit,
    it's better to rip the band aid off now than to push it on into the
    future.
    
    With these changes, formatting is automatically governed and ensured by
    a simple call to
    
            make format
    
    Signed-off-by: Laslo Hunhold <dev_AT_frign.de>

diff --git a/benchmark/bidirectional.c b/benchmark/bidirectional.c
index 5c836fc..944b3ca 100644
--- a/benchmark/bidirectional.c
+++ b/benchmark/bidirectional.c
_AT_@ -5,8 +5,8 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "../grapheme.h"
 #include "../gen/bidirectional-test.h"
+#include "../grapheme.h"
 #include "util.h"
 
 #define NUM_ITERATIONS 100000
diff --git a/benchmark/case.c b/benchmark/case.c
index f62aaf8..5b1686d 100644
--- a/benchmark/case.c
+++ b/benchmark/case.c
_AT_@ -6,8 +6,8 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "../grapheme.h"
 #include "../gen/word-test.h"
+#include "../grapheme.h"
 #include "util.h"
 
 #define NUM_ITERATIONS 10000
_AT_@ -40,7 +40,8 @@ main(int argc, char *argv[])
                                              &(p.srclen))) == NULL) {
                 return 1;
         }
- if ((p.dest = calloc((p.destlen = 2 * p.srclen), sizeof(*(p.dest)))) == NULL) {
+ if ((p.dest = calloc((p.destlen = 2 * p.srclen), sizeof(*(p.dest)))) ==
+ NULL) {
                 fprintf(stderr, "calloc: Out of memory\n");
         }
 
diff --git a/benchmark/character.c b/benchmark/character.c
index 2f8efbb..3c85649 100644
--- a/benchmark/character.c
+++ b/benchmark/character.c
_AT_@ -6,8 +6,8 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "../grapheme.h"
 #include "../gen/character-test.h"
+#include "../grapheme.h"
 #include "util.h"
 
 #include <utf8proc.h>
_AT_@ -28,7 +28,7 @@ libgrapheme(const void *payload)
         size_t i;
 
         for (i = 0; i + 1 < p->buflen; i++) {
- (void)grapheme_is_character_break(p->buf[i], p->buf[i+1],
+ (void)grapheme_is_character_break(p->buf[i], p->buf[i + 1],
                                                   &state);
         }
 }
_AT_@ -41,9 +41,8 @@ libutf8proc(const void *payload)
         size_t i;
 
         for (i = 0; i + 1 < p->buflen; i++) {
- (void)utf8proc_grapheme_break_stateful(p->buf_utf8proc[i],
- p->buf_utf8proc[i+1],
- &state);
+ (void)utf8proc_grapheme_break_stateful(
+ p->buf_utf8proc[i], p->buf_utf8proc[i + 1], &state);
         }
 }
 
_AT_@ -61,7 +60,8 @@ main(int argc, char *argv[])
                                              &(p.buflen))) == NULL) {
                 return 1;
         }
- if ((p.buf_utf8proc = malloc(p.buflen * sizeof(*(p.buf_utf8proc)))) == NULL) {
+ if ((p.buf_utf8proc = malloc(p.buflen * sizeof(*(p.buf_utf8proc)))) ==
+ NULL) {
                 fprintf(stderr, "malloc: %s\n", strerror(errno));
                 exit(1);
         }
diff --git a/benchmark/line.c b/benchmark/line.c
index 28924d0..934ee57 100644
--- a/benchmark/line.c
+++ b/benchmark/line.c
_AT_@ -6,8 +6,8 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "../grapheme.h"
 #include "../gen/line-test.h"
+#include "../grapheme.h"
 #include "util.h"
 
 #define NUM_ITERATIONS 10000
_AT_@ -23,7 +23,7 @@ libgrapheme(const void *payload)
         const struct break_benchmark_payload *p = payload;
         size_t off;
 
- for (off = 0; off < p->buflen; ) {
+ for (off = 0; off < p->buflen;) {
                 off += grapheme_next_line_break(p->buf + off, p->buflen - off);
         }
 }
diff --git a/benchmark/sentence.c b/benchmark/sentence.c
index fdbba26..0e14337 100644
--- a/benchmark/sentence.c
+++ b/benchmark/sentence.c
_AT_@ -6,8 +6,8 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "../grapheme.h"
 #include "../gen/sentence-test.h"
+#include "../grapheme.h"
 #include "util.h"
 
 #define NUM_ITERATIONS 100000
_AT_@ -23,8 +23,9 @@ libgrapheme(const void *payload)
         const struct break_benchmark_payload *p = payload;
         size_t off;
 
- for (off = 0; off < p->buflen; ) {
- off += grapheme_next_sentence_break(p->buf + off, p->buflen - off);
+ for (off = 0; off < p->buflen;) {
+ off += grapheme_next_sentence_break(p->buf + off,
+ p->buflen - off);
         }
 }
 
diff --git a/benchmark/utf8-decode.c b/benchmark/utf8-decode.c
index fa8abfa..561f336 100644
--- a/benchmark/utf8-decode.c
+++ b/benchmark/utf8-decode.c
_AT_@ -6,8 +6,8 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "../grapheme.h"
 #include "../gen/character-test.h"
+#include "../grapheme.h"
 #include "util.h"
 
 #include <utf8proc.h>
_AT_@ -28,9 +28,8 @@ libgrapheme(const void *payload)
         size_t ret, off;
 
         for (off = 0; off < p->buflen; off += ret) {
- if ((ret = grapheme_decode_utf8(p->buf + off,
- p->buflen - off, &cp)) >
- (p->buflen - off)) {
+ if ((ret = grapheme_decode_utf8(p->buf + off, p->buflen - off,
+ &cp)) > (p->buflen - off)) {
                         break;
                 }
                 (void)cp;
_AT_@ -48,7 +47,7 @@ libutf8proc(const void *payload)
         for (off = 0; off < p->buflen; off += (size_t)ret) {
                 if ((ret = utf8proc_iterate(p->buf_utf8proc + off,
                                             (utf8proc_ssize_t)(p->buflen - off),
- &cp)) < 0) {
+ &cp)) < 0) {
                         break;
                 }
                 (void)cp;
_AT_@ -64,9 +63,8 @@ main(int argc, char *argv[])
 
         (void)argc;
 
- p.buf = generate_utf8_test_buffer(character_break_test,
- LEN(character_break_test),
- &(p.buflen));
+ p.buf = generate_utf8_test_buffer(
+ character_break_test, LEN(character_break_test), &(p.buflen));
 
         /* convert cp-buffer to stupid custom libutf8proc-uint8-type */
         if ((p.buf_utf8proc = malloc(p.buflen)) == NULL) {
_AT_@ -74,7 +72,7 @@ main(int argc, char *argv[])
                 exit(1);
         }
         for (i = 0; i < p.buflen; i++) {
- /*
+ /*
                  * even if char is larger than 8 bit, it will only have
                  * any of the first 8 bits set (by construction).
                  */
_AT_@ -82,11 +80,11 @@ main(int argc, char *argv[])
         }
 
         printf("%s\n", argv[0]);
- run_benchmark(libgrapheme, &p, "libgrapheme ", NULL,
- "byte", &baseline, NUM_ITERATIONS, p.buflen);
+ run_benchmark(libgrapheme, &p, "libgrapheme ", NULL, "byte", &baseline,
+ NUM_ITERATIONS, p.buflen);
         run_benchmark(libutf8proc, &p, "libutf8proc ",
- "but unsafe (does not detect overlong encodings)",
- "byte", &baseline, NUM_ITERATIONS, p.buflen);
+ "but unsafe (does not detect overlong encodings)", "byte",
+ &baseline, NUM_ITERATIONS, p.buflen);
 
         free(p.buf);
         free(p.buf_utf8proc);
diff --git a/benchmark/util.c b/benchmark/util.c
index 5f85874..94531bb 100644
--- a/benchmark/util.c
+++ b/benchmark/util.c
_AT_@ -1,7 +1,7 @@
 /* See LICENSE file for copyright and license details. */
 #include <math.h>
-#include <stdlib.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <time.h>
 
 #include "../gen/types.h"
_AT_@ -20,7 +20,8 @@ generate_cp_test_buffer(const struct break_test *test, size_t testlen,
                 *buflen += test[i].cplen;
         }
         if (!(buf = calloc(*buflen, sizeof(*buf)))) {
- fprintf(stderr, "generate_test_buffer: calloc: Out of memory.\n");
+ fprintf(stderr,
+ "generate_test_buffer: calloc: Out of memory.\n");
                 exit(1);
         }
         for (i = 0, off = 0; i < testlen; i++) {
_AT_@ -48,18 +49,18 @@ generate_utf8_test_buffer(const struct break_test *test, size_t testlen,
         }
         (*buflen)++; /* terminating NUL-byte */
         if (!(buf = malloc(*buflen))) {
- fprintf(stderr, "generate_test_buffer: malloc: Out of memory.\n");
+ fprintf(stderr,
+ "generate_test_buffer: malloc: Out of memory.\n");
                 exit(1);
         }
         for (i = 0, off = 0; i < testlen; i++) {
                 for (j = 0; j < test[i].cplen; j++, off += ret) {
- if ((ret = grapheme_encode_utf8(test[i].cp[j],
- buf + off,
- *buflen - off)) >
+ if ((ret = grapheme_encode_utf8(
+ test[i].cp[j], buf + off, *buflen - off)) >
                             (*buflen - off)) {
                                 /* shouldn't happen */
                                 fprintf(stderr, "generate_utf8_test_buffer: "
- "Buffer too small.\n");
+ "Buffer too small.\n");
                                 exit(1);
                         }
                 }
_AT_@ -77,10 +78,9 @@ time_diff(struct timespec *a, struct timespec *b)
 }
 
 void
-run_benchmark(void (*func)(const void *), const void *payload,
- const char *name, const char *comment, const char *unit,
- double *baseline, size_t num_iterations,
- size_t units_per_iteration)
+run_benchmark(void (*func)(const void *), const void *payload, const char *name,
+ const char *comment, const char *unit, double *baseline,
+ size_t num_iterations, size_t units_per_iteration)
 {
         struct timespec start, end;
         size_t i;
_AT_@ -109,7 +109,6 @@ run_benchmark(void (*func)(const void *), const void *payload,
                 printf(" avg. %.3es/%s (%.2f%% %s%s%s)\n", diff, unit,
                        fabs(1.0 - diff / *baseline) * 100,
                        (diff < *baseline) ? "faster" : "slower",
- comment ? ", " : "",
- comment ? comment : "");
+ comment ? ", " : "", comment ? comment : "");
         }
 }
diff --git a/benchmark/util.h b/benchmark/util.h
index 653d9da..ab9e5d9 100644
--- a/benchmark/util.h
+++ b/benchmark/util.h
_AT_@ -7,10 +7,10 @@
 #define LEN(x) (sizeof(x) / sizeof(*(x)))
 
 #ifdef __has_attribute
- #if __has_attribute(optnone)
- void libgrapheme(const void *) __attribute__((optnone));
- void libutf8proc(const void *) __attribute__((optnone));
- #endif
+#if __has_attribute(optnone)
+void libgrapheme(const void *) __attribute__((optnone));
+void libutf8proc(const void *) __attribute__((optnone));
+#endif
 #endif
 
 uint_least32_t *generate_cp_test_buffer(const struct break_test *, size_t,
diff --git a/benchmark/word.c b/benchmark/word.c
index c32be0e..56767c1 100644
--- a/benchmark/word.c
+++ b/benchmark/word.c
_AT_@ -6,8 +6,8 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "../grapheme.h"
 #include "../gen/word-test.h"
+#include "../grapheme.h"
 #include "util.h"
 
 #define NUM_ITERATIONS 10000
_AT_@ -23,7 +23,7 @@ libgrapheme(const void *payload)
         const struct break_benchmark_payload *p = payload;
         size_t off;
 
- for (off = 0; off < p->buflen; ) {
+ for (off = 0; off < p->buflen;) {
                 off += grapheme_next_word_break(p->buf + off, p->buflen - off);
         }
 }
diff --git a/gen/bidirectional-test.c b/gen/bidirectional-test.c
index 848db7b..03d9b51 100644
--- a/gen/bidirectional-test.c
+++ b/gen/bidirectional-test.c
_AT_@ -3,8 +3,8 @@
 #include <inttypes.h>
 #include <stddef.h>
 #include <stdio.h>
-#include <string.h>
 #include <stdlib.h>
+#include <string.h>
 
 #include "../grapheme.h"
 #include "util.h"
_AT_@ -23,29 +23,29 @@ static const struct {
         const char *class;
         const uint_least32_t cp;
 } classcpmap[] = {
- { .class = "L", .cp = UINT32_C(0x0041) },
- { .class = "AL", .cp = UINT32_C(0x0608) },
- { .class = "AN", .cp = UINT32_C(0x0600) },
- { .class = "B", .cp = UINT32_C(0x000A) },
- { .class = "BN", .cp = UINT32_C(0x0000) },
- { .class = "CS", .cp = UINT32_C(0x002C) },
- { .class = "EN", .cp = UINT32_C(0x0030) },
- { .class = "ES", .cp = UINT32_C(0x002B) },
- { .class = "ET", .cp = UINT32_C(0x0023) },
+ { .class = "L", .cp = UINT32_C(0x0041) },
+ { .class = "AL", .cp = UINT32_C(0x0608) },
+ { .class = "AN", .cp = UINT32_C(0x0600) },
+ { .class = "B", .cp = UINT32_C(0x000A) },
+ { .class = "BN", .cp = UINT32_C(0x0000) },
+ { .class = "CS", .cp = UINT32_C(0x002C) },
+ { .class = "EN", .cp = UINT32_C(0x0030) },
+ { .class = "ES", .cp = UINT32_C(0x002B) },
+ { .class = "ET", .cp = UINT32_C(0x0023) },
         { .class = "FSI", .cp = UINT32_C(0x2068) },
         { .class = "LRE", .cp = UINT32_C(0x202A) },
         { .class = "LRI", .cp = UINT32_C(0x2066) },
         { .class = "LRO", .cp = UINT32_C(0x202D) },
         { .class = "NSM", .cp = UINT32_C(0x0300) },
- { .class = "ON", .cp = UINT32_C(0x0021) },
+ { .class = "ON", .cp = UINT32_C(0x0021) },
         { .class = "PDF", .cp = UINT32_C(0x202C) },
         { .class = "PDI", .cp = UINT32_C(0x2069) },
- { .class = "R", .cp = UINT32_C(0x05BE) },
+ { .class = "R", .cp = UINT32_C(0x05BE) },
         { .class = "RLE", .cp = UINT32_C(0x202B) },
         { .class = "RLI", .cp = UINT32_C(0x2067) },
         { .class = "RLO", .cp = UINT32_C(0x202E) },
- { .class = "S", .cp = UINT32_C(0x0009) },
- { .class = "WS", .cp = UINT32_C(0x000C) },
+ { .class = "S", .cp = UINT32_C(0x0009) },
+ { .class = "WS", .cp = UINT32_C(0x000C) },
 };
 
 static int
_AT_@ -59,7 +59,8 @@ classtocp(const char *str, size_t len, uint_least32_t *cp)
                         return 0;
                 }
         }
- fprintf(stderr, "classtocp: unknown class string '%.*s'.\n", (int)len, str);
+ fprintf(stderr, "classtocp: unknown class string '%.*s'.\n", (int)len,
+ str);
 
         return 1;
 }
_AT_@ -77,8 +78,10 @@ parse_class_list(const char *str, uint_least32_t **cp, size_t *cplen)
         }
 
         /* count the number of spaces in the string and infer list length */
- for (count = 1, tmp1 = str; (tmp2 = strchr(tmp1, ' ')) != NULL; count++, tmp1 = tmp2 + 1)
+ for (count = 1, tmp1 = str; (tmp2 = strchr(tmp1, ' ')) != NULL;
+ count++, tmp1 = tmp2 + 1) {
                 ;
+ }
 
         /* allocate resources */
         if (!(*cp = calloc((*cplen = count), sizeof(**cp)))) {
_AT_@ -89,7 +92,8 @@ parse_class_list(const char *str, uint_least32_t **cp, size_t *cplen)
         /* go through the string again, parsing the classes */
         for (i = 0, tmp1 = tmp2 = str; tmp2 != NULL; i++) {
                 tmp2 = strchr(tmp1, ' ');
- if (classtocp(tmp1, tmp2 ? (size_t)(tmp2 - tmp1) : strlen(tmp1), &((*cp)[i]))) {
+ if (classtocp(tmp1, tmp2 ? (size_t)(tmp2 - tmp1) : strlen(tmp1),
+ &((*cp)[i]))) {
                         return 1;
                 }
                 if (tmp2 != NULL) {
_AT_@ -135,12 +139,10 @@ strtolevel(const char *str, size_t len, int_least8_t *level)
                 if (str[0] != '1') {
                         goto toolarge;
                 }
- *level = (str[0] - '0') * 100 +
- (str[1] - '0') * 10 +
- (str[2] - '0');
+ *level = (str[0] - '0') * 100 + (str[1] - '0') * 10 +
+ (str[2] - '0');
         } else if (len == 2) {
- *level = (str[0] - '0') * 10 +
- (str[1] - '0');
+ *level = (str[0] - '0') * 10 + (str[1] - '0');
         } else if (len == 1) {
                 *level = (str[0] - '0');
         } else { /* len == 0 */
_AT_@ -149,8 +151,7 @@ strtolevel(const char *str, size_t len, int_least8_t *level)
 
         return 0;
 toolarge:
- fprintf(stderr, "hextocp: '%.*s' is too large.\n",
- (int)len, str);
+ fprintf(stderr, "hextocp: '%.*s' is too large.\n", (int)len, str);
         return 1;
 }
 
_AT_@ -167,8 +168,10 @@ parse_level_list(const char *str, int_least8_t **level, size_t *levellen)
         }
 
         /* count the number of spaces in the string and infer list length */
- for (count = 1, tmp1 = str; (tmp2 = strchr(tmp1, ' ')) != NULL; count++, tmp1 = tmp2 + 1)
+ for (count = 1, tmp1 = str; (tmp2 = strchr(tmp1, ' ')) != NULL;
+ count++, tmp1 = tmp2 + 1) {
                 ;
+ }
 
         /* allocate resources */
         if (!(*level = calloc((*levellen = count), sizeof(**level)))) {
_AT_@ -179,7 +182,9 @@ parse_level_list(const char *str, int_least8_t **level, size_t *levellen)
         /* go through the string again, parsing the levels */
         for (i = 0, tmp1 = tmp2 = str; tmp2 != NULL; i++) {
                 tmp2 = strchr(tmp1, ' ');
- if (strtolevel(tmp1, tmp2 ? (size_t)(tmp2 - tmp1) : strlen(tmp1), &((*level)[i]))) {
+ if (strtolevel(tmp1,
+ tmp2 ? (size_t)(tmp2 - tmp1) : strlen(tmp1),
+ &((*level)[i]))) {
                         return 1;
                 }
                 if (tmp2 != NULL) {
_AT_@ -199,7 +204,8 @@ bidirectional_test_list_print(const struct bidirectional_test *test,
 
         printf("/* Automatically generated by %s */\n"
                "#include <stdint.h>\n#include <stddef.h>\n\n"
- "#include \"../grapheme.h\"\n\n", progname);
+ "#include \"../grapheme.h\"\n\n",
+ progname);
 
         printf("static const struct {\n"
                "\tuint_least32_t *cp;\n"
_AT_@ -208,7 +214,8 @@ bidirectional_test_list_print(const struct bidirectional_test *test,
                "\tsize_t modelen;\n"
                "\tint_least8_t *level;\n"
                "\tint_least8_t *reorder;\n"
- "\tsize_t reorderlen;\n} %s[] = {\n", identifier);
+ "\tsize_t reorderlen;\n} %s[] = {\n",
+ identifier);
         for (i = 0; i < testlen; i++) {
                 printf("\t{\n");
 
_AT_@ -222,11 +229,13 @@ bidirectional_test_list_print(const struct bidirectional_test *test,
                 printf(" },\n");
                 printf("\t\t.cplen = %zu,\n", test[i].cplen);
 
- printf("\t\t.mode = (enum grapheme_bidirectional_override[]){");
+ printf("\t\t.mode = (enum "
+ "grapheme_bidirectional_override[]){");
                 for (j = 0; j < test[i].modelen; j++) {
                         if (test[i].mode[j] ==
                             GRAPHEME_BIDIRECTIONAL_OVERRIDE_NEUTRAL) {
- printf(" GRAPHEME_BIDIRECTIONAL_OVERRIDE_NEUTRAL");
+ printf(" GRAPHEME_BIDIRECTIONAL_OVERRIDE_"
+ "NEUTRAL");
                         } else if (test[i].mode[j] ==
                                    GRAPHEME_BIDIRECTIONAL_OVERRIDE_LTR) {
                                 printf(" GRAPHEME_BIDIRECTIONAL_OVERRIDE_LTR");
_AT_@ -279,8 +288,8 @@ static int_least8_t *current_reorder;
 static size_t current_reorder_len;
 
 static int
-test_callback(const char *file, char **field, size_t nfields,
- char *comment, void *payload)
+test_callback(const char *file, char **field, size_t nfields, char *comment,
+ void *payload)
 {
         char *tmp;
 
_AT_@ -292,23 +301,31 @@ test_callback(const char *file, char **field, size_t nfields,
         if (nfields > 0 && field[0][0] == '_AT_') {
                 if (!strncmp(field[0], "_AT_Levels:", sizeof("@Levels:") - 1)) {
                         tmp = field[0] + sizeof("_AT_Levels:") - 1;
- for (; *tmp != '\0' && (*tmp == ' ' || *tmp == '\t'); tmp++)
+ for (; *tmp != '\0' && (*tmp == ' ' || *tmp == '\t');
+ tmp++) {
                                 ;
+ }
                         free(current_level);
- parse_level_list(tmp, &current_level, &current_level_len);
- } else if (!strncmp(field[0], "_AT_Reorder:", sizeof("@Reorder:") - 1)) {
+ parse_level_list(tmp, &current_level,
+ &current_level_len);
+ } else if (!strncmp(field[0],
+ "_AT_Reorder:", sizeof("@Reorder:") - 1)) {
                         tmp = field[0] + sizeof("_AT_Reorder:") - 1;
- for (; *tmp != '\0' && (*tmp == ' ' || *tmp == '\t'); tmp++)
+ for (; *tmp != '\0' && (*tmp == ' ' || *tmp == '\t');
+ tmp++) {
                                 ;
+ }
                         free(current_reorder);
- parse_level_list(tmp, &current_reorder, &current_reorder_len);
+ parse_level_list(tmp, &current_reorder,
+ &current_reorder_len);
                 } else {
                         fprintf(stderr, "Unknown _AT_-input-line.\n");
                         exit(1);
                 }
         } else {
                 if (nfields < 2) {
- /* discard any line that does not have at least 2 fields */
+ /* discard any line that does not have at least 2 fields
+ */
                         return 0;
                 }
 
_AT_@ -321,26 +338,33 @@ test_callback(const char *file, char **field, size_t nfields,
                 /* parse field data */
                 parse_class_list(field[0], &(test[testlen - 1].cp),
                                  &(test[testlen - 1].cplen));
-
+
                 /* copy current level- and reorder-arrays */
- if (!(test[testlen - 1].level = calloc(current_level_len, sizeof(*(test[testlen - 1].level))))) {
+ if (!(test[testlen - 1].level =
+ calloc(current_level_len,
+ sizeof(*(test[testlen - 1].level))))) {
                         fprintf(stderr, "calloc: %s\n", strerror(errno));
                         exit(1);
                 }
- memcpy(test[testlen - 1].level, current_level, current_level_len * sizeof(*(test[testlen - 1].level)));
+ memcpy(test[testlen - 1].level, current_level,
+ current_level_len * sizeof(*(test[testlen - 1].level)));
 
- if (!(test[testlen - 1].reorder = calloc(current_reorder_len, sizeof(*(test[testlen - 1].reorder))))) {
+ if (!(test[testlen - 1].reorder =
+ calloc(current_reorder_len,
+ sizeof(*(test[testlen - 1].reorder))))) {
                         fprintf(stderr, "calloc: %s\n", strerror(errno));
                         exit(1);
                 }
                 if (current_reorder != NULL) {
                         memcpy(test[testlen - 1].reorder, current_reorder,
- current_reorder_len * sizeof(*(test[testlen - 1].reorder)));
+ current_reorder_len *
+ sizeof(*(test[testlen - 1].reorder)));
                 }
                 test[testlen - 1].reorderlen = current_reorder_len;
-
+
                 if (current_level_len != test[testlen - 1].cplen) {
- fprintf(stderr, "mismatch between string and level lengths.\n");
+ fprintf(stderr,
+ "mismatch between string and level lengths.\n");
                         exit(1);
                 }
 
_AT_@ -349,27 +373,38 @@ test_callback(const char *file, char **field, size_t nfields,
                         fprintf(stderr, "malformed paragraph-level-bitset.\n");
                         exit(1);
                 } else if (field[1][0] == '2') {
- test[testlen - 1].mode[0] = GRAPHEME_BIDIRECTIONAL_OVERRIDE_LTR;
+ test[testlen - 1].mode[0] =
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_LTR;
                         test[testlen - 1].modelen = 1;
                 } else if (field[1][0] == '3') {
                         /* auto=0 and LTR=1 */
- test[testlen - 1].mode[0] = GRAPHEME_BIDIRECTIONAL_OVERRIDE_NEUTRAL;
- test[testlen - 1].mode[1] = GRAPHEME_BIDIRECTIONAL_OVERRIDE_LTR;
+ test[testlen - 1].mode[0] =
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_NEUTRAL;
+ test[testlen - 1].mode[1] =
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_LTR;
                         test[testlen - 1].modelen = 2;
                 } else if (field[1][0] == '4') {
- test[testlen - 1].mode[0] = GRAPHEME_BIDIRECTIONAL_OVERRIDE_RTL;
+ test[testlen - 1].mode[0] =
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_RTL;
                         test[testlen - 1].modelen = 1;
- } else if (field[1][0] == '5') {
- test[testlen - 1].mode[0] = GRAPHEME_BIDIRECTIONAL_OVERRIDE_NEUTRAL;
- test[testlen - 1].mode[1] = GRAPHEME_BIDIRECTIONAL_OVERRIDE_RTL;
+ } else if (field[1][0] == '5') {
+ test[testlen - 1].mode[0] =
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_NEUTRAL;
+ test[testlen - 1].mode[1] =
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_RTL;
                         test[testlen - 1].modelen = 2;
                 } else if (field[1][0] == '7') {
- test[testlen - 1].mode[0] = GRAPHEME_BIDIRECTIONAL_OVERRIDE_NEUTRAL;
- test[testlen - 1].mode[1] = GRAPHEME_BIDIRECTIONAL_OVERRIDE_LTR;
- test[testlen - 1].mode[2] = GRAPHEME_BIDIRECTIONAL_OVERRIDE_RTL;
+ test[testlen - 1].mode[0] =
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_NEUTRAL;
+ test[testlen - 1].mode[1] =
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_LTR;
+ test[testlen - 1].mode[2] =
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_RTL;
                         test[testlen - 1].modelen = 3;
                 } else {
- fprintf(stderr, "unhandled paragraph-level-bitset %s.\n", field[1]);
+ fprintf(stderr,
+ "unhandled paragraph-level-bitset %s.\n",
+ field[1]);
                         exit(1);
                 }
         }
_AT_@ -414,7 +449,8 @@ character_test_callback(const char *file, char **field, size_t nfields,
         } else if (field[1][0] == '1') {
                 test[testlen - 1].mode[0] = GRAPHEME_BIDIRECTIONAL_OVERRIDE_RTL;
         } else if (field[1][0] == '2') {
- test[testlen - 1].mode[0] = GRAPHEME_BIDIRECTIONAL_OVERRIDE_NEUTRAL;
+ test[testlen - 1].mode[0] =
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_NEUTRAL;
         } else {
                 fprintf(stderr, "unhandled paragraph-level-setting.\n");
                 exit(1);
diff --git a/gen/bidirectional.c b/gen/bidirectional.c
index 1b51200..88a05d1 100644
--- a/gen/bidirectional.c
+++ b/gen/bidirectional.c
_AT_@ -15,118 +15,118 @@ static const struct property_spec bidi_property[] = {
         {
                 /* default */
                 .enumname = "L",
- .file = FILE_BIDI_CLASS,
- .ucdname = "L",
+ .file = FILE_BIDI_CLASS,
+ .ucdname = "L",
         },
         {
                 .enumname = "AL",
- .file = FILE_BIDI_CLASS,
- .ucdname = "AL",
+ .file = FILE_BIDI_CLASS,
+ .ucdname = "AL",
         },
         {
                 .enumname = "AN",
- .file = FILE_BIDI_CLASS,
- .ucdname = "AN",
+ .file = FILE_BIDI_CLASS,
+ .ucdname = "AN",
         },
         {
                 .enumname = "B",
- .file = FILE_BIDI_CLASS,
- .ucdname = "B",
+ .file = FILE_BIDI_CLASS,
+ .ucdname = "B",
         },
         {
                 .enumname = "BN",
- .file = FILE_BIDI_CLASS,
- .ucdname = "BN",
+ .file = FILE_BIDI_CLASS,
+ .ucdname = "BN",
         },
         {
                 .enumname = "CS",
- .file = FILE_BIDI_CLASS,
- .ucdname = "CS",
+ .file = FILE_BIDI_CLASS,
+ .ucdname = "CS",
         },
         {
                 .enumname = "EN",
- .file = FILE_BIDI_CLASS,
- .ucdname = "EN",
+ .file = FILE_BIDI_CLASS,
+ .ucdname = "EN",
         },
         {
                 .enumname = "ES",
- .file = FILE_BIDI_CLASS,
- .ucdname = "ES",
+ .file = FILE_BIDI_CLASS,
+ .ucdname = "ES",
         },
         {
                 .enumname = "ET",
- .file = FILE_BIDI_CLASS,
- .ucdname = "ET",
+ .file = FILE_BIDI_CLASS,
+ .ucdname = "ET",
         },
         {
                 .enumname = "FSI",
- .file = FILE_BIDI_CLASS,
- .ucdname = "FSI",
+ .file = FILE_BIDI_CLASS,
+ .ucdname = "FSI",
         },
         {
                 .enumname = "LRE",
- .file = FILE_BIDI_CLASS,
- .ucdname = "LRE",
+ .file = FILE_BIDI_CLASS,
+ .ucdname = "LRE",
         },
         {
                 .enumname = "LRI",
- .file = FILE_BIDI_CLASS,
- .ucdname = "LRI",
+ .file = FILE_BIDI_CLASS,
+ .ucdname = "LRI",
         },
         {
                 .enumname = "LRO",
- .file = FILE_BIDI_CLASS,
- .ucdname = "LRO",
+ .file = FILE_BIDI_CLASS,
+ .ucdname = "LRO",
         },
         {
                 .enumname = "NSM",
- .file = FILE_BIDI_CLASS,
- .ucdname = "NSM",
+ .file = FILE_BIDI_CLASS,
+ .ucdname = "NSM",
         },
         {
                 .enumname = "ON",
- .file = FILE_BIDI_CLASS,
- .ucdname = "ON",
+ .file = FILE_BIDI_CLASS,
+ .ucdname = "ON",
         },
         {
                 .enumname = "PDF",
- .file = FILE_BIDI_CLASS,
- .ucdname = "PDF",
+ .file = FILE_BIDI_CLASS,
+ .ucdname = "PDF",
         },
         {
                 .enumname = "PDI",
- .file = FILE_BIDI_CLASS,
- .ucdname = "PDI",
+ .file = FILE_BIDI_CLASS,
+ .ucdname = "PDI",
         },
         {
                 .enumname = "R",
- .file = FILE_BIDI_CLASS,
- .ucdname = "R",
+ .file = FILE_BIDI_CLASS,
+ .ucdname = "R",
         },
         {
                 .enumname = "RLE",
- .file = FILE_BIDI_CLASS,
- .ucdname = "RLE",
+ .file = FILE_BIDI_CLASS,
+ .ucdname = "RLE",
         },
         {
                 .enumname = "RLI",
- .file = FILE_BIDI_CLASS,
- .ucdname = "RLI",
+ .file = FILE_BIDI_CLASS,
+ .ucdname = "RLI",
         },
         {
                 .enumname = "RLO",
- .file = FILE_BIDI_CLASS,
- .ucdname = "RLO",
+ .file = FILE_BIDI_CLASS,
+ .ucdname = "RLO",
         },
         {
                 .enumname = "S",
- .file = FILE_BIDI_CLASS,
- .ucdname = "S",
+ .file = FILE_BIDI_CLASS,
+ .ucdname = "S",
         },
         {
                 .enumname = "WS",
- .file = FILE_BIDI_CLASS,
- .ucdname = "WS",
+ .file = FILE_BIDI_CLASS,
+ .ucdname = "WS",
         },
 };
 
_AT_@ -135,11 +135,12 @@ static struct {
         uint_least32_t cp_pair;
         char type;
 } *b = NULL;
+
 static size_t blen;
 
 static int
-bracket_callback(const char *file, char **field, size_t nfields,
- char *comment, void *payload)
+bracket_callback(const char *file, char **field, size_t nfields, char *comment,
+ void *payload)
 {
         (void)file;
         (void)comment;
_AT_@ -189,11 +190,12 @@ post_process(struct properties *prop)
 }
 
 static uint_least8_t
-fill_missing(uint_least32_t cp) {
+fill_missing(uint_least32_t cp)
+{
         /* based on the _AT_missing-properties in data/DerivedBidiClass.txt */
- if ((cp >= UINT32_C(0x0590) && cp <= UINT32_C(0x05FF)) ||
- (cp >= UINT32_C(0x07C0) && cp <= UINT32_C(0x085F)) ||
- (cp >= UINT32_C(0xFB1D) && cp <= UINT32_C(0xFB4F)) ||
+ if ((cp >= UINT32_C(0x0590) && cp <= UINT32_C(0x05FF)) ||
+ (cp >= UINT32_C(0x07C0) && cp <= UINT32_C(0x085F)) ||
+ (cp >= UINT32_C(0xFB1D) && cp <= UINT32_C(0xFB4F)) ||
             (cp >= UINT32_C(0x10800) && cp <= UINT32_C(0x10CFF)) ||
             (cp >= UINT32_C(0x10D40) && cp <= UINT32_C(0x10EBF)) ||
             (cp >= UINT32_C(0x10F00) && cp <= UINT32_C(0x10F2F)) ||
_AT_@ -203,22 +205,22 @@ fill_missing(uint_least32_t cp) {
             (cp >= UINT32_C(0x1ED50) && cp <= UINT32_C(0x1EDFF)) ||
             (cp >= UINT32_C(0x1EF00) && cp <= UINT32_C(0x1EFFF))) {
                 return 17; /* class R */
- } else if ((cp >= UINT32_C(0x0600) && cp <= UINT32_C(0x07BF)) ||
- (cp >= UINT32_C(0x0860) && cp <= UINT32_C(0x08FF)) ||
- (cp >= UINT32_C(0xFB50) && cp <= UINT32_C(0xFDCF)) ||
- (cp >= UINT32_C(0xFDF0) && cp <= UINT32_C(0xFDFF)) ||
- (cp >= UINT32_C(0xFE70) && cp <= UINT32_C(0xFEFF)) ||
+ } else if ((cp >= UINT32_C(0x0600) && cp <= UINT32_C(0x07BF)) ||
+ (cp >= UINT32_C(0x0860) && cp <= UINT32_C(0x08FF)) ||
+ (cp >= UINT32_C(0xFB50) && cp <= UINT32_C(0xFDCF)) ||
+ (cp >= UINT32_C(0xFDF0) && cp <= UINT32_C(0xFDFF)) ||
+ (cp >= UINT32_C(0xFE70) && cp <= UINT32_C(0xFEFF)) ||
                    (cp >= UINT32_C(0x10D00) && cp <= UINT32_C(0x10D3F)) ||
                    (cp >= UINT32_C(0x10EC0) && cp <= UINT32_C(0x10EFF)) ||
- (cp >= UINT32_C(0x10F30) && cp <= UINT32_C(0x10F6F)) ||
+ (cp >= UINT32_C(0x10F30) && cp <= UINT32_C(0x10F6F)) ||
                    (cp >= UINT32_C(0x1EC70) && cp <= UINT32_C(0x1ECBF)) ||
                    (cp >= UINT32_C(0x1ED00) && cp <= UINT32_C(0x1ED4F)) ||
                    (cp >= UINT32_C(0x1EE00) && cp <= UINT32_C(0x1EEFF))) {
- return 1; /* class AL */
+ return 1; /* class AL */
         } else if (cp >= UINT32_C(0x20A0) && cp <= UINT32_C(0x20CF)) {
- return 8; /* class ET */
+ return 8; /* class ET */
         } else {
- return 0; /* class L */
+ return 0; /* class L */
         }
 }
 
_AT_@ -238,13 +240,11 @@ main(int argc, char *argv[])
                 fprintf(stderr, "calloc: %s\n", strerror(errno));
                 exit(1);
         }
- parse_file_with_callback(FILE_BIDI_BRACKETS, bracket_callback,
- NULL);
+ parse_file_with_callback(FILE_BIDI_BRACKETS, bracket_callback, NULL);
 
- properties_generate_break_property(bidi_property,
- LEN(bidi_property), fill_missing,
- NULL, post_process, "bidi",
- argv[0]);
+ properties_generate_break_property(bidi_property, LEN(bidi_property),
+ fill_missing, NULL, post_process,
+ "bidi", argv[0]);
 
         printf("\nenum bracket_type {\n\tBIDI_BRACKET_NONE,\n\t"
                "BIDI_BRACKET_OPEN,\n\tBIDI_BRACKET_CLOSE,\n};\n\n"
_AT_@ -252,10 +252,12 @@ main(int argc, char *argv[])
                "\tuint_least32_t pair;\n};\n\n"
                "static const struct bracket bidi_bracket[] = {\n");
         for (i = 0; i < blen; i++) {
- printf("\t{\n\t\t.type = %s,\n\t\t.pair = UINT32_C(0x%06X),\n\t},\n",
- (b[i].type == 'o') ? "BIDI_BRACKET_OPEN" :
- (b[i].type == 'c') ? "BIDI_BRACKET_CLOSE" : "BIDI_BRACKET_NONE",
- b[i].cp_pair);
+ printf("\t{\n\t\t.type = %s,\n\t\t.pair = "
+ "UINT32_C(0x%06X),\n\t},\n",
+ (b[i].type == 'o') ? "BIDI_BRACKET_OPEN" :
+ (b[i].type == 'c') ? "BIDI_BRACKET_CLOSE" :
+ "BIDI_BRACKET_NONE",
+ b[i].cp_pair);
         }
         printf("};\n");
 
diff --git a/gen/case.c b/gen/case.c
index 836c1c0..cbae53c 100644
--- a/gen/case.c
+++ b/gen/case.c
_AT_@ -12,28 +12,28 @@
 static const struct property_spec case_property[] = {
         {
                 .enumname = "OTHER",
- .file = NULL,
- .ucdname = NULL,
+ .file = NULL,
+ .ucdname = NULL,
         },
         {
                 .enumname = "BOTH_CASED_CASE_IGNORABLE",
- .file = NULL,
- .ucdname = NULL,
+ .file = NULL,
+ .ucdname = NULL,
         },
- {
+ {
                 .enumname = "CASED",
- .file = FILE_DCP,
- .ucdname = "Cased",
+ .file = FILE_DCP,
+ .ucdname = "Cased",
         },
         {
                 .enumname = "CASE_IGNORABLE",
- .file = FILE_DCP,
- .ucdname = "Case_Ignorable",
+ .file = FILE_DCP,
+ .ucdname = "Case_Ignorable",
         },
         {
                 .enumname = "UNCASED",
- .file = FILE_DCP,
- .ucdname = "Uncased",
+ .file = FILE_DCP,
+ .ucdname = "Uncased",
         },
 };
 
_AT_@ -67,12 +67,14 @@ handle_conflict(uint_least32_t cp, uint_least8_t prop1, uint_least8_t prop2)
 }
 
 static struct properties *prop_upper = NULL, *prop_lower, *prop_title;
+
 static struct special_case {
         struct {
                 uint_least32_t *cp;
                 size_t cplen;
         } upper, lower, title;
 } *sc = NULL;
+
 static size_t sclen = 0;
 
 static int
_AT_@ -89,9 +91,12 @@ unicodedata_callback(const char *file, char **field, size_t nfields,
 
         upper = lower = title = cp;
 
- if ((strlen(field[12]) > 0 && hextocp(field[12], strlen(field[12]), &upper)) ||
- (strlen(field[13]) > 0 && hextocp(field[13], strlen(field[13]), &lower)) ||
- (nfields >= 15 && strlen(field[14]) > 0 && hextocp(field[14], strlen(field[14]), &title))) {
+ if ((strlen(field[12]) > 0 &&
+ hextocp(field[12], strlen(field[12]), &upper)) ||
+ (strlen(field[13]) > 0 &&
+ hextocp(field[13], strlen(field[13]), &lower)) ||
+ (nfields >= 15 && strlen(field[14]) > 0 &&
+ hextocp(field[14], strlen(field[14]), &title))) {
                 return 1;
         }
 
_AT_@ -126,7 +131,7 @@ specialcasing_callback(const char *file, char **field, size_t nfields,
         /* extend special case array */
         if (!(sc = realloc(sc, (++sclen) * sizeof(*sc)))) {
                 fprintf(stderr, "realloc: %s\n", strerror(errno));
- exit(1);
+ exit(1);
         }
 
         /* parse field data */
_AT_@ -142,9 +147,12 @@ specialcasing_callback(const char *file, char **field, size_t nfields,
          * special value 0x110000 + (offset in special case array),
          * even if the special case has length 1
          */
- prop_upper[cp].property = (int_least64_t)(UINT32_C(0x110000) + (sclen - 1));
- prop_lower[cp].property = (int_least64_t)(UINT32_C(0x110000) + (sclen - 1));
- prop_title[cp].property = (int_least64_t)(UINT32_C(0x110000) + (sclen - 1));
+ prop_upper[cp].property =
+ (int_least64_t)(UINT32_C(0x110000) + (sclen - 1));
+ prop_lower[cp].property =
+ (int_least64_t)(UINT32_C(0x110000) + (sclen - 1));
+ prop_title[cp].property =
+ (int_least64_t)(UINT32_C(0x110000) + (sclen - 1));
 
         return 0;
 }
_AT_@ -165,9 +173,8 @@ main(int argc, char *argv[])
         (void)argc;
 
         /* generate case property table from the specification */
- properties_generate_break_property(case_property,
- LEN(case_property), NULL,
- handle_conflict, NULL, "case",
+ properties_generate_break_property(case_property, LEN(case_property),
+ NULL, handle_conflict, NULL, "case",
                                            argv[0]);
 
         /*
_AT_@ -186,38 +193,46 @@ main(int argc, char *argv[])
         }
         parse_file_with_callback("data/UnicodeData.txt", unicodedata_callback,
                                  NULL);
- parse_file_with_callback("data/SpecialCasing.txt", specialcasing_callback,
- NULL);
+ parse_file_with_callback("data/SpecialCasing.txt",
+ specialcasing_callback, NULL);
 
         /* compress properties */
         properties_compress(prop_upper, &comp_upper);
         properties_compress(prop_lower, &comp_lower);
         properties_compress(prop_title, &comp_title);
 
- fprintf(stderr, "%s: LUT compression-ratios: upper=%.2f%%, lower=%.2f%%, title=%.2f%%\n",
+ fprintf(stderr,
+ "%s: LUT compression-ratios: upper=%.2f%%, lower=%.2f%%, "
+ "title=%.2f%%\n",
                 argv[0], properties_get_major_minor(&comp_upper, &mm_upper),
                 properties_get_major_minor(&comp_lower, &mm_lower),
                 properties_get_major_minor(&comp_title, &mm_title));
 
         /* print tables */
- printf("/* Automatically generated by %s */\n#include <stdint.h>\n#include <stddef.h>\n\n", argv[0]);
+ printf("/* Automatically generated by %s */\n#include "
+ "<stdint.h>\n#include <stddef.h>\n\n",
+ argv[0]);
 
- printf("struct special_case {\n\tuint_least32_t *cp;\n\tsize_t cplen;\n};\n\n");
+ printf("struct special_case {\n\tuint_least32_t *cp;\n\tsize_t "
+ "cplen;\n};\n\n");
 
         properties_print_lookup_table("upper_major", mm_upper.major, 0x1100);
         printf("\n");
- properties_print_derived_lookup_table("upper_minor", "int_least32_t", mm_upper.minor,
- mm_upper.minorlen, get_value, comp_upper.data);
+ properties_print_derived_lookup_table("upper_minor", "int_least32_t",
+ mm_upper.minor, mm_upper.minorlen,
+ get_value, comp_upper.data);
         printf("\n");
         properties_print_lookup_table("lower_major", mm_lower.major, 0x1100);
         printf("\n");
- properties_print_derived_lookup_table("lower_minor", "int_least32_t", mm_lower.minor,
- mm_lower.minorlen, get_value, comp_lower.data);
+ properties_print_derived_lookup_table("lower_minor", "int_least32_t",
+ mm_lower.minor, mm_lower.minorlen,
+ get_value, comp_lower.data);
         printf("\n");
         properties_print_lookup_table("title_major", mm_title.major, 0x1100);
         printf("\n");
- properties_print_derived_lookup_table("title_minor", "int_least32_t", mm_title.minor,
- mm_title.minorlen, get_value, comp_title.data);
+ properties_print_derived_lookup_table("title_minor", "int_least32_t",
+ mm_title.minor, mm_title.minorlen,
+ get_value, comp_title.data);
         printf("\n");
 
         printf("static const struct special_case upper_special[] = {\n");
diff --git a/gen/character.c b/gen/character.c
index 2643c7a..717d01e 100644
--- a/gen/character.c
+++ b/gen/character.c
_AT_@ -9,78 +9,78 @@
 static const struct property_spec char_break_property[] = {
         {
                 .enumname = "OTHER",
- .file = NULL,
- .ucdname = NULL,
+ .file = NULL,
+ .ucdname = NULL,
         },
         {
                 .enumname = "CONTROL",
- .file = FILE_GRAPHEME,
- .ucdname = "Control",
+ .file = FILE_GRAPHEME,
+ .ucdname = "Control",
         },
         {
                 .enumname = "CR",
- .file = FILE_GRAPHEME,
- .ucdname = "CR",
+ .file = FILE_GRAPHEME,
+ .ucdname = "CR",
         },
         {
                 .enumname = "EXTEND",
- .file = FILE_GRAPHEME,
- .ucdname = "Extend",
+ .file = FILE_GRAPHEME,
+ .ucdname = "Extend",
         },
         {
                 .enumname = "EXTENDED_PICTOGRAPHIC",
- .file = FILE_EMOJI,
- .ucdname = "Extended_Pictographic",
+ .file = FILE_EMOJI,
+ .ucdname = "Extended_Pictographic",
         },
         {
                 .enumname = "HANGUL_L",
- .file = FILE_GRAPHEME,
- .ucdname = "L",
+ .file = FILE_GRAPHEME,
+ .ucdname = "L",
         },
         {
                 .enumname = "HANGUL_V",
- .file = FILE_GRAPHEME,
- .ucdname = "V",
+ .file = FILE_GRAPHEME,
+ .ucdname = "V",
         },
         {
                 .enumname = "HANGUL_T",
- .file = FILE_GRAPHEME,
- .ucdname = "T",
+ .file = FILE_GRAPHEME,
+ .ucdname = "T",
         },
         {
                 .enumname = "HANGUL_LV",
- .file = FILE_GRAPHEME,
- .ucdname = "LV",
+ .file = FILE_GRAPHEME,
+ .ucdname = "LV",
         },
         {
                 .enumname = "HANGUL_LVT",
- .file = FILE_GRAPHEME,
- .ucdname = "LVT",
+ .file = FILE_GRAPHEME,
+ .ucdname = "LVT",
         },
         {
                 .enumname = "LF",
- .file = FILE_GRAPHEME,
- .ucdname = "LF",
+ .file = FILE_GRAPHEME,
+ .ucdname = "LF",
         },
         {
                 .enumname = "PREPEND",
- .file = FILE_GRAPHEME,
- .ucdname = "Prepend",
+ .file = FILE_GRAPHEME,
+ .ucdname = "Prepend",
         },
         {
                 .enumname = "REGIONAL_INDICATOR",
- .file = FILE_GRAPHEME,
- .ucdname = "Regional_Indicator",
+ .file = FILE_GRAPHEME,
+ .ucdname = "Regional_Indicator",
         },
         {
                 .enumname = "SPACINGMARK",
- .file = FILE_GRAPHEME,
- .ucdname = "SpacingMark",
+ .file = FILE_GRAPHEME,
+ .ucdname = "SpacingMark",
         },
         {
                 .enumname = "ZWJ",
- .file = FILE_GRAPHEME,
- .ucdname = "ZWJ",
+ .file = FILE_GRAPHEME,
+ .ucdname = "ZWJ",
         },
 };
 
_AT_@ -90,8 +90,8 @@ main(int argc, char *argv[])
         (void)argc;
 
         properties_generate_break_property(char_break_property,
- LEN(char_break_property), NULL,
- NULL, NULL, "char_break", argv[0]);
+ LEN(char_break_property), NULL, NULL,
+ NULL, "char_break", argv[0]);
 
         return 0;
 }
diff --git a/gen/line.c b/gen/line.c
index 9f9878b..2e08acc 100644
--- a/gen/line.c
+++ b/gen/line.c
_AT_@ -12,8 +12,8 @@
 static const struct property_spec line_break_property[] = {
         {
                 .enumname = "AL",
- .file = FILE_LINE,
- .ucdname = "AL",
+ .file = FILE_LINE,
+ .ucdname = "AL",
         },
         /*
          * Both extended pictographic and cn are large classes,
_AT_@ -32,269 +32,269 @@ static const struct property_spec line_break_property[] = {
          */
         {
                 .enumname = "TMP_CN",
- .file = FILE_LINE,
- .ucdname = "Cn",
+ .file = FILE_LINE,
+ .ucdname = "Cn",
         },
         {
                 .enumname = "TMP_EXTENDED_PICTOGRAPHIC",
- .file = FILE_EMOJI,
- .ucdname = "Extended_Pictographic",
+ .file = FILE_EMOJI,
+ .ucdname = "Extended_Pictographic",
         },
         /* end of special block */
         {
                 .enumname = "B2",
- .file = FILE_LINE,
- .ucdname = "B2",
+ .file = FILE_LINE,
+ .ucdname = "B2",
         },
         {
                 .enumname = "BA",
- .file = FILE_LINE,
- .ucdname = "BA",
+ .file = FILE_LINE,
+ .ucdname = "BA",
         },
         {
                 .enumname = "BB",
- .file = FILE_LINE,
- .ucdname = "BB",
+ .file = FILE_LINE,
+ .ucdname = "BB",
         },
         {
                 .enumname = "BK",
- .file = FILE_LINE,
- .ucdname = "BK",
+ .file = FILE_LINE,
+ .ucdname = "BK",
         },
         {
                 .enumname = "BOTH_CN_EXTPICT",
- .file = NULL,
- .ucdname = NULL,
+ .file = NULL,
+ .ucdname = NULL,
         },
         {
                 .enumname = "CB",
- .file = FILE_LINE,
- .ucdname = "CB",
+ .file = FILE_LINE,
+ .ucdname = "CB",
         },
         {
                 .enumname = "CL",
- .file = FILE_LINE,
- .ucdname = "CL",
+ .file = FILE_LINE,
+ .ucdname = "CL",
         },
         {
                 .enumname = "CM",
- .file = FILE_LINE,
- .ucdname = "CM",
+ .file = FILE_LINE,
+ .ucdname = "CM",
         },
         {
                 .enumname = "CP_WITHOUT_EAW_HWF",
- .file = FILE_LINE,
- .ucdname = "CP",
+ .file = FILE_LINE,
+ .ucdname = "CP",
         },
         {
                 .enumname = "CP_WITH_EAW_HWF",
- .file = NULL,
- .ucdname = NULL,
+ .file = NULL,
+ .ucdname = NULL,
         },
         {
                 .enumname = "CR",
- .file = FILE_LINE,
- .ucdname = "CR",
+ .file = FILE_LINE,
+ .ucdname = "CR",
         },
         {
                 .enumname = "EB",
- .file = FILE_LINE,
- .ucdname = "EB",
+ .file = FILE_LINE,
+ .ucdname = "EB",
         },
         {
                 .enumname = "EM",
- .file = FILE_LINE,
- .ucdname = "EM",
+ .file = FILE_LINE,
+ .ucdname = "EM",
         },
         {
                 .enumname = "EX",
- .file = FILE_LINE,
- .ucdname = "EX",
+ .file = FILE_LINE,
+ .ucdname = "EX",
         },
         {
                 .enumname = "GL",
- .file = FILE_LINE,
- .ucdname = "GL",
+ .file = FILE_LINE,
+ .ucdname = "GL",
         },
         {
                 .enumname = "H2",
- .file = FILE_LINE,
- .ucdname = "H2",
+ .file = FILE_LINE,
+ .ucdname = "H2",
         },
         {
                 .enumname = "H3",
- .file = FILE_LINE,
- .ucdname = "H3",
+ .file = FILE_LINE,
+ .ucdname = "H3",
         },
         {
                 .enumname = "HL",
- .file = FILE_LINE,
- .ucdname = "HL",
+ .file = FILE_LINE,
+ .ucdname = "HL",
         },
         {
                 .enumname = "HY",
- .file = FILE_LINE,
- .ucdname = "HY",
+ .file = FILE_LINE,
+ .ucdname = "HY",
         },
         {
                 .enumname = "ID",
- .file = FILE_LINE,
- .ucdname = "ID",
+ .file = FILE_LINE,
+ .ucdname = "ID",
         },
         {
                 .enumname = "IN",
- .file = FILE_LINE,
- .ucdname = "IN",
+ .file = FILE_LINE,
+ .ucdname = "IN",
         },
         {
                 .enumname = "IS",
- .file = FILE_LINE,
- .ucdname = "IS",
+ .file = FILE_LINE,
+ .ucdname = "IS",
         },
         {
                 .enumname = "JL",
- .file = FILE_LINE,
- .ucdname = "JL",
+ .file = FILE_LINE,
+ .ucdname = "JL",
         },
         {
                 .enumname = "JT",
- .file = FILE_LINE,
- .ucdname = "JT",
+ .file = FILE_LINE,
+ .ucdname = "JT",
         },
         {
                 .enumname = "JV",
- .file = FILE_LINE,
- .ucdname = "JV",
+ .file = FILE_LINE,
+ .ucdname = "JV",
         },
         {
                 .enumname = "LF",
- .file = FILE_LINE,
- .ucdname = "LF",
+ .file = FILE_LINE,
+ .ucdname = "LF",
         },
         {
                 .enumname = "NL",
- .file = FILE_LINE,
- .ucdname = "NL",
+ .file = FILE_LINE,
+ .ucdname = "NL",
         },
         {
                 .enumname = "NS",
- .file = FILE_LINE,
- .ucdname = "NS",
+ .file = FILE_LINE,
+ .ucdname = "NS",
         },
         {
                 .enumname = "NU",
- .file = FILE_LINE,
- .ucdname = "NU",
+ .file = FILE_LINE,
+ .ucdname = "NU",
         },
         {
                 .enumname = "OP_WITHOUT_EAW_HWF",
- .file = FILE_LINE,
- .ucdname = "OP",
+ .file = FILE_LINE,
+ .ucdname = "OP",
         },
         {
                 .enumname = "OP_WITH_EAW_HWF",
- .file = NULL,
- .ucdname = NULL,
+ .file = NULL,
+ .ucdname = NULL,
         },
         {
                 .enumname = "PO",
- .file = FILE_LINE,
- .ucdname = "PO",
+ .file = FILE_LINE,
+ .ucdname = "PO",
         },
         {
                 .enumname = "PR",
- .file = FILE_LINE,
- .ucdname = "PR",
+ .file = FILE_LINE,
+ .ucdname = "PR",
         },
         {
                 .enumname = "QU",
- .file = FILE_LINE,
- .ucdname = "QU",
+ .file = FILE_LINE,
+ .ucdname = "QU",
         },
         {
                 .enumname = "RI",
- .file = FILE_LINE,
- .ucdname = "RI",
+ .file = FILE_LINE,
+ .ucdname = "RI",
         },
         {
                 .enumname = "SP",
- .file = FILE_LINE,
- .ucdname = "SP",
+ .file = FILE_LINE,
+ .ucdname = "SP",
         },
         {
                 .enumname = "SY",
- .file = FILE_LINE,
- .ucdname = "SY",
+ .file = FILE_LINE,
+ .ucdname = "SY",
         },
         {
                 .enumname = "WJ",
- .file = FILE_LINE,
- .ucdname = "WJ",
+ .file = FILE_LINE,
+ .ucdname = "WJ",
         },
         {
                 .enumname = "ZW",
- .file = FILE_LINE,
- .ucdname = "ZW",
+ .file = FILE_LINE,
+ .ucdname = "ZW",
         },
         {
                 .enumname = "ZWJ",
- .file = FILE_LINE,
- .ucdname = "ZWJ",
+ .file = FILE_LINE,
+ .ucdname = "ZWJ",
         },
         {
                 .enumname = "TMP_AI",
- .file = FILE_LINE,
- .ucdname = "AI",
+ .file = FILE_LINE,
+ .ucdname = "AI",
         },
         {
                 .enumname = "TMP_CJ",
- .file = FILE_LINE,
- .ucdname = "CJ",
+ .file = FILE_LINE,
+ .ucdname = "CJ",
         },
         {
                 .enumname = "TMP_XX",
- .file = NULL,
- .ucdname = NULL,
+ .file = NULL,
+ .ucdname = NULL,
         },
         {
                 .enumname = "TMP_MN",
- .file = FILE_LINE,
- .ucdname = "Mn",
+ .file = FILE_LINE,
+ .ucdname = "Mn",
         },
         {
                 .enumname = "TMP_MC",
- .file = FILE_LINE,
- .ucdname = "Mc",
+ .file = FILE_LINE,
+ .ucdname = "Mc",
         },
         {
                 .enumname = "TMP_SA_WITHOUT_MN_OR_MC",
- .file = FILE_LINE,
- .ucdname = "SA",
+ .file = FILE_LINE,
+ .ucdname = "SA",
         },
         {
                 .enumname = "TMP_SA_WITH_MN_OR_MC",
- .file = FILE_LINE,
- .ucdname = "SA",
+ .file = FILE_LINE,
+ .ucdname = "SA",
         },
         {
                 .enumname = "TMP_SG",
- .file = FILE_LINE,
- .ucdname = "SG",
+ .file = FILE_LINE,
+ .ucdname = "SG",
         },
         {
                 .enumname = "TMP_EAW_H",
- .file = FILE_EAW,
- .ucdname = "H",
+ .file = FILE_EAW,
+ .ucdname = "H",
         },
         {
                 .enumname = "TMP_EAW_W",
- .file = FILE_EAW,
- .ucdname = "W",
+ .file = FILE_EAW,
+ .ucdname = "W",
         },
         {
                 .enumname = "TMP_EAW_F",
- .file = FILE_EAW,
- .ucdname = "F",
+ .file = FILE_EAW,
+ .ucdname = "F",
         },
 };
 
_AT_@ -306,23 +306,30 @@ handle_conflict(uint_least32_t cp, uint_least8_t prop1, uint_least8_t prop2)
 
         (void)cp;
 
- if ((!strcmp(line_break_property[prop1].enumname, "TMP_EAW_H") ||
- !strcmp(line_break_property[prop1].enumname, "TMP_EAW_W") ||
+ if ((!strcmp(line_break_property[prop1].enumname, "TMP_EAW_H") ||
+ !strcmp(line_break_property[prop1].enumname, "TMP_EAW_W") ||
              !strcmp(line_break_property[prop1].enumname, "TMP_EAW_F")) ||
             (!strcmp(line_break_property[prop2].enumname, "TMP_EAW_H") ||
              !strcmp(line_break_property[prop2].enumname, "TMP_EAW_W") ||
              !strcmp(line_break_property[prop2].enumname, "TMP_EAW_F"))) {
- if (!strcmp(line_break_property[prop1].enumname, "CP_WITHOUT_EAW_HWF") ||
- !strcmp(line_break_property[prop2].enumname, "CP_WITHOUT_EAW_HWF")) {
+ if (!strcmp(line_break_property[prop1].enumname,
+ "CP_WITHOUT_EAW_HWF") ||
+ !strcmp(line_break_property[prop2].enumname,
+ "CP_WITHOUT_EAW_HWF")) {
                         target = "CP_WITH_EAW_HWF";
- } else if (!strcmp(line_break_property[prop1].enumname, "OP_WITHOUT_EAW_HWF") ||
- !strcmp(line_break_property[prop2].enumname, "OP_WITHOUT_EAW_HWF")) {
+ } else if (!strcmp(line_break_property[prop1].enumname,
+ "OP_WITHOUT_EAW_HWF") ||
+ !strcmp(line_break_property[prop2].enumname,
+ "OP_WITHOUT_EAW_HWF")) {
                         target = "OP_WITH_EAW_HWF";
                 } else {
                         /* ignore EAW for the rest */
- if ((!strcmp(line_break_property[prop1].enumname, "TMP_EAW_H") ||
- !strcmp(line_break_property[prop1].enumname, "TMP_EAW_W") ||
- !strcmp(line_break_property[prop1].enumname, "TMP_EAW_F"))) {
+ if ((!strcmp(line_break_property[prop1].enumname,
+ "TMP_EAW_H") ||
+ !strcmp(line_break_property[prop1].enumname,
+ "TMP_EAW_W") ||
+ !strcmp(line_break_property[prop1].enumname,
+ "TMP_EAW_F"))) {
                                 result = prop2;
                         } else {
                                 result = prop1;
_AT_@ -330,15 +337,19 @@ handle_conflict(uint_least32_t cp, uint_least8_t prop1, uint_least8_t prop2)
                 }
         } else if ((!strcmp(line_break_property[prop1].enumname, "TMP_MN") ||
                     !strcmp(line_break_property[prop1].enumname, "TMP_MC")) ||
- (!strcmp(line_break_property[prop2].enumname, "TMP_MN") ||
- !strcmp(line_break_property[prop2].enumname, "TMP_MC"))) {
- if (!strcmp(line_break_property[prop1].enumname, "SA_WITHOUT_MN_OR_MC") ||
- !strcmp(line_break_property[prop2].enumname, "SA_WITHOUT_MN_OR_MC")) {
+ (!strcmp(line_break_property[prop2].enumname, "TMP_MN") ||
+ !strcmp(line_break_property[prop2].enumname, "TMP_MC"))) {
+ if (!strcmp(line_break_property[prop1].enumname,
+ "SA_WITHOUT_MN_OR_MC") ||
+ !strcmp(line_break_property[prop2].enumname,
+ "SA_WITHOUT_MN_OR_MC")) {
                         target = "SA_WITH_MN_OR_MC";
                 } else {
                         /* ignore Mn and Mc for the rest */
- if ((!strcmp(line_break_property[prop1].enumname, "TMP_MN") ||
- !strcmp(line_break_property[prop1].enumname, "TMP_MC"))) {
+ if ((!strcmp(line_break_property[prop1].enumname,
+ "TMP_MN") ||
+ !strcmp(line_break_property[prop1].enumname,
+ "TMP_MC"))) {
                                 result = prop2;
                         } else {
                                 result = prop1;
_AT_@ -346,33 +357,42 @@ handle_conflict(uint_least32_t cp, uint_least8_t prop1, uint_least8_t prop2)
                 }
         } else if (!strcmp(line_break_property[prop1].enumname, "TMP_CN") ||
                    !strcmp(line_break_property[prop2].enumname, "TMP_CN")) {
- if (!strcmp(line_break_property[prop1].enumname, "TMP_EXTENDED_PICTOGRAPHIC") ||
- !strcmp(line_break_property[prop2].enumname, "TMP_EXTENDED_PICTOGRAPHIC")) {
+ if (!strcmp(line_break_property[prop1].enumname,
+ "TMP_EXTENDED_PICTOGRAPHIC") ||
+ !strcmp(line_break_property[prop2].enumname,
+ "TMP_EXTENDED_PICTOGRAPHIC")) {
                         target = "BOTH_CN_EXTPICT";
                 } else {
                         /* ignore Cn for all the other properties */
- if (!strcmp(line_break_property[prop1].enumname, "TMP_CN")) {
+ if (!strcmp(line_break_property[prop1].enumname,
+ "TMP_CN")) {
                                 result = prop2;
                         } else {
                                 result = prop1;
                         }
                 }
- } else if (!strcmp(line_break_property[prop1].enumname, "TMP_EXTENDED_PICTOGRAPHIC") ||
- !strcmp(line_break_property[prop2].enumname, "TMP_EXTENDED_PICTOGRAPHIC")) {
+ } else if (!strcmp(line_break_property[prop1].enumname,
+ "TMP_EXTENDED_PICTOGRAPHIC") ||
+ !strcmp(line_break_property[prop2].enumname,
+ "TMP_EXTENDED_PICTOGRAPHIC")) {
                 if (!strcmp(line_break_property[prop1].enumname, "TMP_CN") ||
                     !strcmp(line_break_property[prop2].enumname, "TMP_CN")) {
                         target = "BOTH_CN_EXTPICT";
                 } else {
- /* ignore Extended_Pictographic for all the other properties */
- if (!strcmp(line_break_property[prop1].enumname, "TMP_EXTENDED_PICTOGRAPHIC")) {
+ /* ignore Extended_Pictographic for all the other
+ * properties */
+ if (!strcmp(line_break_property[prop1].enumname,
+ "TMP_EXTENDED_PICTOGRAPHIC")) {
                                 result = prop2;
                         } else {
                                 result = prop1;
                         }
                 }
         } else {
- fprintf(stderr, "handle_conflict: Cannot handle conflict %s <- %s.\n",
- line_break_property[prop1].enumname, line_break_property[prop2].enumname);
+ fprintf(stderr,
+ "handle_conflict: Cannot handle conflict %s <- %s.\n",
+ line_break_property[prop1].enumname,
+ line_break_property[prop2].enumname);
                 exit(1);
         }
 
_AT_@ -402,27 +422,44 @@ post_process(struct properties *prop)
         /* post-mapping according to the line breaking algorithm */
         for (i = 0; i < UINT32_C(0x110000); i++) {
                 /* LB1 */
- if (!strcmp(line_break_property[prop[i].property].enumname, "TMP_AI") ||
- !strcmp(line_break_property[prop[i].property].enumname, "TMP_SG") ||
- !strcmp(line_break_property[prop[i].property].enumname, "TMP_XX")) {
+ if (!strcmp(line_break_property[prop[i].property].enumname,
+ "TMP_AI") ||
+ !strcmp(line_break_property[prop[i].property].enumname,
+ "TMP_SG") ||
+ !strcmp(line_break_property[prop[i].property].enumname,
+ "TMP_XX")) {
                         /* map AI, SG and XX to AL */
                         target = "AL";
- } else if (!strcmp(line_break_property[prop[i].property].enumname, "TMP_SA_WITH_MN_OR_MC")) {
+ } else if (!strcmp(line_break_property[prop[i].property]
+ .enumname,
+ "TMP_SA_WITH_MN_OR_MC")) {
                         /* map SA (with General_Category Mn or Mc) to CM */
                         target = "CM";
- } else if (!strcmp(line_break_property[prop[i].property].enumname, "TMP_SA_WITHOUT_MN_OR_MC")) {
+ } else if (!strcmp(line_break_property[prop[i].property]
+ .enumname,
+ "TMP_SA_WITHOUT_MN_OR_MC")) {
                         /* map SA (without General_Category Mn or Mc) to AL */
                         target = "AL";
- } else if (!strcmp(line_break_property[prop[i].property].enumname, "TMP_CJ")) {
+ } else if (!strcmp(line_break_property[prop[i].property]
+ .enumname,
+ "TMP_CJ")) {
                         /* map CJ to NS */
                         target = "NS";
- } else if (!strcmp(line_break_property[prop[i].property].enumname, "TMP_CN") ||
- !strcmp(line_break_property[prop[i].property].enumname, "TMP_EXTENDED_PICTOGRAPHIC") ||
- !strcmp(line_break_property[prop[i].property].enumname, "TMP_MN") ||
- !strcmp(line_break_property[prop[i].property].enumname, "TMP_MC") ||
- !strcmp(line_break_property[prop[i].property].enumname, "TMP_EAW_H") ||
- !strcmp(line_break_property[prop[i].property].enumname, "TMP_EAW_W") ||
- !strcmp(line_break_property[prop[i].property].enumname, "TMP_EAW_F")) {
+ } else if (
+ !strcmp(line_break_property[prop[i].property].enumname,
+ "TMP_CN") ||
+ !strcmp(line_break_property[prop[i].property].enumname,
+ "TMP_EXTENDED_PICTOGRAPHIC") ||
+ !strcmp(line_break_property[prop[i].property].enumname,
+ "TMP_MN") ||
+ !strcmp(line_break_property[prop[i].property].enumname,
+ "TMP_MC") ||
+ !strcmp(line_break_property[prop[i].property].enumname,
+ "TMP_EAW_H") ||
+ !strcmp(line_break_property[prop[i].property].enumname,
+ "TMP_EAW_W") ||
+ !strcmp(line_break_property[prop[i].property].enumname,
+ "TMP_EAW_F")) {
                         /* map all the temporary classes "residue" to AL */
                         target = "AL";
                 } else {
_AT_@ -430,14 +467,17 @@ post_process(struct properties *prop)
                 }
 
                 if (target) {
- for (result = 0; result < LEN(line_break_property); result++) {
- if (!strcmp(line_break_property[result].enumname,
+ for (result = 0; result < LEN(line_break_property);
+ result++) {
+ if (!strcmp(line_break_property[result]
+ .enumname,
                                             target)) {
                                         break;
                                 }
                         }
                         if (result == LEN(line_break_property)) {
- fprintf(stderr, "handle_conflict: Internal error.\n");
+ fprintf(stderr,
+ "handle_conflict: Internal error.\n");
                                 exit(1);
                         }
 
_AT_@ -451,10 +491,9 @@ main(int argc, char *argv[])
 {
         (void)argc;
 
- properties_generate_break_property(line_break_property,
- LEN(line_break_property), NULL,
- handle_conflict, post_process,
- "line_break", argv[0]);
+ properties_generate_break_property(
+ line_break_property, LEN(line_break_property), NULL,
+ handle_conflict, post_process, "line_break", argv[0]);
 
         return 0;
 }
diff --git a/gen/sentence.c b/gen/sentence.c
index 627f84c..c5cc5de 100644
--- a/gen/sentence.c
+++ b/gen/sentence.c
_AT_@ -6,78 +6,78 @@
 static const struct property_spec sentence_break_property[] = {
         {
                 .enumname = "OTHER",
- .file = NULL,
- .ucdname = NULL,
+ .file = NULL,
+ .ucdname = NULL,
         },
         {
                 .enumname = "CR",
- .file = FILE_SENTENCE,
- .ucdname = "CR",
+ .file = FILE_SENTENCE,
+ .ucdname = "CR",
         },
         {
                 .enumname = "LF",
- .file = FILE_SENTENCE,
- .ucdname = "LF",
+ .file = FILE_SENTENCE,
+ .ucdname = "LF",
         },
         {
                 .enumname = "EXTEND",
- .file = FILE_SENTENCE,
- .ucdname = "Extend",
+ .file = FILE_SENTENCE,
+ .ucdname = "Extend",
         },
         {
                 .enumname = "SEP",
- .file = FILE_SENTENCE,
- .ucdname = "Sep",
+ .file = FILE_SENTENCE,
+ .ucdname = "Sep",
         },
         {
                 .enumname = "FORMAT",
- .file = FILE_SENTENCE,
- .ucdname = "Format",
+ .file = FILE_SENTENCE,
+ .ucdname = "Format",
         },
         {
                 .enumname = "SP",
- .file = FILE_SENTENCE,
- .ucdname = "Sp",
+ .file = FILE_SENTENCE,
+ .ucdname = "Sp",
         },
         {
                 .enumname = "LOWER",
- .file = FILE_SENTENCE,
- .ucdname = "Lower",
+ .file = FILE_SENTENCE,
+ .ucdname = "Lower",
         },
         {
                 .enumname = "UPPER",
- .file = FILE_SENTENCE,
- .ucdname = "Upper",
+ .file = FILE_SENTENCE,
+ .ucdname = "Upper",
         },
         {
                 .enumname = "OLETTER",
- .file = FILE_SENTENCE,
- .ucdname = "OLetter",
+ .file = FILE_SENTENCE,
+ .ucdname = "OLetter",
         },
         {
                 .enumname = "NUMERIC",
- .file = FILE_SENTENCE,
- .ucdname = "Numeric",
+ .file = FILE_SENTENCE,
+ .ucdname = "Numeric",
         },
         {
                 .enumname = "ATERM",
- .file = FILE_SENTENCE,
- .ucdname = "ATerm",
+ .file = FILE_SENTENCE,
+ .ucdname = "ATerm",
         },
         {
                 .enumname = "SCONTINUE",
- .file = FILE_SENTENCE,
- .ucdname = "SContinue",
+ .file = FILE_SENTENCE,
+ .ucdname = "SContinue",
         },
         {
                 .enumname = "STERM",
- .file = FILE_SENTENCE,
- .ucdname = "STerm",
+ .file = FILE_SENTENCE,
+ .ucdname = "STerm",
         },
         {
                 .enumname = "CLOSE",
- .file = FILE_SENTENCE,
- .ucdname = "Close",
+ .file = FILE_SENTENCE,
+ .ucdname = "Close",
         },
 };
 
_AT_@ -86,9 +86,9 @@ main(int argc, char *argv[])
 {
         (void)argc;
 
- properties_generate_break_property(sentence_break_property,
- LEN(sentence_break_property), NULL,
- NULL, NULL, "sentence_break", argv[0]);
+ properties_generate_break_property(
+ sentence_break_property, LEN(sentence_break_property), NULL,
+ NULL, NULL, "sentence_break", argv[0]);
 
         return 0;
 }
diff --git a/gen/util.c b/gen/util.c
index 01d42db..3216371 100644
--- a/gen/util.c
+++ b/gen/util.c
_AT_@ -1,13 +1,12 @@
 /* See LICENSE file for copyright and license details. */
-#include <stdbool.h>
 #include <ctype.h>
 #include <errno.h>
 #include <inttypes.h>
 #include <stdbool.h>
 #include <stddef.h>
 #include <stdint.h>
-#include <stdlib.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
 
 #include "util.h"
_AT_@ -21,12 +20,13 @@ struct properties_payload {
         struct properties *prop;
         const struct property_spec *spec;
         uint_least8_t speclen;
- int (*set_value)(struct properties_payload *, uint_least32_t, int_least64_t);
- uint_least8_t (*handle_conflict)(uint_least32_t, uint_least8_t, uint_least8_t);
+ int (*set_value)(struct properties_payload *, uint_least32_t,
+ int_least64_t);
+ uint_least8_t (*handle_conflict)(uint_least32_t, uint_least8_t,
+ uint_least8_t);
 };
 
-struct break_test_payload
-{
+struct break_test_payload {
         struct break_test **test;
         size_t *testlen;
 };
_AT_@ -51,8 +51,8 @@ hextocp(const char *str, size_t len, uint_least32_t *cp)
 
         /* the maximum valid codepoint is 0x10FFFF */
         if (len > 6) {
- fprintf(stderr, "hextocp: '%.*s' is too long.\n",
- (int)len, str);
+ fprintf(stderr, "hextocp: '%.*s' is too long.\n", (int)len,
+ str);
                 return 1;
         }
 
_AT_@ -77,8 +77,8 @@ hextocp(const char *str, size_t len, uint_least32_t *cp)
         }
 
         if (*cp > UINT32_C(0x10FFFF)) {
- fprintf(stderr, "hextocp: '%.*s' is too large.\n",
- (int)len, str);
+ fprintf(stderr, "hextocp: '%.*s' is too large.\n", (int)len,
+ str);
                 return 1;
         }
 
_AT_@ -98,8 +98,10 @@ parse_cp_list(const char *str, uint_least32_t **cp, size_t *cplen)
         }
 
         /* count the number of spaces in the string and infer list length */
- for (count = 1, tmp1 = str; (tmp2 = strchr(tmp1, ' ')) != NULL; count++, tmp1 = tmp2 + 1)
+ for (count = 1, tmp1 = str; (tmp2 = strchr(tmp1, ' ')) != NULL;
+ count++, tmp1 = tmp2 + 1) {
                 ;
+ }
 
         /* allocate resources */
         if (!(*cp = calloc((*cplen = count), sizeof(**cp)))) {
_AT_@ -110,7 +112,8 @@ parse_cp_list(const char *str, uint_least32_t **cp, size_t *cplen)
         /* go through the string again, parsing the numbers */
         for (i = 0, tmp1 = tmp2 = str; tmp2 != NULL; i++) {
                 tmp2 = strchr(tmp1, ' ');
- if (hextocp(tmp1, tmp2 ? (size_t)(tmp2 - tmp1) : strlen(tmp1), &((*cp)[i]))) {
+ if (hextocp(tmp1, tmp2 ? (size_t)(tmp2 - tmp1) : strlen(tmp1),
+ &((*cp)[i]))) {
                         return 1;
                 }
                 if (tmp2 != NULL) {
_AT_@ -144,8 +147,10 @@ range_parse(const char *str, struct range *range)
 }
 
 void
-parse_file_with_callback(const char *fname, int (*callback)(const char *,
- char **, size_t, char *, void *), void *payload)
+parse_file_with_callback(const char *fname,
+ int (*callback)(const char *, char **, size_t, char *,
+ void *),
+ void *payload)
 {
         FILE *fp;
         char *line = NULL, **field = NULL, *comment;
_AT_@ -182,10 +187,15 @@ parse_file_with_callback(const char *fname, int (*callback)(const char *,
                         if (line[i] != '#') {
                                 /* extend field buffer, if necessary */
                                 if (++nfields > fieldbufsize) {
- if ((field = realloc(field, nfields *
- sizeof(*field))) == NULL) {
- fprintf(stderr, "parse_file_with_"
- "callback: realloc: %s.\n",
+ if ((field = realloc(
+ field,
+ nfields *
+ sizeof(*field))) ==
+ NULL) {
+ fprintf(stderr,
+ "parse_file_with_"
+ "callback: realloc: "
+ "%s.\n",
                                                         strerror(errno));
                                                 exit(1);
                                         }
_AT_@ -209,8 +219,9 @@ parse_file_with_callback(const char *fname, int (*callback)(const char *,
 
                         /* go back whitespace and terminate field there */
                         if (i > 0) {
- for (j = i - 1; line[j] == ' '; j--)
+ for (j = i - 1; line[j] == ' '; j--) {
                                         ;
+ }
                                 line[j + 1] = '\0';
                         } else {
                                 line[i] = '\0';
_AT_@ -230,7 +241,7 @@ parse_file_with_callback(const char *fname, int (*callback)(const char *,
                 /* call callback function */
                 if (callback(fname, field, nfields, comment, payload)) {
                         fprintf(stderr, "parse_file_with_callback: "
- "Malformed input.\n");
+ "Malformed input.\n");
                         exit(1);
                 }
         }
_AT_@ -257,10 +268,11 @@ properties_callback(const char *file, char **field, size_t nfields,
 
         for (i = 0; i < p->speclen; i++) {
                 /* identify fitting file and identifier */
- if (p->spec[i].file &&
- !strcmp(p->spec[i].file, file) &&
+ if (p->spec[i].file && !strcmp(p->spec[i].file, file) &&
                     (!strcmp(p->spec[i].ucdname, field[1]) ||
- (comment != NULL && !strncmp(p->spec[i].ucdname, comment, strlen(p->spec[i].ucdname)) &&
+ (comment != NULL &&
+ !strncmp(p->spec[i].ucdname, comment,
+ strlen(p->spec[i].ucdname)) &&
                       comment[strlen(p->spec[i].ucdname)] == ' '))) {
                         /* parse range in first field */
                         if (range_parse(field[0], &r)) {
_AT_@ -287,7 +299,8 @@ properties_compress(const struct properties *prop,
         uint_least32_t cp, i;
 
         /* initialization */
- if (!(comp->offset = malloc((size_t)UINT32_C(0x110000) * sizeof(*(comp->offset))))) {
+ if (!(comp->offset = malloc((size_t)UINT32_C(0x110000) *
+ sizeof(*(comp->offset))))) {
                 fprintf(stderr, "malloc: %s\n", strerror(errno));
                 exit(1);
         }
_AT_@ -296,7 +309,8 @@ properties_compress(const struct properties *prop,
 
         for (cp = 0; cp < UINT32_C(0x110000); cp++) {
                 for (i = 0; i < comp->datalen; i++) {
- if (!memcmp(&(prop[cp]), &(comp->data[i]), sizeof(*prop))) {
+ if (!memcmp(&(prop[cp]), &(comp->data[i]),
+ sizeof(*prop))) {
                                 /* found a match! */
                                 comp->offset[cp] = i;
                                 break;
_AT_@ -308,9 +322,9 @@ properties_compress(const struct properties *prop,
                          * add current properties to data and add the
                          * offset in the offset-table
                          */
- if (!(comp->data = reallocate_array(comp->data,
- ++(comp->datalen),
- sizeof(*(comp->data))))) {
+ if (!(comp->data = reallocate_array(
+ comp->data, ++(comp->datalen),
+ sizeof(*(comp->data))))) {
                                 fprintf(stderr, "reallocate_array: %s\n",
                                         strerror(errno));
                                 exit(1);
_AT_@ -357,8 +371,7 @@ properties_get_major_minor(const struct properties_compressed *comp,
                  * and need less storage)
                  */
                 for (j = 0; j + 0xFF < mm->minorlen; j++) {
- if (!memcmp(&(comp->offset[i << 8]),
- &(mm->minor[j]),
+ if (!memcmp(&(comp->offset[i << 8]), &(mm->minor[j]),
                                     sizeof(*(comp->offset)) * 0x100)) {
                                 break;
                         }
_AT_@ -373,9 +386,9 @@ properties_get_major_minor(const struct properties_compressed *comp,
                          * in major
                          */
                         mm->minorlen += 0x100;
- if (!(mm->minor = reallocate_array(mm->minor,
- mm->minorlen,
- sizeof(*(mm->minor))))) {
+ if (!(mm->minor =
+ reallocate_array(mm->minor, mm->minorlen,
+ sizeof(*(mm->minor))))) {
                                 fprintf(stderr, "reallocate_array: %s\n",
                                         strerror(errno));
                                 exit(1);
_AT_@ -403,7 +416,7 @@ properties_print_lookup_table(char *name, size_t *data, size_t datalen)
                 }
         }
 
- type = (maxval <= UINT_LEAST8_MAX) ? "uint_least8_t" :
+ type = (maxval <= UINT_LEAST8_MAX) ? "uint_least8_t" :
                (maxval <= UINT_LEAST16_MAX) ? "uint_least16_t" :
                (maxval <= UINT_LEAST32_MAX) ? "uint_least32_t" :
                                               "uint_least64_t";
_AT_@ -418,21 +431,21 @@ properties_print_lookup_table(char *name, size_t *data, size_t datalen)
                 } else {
                         printf(",\n\t");
                 }
-
         }
         printf("};\n");
 }
 
 void
-properties_print_derived_lookup_table(char *name, char *type, size_t *offset, size_t offsetlen,
- int_least64_t (*get_value)(const struct properties *,
- size_t), const void *payload)
+properties_print_derived_lookup_table(
+ char *name, char *type, size_t *offset, size_t offsetlen,
+ int_least64_t (*get_value)(const struct properties *, size_t),
+ const void *payload)
 {
         size_t i;
 
         printf("static const %s %s[] = {\n\t", type, name);
         for (i = 0; i < offsetlen; i++) {
- printf("%"PRIiLEAST64, get_value(payload, offset[i]));
+ printf("%" PRIiLEAST64, get_value(payload, offset[i]));
                 if (i + 1 == offsetlen) {
                         printf("\n");
                 } else if ((i + 1) % 8 != 0) {
_AT_@ -440,7 +453,6 @@ properties_print_derived_lookup_table(char *name, char *type, size_t *offset, si
                 } else {
                         printf(",\n\t");
                 }
-
         }
         printf("};\n");
 }
_AT_@ -464,17 +476,19 @@ set_value_bp(struct properties_payload *payload, uint_least32_t cp,
 {
         if (payload->prop[cp].property != payload->speclen) {
                 if (payload->handle_conflict == NULL) {
- fprintf(stderr, "set_value_bp: "
- "Unhandled character break property "
+ fprintf(stderr,
+ "set_value_bp: "
+ "Unhandled character break property "
                                 "overwrite for 0x%06X (%s <- %s).\n",
- cp, payload->spec[payload->prop[cp].
- property].enumname,
+ cp,
+ payload->spec[payload->prop[cp].property]
+ .enumname,
                                 payload->spec[value].enumname);
                         return 1;
                 } else {
- value = payload->handle_conflict(cp,
- (uint_least8_t)payload->prop[cp].property,
- (uint_least8_t)value);
+ value = payload->handle_conflict(
+ cp, (uint_least8_t)payload->prop[cp].property,
+ (uint_least8_t)value);
                 }
         }
         payload->prop[cp].property = value;
_AT_@ -489,15 +503,13 @@ get_value_bp(const struct properties *prop, size_t offset)
 }
 
 void
-properties_generate_break_property(const struct property_spec *spec,
- uint_least8_t speclen,
- uint_least8_t (*fill_missing)(
- uint_least32_t),
- uint_least8_t (*handle_conflict)(
- uint_least32_t, uint_least8_t,
- uint_least8_t), void
- (*post_process)(struct properties *),
- const char *prefix, const char *argv0)
+properties_generate_break_property(
+ const struct property_spec *spec, uint_least8_t speclen,
+ uint_least8_t (*fill_missing)(uint_least32_t),
+ uint_least8_t (*handle_conflict)(uint_least32_t, uint_least8_t,
+ uint_least8_t),
+ void (*post_process)(struct properties *), const char *prefix,
+ const char *argv0)
 {
         struct properties_compressed comp;
         struct properties_major_minor mm;
_AT_@ -537,8 +549,7 @@ properties_generate_break_property(const struct property_spec *spec,
                 if (i == j && spec[i].file) {
                         /* file has not been processed yet */
                         parse_file_with_callback(spec[i].file,
- properties_callback,
- &payload);
+ properties_callback, &payload);
                 }
         }
 
_AT_@ -546,7 +557,8 @@ properties_generate_break_property(const struct property_spec *spec,
         for (i = 0; i < UINT32_C(0x110000); i++) {
                 if (payload.prop[i].property == speclen) {
                         if (fill_missing != NULL) {
- payload.prop[i].property = fill_missing((uint_least32_t)i);
+ payload.prop[i].property =
+ fill_missing((uint_least32_t)i);
                         } else {
                                 payload.prop[i].property = 0;
                         }
_AT_@ -559,14 +571,16 @@ properties_generate_break_property(const struct property_spec *spec,
         }
 
         /* compress data */
- printf("/* Automatically generated by %s */\n#include <stdint.h>\n\n", argv0);
+ printf("/* Automatically generated by %s */\n#include <stdint.h>\n\n",
+ argv0);
         properties_compress(prop, &comp);
 
- fprintf(stderr, "%s: %s-LUT compression-ratio: %.2f%%\n", argv0,
- prefix, properties_get_major_minor(&comp, &mm));
+ fprintf(stderr, "%s: %s-LUT compression-ratio: %.2f%%\n", argv0, prefix,
+ properties_get_major_minor(&comp, &mm));
 
         /* prepare names */
- if ((size_t)snprintf(buf1, LEN(buf1), "%s_property", prefix) >= LEN(buf1)) {
+ if ((size_t)snprintf(buf1, LEN(buf1), "%s_property", prefix) >=
+ LEN(buf1)) {
                 fprintf(stderr, "snprintf: String truncated.\n");
                 exit(1);
         }
_AT_@ -578,9 +592,12 @@ properties_generate_break_property(const struct property_spec *spec,
                 prefix_uc[i] = (char)toupper(prefix[i]);
         }
         prefix_uc[prefixlen] = '\0';
- if ((size_t)snprintf(buf2, LEN(buf2), "%s_PROP", prefix_uc) >= LEN(buf2) ||
- (size_t)snprintf(buf3, LEN(buf3), "%s_major", prefix) >= LEN(buf3) ||
- (size_t)snprintf(buf4, LEN(buf4), "%s_minor", prefix) >= LEN(buf4)) {
+ if ((size_t)snprintf(buf2, LEN(buf2), "%s_PROP", prefix_uc) >=
+ LEN(buf2) ||
+ (size_t)snprintf(buf3, LEN(buf3), "%s_major", prefix) >=
+ LEN(buf3) ||
+ (size_t)snprintf(buf4, LEN(buf4), "%s_minor", prefix) >=
+ LEN(buf4)) {
                 fprintf(stderr, "snprintf: String truncated.\n");
                 exit(1);
         }
_AT_@ -589,8 +606,9 @@ properties_generate_break_property(const struct property_spec *spec,
         properties_print_enum(spec, speclen, buf1, buf2);
         properties_print_lookup_table(buf3, mm.major, 0x1100);
         printf("\n");
- properties_print_derived_lookup_table(buf4, "uint_least8_t", mm.minor, mm.minorlen,
- get_value_bp, comp.data);
+ properties_print_derived_lookup_table(buf4, "uint_least8_t", mm.minor,
+ mm.minorlen, get_value_bp,
+ comp.data);
 
         /* free data */
         free(prop);
_AT_@ -625,42 +643,50 @@ break_test_callback(const char *fname, char **field, size_t nfields,
         memset(t, 0, sizeof(*t));
 
         /* parse testcase "<÷|×> <cp> <÷|×> ... <cp> <÷|×>" */
- for (token = strtok(field[0], " "), i = 0; token != NULL; i++,
- token = strtok(NULL, " ")) {
+ for (token = strtok(field[0], " "), i = 0; token != NULL;
+ i++, token = strtok(NULL, " ")) {
                 if (i % 2 == 0) {
                         /* delimiter or start of sequence */
- if (i == 0 || !strncmp(token, "\xC3\xB7", 2)) { /* UTF-8 */
+ if (i == 0 ||
+ !strncmp(token, "\xC3\xB7", 2)) { /* UTF-8 */
                                 /*
                                  * '÷' indicates a breakpoint,
                                  * the current length is done; allocate
                                  * a new length field and set it to 0
                                  */
- if ((t->len = realloc(t->len,
- ++t->lenlen * sizeof(*t->len))) == NULL) {
- fprintf(stderr, "break_test_"
+ if ((t->len = realloc(
+ t->len,
+ ++t->lenlen * sizeof(*t->len))) ==
+ NULL) {
+ fprintf(stderr,
+ "break_test_"
                                                 "callback: realloc: %s.\n",
                                                 strerror(errno));
                                         return 1;
                                 }
                                 t->len[t->lenlen - 1] = 0;
                         } else if (!strncmp(token, "\xC3\x97", 2)) { /* UTF-8 */
- /*
- * '×' indicates a non-breakpoint, do nothing
- */
+ /* '×' indicates a non-breakpoint, do nothing */
                         } else {
- fprintf(stderr, "break_test_callback: "
- "Malformed delimiter '%s'.\n", token);
+ fprintf(stderr,
+ "break_test_callback: "
+ "Malformed delimiter '%s'.\n",
+ token);
                                 return 1;
                         }
                 } else {
                         /* add codepoint to cp-array */
- if ((t->cp = realloc(t->cp, ++t->cplen *
- sizeof(*t->cp))) == NULL) {
- fprintf(stderr, "break_test_callback: "
- "realloc: %s.\n", strerror(errno));
+ if ((t->cp = realloc(t->cp,
+ ++t->cplen * sizeof(*t->cp))) ==
+ NULL) {
+ fprintf(stderr,
+ "break_test_callback: "
+ "realloc: %s.\n",
+ strerror(errno));
                                 return 1;
                         }
- if (hextocp(token, strlen(token), &t->cp[t->cplen - 1])) {
+ if (hextocp(token, strlen(token),
+ &t->cp[t->cplen - 1])) {
                                 return 1;
                         }
                         if (t->lenlen > 0) {
_AT_@ -688,8 +714,7 @@ break_test_callback(const char *fname, char **field, size_t nfields,
 }
 
 void
-break_test_list_parse(char *fname, struct break_test **test,
- size_t *testlen)
+break_test_list_parse(char *fname, struct break_test **test, size_t *testlen)
 {
         struct break_test_payload pl = {
                 .test = test,
_AT_@ -703,13 +728,14 @@ break_test_list_parse(char *fname, struct break_test **test,
 
 void
 break_test_list_print(const struct break_test *test, size_t testlen,
- const char *identifier, const char *progname)
+ const char *identifier, const char *progname)
 {
         size_t i, j;
 
         printf("/* Automatically generated by %s */\n"
                "#include <stdint.h>\n#include <stddef.h>\n\n"
- "#include \"../gen/types.h\"\n\n", progname);
+ "#include \"../gen/types.h\"\n\n",
+ progname);
 
         printf("static const struct break_test %s[] = {\n", identifier);
         for (i = 0; i < testlen; i++) {
diff --git a/gen/util.h b/gen/util.h
index 43aef73..fdee4ff 100644
--- a/gen/util.h
+++ b/gen/util.h
_AT_@ -7,7 +7,7 @@
 
 #include "types.h"
 
-#define LEN(x) (sizeof (x) / sizeof *(x))
+#define LEN(x) (sizeof(x) / sizeof *(x))
 
 struct property_spec {
         const char *enumname;
_AT_@ -34,30 +34,31 @@ struct properties_major_minor {
 int hextocp(const char *, size_t, uint_least32_t *cp);
 int parse_cp_list(const char *, uint_least32_t **, size_t *);
 
-void parse_file_with_callback(const char *, int (*callback)(const char *,
- char **, size_t, char *, void *), void *payload);
+void parse_file_with_callback(const char *,
+ int (*callback)(const char *, char **, size_t,
+ char *, void *),
+ void *payload);
 
-void properties_compress(const struct properties *, struct properties_compressed *comp);
+void properties_compress(const struct properties *,
+ struct properties_compressed *comp);
 double properties_get_major_minor(const struct properties_compressed *,
                                   struct properties_major_minor *);
 void properties_print_lookup_table(char *, size_t *, size_t);
-void properties_print_derived_lookup_table(char *, char *, size_t *, size_t,
- int_least64_t (*get_value)(const struct properties *,
- size_t), const void *);
-
-void properties_generate_break_property(const struct property_spec *,
- uint_least8_t, uint_least8_t
- (*fill_missing)(uint_least32_t),
- uint_least8_t
- (*handle_conflict)(uint_least32_t,
- uint_least8_t, uint_least8_t),
- void (*post_process)
- (struct properties *),
- const char *, const char *);
+void properties_print_derived_lookup_table(
+ char *, char *, size_t *, size_t,
+ int_least64_t (*get_value)(const struct properties *, size_t),
+ const void *);
+
+void properties_generate_break_property(
+ const struct property_spec *, uint_least8_t,
+ uint_least8_t (*fill_missing)(uint_least32_t),
+ uint_least8_t (*handle_conflict)(uint_least32_t, uint_least8_t,
+ uint_least8_t),
+ void (*post_process)(struct properties *), const char *, const char *);
 
 void break_test_list_parse(char *, struct break_test **, size_t *);
-void break_test_list_print(const struct break_test *, size_t,
- const char *, const char *);
+void break_test_list_print(const struct break_test *, size_t, const char *,
+ const char *);
 void break_test_list_free(struct break_test *, size_t);
 
 #endif /* UTIL_H */
diff --git a/gen/word.c b/gen/word.c
index e1e157c..6dcac9d 100644
--- a/gen/word.c
+++ b/gen/word.c
_AT_@ -11,108 +11,108 @@
 static const struct property_spec word_break_property[] = {
         {
                 .enumname = "OTHER",
- .file = NULL,
- .ucdname = NULL,
+ .file = NULL,
+ .ucdname = NULL,
         },
         {
                 .enumname = "ALETTER",
- .file = FILE_WORD,
- .ucdname = "ALetter",
+ .file = FILE_WORD,
+ .ucdname = "ALetter",
         },
         {
                 .enumname = "BOTH_ALETTER_EXTPICT",
- .file = NULL,
- .ucdname = NULL,
+ .file = NULL,
+ .ucdname = NULL,
         },
         {
                 .enumname = "CR",
- .file = FILE_WORD,
- .ucdname = "CR",
+ .file = FILE_WORD,
+ .ucdname = "CR",
         },
         {
                 .enumname = "DOUBLE_QUOTE",
- .file = FILE_WORD,
- .ucdname = "Double_Quote",
+ .file = FILE_WORD,
+ .ucdname = "Double_Quote",
         },
         {
                 .enumname = "EXTEND",
- .file = FILE_WORD,
- .ucdname = "Extend",
+ .file = FILE_WORD,
+ .ucdname = "Extend",
         },
         {
                 .enumname = "EXTENDED_PICTOGRAPHIC",
- .file = FILE_EMOJI,
- .ucdname = "Extended_Pictographic",
+ .file = FILE_EMOJI,
+ .ucdname = "Extended_Pictographic",
         },
         {
                 .enumname = "EXTENDNUMLET",
- .file = FILE_WORD,
- .ucdname = "ExtendNumLet",
+ .file = FILE_WORD,
+ .ucdname = "ExtendNumLet",
         },
         {
                 .enumname = "FORMAT",
- .file = FILE_WORD,
- .ucdname = "Format",
+ .file = FILE_WORD,
+ .ucdname = "Format",
         },
         {
                 .enumname = "HEBREW_LETTER",
- .file = FILE_WORD,
- .ucdname = "Hebrew_Letter",
+ .file = FILE_WORD,
+ .ucdname = "Hebrew_Letter",
         },
         {
                 .enumname = "KATAKANA",
- .file = FILE_WORD,
- .ucdname = "Katakana",
+ .file = FILE_WORD,
+ .ucdname = "Katakana",
         },
         {
                 .enumname = "LF",
- .file = FILE_WORD,
- .ucdname = "LF",
+ .file = FILE_WORD,
+ .ucdname = "LF",
         },
         {
                 .enumname = "MIDLETTER",
- .file = FILE_WORD,
- .ucdname = "MidLetter",
+ .file = FILE_WORD,
+ .ucdname = "MidLetter",
         },
         {
                 .enumname = "MIDNUM",
- .file = FILE_WORD,
- .ucdname = "MidNum",
+ .file = FILE_WORD,
+ .ucdname = "MidNum",
         },
         {
                 .enumname = "MIDNUMLET",
- .file = FILE_WORD,
- .ucdname = "MidNumLet",
+ .file = FILE_WORD,
+ .ucdname = "MidNumLet",
         },
         {
                 .enumname = "NEWLINE",
- .file = FILE_WORD,
- .ucdname = "Newline",
+ .file = FILE_WORD,
+ .ucdname = "Newline",
         },
         {
                 .enumname = "NUMERIC",
- .file = FILE_WORD,
- .ucdname = "Numeric",
+ .file = FILE_WORD,
+ .ucdname = "Numeric",
         },
         {
                 .enumname = "REGIONAL_INDICATOR",
- .file = FILE_WORD,
- .ucdname = "Regional_Indicator",
+ .file = FILE_WORD,
+ .ucdname = "Regional_Indicator",
         },
         {
                 .enumname = "SINGLE_QUOTE",
- .file = FILE_WORD,
- .ucdname = "Single_Quote",
+ .file = FILE_WORD,
+ .ucdname = "Single_Quote",
         },
         {
                 .enumname = "WSEGSPACE",
- .file = FILE_WORD,
- .ucdname = "WSegSpace",
+ .file = FILE_WORD,
+ .ucdname = "WSegSpace",
         },
         {
                 .enumname = "ZWJ",
- .file = FILE_WORD,
- .ucdname = "ZWJ",
+ .file = FILE_WORD,
+ .ucdname = "ZWJ",
         },
 };
 
_AT_@ -124,8 +124,10 @@ handle_conflict(uint_least32_t cp, uint_least8_t prop1, uint_least8_t prop2)
         (void)cp;
 
         if ((!strcmp(word_break_property[prop1].enumname, "ALETTER") &&
- !strcmp(word_break_property[prop2].enumname, "EXTENDED_PICTOGRAPHIC")) ||
- (!strcmp(word_break_property[prop1].enumname, "EXTENDED_PICTOGRAPHIC") &&
+ !strcmp(word_break_property[prop2].enumname,
+ "EXTENDED_PICTOGRAPHIC")) ||
+ (!strcmp(word_break_property[prop1].enumname,
+ "EXTENDED_PICTOGRAPHIC") &&
              !strcmp(word_break_property[prop2].enumname, "ALETTER"))) {
                 for (result = 0; result < LEN(word_break_property); result++) {
                         if (!strcmp(word_break_property[result].enumname,
_AT_@ -150,10 +152,9 @@ main(int argc, char *argv[])
 {
         (void)argc;
 
- properties_generate_break_property(word_break_property,
- LEN(word_break_property), NULL,
- handle_conflict, NULL, "word_break",
- argv[0]);
+ properties_generate_break_property(
+ word_break_property, LEN(word_break_property), NULL,
+ handle_conflict, NULL, "word_break", argv[0]);
 
         return 0;
 }
diff --git a/grapheme.h b/grapheme.h
index 3699a6f..fbb8e4a 100644
--- a/grapheme.h
+++ b/grapheme.h
_AT_@ -18,14 +18,15 @@ enum grapheme_bidirectional_override {
 size_t grapheme_decode_utf8(const char *, size_t, uint_least32_t *);
 size_t grapheme_encode_utf8(uint_least32_t, char *, size_t);
 
-size_t grapheme_get_bidirectional_embedding_levels(const uint_least32_t *, size_t,
- enum grapheme_bidirectional_override,
- int_least32_t *, size_t);
-size_t grapheme_get_bidirectional_embedding_levels_utf8(const char *, size_t,
- enum grapheme_bidirectional_override,
- int_least32_t *, size_t);
+size_t grapheme_get_bidirectional_embedding_levels(
+ const uint_least32_t *, size_t, enum grapheme_bidirectional_override,
+ int_least32_t *, size_t);
+size_t grapheme_get_bidirectional_embedding_levels_utf8(
+ const char *, size_t, enum grapheme_bidirectional_override,
+ int_least32_t *, size_t);
 
-bool grapheme_is_character_break(uint_least32_t, uint_least32_t, uint_least16_t *);
+bool grapheme_is_character_break(uint_least32_t, uint_least32_t,
+ uint_least16_t *);
 
 bool grapheme_is_lowercase(const uint_least32_t *, size_t, size_t *);
 bool grapheme_is_titlecase(const uint_least32_t *, size_t, size_t *);
_AT_@ -45,9 +46,12 @@ size_t grapheme_next_line_break_utf8(const char *, size_t);
 size_t grapheme_next_sentence_break_utf8(const char *, size_t);
 size_t grapheme_next_word_break_utf8(const char *, size_t);
 
-size_t grapheme_to_lowercase(const uint_least32_t *, size_t, uint_least32_t *, size_t);
-size_t grapheme_to_titlecase(const uint_least32_t *, size_t, uint_least32_t *, size_t);
-size_t grapheme_to_uppercase(const uint_least32_t *, size_t, uint_least32_t *, size_t);
+size_t grapheme_to_lowercase(const uint_least32_t *, size_t, uint_least32_t *,
+ size_t);
+size_t grapheme_to_titlecase(const uint_least32_t *, size_t, uint_least32_t *,
+ size_t);
+size_t grapheme_to_uppercase(const uint_least32_t *, size_t, uint_least32_t *,
+ size_t);
 
 size_t grapheme_to_lowercase_utf8(const char *, size_t, char *, size_t);
 size_t grapheme_to_titlecase_utf8(const char *, size_t, char *, size_t);
diff --git a/src/bidirectional.c b/src/bidirectional.c
index b8ee24b..2ca2025 100644
--- a/src/bidirectional.c
+++ b/src/bidirectional.c
_AT_@ -12,15 +12,18 @@ struct isolate_runner {
         int_least32_t *buf;
         size_t buflen;
         enum bidi_property prev_prop;
+
         struct {
                 size_t off;
                 enum bidi_property prop;
                 int_least8_t level;
         } cur;
+
         struct {
                 size_t off;
                 enum bidi_property prop;
         } next;
+
         uint_least8_t paragraph_level;
         int_least8_t isolating_run_level;
         enum bidi_property last_strong_type;
_AT_@ -57,24 +60,42 @@ struct state {
 static inline void
 state_serialize(const struct state *s, int_least32_t *out)
 {
- *out = (int_least32_t)(
- ((((uint_least32_t)(s->paragraph_level)) & 0x01 /* 00000001 */) << 0) |
- ((((uint_least32_t)(s->level + 1)) & 0x7F /* 01111111 */) << 1) |
- ((((uint_least32_t)(s->prop)) & 0x1F /* 00011111 */) << 8) |
- ((((uint_least32_t)(s->bracket - bidi_bracket)) & 0xFF /* 11111111 */) << 13) |
- ((((uint_least32_t)(s->visited)) & 0x01 /* 00000001 */) << 21) |
- ((((uint_least32_t)(s->rawprop)) & 0x1F /* 00011111 */) << 22));
+ *out = (int_least32_t)(((((uint_least32_t)(s->paragraph_level)) &
+ 0x01 /* 00000001 */)
+ << 0) |
+ ((((uint_least32_t)(s->level + 1)) &
+ 0x7F /* 01111111 */)
+ << 1) |
+ ((((uint_least32_t)(s->prop)) &
+ 0x1F /* 00011111 */)
+ << 8) |
+ ((((uint_least32_t)(s->bracket - bidi_bracket)) &
+ 0xFF /* 11111111 */)
+ << 13) |
+ ((((uint_least32_t)(s->visited)) &
+ 0x01 /* 00000001 */)
+ << 21) |
+ ((((uint_least32_t)(s->rawprop)) &
+ 0x1F /* 00011111 */)
+ << 22));
 }
 
 static inline void
 state_deserialize(int_least32_t in, struct state *s)
 {
- s->paragraph_level = (uint_least8_t)((((uint_least32_t)in) >> 0) & 0x01 /* 00000001 */);
- s->level = (int_least8_t)((((uint_least32_t)in) >> 1) & 0x7F /* 01111111 */) - 1;
- s->prop = (enum bidi_property)((((uint_least32_t)in) >> 8) & 0x1F /* 00011111 */);
- s->bracket = bidi_bracket + (uint_least8_t)((((uint_least32_t)in) >> 13) & 0xFF /* 11111111 */);
- s->visited = (bool)((((uint_least32_t)in) >> 21) & 0x01 /* 00000001 */);
- s->rawprop = (enum bidi_property)((((uint_least32_t)in) >> 22) & 0x1F /* 00011111 */);
+ s->paragraph_level = (uint_least8_t)((((uint_least32_t)in) >> 0) &
+ 0x01 /* 00000001 */);
+ s->level = (int_least8_t)((((uint_least32_t)in) >> 1) &
+ 0x7F /* 01111111 */) -
+ 1;
+ s->prop = (enum bidi_property)((((uint_least32_t)in) >> 8) &
+ 0x1F /* 00011111 */);
+ s->bracket =
+ bidi_bracket + (uint_least8_t)((((uint_least32_t)in) >> 13) &
+ 0xFF /* 11111111 */);
+ s->visited = (bool)((((uint_least32_t)in) >> 21) & 0x01 /* 00000001 */);
+ s->rawprop = (enum bidi_property)((((uint_least32_t)in) >> 22) &
+ 0x1F /* 00011111 */);
 }
 
 static void
_AT_@ -171,7 +192,6 @@ isolate_runner_advance(struct isolate_runner *ir)
                 return 1;
         }
 
-
         /* shift in */
         ir->prev_prop = ir->cur.prop;
         ir->cur.off = ir->next.off;
_AT_@ -188,13 +208,13 @@ isolate_runner_advance(struct isolate_runner *ir)
          * on the first advancement as the prev_prop holds the sos type,
          * which can only be either R or L, which are both strong types
          */
- if (ir->prev_prop == BIDI_PROP_R ||
- ir->prev_prop == BIDI_PROP_L ||
+ if (ir->prev_prop == BIDI_PROP_R || ir->prev_prop == BIDI_PROP_L ||
             ir->prev_prop == BIDI_PROP_AL) {
                 ir->last_strong_type = ir->prev_prop;
         }
 
- /* initialize next state by going to the next character in the sequence */
+ /* initialize next state by going to the next character in the sequence
+ */
         ir->next.off = SIZE_MAX;
         ir->next.prop = NUM_BIDI_PROPS;
 
_AT_@ -210,8 +230,7 @@ isolate_runner_advance(struct isolate_runner *ir)
                 }
 
                 /* follow BD8/BD9 and P2 to traverse the current sequence */
- if (s.prop == BIDI_PROP_LRI ||
- s.prop == BIDI_PROP_RLI ||
+ if (s.prop == BIDI_PROP_LRI || s.prop == BIDI_PROP_RLI ||
                     s.prop == BIDI_PROP_FSI) {
                         /*
                          * we encountered an isolate initiator, increment
_AT_@ -224,8 +243,7 @@ isolate_runner_advance(struct isolate_runner *ir)
                         if (isolate_level != 1) {
                                 continue;
                         }
- } else if (s.prop == BIDI_PROP_PDI &&
- isolate_level > 0) {
+ } else if (s.prop == BIDI_PROP_PDI && isolate_level > 0) {
                         isolate_level--;
 
                         /*
_AT_@ -250,12 +268,14 @@ isolate_runner_advance(struct isolate_runner *ir)
                         /* we were in the first initializing round */
                         continue;
                 } else if (s.level == ir->isolating_run_level) {
- /* isolate_level-skips have been handled before, we're good */
+ /* isolate_level-skips have been handled before, we're
+ * good */
                         /* still in the sequence */
                         ir->next.off = (size_t)i;
                         ir->next.prop = s.prop;
                 } else {
- /* out of sequence or isolated, compare levels via eos */
+ /* out of sequence or isolated, compare levels via eos
+ */
                         if (MAX(last_isolate_level, s.level) % 2 == 0) {
                                 ir->next.prop = BIDI_PROP_L;
                         } else {
_AT_@ -286,7 +306,8 @@ isolate_runner_advance(struct isolate_runner *ir)
 }
 
 static void
-isolate_runner_set_current_prop(struct isolate_runner *ir, enum bidi_property prop)
+isolate_runner_set_current_prop(struct isolate_runner *ir,
+ enum bidi_property prop)
 {
         struct state s;
 
_AT_@ -301,9 +322,9 @@ static inline enum bidi_property
 get_bidi_property(uint_least32_t cp)
 {
         if (likely(cp <= 0x10FFFF)) {
- return (enum bidi_property)
- ((bidi_minor[bidi_major[cp >> 8] + (cp & 0xff)]) &
- 0x1F /* 00011111 */);
+ return (enum bidi_property)(
+ (bidi_minor[bidi_major[cp >> 8] + (cp & 0xff)]) &
+ 0x1F /* 00011111 */);
         } else {
                 return BIDI_PROP_L;
         }
_AT_@ -320,8 +341,8 @@ get_bidi_bracket_off(uint_least32_t cp)
 }
 
 static size_t
-process_isolating_run_sequence(int_least32_t *buf, size_t buflen,
- size_t off, uint_least8_t paragraph_level)
+process_isolating_run_sequence(int_least32_t *buf, size_t buflen, size_t off,
+ uint_least8_t paragraph_level)
 {
         enum bidi_property sequence_prop;
         struct isolate_runner ir, tmp;
_AT_@ -335,7 +356,8 @@ process_isolating_run_sequence(int_least32_t *buf, size_t buflen,
                             ir.prev_prop == BIDI_PROP_RLI ||
                             ir.prev_prop == BIDI_PROP_FSI ||
                             ir.prev_prop == BIDI_PROP_PDI) {
- isolate_runner_set_current_prop(&ir, BIDI_PROP_ON);
+ isolate_runner_set_current_prop(&ir,
+ BIDI_PROP_ON);
                         } else {
                                 isolate_runner_set_current_prop(&ir,
                                                                 ir.prev_prop);
_AT_@ -371,7 +393,7 @@ process_isolating_run_sequence(int_least32_t *buf, size_t buflen,
                 }
 
                 if (ir.prev_prop == BIDI_PROP_AN &&
- ir.cur.prop == BIDI_PROP_CS &&
+ ir.cur.prop == BIDI_PROP_CS &&
                     ir.next.prop == BIDI_PROP_AN) {
                         isolate_runner_set_current_prop(&ir, BIDI_PROP_AN);
                 }
_AT_@ -389,14 +411,19 @@ process_isolating_run_sequence(int_least32_t *buf, size_t buflen,
                 } else if (ir.cur.prop == BIDI_PROP_EN) {
                         /* set the preceding sequence */
                         if (runsince != SIZE_MAX) {
- isolate_runner_init(buf, buflen, runsince, paragraph_level, (runsince > off), &tmp);
+ isolate_runner_init(buf, buflen, runsince,
+ paragraph_level,
+ (runsince > off), &tmp);
                                 while (!isolate_runner_advance(&tmp) &&
                                        tmp.cur.off < ir.cur.off) {
- isolate_runner_set_current_prop(&tmp, BIDI_PROP_EN);
+ isolate_runner_set_current_prop(
+ &tmp, BIDI_PROP_EN);
                                 }
                                 runsince = SIZE_MAX;
                         } else {
- isolate_runner_init(buf, buflen, ir.cur.off, paragraph_level, (ir.cur.off > off), &tmp);
+ isolate_runner_init(buf, buflen, ir.cur.off,
+ paragraph_level,
+ (ir.cur.off > off), &tmp);
                                 isolate_runner_advance(&tmp);
                         }
                         /* follow the succeeding sequence */
_AT_@ -404,7 +431,8 @@ process_isolating_run_sequence(int_least32_t *buf, size_t buflen,
                                 if (tmp.cur.prop != BIDI_PROP_ET) {
                                         break;
                                 }
- isolate_runner_set_current_prop(&tmp, BIDI_PROP_EN);
+ isolate_runner_set_current_prop(&tmp,
+ BIDI_PROP_EN);
                         }
                 } else {
                         /* sequence ended */
_AT_@ -439,23 +467,26 @@ process_isolating_run_sequence(int_least32_t *buf, size_t buflen,
         isolate_runner_init(buf, buflen, off, paragraph_level, false, &ir);
         while (!isolate_runner_advance(&ir)) {
                 if (sequence_end == SIZE_MAX) {
- if (ir.cur.prop == BIDI_PROP_B ||
- ir.cur.prop == BIDI_PROP_S ||
- ir.cur.prop == BIDI_PROP_WS ||
- ir.cur.prop == BIDI_PROP_ON ||
+ if (ir.cur.prop == BIDI_PROP_B ||
+ ir.cur.prop == BIDI_PROP_S ||
+ ir.cur.prop == BIDI_PROP_WS ||
+ ir.cur.prop == BIDI_PROP_ON ||
                             ir.cur.prop == BIDI_PROP_FSI ||
                             ir.cur.prop == BIDI_PROP_LRI ||
                             ir.cur.prop == BIDI_PROP_RLI ||
                             ir.cur.prop == BIDI_PROP_PDI) {
- /* the current character is an NI (neutral or isolate) */
+ /* the current character is an NI (neutral or
+ * isolate) */
 
                                 /* scan ahead to the end of the NI-sequence */
- isolate_runner_init(buf, buflen, ir.cur.off, paragraph_level, (ir.cur.off > off), &tmp);
+ isolate_runner_init(buf, buflen, ir.cur.off,
+ paragraph_level,
+ (ir.cur.off > off), &tmp);
                                 while (!isolate_runner_advance(&tmp)) {
- if (tmp.next.prop != BIDI_PROP_B &&
- tmp.next.prop != BIDI_PROP_S &&
- tmp.next.prop != BIDI_PROP_WS &&
- tmp.next.prop != BIDI_PROP_ON &&
+ if (tmp.next.prop != BIDI_PROP_B &&
+ tmp.next.prop != BIDI_PROP_S &&
+ tmp.next.prop != BIDI_PROP_WS &&
+ tmp.next.prop != BIDI_PROP_ON &&
                                             tmp.next.prop != BIDI_PROP_FSI &&
                                             tmp.next.prop != BIDI_PROP_LRI &&
                                             tmp.next.prop != BIDI_PROP_RLI &&
_AT_@ -465,17 +496,17 @@ process_isolating_run_sequence(int_least32_t *buf, size_t buflen,
                                 }
 
                                 /*
- * check what follows and see if the text has the
- * same direction on both sides
+ * check what follows and see if the text has
+ * the same direction on both sides
                                  */
                                 if (ir.prev_prop == BIDI_PROP_L &&
                                     tmp.next.prop == BIDI_PROP_L) {
                                         sequence_end = tmp.cur.off;
                                         sequence_prop = BIDI_PROP_L;
- } else if ((ir.prev_prop == BIDI_PROP_R ||
+ } else if ((ir.prev_prop == BIDI_PROP_R ||
                                             ir.prev_prop == BIDI_PROP_EN ||
                                             ir.prev_prop == BIDI_PROP_AN) &&
- (tmp.next.prop == BIDI_PROP_R ||
+ (tmp.next.prop == BIDI_PROP_R ||
                                             tmp.next.prop == BIDI_PROP_EN ||
                                             tmp.next.prop == BIDI_PROP_AN)) {
                                         sequence_end = tmp.cur.off;
_AT_@ -486,7 +517,8 @@ process_isolating_run_sequence(int_least32_t *buf, size_t buflen,
 
                 if (sequence_end != SIZE_MAX) {
                         if (ir.cur.off <= sequence_end) {
- isolate_runner_set_current_prop(&ir, sequence_prop);
+ isolate_runner_set_current_prop(&ir,
+ sequence_prop);
                         } else {
                                 /* end of sequence, reset */
                                 sequence_end = SIZE_MAX;
_AT_@ -498,10 +530,9 @@ process_isolating_run_sequence(int_least32_t *buf, size_t buflen,
         /* N2 */
         isolate_runner_init(buf, buflen, off, paragraph_level, false, &ir);
         while (!isolate_runner_advance(&ir)) {
- if (ir.cur.prop == BIDI_PROP_B ||
- ir.cur.prop == BIDI_PROP_S ||
- ir.cur.prop == BIDI_PROP_WS ||
- ir.cur.prop == BIDI_PROP_ON ||
+ if (ir.cur.prop == BIDI_PROP_B || ir.cur.prop == BIDI_PROP_S ||
+ ir.cur.prop == BIDI_PROP_WS ||
+ ir.cur.prop == BIDI_PROP_ON ||
                     ir.cur.prop == BIDI_PROP_FSI ||
                     ir.cur.prop == BIDI_PROP_LRI ||
                     ir.cur.prop == BIDI_PROP_RLI ||
_AT_@ -509,10 +540,12 @@ process_isolating_run_sequence(int_least32_t *buf, size_t buflen,
                         /* N2 */
                         if (ir.cur.level % 2 == 0) {
                                 /* even embedding level */
- isolate_runner_set_current_prop(&ir, BIDI_PROP_L);
+ isolate_runner_set_current_prop(&ir,
+ BIDI_PROP_L);
                         } else {
                                 /* odd embedding level */
- isolate_runner_set_current_prop(&ir, BIDI_PROP_R);
+ isolate_runner_set_current_prop(&ir,
+ BIDI_PROP_R);
                         }
                 }
         }
_AT_@ -522,8 +555,8 @@ process_isolating_run_sequence(int_least32_t *buf, size_t buflen,
 
 static uint_least8_t
 get_paragraph_level(enum grapheme_bidirectional_override override,
- bool terminate_on_pdi,
- const int_least32_t *buf, size_t buflen)
+ bool terminate_on_pdi, const int_least32_t *buf,
+ size_t buflen)
 {
         struct state s;
         int_least8_t isolate_level;
_AT_@ -541,8 +574,7 @@ get_paragraph_level(enum grapheme_bidirectional_override override,
         for (bufoff = 0, isolate_level = 0; bufoff < buflen; bufoff++) {
                 state_deserialize(buf[bufoff], &s);
 
- if (s.prop == BIDI_PROP_PDI &&
- isolate_level == 0 &&
+ if (s.prop == BIDI_PROP_PDI && isolate_level == 0 &&
                     terminate_on_pdi) {
                         /*
                          * we are in a FSI-subsection of a paragraph and
_AT_@ -552,8 +584,7 @@ get_paragraph_level(enum grapheme_bidirectional_override override,
                 }
 
                 /* BD8/BD9 */
- if ((s.prop == BIDI_PROP_LRI ||
- s.prop == BIDI_PROP_RLI ||
+ if ((s.prop == BIDI_PROP_LRI || s.prop == BIDI_PROP_RLI ||
                      s.prop == BIDI_PROP_FSI) &&
                     isolate_level < MAX_DEPTH) {
                         /* we hit an isolate initiator, increment counter */
_AT_@ -570,8 +601,7 @@ get_paragraph_level(enum grapheme_bidirectional_override override,
                 /* P3 */
                 if (s.prop == BIDI_PROP_L) {
                         return 0;
- } else if (s.prop == BIDI_PROP_AL ||
- s.prop == BIDI_PROP_R) {
+ } else if (s.prop == BIDI_PROP_AL || s.prop == BIDI_PROP_R) {
                         return 1;
                 }
         }
_AT_@ -585,13 +615,15 @@ get_paragraph_embedding_levels(enum grapheme_bidirectional_override override,
 {
         enum bidi_property tmp_prop;
         struct state s, t;
+
         struct {
                 int_least8_t level;
                 enum grapheme_bidirectional_override override;
                 bool directional_isolate;
         } directional_status[MAX_DEPTH + 2], *dirstat = directional_status;
+
         size_t overflow_isolate_count, overflow_embedding_count,
- valid_isolate_count, bufoff, i, runsince;
+ valid_isolate_count, bufoff, i, runsince;
         uint_least8_t paragraph_level;
 
         paragraph_level = get_paragraph_level(override, false, buf, buflen);
_AT_@ -600,7 +632,8 @@ get_paragraph_embedding_levels(enum grapheme_bidirectional_override override,
         dirstat->level = (int_least8_t)paragraph_level;
         dirstat->override = GRAPHEME_BIDIRECTIONAL_OVERRIDE_NEUTRAL;
         dirstat->directional_isolate = false;
- overflow_isolate_count = overflow_embedding_count = valid_isolate_count = 0;
+ overflow_isolate_count = overflow_embedding_count =
+ valid_isolate_count = 0;
 
         for (bufoff = 0; bufoff < buflen; bufoff++) {
                 state_deserialize(buf[bufoff], &s);
_AT_@ -608,79 +641,105 @@ get_paragraph_embedding_levels(enum grapheme_bidirectional_override override,
 again:
                 if (tmp_prop == BIDI_PROP_RLE) {
                         /* X2 */
- if (dirstat->level + (dirstat->level % 2 != 0) + 1 <= MAX_DEPTH &&
+ if (dirstat->level + (dirstat->level % 2 != 0) + 1 <=
+ MAX_DEPTH &&
                             overflow_isolate_count == 0 &&
                             overflow_embedding_count == 0) {
                                 /* valid RLE */
                                 dirstat++;
- dirstat->level = (dirstat - 1)->level + ((dirstat - 1)->level % 2 != 0) + 1;
- dirstat->override = GRAPHEME_BIDIRECTIONAL_OVERRIDE_NEUTRAL;
+ dirstat->level =
+ (dirstat - 1)->level +
+ ((dirstat - 1)->level % 2 != 0) + 1;
+ dirstat->override =
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_NEUTRAL;
                                 dirstat->directional_isolate = false;
                         } else {
                                 /* overflow RLE */
- overflow_embedding_count += (overflow_isolate_count == 0);
+ overflow_embedding_count +=
+ (overflow_isolate_count == 0);
                         }
                 } else if (tmp_prop == BIDI_PROP_LRE) {
                         /* X3 */
- if (dirstat->level + (dirstat->level % 2 == 0) + 1 <= MAX_DEPTH &&
+ if (dirstat->level + (dirstat->level % 2 == 0) + 1 <=
+ MAX_DEPTH &&
                             overflow_isolate_count == 0 &&
                             overflow_embedding_count == 0) {
                                 /* valid LRE */
                                 dirstat++;
- dirstat->level = (dirstat - 1)->level + ((dirstat - 1)->level % 2 == 0) + 1;
- dirstat->override = GRAPHEME_BIDIRECTIONAL_OVERRIDE_NEUTRAL;
+ dirstat->level =
+ (dirstat - 1)->level +
+ ((dirstat - 1)->level % 2 == 0) + 1;
+ dirstat->override =
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_NEUTRAL;
                                 dirstat->directional_isolate = false;
                         } else {
                                 /* overflow LRE */
- overflow_embedding_count += (overflow_isolate_count == 0);
+ overflow_embedding_count +=
+ (overflow_isolate_count == 0);
                         }
                 } else if (tmp_prop == BIDI_PROP_RLO) {
                         /* X4 */
- if (dirstat->level + (dirstat->level % 2 != 0) + 1 <= MAX_DEPTH &&
+ if (dirstat->level + (dirstat->level % 2 != 0) + 1 <=
+ MAX_DEPTH &&
                             overflow_isolate_count == 0 &&
                             overflow_embedding_count == 0) {
                                 /* valid RLO */
                                 dirstat++;
- dirstat->level = (dirstat - 1)->level + ((dirstat - 1)->level % 2 != 0) + 1;
- dirstat->override = GRAPHEME_BIDIRECTIONAL_OVERRIDE_RTL;
+ dirstat->level =
+ (dirstat - 1)->level +
+ ((dirstat - 1)->level % 2 != 0) + 1;
+ dirstat->override =
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_RTL;
                                 dirstat->directional_isolate = false;
                         } else {
                                 /* overflow RLO */
- overflow_embedding_count += (overflow_isolate_count == 0);
+ overflow_embedding_count +=
+ (overflow_isolate_count == 0);
                         }
                 } else if (tmp_prop == BIDI_PROP_LRO) {
                         /* X5 */
- if (dirstat->level + (dirstat->level % 2 == 0) + 1 <= MAX_DEPTH &&
+ if (dirstat->level + (dirstat->level % 2 == 0) + 1 <=
+ MAX_DEPTH &&
                             overflow_isolate_count == 0 &&
                             overflow_embedding_count == 0) {
                                 /* valid LRE */
                                 dirstat++;
- dirstat->level = (dirstat - 1)->level + ((dirstat - 1)->level % 2 == 0) + 1;
- dirstat->override = GRAPHEME_BIDIRECTIONAL_OVERRIDE_LTR;
+ dirstat->level =
+ (dirstat - 1)->level +
+ ((dirstat - 1)->level % 2 == 0) + 1;
+ dirstat->override =
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_LTR;
                                 dirstat->directional_isolate = false;
                         } else {
                                 /* overflow LRO */
- overflow_embedding_count += (overflow_isolate_count == 0);
+ overflow_embedding_count +=
+ (overflow_isolate_count == 0);
                         }
                 } else if (tmp_prop == BIDI_PROP_RLI) {
                         /* X5a */
                         s.level = dirstat->level;
- if (dirstat->override == GRAPHEME_BIDIRECTIONAL_OVERRIDE_LTR) {
+ if (dirstat->override ==
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_LTR) {
                                 s.prop = BIDI_PROP_L;
- } else if (dirstat->override == GRAPHEME_BIDIRECTIONAL_OVERRIDE_RTL) {
+ } else if (dirstat->override ==
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_RTL) {
                                 s.prop = BIDI_PROP_R;
                         }
                         state_serialize(&s, &(buf[bufoff]));
 
- if (dirstat->level + (dirstat->level % 2 != 0) + 1 <= MAX_DEPTH &&
+ if (dirstat->level + (dirstat->level % 2 != 0) + 1 <=
+ MAX_DEPTH &&
                             overflow_isolate_count == 0 &&
                             overflow_embedding_count == 0) {
                                 /* valid RLI */
                                 valid_isolate_count++;
 
                                 dirstat++;
- dirstat->level = (dirstat - 1)->level + ((dirstat - 1)->level % 2 != 0) + 1;
- dirstat->override = GRAPHEME_BIDIRECTIONAL_OVERRIDE_NEUTRAL;
+ dirstat->level =
+ (dirstat - 1)->level +
+ ((dirstat - 1)->level % 2 != 0) + 1;
+ dirstat->override =
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_NEUTRAL;
                                 dirstat->directional_isolate = true;
                         } else {
                                 /* overflow RLI */
_AT_@ -689,22 +748,28 @@ again:
                 } else if (tmp_prop == BIDI_PROP_LRI) {
                         /* X5b */
                         s.level = dirstat->level;
- if (dirstat->override == GRAPHEME_BIDIRECTIONAL_OVERRIDE_LTR) {
+ if (dirstat->override ==
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_LTR) {
                                 s.prop = BIDI_PROP_L;
- } else if (dirstat->override == GRAPHEME_BIDIRECTIONAL_OVERRIDE_RTL) {
+ } else if (dirstat->override ==
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_RTL) {
                                 s.prop = BIDI_PROP_R;
                         }
                         state_serialize(&s, &(buf[bufoff]));
 
- if (dirstat->level + (dirstat->level % 2 == 0) + 1 <= MAX_DEPTH &&
+ if (dirstat->level + (dirstat->level % 2 == 0) + 1 <=
+ MAX_DEPTH &&
                             overflow_isolate_count == 0 &&
                             overflow_embedding_count == 0) {
                                 /* valid LRI */
                                 valid_isolate_count++;
 
                                 dirstat++;
- dirstat->level = (dirstat - 1)->level + ((dirstat - 1)->level % 2 == 0) + 1;
- dirstat->override = GRAPHEME_BIDIRECTIONAL_OVERRIDE_NEUTRAL;
+ dirstat->level =
+ (dirstat - 1)->level +
+ ((dirstat - 1)->level % 2 == 0) + 1;
+ dirstat->override =
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_NEUTRAL;
                                 dirstat->directional_isolate = true;
                         } else {
                                 /* overflow LRI */
_AT_@ -712,23 +777,27 @@ again:
                         }
                 } else if (tmp_prop == BIDI_PROP_FSI) {
                         /* X5c */
- if (get_paragraph_level(GRAPHEME_BIDIRECTIONAL_OVERRIDE_NEUTRAL, true,
- buf + (bufoff + 1), buflen - (bufoff + 1)) == 1) {
+ if (get_paragraph_level(
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_NEUTRAL,
+ true, buf + (bufoff + 1),
+ buflen - (bufoff + 1)) == 1) {
                                 tmp_prop = BIDI_PROP_RLI;
                                 goto again;
                         } else { /* ... == 0 */
                                 tmp_prop = BIDI_PROP_LRI;
                                 goto again;
                         }
- } else if (tmp_prop != BIDI_PROP_B &&
- tmp_prop != BIDI_PROP_BN &&
+ } else if (tmp_prop != BIDI_PROP_B &&
+ tmp_prop != BIDI_PROP_BN &&
                            tmp_prop != BIDI_PROP_PDF &&
                            tmp_prop != BIDI_PROP_PDI) {
                         /* X6 */
                         s.level = dirstat->level;
- if (dirstat->override == GRAPHEME_BIDIRECTIONAL_OVERRIDE_LTR) {
+ if (dirstat->override ==
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_LTR) {
                                 s.prop = BIDI_PROP_L;
- } else if (dirstat->override == GRAPHEME_BIDIRECTIONAL_OVERRIDE_RTL) {
+ } else if (dirstat->override ==
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_RTL) {
                                 s.prop = BIDI_PROP_R;
                         }
                         state_serialize(&s, &(buf[bufoff]));
_AT_@ -773,9 +842,11 @@ again:
                         }
 
                         s.level = dirstat->level;
- if (dirstat->override == GRAPHEME_BIDIRECTIONAL_OVERRIDE_LTR) {
+ if (dirstat->override ==
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_LTR) {
                                 s.prop = BIDI_PROP_L;
- } else if (dirstat->override == GRAPHEME_BIDIRECTIONAL_OVERRIDE_RTL) {
+ } else if (dirstat->override ==
+ GRAPHEME_BIDIRECTIONAL_OVERRIDE_RTL) {
                                 s.prop = BIDI_PROP_R;
                         }
                         state_serialize(&s, &(buf[bufoff]));
_AT_@ -796,12 +867,9 @@ again:
                 }
 
                 /* X9 */
- if (tmp_prop == BIDI_PROP_RLE ||
- tmp_prop == BIDI_PROP_LRE ||
- tmp_prop == BIDI_PROP_RLO ||
- tmp_prop == BIDI_PROP_LRO ||
- tmp_prop == BIDI_PROP_PDF ||
- tmp_prop == BIDI_PROP_BN) {
+ if (tmp_prop == BIDI_PROP_RLE || tmp_prop == BIDI_PROP_LRE ||
+ tmp_prop == BIDI_PROP_RLO || tmp_prop == BIDI_PROP_LRO ||
+ tmp_prop == BIDI_PROP_PDF || tmp_prop == BIDI_PROP_BN) {
                         s.level = -1;
                         state_serialize(&s, &(buf[bufoff]));
                 }
_AT_@ -811,8 +879,8 @@ again:
         for (bufoff = 0; bufoff < buflen; bufoff++) {
                 state_deserialize(buf[bufoff], &s);
                 if (!s.visited && s.level != -1) {
- bufoff += process_isolating_run_sequence(buf, buflen, bufoff,
- paragraph_level);
+ bufoff += process_isolating_run_sequence(
+ buf, buflen, bufoff, paragraph_level);
                 }
         }
 
_AT_@ -823,7 +891,7 @@ again:
         for (bufoff = 0; bufoff < buflen; bufoff++) {
                 state_deserialize(buf[bufoff], &s);
 
- if (s.level % 2 == 0 ) {
+ if (s.level % 2 == 0) {
                         /* even level */
                         if (s.prop == BIDI_PROP_R) {
                                 s.level += 1;
_AT_@ -833,8 +901,7 @@ again:
                         }
                 } else {
                         /* odd level */
- if (s.prop == BIDI_PROP_L ||
- s.prop == BIDI_PROP_EN ||
+ if (s.prop == BIDI_PROP_L || s.prop == BIDI_PROP_EN ||
                             s.prop == BIDI_PROP_AN) {
                                 s.level += 1;
                         }
_AT_@ -853,10 +920,8 @@ again:
                         continue;
                 }
 
- if (s.rawprop == BIDI_PROP_WS ||
- s.rawprop == BIDI_PROP_FSI ||
- s.rawprop == BIDI_PROP_LRI ||
- s.rawprop == BIDI_PROP_RLI ||
+ if (s.rawprop == BIDI_PROP_WS || s.rawprop == BIDI_PROP_FSI ||
+ s.rawprop == BIDI_PROP_LRI || s.rawprop == BIDI_PROP_RLI ||
                     s.rawprop == BIDI_PROP_PDI) {
                         if (runsince == SIZE_MAX) {
                                 /* a new run has begun */
_AT_@ -878,8 +943,7 @@ again:
                         runsince = SIZE_MAX;
                 }
 
- if (s.rawprop == BIDI_PROP_S ||
- s.rawprop == BIDI_PROP_B) {
+ if (s.rawprop == BIDI_PROP_S || s.rawprop == BIDI_PROP_B) {
                         s.level = (int_least8_t)paragraph_level;
                         state_serialize(&s, &(buf[bufoff]));
                 }
_AT_@ -902,7 +966,8 @@ again:
 }
 
 static size_t
-get_embedding_levels(HERODOTUS_READER *r, enum grapheme_bidirectional_override override,
+get_embedding_levels(HERODOTUS_READER *r,
+ enum grapheme_bidirectional_override override,
                      int_least32_t *buf, size_t buflen)
 {
         struct state s;
_AT_@ -911,8 +976,9 @@ get_embedding_levels(HERODOTUS_READER *r, enum grapheme_bidirectional_override o
 
         if (buf == NULL) {
                 for (; herodotus_read_codepoint(r, true, &cp) ==
- HERODOTUS_STATUS_SUCCESS;)
+ HERODOTUS_STATUS_SUCCESS;) {
                         ;
+ }
 
                 /* see below for return value reasoning */
                 return herodotus_reader_number_read(r);
_AT_@ -922,8 +988,9 @@ get_embedding_levels(HERODOTUS_READER *r, enum grapheme_bidirectional_override o
          * the first step is to determine the bidirectional properties
          * and store them in the buffer
          */
- for (bufoff = 0; herodotus_read_codepoint(r, true, &cp) ==
- HERODOTUS_STATUS_SUCCESS; bufoff++) {
+ for (bufoff = 0;
+ herodotus_read_codepoint(r, true, &cp) == HERODOTUS_STATUS_SUCCESS;
+ bufoff++) {
                 if (bufoff < buflen) {
                         /*
                          * actually only do something when we have
_AT_@ -974,9 +1041,10 @@ get_embedding_levels(HERODOTUS_READER *r, enum grapheme_bidirectional_override o
 }
 
 size_t
-grapheme_get_bidirectional_embedding_levels(const uint_least32_t *src, size_t srclen,
- enum grapheme_bidirectional_override override,
- int_least32_t *dest, size_t destlen)
+grapheme_get_bidirectional_embedding_levels(
+ const uint_least32_t *src, size_t srclen,
+ enum grapheme_bidirectional_override override, int_least32_t *dest,
+ size_t destlen)
 {
         HERODOTUS_READER r;
 
_AT_@ -986,9 +1054,10 @@ grapheme_get_bidirectional_embedding_levels(const uint_least32_t *src, size_t sr
 }
 
 size_t
-grapheme_get_bidirectional_embedding_levels_utf8(const char *src, size_t srclen,
- enum grapheme_bidirectional_override override,
- int_least32_t *dest, size_t destlen)
+grapheme_get_bidirectional_embedding_levels_utf8(
+ const char *src, size_t srclen,
+ enum grapheme_bidirectional_override override, int_least32_t *dest,
+ size_t destlen)
 {
         HERODOTUS_READER r;
 
diff --git a/src/case.c b/src/case.c
index 72c1d6b..6fac8ec 100644
--- a/src/case.c
+++ b/src/case.c
_AT_@ -2,8 +2,8 @@
 #include <stddef.h>
 #include <stdint.h>
 
-#include "../grapheme.h"
 #include "../gen/case.h"
+#include "../grapheme.h"
 #include "util.h"
 
 static inline enum case_property
_AT_@ -11,7 +11,7 @@ get_case_property(uint_least32_t cp)
 {
         if (likely(cp <= UINT32_C(0x10FFFF))) {
                 return (enum case_property)
- case_minor[case_major[cp >> 8] + (cp & 0xFF)];
+ case_minor[case_major[cp >> 8] + (cp & 0xFF)];
         } else {
                 return CASE_PROP_OTHER;
         }
_AT_@ -45,58 +45,64 @@ to_case(HERODOTUS_READER *r, HERODOTUS_WRITER *w,
         uint_least32_t cp, tmp_cp;
         int_least32_t map;
 
- for (; herodotus_read_codepoint(r, true, &cp) == HERODOTUS_STATUS_SUCCESS;) {
+ for (; herodotus_read_codepoint(r, true, &cp) ==
+ HERODOTUS_STATUS_SUCCESS;) {
                 if (sc == lower_special) {
                         /*
- * For the special Final_Sigma-rule (see SpecialCasing.txt),
- * which is the only non-localized case-dependent rule,
- * we apply a different mapping when a sigma is at the
- * end of a word.
+ * For the special Final_Sigma-rule (see
+ * SpecialCasing.txt), which is the only non-localized
+ * case-dependent rule, we apply a different mapping
+ * when a sigma is at the end of a word.
                          *
                          * Before: cased case-ignorable*
                          * After: not(case-ignorable* cased)
                          *
- * We check the after-condition on demand, but the before-
- * condition is best checked using the "level"-heuristic
- * also used in the sentence and line breaking-implementations.
+ * We check the after-condition on demand, but the
+ * before- condition is best checked using the
+ * "level"-heuristic also used in the sentence and line
+ * breaking-implementations.
                          */
- if (cp == UINT32_C(0x03A3) && /* GREEK CAPITAL LETTER SIGMA */
+ if (cp == UINT32_C(0x03A3) && /* GREEK CAPITAL LETTER
+ SIGMA */
                             (final_sigma_level == 1 ||
                              final_sigma_level == 2)) {
                                 /*
                                  * check succeeding characters by first skipping
- * all case-ignorable characters and then checking
- * if the succeeding character is cased, invalidating
- * the after-condition
+ * all case-ignorable characters and then
+ * checking if the succeeding character is
+ * cased, invalidating the after-condition
                                  */
                                 herodotus_reader_copy(r, &tmp);
                                 for (prop = NUM_CASE_PROPS;
- (s = herodotus_read_codepoint(&tmp, true, &tmp_cp)) ==
- HERODOTUS_STATUS_SUCCESS; ) {
+ (s = herodotus_read_codepoint(&tmp, true,
+ &tmp_cp)) ==
+ HERODOTUS_STATUS_SUCCESS;) {
                                         prop = get_case_property(tmp_cp);
 
                                         if (prop != CASE_PROP_CASE_IGNORABLE &&
                                             prop != CASE_PROP_BOTH_CASED_CASE_IGNORABLE) {
- break;
+ break;
                                         }
                                 }
 
                                 /*
- * Now prop is something other than case-ignorable or
- * the source-string ended.
- * If it is something other than cased, we know
+ * Now prop is something other than
+ * case-ignorable or the source-string ended. If
+ * it is something other than cased, we know
                                  * that the after-condition holds
                                  */
                                 if (s != HERODOTUS_STATUS_SUCCESS ||
                                     (prop != CASE_PROP_CASED &&
                                      prop != CASE_PROP_BOTH_CASED_CASE_IGNORABLE)) {
                                         /*
- * write GREEK SMALL LETTER FINAL SIGMA to
- * destination
+ * write GREEK SMALL LETTER FINAL SIGMA
+ * to destination
+ */
+ herodotus_write_codepoint(
+ w, UINT32_C(0x03C2));
+
+ /* reset Final_Sigma-state and continue
                                          */
- herodotus_write_codepoint(w, UINT32_C(0x03C2));
-
- /* reset Final_Sigma-state and continue */
                                         final_sigma_level = 0;
                                         continue;
                                 }
_AT_@ -110,11 +116,13 @@ to_case(HERODOTUS_READER *r, HERODOTUS_WRITER *w,
                              prop == CASE_PROP_BOTH_CASED_CASE_IGNORABLE)) {
                                 /* sequence has begun */
                                 final_sigma_level = 1;
- } else if ((final_sigma_level == 1 ||
- final_sigma_level == 2) &&
- (prop == CASE_PROP_CASE_IGNORABLE ||
- prop == CASE_PROP_BOTH_CASED_CASE_IGNORABLE)) {
- /* case-ignorable sequence begins or continued */
+ } else if (
+ (final_sigma_level == 1 ||
+ final_sigma_level == 2) &&
+ (prop == CASE_PROP_CASE_IGNORABLE ||
+ prop == CASE_PROP_BOTH_CASED_CASE_IGNORABLE)) {
+ /* case-ignorable sequence begins or continued
+ */
                                 final_sigma_level = 2;
                         } else {
                                 /* sequence broke */
_AT_@ -134,8 +142,8 @@ to_case(HERODOTUS_READER *r, HERODOTUS_WRITER *w,
                         }
                 } else {
                         /* we have a simple mapping */
- herodotus_write_codepoint(w, (uint_least32_t)
- ((int_least32_t)cp + map));
+ herodotus_write_codepoint(
+ w, (uint_least32_t)((int_least32_t)cp + map));
                 }
         }
 
_AT_@ -168,14 +176,16 @@ to_titlecase(HERODOTUS_READER *r, HERODOTUS_WRITER *w)
 
         for (; (nwb = herodotus_next_word_break(r)) > 0;) {
                 herodotus_reader_push_advance_limit(r, nwb);
- for (; (s = herodotus_read_codepoint(r, false, &cp)) == HERODOTUS_STATUS_SUCCESS;) {
+ for (; (s = herodotus_read_codepoint(r, false, &cp)) ==
+ HERODOTUS_STATUS_SUCCESS;) {
                         /* check if we have a cased character */
                         prop = get_case_property(cp);
                         if (prop == CASE_PROP_CASED ||
                             prop == CASE_PROP_BOTH_CASED_CASE_IGNORABLE) {
                                 break;
                         } else {
- /* write the data to the output verbatim, it if permits */
+ /* write the data to the output verbatim, it if
+ * permits */
                                 herodotus_write_codepoint(w, cp);
 
                                 /* increment reader */
_AT_@ -199,9 +209,10 @@ to_titlecase(HERODOTUS_READER *r, HERODOTUS_WRITER *w)
                          * we encountered a cased character before the word
                          * break, convert it to titlecase
                          */
- herodotus_reader_push_advance_limit(r,
- herodotus_reader_next_codepoint_break(r));
- to_case(r, w, 0, title_major, title_minor, title_special);
+ herodotus_reader_push_advance_limit(
+ r, herodotus_reader_next_codepoint_break(r));
+ to_case(r, w, 0, title_major, title_minor,
+ title_special);
                         herodotus_reader_pop_limit(r);
                 }
 
_AT_@ -218,7 +229,8 @@ to_titlecase(HERODOTUS_READER *r, HERODOTUS_WRITER *w)
 }
 
 size_t
-grapheme_to_uppercase(const uint_least32_t *src, size_t srclen, uint_least32_t *dest, size_t destlen)
+grapheme_to_uppercase(const uint_least32_t *src, size_t srclen,
+ uint_least32_t *dest, size_t destlen)
 {
         HERODOTUS_READER r;
         HERODOTUS_WRITER w;
_AT_@ -230,7 +242,8 @@ grapheme_to_uppercase(const uint_least32_t *src, size_t srclen, uint_least32_t *
 }
 
 size_t
-grapheme_to_lowercase(const uint_least32_t *src, size_t srclen, uint_least32_t *dest, size_t destlen)
+grapheme_to_lowercase(const uint_least32_t *src, size_t srclen,
+ uint_least32_t *dest, size_t destlen)
 {
         HERODOTUS_READER r;
         HERODOTUS_WRITER w;
_AT_@ -242,7 +255,8 @@ grapheme_to_lowercase(const uint_least32_t *src, size_t srclen, uint_least32_t *
 }
 
 size_t
-grapheme_to_titlecase(const uint_least32_t *src, size_t srclen, uint_least32_t *dest, size_t destlen)
+grapheme_to_titlecase(const uint_least32_t *src, size_t srclen,
+ uint_least32_t *dest, size_t destlen)
 {
         HERODOTUS_READER r;
         HERODOTUS_WRITER w;
_AT_@ -254,7 +268,8 @@ grapheme_to_titlecase(const uint_least32_t *src, size_t srclen, uint_least32_t *
 }
 
 size_t
-grapheme_to_uppercase_utf8(const char *src, size_t srclen, char *dest, size_t destlen)
+grapheme_to_uppercase_utf8(const char *src, size_t srclen, char *dest,
+ size_t destlen)
 {
         HERODOTUS_READER r;
         HERODOTUS_WRITER w;
_AT_@ -266,7 +281,8 @@ grapheme_to_uppercase_utf8(const char *src, size_t srclen, char *dest, size_t de
 }
 
 size_t
-grapheme_to_lowercase_utf8(const char *src, size_t srclen, char *dest, size_t destlen)
+grapheme_to_lowercase_utf8(const char *src, size_t srclen, char *dest,
+ size_t destlen)
 {
         HERODOTUS_READER r;
         HERODOTUS_WRITER w;
_AT_@ -278,7 +294,8 @@ grapheme_to_lowercase_utf8(const char *src, size_t srclen, char *dest, size_t de
 }
 
 size_t
-grapheme_to_titlecase_utf8(const char *src, size_t srclen, char *dest, size_t destlen)
+grapheme_to_titlecase_utf8(const char *src, size_t srclen, char *dest,
+ size_t destlen)
 {
         HERODOTUS_READER r;
         HERODOTUS_WRITER w;
_AT_@ -299,7 +316,8 @@ is_case(HERODOTUS_READER *r, const uint_least16_t *major,
         uint_least32_t cp;
         int_least32_t map;
 
- for (; herodotus_read_codepoint(r, false, &cp) == HERODOTUS_STATUS_SUCCESS;) {
+ for (; herodotus_read_codepoint(r, false, &cp) ==
+ HERODOTUS_STATUS_SUCCESS;) {
                 /* get and handle case mapping */
                 if (unlikely((map = get_case_offset(cp, major, minor)) >=
                              INT32_C(0x110000))) {
_AT_@ -315,7 +333,8 @@ is_case(HERODOTUS_READER *r, const uint_least16_t *major,
                                                 goto done;
                                         } else {
                                                 /* move forward */
- herodotus_read_codepoint(r, true, &cp);
+ herodotus_read_codepoint(
+ r, true, &cp);
                                         }
                                 } else {
                                         /*
_AT_@ -357,7 +376,8 @@ is_titlecase(HERODOTUS_READER *r, size_t *output)
 
         for (; (nwb = herodotus_next_word_break(r)) > 0;) {
                 herodotus_reader_push_advance_limit(r, nwb);
- for (; (s = herodotus_read_codepoint(r, false, &cp)) == HERODOTUS_STATUS_SUCCESS;) {
+ for (; (s = herodotus_read_codepoint(r, false, &cp)) ==
+ HERODOTUS_STATUS_SUCCESS;) {
                         /* check if we have a cased character */
                         prop = get_case_property(cp);
                         if (prop == CASE_PROP_CASED ||
_AT_@ -384,17 +404,20 @@ is_titlecase(HERODOTUS_READER *r, size_t *output)
                          * we encountered a cased character before the word
                          * break, check if it's titlecase
                          */
- herodotus_reader_push_advance_limit(r,
- herodotus_reader_next_codepoint_break(r));
- if (!is_case(r, title_major, title_minor, title_special, NULL)) {
+ herodotus_reader_push_advance_limit(
+ r, herodotus_reader_next_codepoint_break(r));
+ if (!is_case(r, title_major, title_minor, title_special,
+ NULL)) {
                                 ret = false;
                                 goto done;
                         }
                         herodotus_reader_pop_limit(r);
                 }
 
- /* check if the rest of the codepoints in the word are lowercase */
- if (!is_case(r, lower_major, lower_minor, lower_special, NULL)) {
+ /* check if the rest of the codepoints in the word are lowercase
+ */
+ if (!is_case(r, lower_major, lower_minor, lower_special,
+ NULL)) {
                         ret = false;
                         goto done;
                 }
diff --git a/src/character.c b/src/character.c
index 33d2162..aedcf9e 100644
--- a/src/character.c
+++ b/src/character.c
_AT_@ -16,83 +16,80 @@ struct character_break_state {
 
 static const uint_least16_t dont_break[NUM_CHAR_BREAK_PROPS] = {
         [CHAR_BREAK_PROP_OTHER] =
- UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK, /* GB9a */
- [CHAR_BREAK_PROP_CR] =
- UINT16_C(1) << CHAR_BREAK_PROP_LF, /* GB3 */
+ UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK, /* GB9a */
+ [CHAR_BREAK_PROP_CR] = UINT16_C(1) << CHAR_BREAK_PROP_LF, /* GB3 */
         [CHAR_BREAK_PROP_EXTEND] =
- UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK, /* GB9a */
+ UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK, /* GB9a */
         [CHAR_BREAK_PROP_EXTENDED_PICTOGRAPHIC] =
- UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK, /* GB9a */
+ UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK, /* GB9a */
         [CHAR_BREAK_PROP_HANGUL_L] =
- UINT16_C(1) << CHAR_BREAK_PROP_HANGUL_L | /* GB6 */
- UINT16_C(1) << CHAR_BREAK_PROP_HANGUL_V | /* GB6 */
- UINT16_C(1) << CHAR_BREAK_PROP_HANGUL_LV | /* GB6 */
- UINT16_C(1) << CHAR_BREAK_PROP_HANGUL_LVT | /* GB6 */
- UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK, /* GB9a */
+ UINT16_C(1) << CHAR_BREAK_PROP_HANGUL_L | /* GB6 */
+ UINT16_C(1) << CHAR_BREAK_PROP_HANGUL_V | /* GB6 */
+ UINT16_C(1) << CHAR_BREAK_PROP_HANGUL_LV | /* GB6 */
+ UINT16_C(1) << CHAR_BREAK_PROP_HANGUL_LVT | /* GB6 */
+ UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK, /* GB9a */
         [CHAR_BREAK_PROP_HANGUL_V] =
- UINT16_C(1) << CHAR_BREAK_PROP_HANGUL_V | /* GB7 */
- UINT16_C(1) << CHAR_BREAK_PROP_HANGUL_T | /* GB7 */
- UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK, /* GB9a */
+ UINT16_C(1) << CHAR_BREAK_PROP_HANGUL_V | /* GB7 */
+ UINT16_C(1) << CHAR_BREAK_PROP_HANGUL_T | /* GB7 */
+ UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK, /* GB9a */
         [CHAR_BREAK_PROP_HANGUL_T] =
- UINT16_C(1) << CHAR_BREAK_PROP_HANGUL_T | /* GB8 */
- UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK, /* GB9a */
+ UINT16_C(1) << CHAR_BREAK_PROP_HANGUL_T | /* GB8 */
+ UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK, /* GB9a */
         [CHAR_BREAK_PROP_HANGUL_LV] =
- UINT16_C(1) << CHAR_BREAK_PROP_HANGUL_V | /* GB7 */
- UINT16_C(1) << CHAR_BREAK_PROP_HANGUL_T | /* GB7 */
- UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK, /* GB9a */
+ UINT16_C(1) << CHAR_BREAK_PROP_HANGUL_V | /* GB7 */
+ UINT16_C(1) << CHAR_BREAK_PROP_HANGUL_T | /* GB7 */
+ UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK, /* GB9a */
         [CHAR_BREAK_PROP_HANGUL_LVT] =
- UINT16_C(1) << CHAR_BREAK_PROP_HANGUL_T | /* GB8 */
- UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK, /* GB9a */
+ UINT16_C(1) << CHAR_BREAK_PROP_HANGUL_T | /* GB8 */
+ UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK, /* GB9a */
         [CHAR_BREAK_PROP_PREPEND] =
- UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK | /* GB9a */
+ UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK | /* GB9a */
                 (UINT16_C(0xFFFF) &
- ~(UINT16_C(1) << CHAR_BREAK_PROP_CR |
- UINT16_C(1) << CHAR_BREAK_PROP_LF |
- UINT16_C(1) << CHAR_BREAK_PROP_CONTROL
- )
- ), /* GB9b */
+ ~(UINT16_C(1) << CHAR_BREAK_PROP_CR |
+ UINT16_C(1) << CHAR_BREAK_PROP_LF |
+ UINT16_C(1) << CHAR_BREAK_PROP_CONTROL)), /* GB9b */
         [CHAR_BREAK_PROP_REGIONAL_INDICATOR] =
- UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK, /* GB9a */
+ UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK, /* GB9a */
         [CHAR_BREAK_PROP_SPACINGMARK] =
- UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK, /* GB9a */
+ UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK, /* GB9a */
         [CHAR_BREAK_PROP_ZWJ] =
- UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
- UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK, /* GB9a */
+ UINT16_C(1) << CHAR_BREAK_PROP_EXTEND | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_ZWJ | /* GB9 */
+ UINT16_C(1) << CHAR_BREAK_PROP_SPACINGMARK, /* GB9a */
 };
 static const uint_least16_t flag_update_gb11[2 * NUM_CHAR_BREAK_PROPS] = {
         [CHAR_BREAK_PROP_EXTENDED_PICTOGRAPHIC] =
- UINT16_C(1) << CHAR_BREAK_PROP_ZWJ |
+ UINT16_C(1) << CHAR_BREAK_PROP_ZWJ |
                 UINT16_C(1) << CHAR_BREAK_PROP_EXTEND,
         [CHAR_BREAK_PROP_ZWJ + NUM_CHAR_BREAK_PROPS] =
                 UINT16_C(1) << CHAR_BREAK_PROP_EXTENDED_PICTOGRAPHIC,
         [CHAR_BREAK_PROP_EXTEND + NUM_CHAR_BREAK_PROPS] =
- UINT16_C(1) << CHAR_BREAK_PROP_EXTEND |
+ UINT16_C(1) << CHAR_BREAK_PROP_EXTEND |
                 UINT16_C(1) << CHAR_BREAK_PROP_ZWJ,
         [CHAR_BREAK_PROP_EXTENDED_PICTOGRAPHIC + NUM_CHAR_BREAK_PROPS] =
- UINT16_C(1) << CHAR_BREAK_PROP_ZWJ |
+ UINT16_C(1) << CHAR_BREAK_PROP_ZWJ |
                 UINT16_C(1) << CHAR_BREAK_PROP_EXTEND,
 };
 static const uint_least16_t dont_break_gb11[2 * NUM_CHAR_BREAK_PROPS] = {
_AT_@ -113,7 +110,8 @@ get_break_prop(uint_least32_t cp)
 {
         if (likely(cp <= UINT32_C(0x10FFFF))) {
                 return (enum char_break_property)
- char_break_minor[char_break_major[cp >> 8] + (cp & 0xFF)];
+ char_break_minor[char_break_major[cp >> 8] +
+ (cp & 0xFF)];
         } else {
                 return CHAR_BREAK_PROP_OTHER;
         }
_AT_@ -122,23 +120,27 @@ get_break_prop(uint_least32_t cp)
 static inline void
 state_serialize(const struct character_break_state *in, uint_least16_t *out)
 {
- *out = (uint_least16_t)(in->prop & UINT8_C(0xFF)) | /* first 8 bits */
- (uint_least16_t)(((uint_least16_t)(in->prop_set)) << 8) | /* 9th bit */
- (uint_least16_t)(((uint_least16_t)(in->gb11_flag)) << 9) | /* 10th bit */
- (uint_least16_t)(((uint_least16_t)(in->gb12_13_flag)) << 10); /* 11th bit */
+ *out = (uint_least16_t)(in->prop & UINT8_C(0xFF)) | /* first 8 bits */
+ (uint_least16_t)(((uint_least16_t)(in->prop_set))
+ << 8) | /* 9th bit */
+ (uint_least16_t)(((uint_least16_t)(in->gb11_flag))
+ << 9) | /* 10th bit */
+ (uint_least16_t)(((uint_least16_t)(in->gb12_13_flag))
+ << 10); /* 11th bit */
 }
 
 static inline void
 state_deserialize(uint_least16_t in, struct character_break_state *out)
 {
- out->prop = in & UINT8_C(0xFF);
- out->prop_set = in & (UINT16_C(1) << 8);
- out->gb11_flag = in & (UINT16_C(1) << 9);
+ out->prop = in & UINT8_C(0xFF);
+ out->prop_set = in & (UINT16_C(1) << 8);
+ out->gb11_flag = in & (UINT16_C(1) << 9);
         out->gb12_13_flag = in & (UINT16_C(1) << 10);
 }
 
 bool
-grapheme_is_character_break(uint_least32_t cp0, uint_least32_t cp1, uint_least16_t *s)
+grapheme_is_character_break(uint_least32_t cp0, uint_least32_t cp1,
+ uint_least16_t *s)
 {
         struct character_break_state state;
         enum char_break_property cp0_prop, cp1_prop;
_AT_@ -161,23 +163,26 @@ grapheme_is_character_break(uint_least32_t cp0, uint_least32_t cp1, uint_least16
                 /* update flags */
                 state.gb11_flag =
                         flag_update_gb11[cp0_prop + NUM_CHAR_BREAK_PROPS *
- state.gb11_flag] &
+ state.gb11_flag] &
                         UINT16_C(1) << cp1_prop;
                 state.gb12_13_flag =
- flag_update_gb12_13[cp0_prop + NUM_CHAR_BREAK_PROPS *
- state.gb12_13_flag] &
- UINT16_C(1) << cp1_prop;
+ flag_update_gb12_13[cp0_prop +
+ NUM_CHAR_BREAK_PROPS *
+ state.gb12_13_flag] &
+ UINT16_C(1) << cp1_prop;
 
                 /*
                  * Apply grapheme cluster breaking algorithm (UAX #29), see
                  * http://unicode.org/reports/tr29/#Grapheme_Cluster_Boundary_Rules
                  */
                 notbreak = (dont_break[cp0_prop] & (UINT16_C(1) << cp1_prop)) ||
- (dont_break_gb11[cp0_prop + state.gb11_flag *
- NUM_CHAR_BREAK_PROPS] &
+ (dont_break_gb11[cp0_prop +
+ state.gb11_flag *
+ NUM_CHAR_BREAK_PROPS] &
                             (UINT16_C(1) << cp1_prop)) ||
- (dont_break_gb12_13[cp0_prop + state.gb12_13_flag *
- NUM_CHAR_BREAK_PROPS] &
+ (dont_break_gb12_13[cp0_prop +
+ state.gb12_13_flag *
+ NUM_CHAR_BREAK_PROPS] &
                             (UINT16_C(1) << cp1_prop));
 
                 /* update or reset flags (when we have a break) */
_AT_@ -198,8 +203,10 @@ grapheme_is_character_break(uint_least32_t cp0, uint_least32_t cp1, uint_least16
                  * were all set to false
                  */
                 notbreak = (dont_break[cp0_prop] & (UINT16_C(1) << cp1_prop)) ||
- (dont_break_gb11[cp0_prop] & (UINT16_C(1) << cp1_prop)) ||
- (dont_break_gb12_13[cp0_prop] & (UINT16_C(1) << cp1_prop));
+ (dont_break_gb11[cp0_prop] &
+ (UINT16_C(1) << cp1_prop)) ||
+ (dont_break_gb12_13[cp0_prop] &
+ (UINT16_C(1) << cp1_prop));
         }
 
         return !notbreak;
_AT_@ -212,7 +219,8 @@ next_character_break(HERODOTUS_READER *r)
         uint_least32_t cp0 = 0, cp1 = 0;
 
         for (herodotus_read_codepoint(r, true, &cp0);
- herodotus_read_codepoint(r, false, &cp1) == HERODOTUS_STATUS_SUCCESS;
+ herodotus_read_codepoint(r, false, &cp1) ==
+ HERODOTUS_STATUS_SUCCESS;
              herodotus_read_codepoint(r, true, &cp0)) {
                 if (grapheme_is_character_break(cp0, cp1, &state)) {
                         break;
diff --git a/src/line.c b/src/line.c
index 233e80c..5355143 100644
--- a/src/line.c
+++ b/src/line.c
_AT_@ -11,7 +11,8 @@ get_break_prop(uint_least32_t cp)
 {
         if (likely(cp <= UINT32_C(0x10FFFF))) {
                 return (enum line_break_property)
- line_break_minor[line_break_major[cp >> 8] + (cp & 0xff)];
+ line_break_minor[line_break_major[cp >> 8] +
+ (cp & 0xff)];
         } else {
                 return LINE_BREAK_PROP_AL;
         }
_AT_@ -22,7 +23,7 @@ next_line_break(HERODOTUS_READER *r)
 {
         HERODOTUS_READER tmp;
         enum line_break_property cp0_prop, cp1_prop, last_non_cm_or_zwj_prop,
- last_non_sp_prop, last_non_sp_cm_or_zwj_prop;
+ last_non_sp_prop, last_non_sp_cm_or_zwj_prop;
         uint_least32_t cp;
         uint_least8_t lb25_level = 0;
         bool lb21a_flag = false, ri_even = true;
_AT_@ -43,8 +44,10 @@ next_line_break(HERODOTUS_READER *r)
         last_non_cm_or_zwj_prop = LINE_BREAK_PROP_AL; /* according to LB10 */
         last_non_sp_prop = last_non_sp_cm_or_zwj_prop = NUM_LINE_BREAK_PROPS;
 
- for (herodotus_read_codepoint(r, true, &cp), cp0_prop = get_break_prop(cp);
- herodotus_read_codepoint(r, false, &cp) == HERODOTUS_STATUS_SUCCESS;
+ for (herodotus_read_codepoint(r, true, &cp),
+ cp0_prop = get_break_prop(cp);
+ herodotus_read_codepoint(r, false, &cp) ==
+ HERODOTUS_STATUS_SUCCESS;
              herodotus_read_codepoint(r, true, &cp), cp0_prop = cp1_prop) {
                 /* get property of the right codepoint */
                 cp1_prop = get_break_prop(cp);
_AT_@ -59,10 +62,11 @@ next_line_break(HERODOTUS_READER *r)
                     cp0_prop != LINE_BREAK_PROP_ZWJ) {
                         /*
                          * check if the property we are overwriting now is an
- * HL. If so, we set the LB21a-flag which depends on this
- * knowledge.
+ * HL. If so, we set the LB21a-flag which depends on
+ * this knowledge.
                          */
- lb21a_flag = (last_non_cm_or_zwj_prop == LINE_BREAK_PROP_HL);
+ lb21a_flag =
+ (last_non_cm_or_zwj_prop == LINE_BREAK_PROP_HL);
 
                         /* check regional indicator state */
                         if (cp0_prop == LINE_BREAK_PROP_RI) {
_AT_@ -109,8 +113,7 @@ next_line_break(HERODOTUS_READER *r)
                          * and one (CL | CP) to the left of the middle
                          * spot
                          */
- if ((lb25_level == 0 ||
- lb25_level == 1) &&
+ if ((lb25_level == 0 || lb25_level == 1) &&
                             cp0_prop == LINE_BREAK_PROP_NU) {
                                 /* sequence has begun */
                                 lb25_level = 1;
_AT_@ -118,12 +121,15 @@ next_line_break(HERODOTUS_READER *r)
                                    (cp0_prop == LINE_BREAK_PROP_NU ||
                                     cp0_prop == LINE_BREAK_PROP_SY ||
                                     cp0_prop == LINE_BREAK_PROP_IS)) {
- /* (NU | SY | IS) sequence begins or continued */
+ /* (NU | SY | IS) sequence begins or continued
+ */
                                 lb25_level = 2;
- } else if ((lb25_level == 1 || lb25_level == 2) &&
- (cp0_prop == LINE_BREAK_PROP_CL ||
- cp0_prop == LINE_BREAK_PROP_CP_WITHOUT_EAW_HWF ||
- cp0_prop == LINE_BREAK_PROP_CP_WITH_EAW_HWF)) {
+ } else if (
+ (lb25_level == 1 || lb25_level == 2) &&
+ (cp0_prop == LINE_BREAK_PROP_CL ||
+ cp0_prop ==
+ LINE_BREAK_PROP_CP_WITHOUT_EAW_HWF ||
+ cp0_prop == LINE_BREAK_PROP_CP_WITH_EAW_HWF)) {
                                 /* CL or CP at the end of the sequence */
                                 lb25_level = 3;
                         } else {
_AT_@ -229,17 +235,19 @@ next_line_break(HERODOTUS_READER *r)
                 /* LB13 (affected by tailoring for LB25, see example 7) */
                 if (cp1_prop == LINE_BREAK_PROP_EX ||
                     (last_non_cm_or_zwj_prop != LINE_BREAK_PROP_NU &&
- (cp1_prop == LINE_BREAK_PROP_CL ||
+ (cp1_prop == LINE_BREAK_PROP_CL ||
                       cp1_prop == LINE_BREAK_PROP_CP_WITHOUT_EAW_HWF ||
- cp1_prop == LINE_BREAK_PROP_CP_WITH_EAW_HWF ||
- cp1_prop == LINE_BREAK_PROP_IS ||
+ cp1_prop == LINE_BREAK_PROP_CP_WITH_EAW_HWF ||
+ cp1_prop == LINE_BREAK_PROP_IS ||
                       cp1_prop == LINE_BREAK_PROP_SY))) {
                         continue;
                 }
 
                 /* LB14 */
- if (last_non_sp_cm_or_zwj_prop == LINE_BREAK_PROP_OP_WITHOUT_EAW_HWF ||
- last_non_sp_cm_or_zwj_prop == LINE_BREAK_PROP_OP_WITH_EAW_HWF) {
+ if (last_non_sp_cm_or_zwj_prop ==
+ LINE_BREAK_PROP_OP_WITHOUT_EAW_HWF ||
+ last_non_sp_cm_or_zwj_prop ==
+ LINE_BREAK_PROP_OP_WITH_EAW_HWF) {
                         continue;
                 }
 
_AT_@ -251,9 +259,11 @@ next_line_break(HERODOTUS_READER *r)
                 }
 
                 /* LB16 */
- if ((last_non_sp_cm_or_zwj_prop == LINE_BREAK_PROP_CL ||
- last_non_sp_cm_or_zwj_prop == LINE_BREAK_PROP_CP_WITHOUT_EAW_HWF ||
- last_non_sp_cm_or_zwj_prop == LINE_BREAK_PROP_CP_WITH_EAW_HWF) &&
+ if ((last_non_sp_cm_or_zwj_prop == LINE_BREAK_PROP_CL ||
+ last_non_sp_cm_or_zwj_prop ==
+ LINE_BREAK_PROP_CP_WITHOUT_EAW_HWF ||
+ last_non_sp_cm_or_zwj_prop ==
+ LINE_BREAK_PROP_CP_WITH_EAW_HWF) &&
                     cp1_prop == LINE_BREAK_PROP_NS) {
                         continue;
                 }
_AT_@ -308,7 +318,7 @@ next_line_break(HERODOTUS_READER *r)
                 }
 
                 /* LB23 */
- if ((last_non_cm_or_zwj_prop == LINE_BREAK_PROP_AL ||
+ if ((last_non_cm_or_zwj_prop == LINE_BREAK_PROP_AL ||
                      last_non_cm_or_zwj_prop == LINE_BREAK_PROP_HL) &&
                     cp1_prop == LINE_BREAK_PROP_NU) {
                         continue;
_AT_@ -336,11 +346,11 @@ next_line_break(HERODOTUS_READER *r)
                 /* LB24 */
                 if ((last_non_cm_or_zwj_prop == LINE_BREAK_PROP_PR ||
                      last_non_cm_or_zwj_prop == LINE_BREAK_PROP_PO) &&
- (cp1_prop == LINE_BREAK_PROP_AL ||
+ (cp1_prop == LINE_BREAK_PROP_AL ||
                      cp1_prop == LINE_BREAK_PROP_HL)) {
                         continue;
                 }
- if ((last_non_cm_or_zwj_prop == LINE_BREAK_PROP_AL ||
+ if ((last_non_cm_or_zwj_prop == LINE_BREAK_PROP_AL ||
                      last_non_cm_or_zwj_prop == LINE_BREAK_PROP_HL) &&
                     (cp1_prop == LINE_BREAK_PROP_PR ||
                      cp1_prop == LINE_BREAK_PROP_PO)) {
_AT_@ -362,32 +372,33 @@ next_line_break(HERODOTUS_READER *r)
                         herodotus_reader_copy(r, &tmp);
                         herodotus_read_codepoint(&tmp, true, &cp);
                         if (herodotus_read_codepoint(&tmp, true, &cp) ==
- HERODOTUS_STATUS_SUCCESS &&
+ HERODOTUS_STATUS_SUCCESS &&
                             (cp1_prop == LINE_BREAK_PROP_OP_WITHOUT_EAW_HWF ||
- cp1_prop == LINE_BREAK_PROP_OP_WITH_EAW_HWF ||
+ cp1_prop == LINE_BREAK_PROP_OP_WITH_EAW_HWF ||
                              cp1_prop == LINE_BREAK_PROP_HY)) {
                                 if (get_break_prop(cp) == LINE_BREAK_PROP_NU) {
                                         continue;
                                 }
                         }
                 }
- if ((last_non_cm_or_zwj_prop == LINE_BREAK_PROP_OP_WITHOUT_EAW_HWF ||
- last_non_cm_or_zwj_prop == LINE_BREAK_PROP_OP_WITH_EAW_HWF ||
+ if ((last_non_cm_or_zwj_prop ==
+ LINE_BREAK_PROP_OP_WITHOUT_EAW_HWF ||
+ last_non_cm_or_zwj_prop ==
+ LINE_BREAK_PROP_OP_WITH_EAW_HWF ||
                      last_non_cm_or_zwj_prop == LINE_BREAK_PROP_HY) &&
                     cp1_prop == LINE_BREAK_PROP_NU) {
                         continue;
                 }
- if (lb25_level == 1 &&
- (cp1_prop == LINE_BREAK_PROP_NU ||
- cp1_prop == LINE_BREAK_PROP_SY ||
- cp1_prop == LINE_BREAK_PROP_IS)) {
+ if (lb25_level == 1 && (cp1_prop == LINE_BREAK_PROP_NU ||
+ cp1_prop == LINE_BREAK_PROP_SY ||
+ cp1_prop == LINE_BREAK_PROP_IS)) {
                         continue;
                 }
                 if ((lb25_level == 1 || lb25_level == 2) &&
- (cp1_prop == LINE_BREAK_PROP_NU ||
- cp1_prop == LINE_BREAK_PROP_SY ||
- cp1_prop == LINE_BREAK_PROP_IS ||
- cp1_prop == LINE_BREAK_PROP_CL ||
+ (cp1_prop == LINE_BREAK_PROP_NU ||
+ cp1_prop == LINE_BREAK_PROP_SY ||
+ cp1_prop == LINE_BREAK_PROP_IS ||
+ cp1_prop == LINE_BREAK_PROP_CL ||
                      cp1_prop == LINE_BREAK_PROP_CP_WITHOUT_EAW_HWF ||
                      cp1_prop == LINE_BREAK_PROP_CP_WITH_EAW_HWF)) {
                         continue;
_AT_@ -437,37 +448,37 @@ next_line_break(HERODOTUS_READER *r)
                 }
 
                 /* LB28 */
- if ((last_non_cm_or_zwj_prop == LINE_BREAK_PROP_AL ||
+ if ((last_non_cm_or_zwj_prop == LINE_BREAK_PROP_AL ||
                      last_non_cm_or_zwj_prop == LINE_BREAK_PROP_HL) &&
- (cp1_prop == LINE_BREAK_PROP_AL ||
+ (cp1_prop == LINE_BREAK_PROP_AL ||
                      cp1_prop == LINE_BREAK_PROP_HL)) {
                         continue;
                 }
 
                 /* LB29 */
                 if (last_non_cm_or_zwj_prop == LINE_BREAK_PROP_IS &&
- (cp1_prop == LINE_BREAK_PROP_AL ||
+ (cp1_prop == LINE_BREAK_PROP_AL ||
                      cp1_prop == LINE_BREAK_PROP_HL)) {
                         continue;
                 }
 
                 /* LB30 */
- if ((last_non_cm_or_zwj_prop == LINE_BREAK_PROP_AL ||
- last_non_cm_or_zwj_prop == LINE_BREAK_PROP_HL ||
+ if ((last_non_cm_or_zwj_prop == LINE_BREAK_PROP_AL ||
+ last_non_cm_or_zwj_prop == LINE_BREAK_PROP_HL ||
                      last_non_cm_or_zwj_prop == LINE_BREAK_PROP_NU) &&
                     cp1_prop == LINE_BREAK_PROP_OP_WITHOUT_EAW_HWF) {
                         continue;
                 }
- if (last_non_cm_or_zwj_prop == LINE_BREAK_PROP_CP_WITHOUT_EAW_HWF &&
- (cp1_prop == LINE_BREAK_PROP_AL ||
- cp1_prop == LINE_BREAK_PROP_HL ||
+ if (last_non_cm_or_zwj_prop ==
+ LINE_BREAK_PROP_CP_WITHOUT_EAW_HWF &&
+ (cp1_prop == LINE_BREAK_PROP_AL ||
+ cp1_prop == LINE_BREAK_PROP_HL ||
                      cp1_prop == LINE_BREAK_PROP_NU)) {
                         continue;
                 }
 
                 /* LB30a */
- if (!ri_even &&
- last_non_cm_or_zwj_prop == LINE_BREAK_PROP_RI &&
+ if (!ri_even && last_non_cm_or_zwj_prop == LINE_BREAK_PROP_RI &&
                     cp1_prop == LINE_BREAK_PROP_RI) {
                         continue;
                 }
_AT_@ -477,7 +488,8 @@ next_line_break(HERODOTUS_READER *r)
                     cp1_prop == LINE_BREAK_PROP_EM) {
                         continue;
                 }
- if (last_non_cm_or_zwj_prop == LINE_BREAK_PROP_BOTH_CN_EXTPICT &&
+ if (last_non_cm_or_zwj_prop ==
+ LINE_BREAK_PROP_BOTH_CN_EXTPICT &&
                     cp1_prop == LINE_BREAK_PROP_EM) {
                         continue;
                 }
diff --git a/src/sentence.c b/src/sentence.c
index 8a242c0..291c7f4 100644
--- a/src/sentence.c
+++ b/src/sentence.c
_AT_@ -6,8 +6,7 @@
 #include "../grapheme.h"
 #include "util.h"
 
-struct sentence_break_state
-{
+struct sentence_break_state {
         uint_least8_t aterm_close_sp_level;
         uint_least8_t saterm_close_sp_parasep_level;
 };
_AT_@ -17,8 +16,8 @@ get_sentence_break_prop(uint_least32_t cp)
 {
         if (likely(cp <= UINT32_C(0x10FFFF))) {
                 return (uint_least8_t)
- sentence_break_minor[sentence_break_major[cp >> 8] +
- (cp & 0xff)];
+ sentence_break_minor[sentence_break_major[cp >> 8] +
+ (cp & 0xff)];
         } else {
                 return SENTENCE_BREAK_PROP_OTHER;
         }
_AT_@ -80,7 +79,7 @@ sentence_skip_shift_callback(uint_least8_t prop, void *s)
                 state->aterm_close_sp_level = 2;
         } else if ((state->aterm_close_sp_level == 1 ||
                     state->aterm_close_sp_level == 2 ||
- state->aterm_close_sp_level == 3) &&
+ state->aterm_close_sp_level == 3) &&
                    prop == SENTENCE_BREAK_PROP_SP) {
                 /* sp-sequence begins or continued */
                 state->aterm_close_sp_level = 3;
_AT_@ -102,7 +101,7 @@ sentence_skip_shift_callback(uint_least8_t prop, void *s)
                 state->saterm_close_sp_parasep_level = 2;
         } else if ((state->saterm_close_sp_parasep_level == 1 ||
                     state->saterm_close_sp_parasep_level == 2 ||
- state->saterm_close_sp_parasep_level == 3) &&
+ state->saterm_close_sp_parasep_level == 3) &&
                    prop == SENTENCE_BREAK_PROP_SP) {
                 /* sp-sequence begins or continued */
                 state->saterm_close_sp_parasep_level = 3;
_AT_@ -110,7 +109,7 @@ sentence_skip_shift_callback(uint_least8_t prop, void *s)
                     state->saterm_close_sp_parasep_level == 2 ||
                     state->saterm_close_sp_parasep_level == 3) &&
                    (prop == SENTENCE_BREAK_PROP_SEP ||
- prop == SENTENCE_BREAK_PROP_CR ||
+ prop == SENTENCE_BREAK_PROP_CR ||
                     prop == SENTENCE_BREAK_PROP_LF)) {
                 /* ParaSep at the end of the sequence */
                 state->saterm_close_sp_parasep_level = 4;
_AT_@ -146,7 +145,7 @@ next_sentence_break(HERODOTUS_READER *r)
 
                 /* SB4 */
                 if (p.raw.prev_prop[0] == SENTENCE_BREAK_PROP_SEP ||
- p.raw.prev_prop[0] == SENTENCE_BREAK_PROP_CR ||
+ p.raw.prev_prop[0] == SENTENCE_BREAK_PROP_CR ||
                     p.raw.prev_prop[0] == SENTENCE_BREAK_PROP_LF) {
                         break;
                 }
_AT_@ -179,7 +178,8 @@ next_sentence_break(HERODOTUS_READER *r)
                          * This is the most complicated rule, requiring
                          * the right-hand-side to satisfy the regular expression
                          *
- * ( ¬(OLetter | Upper | Lower | ParaSep | SATerm) )* Lower
+ * ( ¬(OLetter | Upper | Lower | ParaSep | SATerm) )*
+ * Lower
                          *
                          * which we simply check "manually" given LUT-lookups
                          * are very cheap by starting at the mid_reader.
_AT_@ -198,12 +198,12 @@ next_sentence_break(HERODOTUS_READER *r)
                                  * match the following condition
                                  */
                                 if (prop == SENTENCE_BREAK_PROP_OLETTER ||
- prop == SENTENCE_BREAK_PROP_UPPER ||
- prop == SENTENCE_BREAK_PROP_LOWER ||
- prop == SENTENCE_BREAK_PROP_SEP ||
- prop == SENTENCE_BREAK_PROP_CR ||
- prop == SENTENCE_BREAK_PROP_LF ||
- prop == SENTENCE_BREAK_PROP_STERM ||
+ prop == SENTENCE_BREAK_PROP_UPPER ||
+ prop == SENTENCE_BREAK_PROP_LOWER ||
+ prop == SENTENCE_BREAK_PROP_SEP ||
+ prop == SENTENCE_BREAK_PROP_CR ||
+ prop == SENTENCE_BREAK_PROP_LF ||
+ prop == SENTENCE_BREAK_PROP_STERM ||
                                     prop == SENTENCE_BREAK_PROP_ATERM) {
                                         break;
                                 }
_AT_@ -219,8 +219,8 @@ next_sentence_break(HERODOTUS_READER *r)
                      state.saterm_close_sp_parasep_level == 2 ||
                      state.saterm_close_sp_parasep_level == 3) &&
                     (p.skip.next_prop[0] == SENTENCE_BREAK_PROP_SCONTINUE ||
- p.skip.next_prop[0] == SENTENCE_BREAK_PROP_STERM ||
- p.skip.next_prop[0] == SENTENCE_BREAK_PROP_ATERM)) {
+ p.skip.next_prop[0] == SENTENCE_BREAK_PROP_STERM ||
+ p.skip.next_prop[0] == SENTENCE_BREAK_PROP_ATERM)) {
                         continue;
                 }
 
_AT_@ -228,9 +228,9 @@ next_sentence_break(HERODOTUS_READER *r)
                 if ((state.saterm_close_sp_parasep_level == 1 ||
                      state.saterm_close_sp_parasep_level == 2) &&
                     (p.skip.next_prop[0] == SENTENCE_BREAK_PROP_CLOSE ||
- p.skip.next_prop[0] == SENTENCE_BREAK_PROP_SP ||
- p.skip.next_prop[0] == SENTENCE_BREAK_PROP_SEP ||
- p.skip.next_prop[0] == SENTENCE_BREAK_PROP_CR ||
+ p.skip.next_prop[0] == SENTENCE_BREAK_PROP_SP ||
+ p.skip.next_prop[0] == SENTENCE_BREAK_PROP_SEP ||
+ p.skip.next_prop[0] == SENTENCE_BREAK_PROP_CR ||
                      p.skip.next_prop[0] == SENTENCE_BREAK_PROP_LF)) {
                         continue;
                 }
_AT_@ -239,9 +239,9 @@ next_sentence_break(HERODOTUS_READER *r)
                 if ((state.saterm_close_sp_parasep_level == 1 ||
                      state.saterm_close_sp_parasep_level == 2 ||
                      state.saterm_close_sp_parasep_level == 3) &&
- (p.skip.next_prop[0] == SENTENCE_BREAK_PROP_SP ||
+ (p.skip.next_prop[0] == SENTENCE_BREAK_PROP_SP ||
                      p.skip.next_prop[0] == SENTENCE_BREAK_PROP_SEP ||
- p.skip.next_prop[0] == SENTENCE_BREAK_PROP_CR ||
+ p.skip.next_prop[0] == SENTENCE_BREAK_PROP_CR ||
                      p.skip.next_prop[0] == SENTENCE_BREAK_PROP_LF)) {
                         continue;
                 }
diff --git a/src/utf8.c b/src/utf8.c
index 0cada62..fb1cb7a 100644
--- a/src/utf8.c
+++ b/src/utf8.c
_AT_@ -9,14 +9,14 @@
 
 /* lookup-table for the types of sequence first bytes */
 static const struct {
- uint_least8_t lower; /* lower bound of sequence first byte */
- uint_least8_t upper; /* upper bound of sequence first byte */
+ uint_least8_t lower; /* lower bound of sequence first byte */
+ uint_least8_t upper; /* upper bound of sequence first byte */
         uint_least32_t mincp; /* smallest non-overlong encoded codepoint */
         uint_least32_t maxcp; /* largest encodable codepoint */
- /*
- * implicit: table-offset represents the number of following
- * bytes of the form 10xxxxxx (6 bits capacity each)
- */
+ /*
+ * implicit: table-offset represents the number of following
+ * bytes of the form 10xxxxxx (6 bits capacity each)
+ */
 } lut[] = {
         [0] = {
                 /* 0xxxxxxx */
_AT_@ -104,8 +104,8 @@ grapheme_decode_utf8(const char *str, size_t len, uint_least32_t *cp)
                  * sequence starter occurs right before a NUL-byte.
                  */
                 for (i = 0; 1 + i < len; i++) {
- if(!BETWEEN(((const unsigned char *)str)[1 + i],
- 0x80, 0xBF)) {
+ if (!BETWEEN(((const unsigned char *)str)[1 + i], 0x80,
+ 0xBF)) {
                                 break;
                         }
                 }
_AT_@ -124,7 +124,7 @@ grapheme_decode_utf8(const char *str, size_t len, uint_least32_t *cp)
          * (i.e. between 0x80 (10000000) and 0xBF (10111111))
          */
         for (i = 1; i <= off; i++) {
- if(!BETWEEN(((const unsigned char *)str)[i], 0x80, 0xBF)) {
+ if (!BETWEEN(((const unsigned char *)str)[i], 0x80, 0xBF)) {
                         /*
                          * byte does not match format; return
                          * number of bytes processed excluding the
_AT_@ -201,8 +201,8 @@ grapheme_encode_utf8(uint_least32_t cp, char *str, size_t len)
          * We do not overwrite the mask because we guaranteed earlier
          * that there are no bits higher than the mask allows.
          */
- ((unsigned char *)str)[0] = lut[off].lower |
- (uint_least8_t)(cp >> (6 * off));
+ ((unsigned char *)str)[0] =
+ lut[off].lower | (uint_least8_t)(cp >> (6 * off));
 
         for (i = 1; i <= off; i++) {
                 /*
_AT_@ -211,8 +211,8 @@ grapheme_encode_utf8(uint_least32_t cp, char *str, size_t len)
                  * extract from the properly-shifted value using the
                  * mask 00111111 (0x3F)
                  */
- ((unsigned char *)str)[i] = 0x80 |
- ((cp >> (6 * (off - i))) & 0x3F);
+ ((unsigned char *)str)[i] =
+ 0x80 | ((cp >> (6 * (off - i))) & 0x3F);
         }
 
         return 1 + off;
diff --git a/src/util.c b/src/util.c
index 0dfa4a8..4d9a8a4 100644
--- a/src/util.c
+++ b/src/util.c
_AT_@ -37,16 +37,20 @@ herodotus_reader_copy(const HERODOTUS_READER *src, HERODOTUS_READER *dest)
          */
         dest->type = src->type;
         if (src->type == HERODOTUS_TYPE_CODEPOINT) {
- dest->src = (src->src == NULL) ? NULL :
- ((const uint_least32_t *)(src->src)) + src->off;
+ dest->src =
+ (src->src == NULL) ?
+ NULL :
+ ((const uint_least32_t *)(src->src)) + src->off;
         } else { /* src->type == HERODOTUS_TYPE_UTF8 */
- dest->src = (src->src == NULL) ? NULL :
- ((const char *)(src->src)) + src->off;
+ dest->src = (src->src == NULL) ?
+ NULL :
+ ((const char *)(src->src)) + src->off;
         }
         if (src->srclen == SIZE_MAX) {
                 dest->srclen = SIZE_MAX;
         } else {
- dest->srclen = (src->off < src->srclen) ? src->srclen - src->off : 0;
+ dest->srclen =
+ (src->off < src->srclen) ? src->srclen - src->off : 0;
         }
         dest->off = 0;
         dest->terminated_by_null = src->terminated_by_null;
_AT_@ -62,8 +66,10 @@ herodotus_reader_copy(const HERODOTUS_READER *src, HERODOTUS_READER *dest)
                          * to release the limit and, instead, we just
                          * prevent any more reads
                          */
- dest->soft_limit[i] = (src->off < src->soft_limit[i]) ?
- src->soft_limit[i] - src->off : 0;
+ dest->soft_limit[i] =
+ (src->off < src->soft_limit[i]) ?
+ src->soft_limit[i] - src->off :
+ 0;
                 }
         }
 }
_AT_@ -141,9 +147,9 @@ herodotus_read_codepoint(HERODOTUS_READER *r, bool advance, uint_least32_t *cp)
                 *cp = ((const uint_least32_t *)(r->src))[r->off];
                 ret = 1;
         } else { /* r->type == HERODOTUS_TYPE_UTF8 */
- ret = grapheme_decode_utf8((const char *)r->src + r->off,
- MIN(r->srclen, r->soft_limit[0]) -
- r->off, cp);
+ ret = grapheme_decode_utf8(
+ (const char *)r->src + r->off,
+ MIN(r->srclen, r->soft_limit[0]) - r->off, cp);
         }
 
         if (unlikely(r->srclen == SIZE_MAX && *cp == 0)) {
_AT_@ -176,8 +182,8 @@ herodotus_read_codepoint(HERODOTUS_READER *r, bool advance, uint_least32_t *cp)
 }
 
 void
-herodotus_writer_init(HERODOTUS_WRITER *w, enum herodotus_type type,
- void *dest, size_t destlen)
+herodotus_writer_init(HERODOTUS_WRITER *w, enum herodotus_type type, void *dest,
+ size_t destlen)
 {
         w->type = type;
         w->dest = dest;
_AT_@ -212,8 +218,8 @@ herodotus_writer_nul_terminate(HERODOTUS_WRITER *w)
                  * (the last case meaning truncation).
                  */
                 if (w->type == HERODOTUS_TYPE_CODEPOINT) {
- ((uint_least32_t *)(w->dest))
- [w->first_unwritable_offset] = 0;
+ ((uint_least32_t
+ *)(w->dest))[w->first_unwritable_offset] = 0;
                 } else { /* w->type == HERODOTUS_TYPE_UTF8 */
                         ((char *)(w->dest))[w->first_unwritable_offset] = '\0';
                 }
_AT_@ -226,8 +232,7 @@ herodotus_writer_nul_terminate(HERODOTUS_WRITER *w)
                  * byte.
                  */
                 if (w->type == HERODOTUS_TYPE_CODEPOINT) {
- ((uint_least32_t *)(w->dest))
- [w->destlen - 1] = 0;
+ ((uint_least32_t *)(w->dest))[w->destlen - 1] = 0;
                 } else { /* w->type == HERODOTUS_TYPE_UTF8 */
                         ((char *)(w->dest))[w->destlen - 1] = '\0';
                 }
_AT_@ -267,8 +272,8 @@ herodotus_write_codepoint(HERODOTUS_WRITER *w, uint_least32_t cp)
 
                 if (w->dest != NULL && w->off + ret < w->destlen) {
                         /* we still have enough room in the buffer */
- grapheme_encode_utf8(cp, (char *)(w->dest) +
- w->off, w->destlen - w->off);
+ grapheme_encode_utf8(cp, (char *)(w->dest) + w->off,
+ w->destlen - w->off);
                 } else if (w->first_unwritable_offset == SIZE_MAX) {
                         /*
                          * the first unwritable offset has not been
_AT_@ -328,8 +333,9 @@ proper_init(const HERODOTUS_READER *r, void *state, uint_least8_t no_prop,
 
         /* fill in the two next raw properties (after no-initialization) */
         p->raw.next_prop[0] = p->raw.next_prop[1] = p->no_prop;
- for (i = 0; i < 2 && herodotus_read_codepoint(&(p->raw_reader), true, &cp) ==
- HERODOTUS_STATUS_SUCCESS; ) {
+ for (i = 0;
+ i < 2 && herodotus_read_codepoint(&(p->raw_reader), true, &cp) ==
+ HERODOTUS_STATUS_SUCCESS;) {
                 p->raw.next_prop[i++] = p->get_break_prop(cp);
         }
 
_AT_@ -338,8 +344,9 @@ proper_init(const HERODOTUS_READER *r, void *state, uint_least8_t no_prop,
 
         /* fill in the two next skip properties (after no-initialization) */
         p->skip.next_prop[0] = p->skip.next_prop[1] = p->no_prop;
- for (i = 0; i < 2 && herodotus_read_codepoint(&(p->skip_reader), true, &cp) ==
- HERODOTUS_STATUS_SUCCESS; ) {
+ for (i = 0;
+ i < 2 && herodotus_read_codepoint(&(p->skip_reader), true, &cp) ==
+ HERODOTUS_STATUS_SUCCESS;) {
                 prop = p->get_break_prop(cp);
                 if (!p->is_skippable_prop(prop)) {
                         p->skip.next_prop[i++] = prop;
diff --git a/src/util.h b/src/util.h
index d089e0d..47d1fa0 100644
--- a/src/util.h
+++ b/src/util.h
_AT_@ -10,25 +10,25 @@
 #include "../grapheme.h"
 
 #undef MIN
-#define MIN(x,y) ((x) < (y) ? (x) : (y))
+#define MIN(x, y) ((x) < (y) ? (x) : (y))
 #undef MAX
-#define MAX(x,y) ((x) > (y) ? (x) : (y))
+#define MAX(x, y) ((x) > (y) ? (x) : (y))
 #undef LEN
 #define LEN(x) (sizeof(x) / sizeof(*(x)))
 
 #undef likely
 #undef unlikely
 #ifdef __has_builtin
- #if __has_builtin(__builtin_expect)
- #define likely(expr) __builtin_expect(!!(expr), 1)
- #define unlikely(expr) __builtin_expect(!!(expr), 0)
- #else
- #define likely(expr) (expr)
- #define unlikely(expr) (expr)
- #endif
+#if __has_builtin(__builtin_expect)
+#define likely(expr) __builtin_expect(!!(expr), 1)
+#define unlikely(expr) __builtin_expect(!!(expr), 0)
 #else
- #define likely(expr) (expr)
- #define unlikely(expr) (expr)
+#define likely(expr) (expr)
+#define unlikely(expr) (expr)
+#endif
+#else
+#define likely(expr) (expr)
+#define unlikely(expr) (expr)
 #endif
 
 /*
_AT_@ -84,6 +84,7 @@ struct proper {
                 uint_least8_t prev_prop[2];
                 uint_least8_t next_prop[2];
         } raw, skip;
+
         HERODOTUS_READER mid_reader, raw_reader, skip_reader;
         void *state;
         uint_least8_t no_prop;
_AT_@ -100,7 +101,8 @@ void herodotus_reader_pop_limit(HERODOTUS_READER *);
 size_t herodotus_reader_number_read(const HERODOTUS_READER *);
 size_t herodotus_reader_next_word_break(const HERODOTUS_READER *);
 size_t herodotus_reader_next_codepoint_break(const HERODOTUS_READER *);
-enum herodotus_status herodotus_read_codepoint(HERODOTUS_READER *, bool, uint_least32_t *);
+enum herodotus_status herodotus_read_codepoint(HERODOTUS_READER *, bool,
+ uint_least32_t *);
 
 void herodotus_writer_init(HERODOTUS_WRITER *, enum herodotus_type, void *,
                            size_t);
diff --git a/src/word.c b/src/word.c
index 8ecb60e..946c180 100644
--- a/src/word.c
+++ b/src/word.c
_AT_@ -6,8 +6,7 @@
 #include "../grapheme.h"
 #include "util.h"
 
-struct word_break_state
-{
+struct word_break_state {
         bool ri_even;
 };
 
_AT_@ -16,7 +15,8 @@ get_word_break_prop(uint_least32_t cp)
 {
         if (likely(cp <= UINT32_C(0x10FFFF))) {
                 return (uint_least8_t)
- word_break_minor[word_break_major[cp >> 8] + (cp & 0xff)];
+ word_break_minor[word_break_major[cp >> 8] +
+ (cp & 0xff)];
         } else {
                 return WORD_BREAK_PROP_OTHER;
         }
_AT_@ -26,8 +26,7 @@ static bool
 is_skippable_word_prop(uint_least8_t prop)
 {
         return prop == WORD_BREAK_PROP_EXTEND ||
- prop == WORD_BREAK_PROP_FORMAT ||
- prop == WORD_BREAK_PROP_ZWJ;
+ prop == WORD_BREAK_PROP_FORMAT || prop == WORD_BREAK_PROP_ZWJ;
 }
 
 static void
_AT_@ -79,22 +78,24 @@ next_word_break(HERODOTUS_READER *r)
 
                 /* WB3a */
                 if (p.raw.prev_prop[0] == WORD_BREAK_PROP_NEWLINE ||
- p.raw.prev_prop[0] == WORD_BREAK_PROP_CR ||
+ p.raw.prev_prop[0] == WORD_BREAK_PROP_CR ||
                     p.raw.prev_prop[0] == WORD_BREAK_PROP_LF) {
                         break;
                 }
 
                 /* WB3b */
                 if (p.raw.next_prop[0] == WORD_BREAK_PROP_NEWLINE ||
- p.raw.next_prop[0] == WORD_BREAK_PROP_CR ||
+ p.raw.next_prop[0] == WORD_BREAK_PROP_CR ||
                     p.raw.next_prop[0] == WORD_BREAK_PROP_LF) {
                         break;
                 }
 
                 /* WB3c */
                 if (p.raw.prev_prop[0] == WORD_BREAK_PROP_ZWJ &&
- (p.raw.next_prop[0] == WORD_BREAK_PROP_EXTENDED_PICTOGRAPHIC ||
- p.raw.next_prop[0] == WORD_BREAK_PROP_BOTH_ALETTER_EXTPICT)) {
+ (p.raw.next_prop[0] ==
+ WORD_BREAK_PROP_EXTENDED_PICTOGRAPHIC ||
+ p.raw.next_prop[0] ==
+ WORD_BREAK_PROP_BOTH_ALETTER_EXTPICT)) {
                         continue;
                 }
 
_AT_@ -112,37 +113,43 @@ next_word_break(HERODOTUS_READER *r)
                 }
 
                 /* WB5 */
- if ((p.skip.prev_prop[0] == WORD_BREAK_PROP_ALETTER ||
- p.skip.prev_prop[0] == WORD_BREAK_PROP_BOTH_ALETTER_EXTPICT ||
+ if ((p.skip.prev_prop[0] == WORD_BREAK_PROP_ALETTER ||
+ p.skip.prev_prop[0] ==
+ WORD_BREAK_PROP_BOTH_ALETTER_EXTPICT ||
                      p.skip.prev_prop[0] == WORD_BREAK_PROP_HEBREW_LETTER) &&
- (p.skip.next_prop[0] == WORD_BREAK_PROP_ALETTER ||
- p.skip.next_prop[0] == WORD_BREAK_PROP_BOTH_ALETTER_EXTPICT ||
+ (p.skip.next_prop[0] == WORD_BREAK_PROP_ALETTER ||
+ p.skip.next_prop[0] ==
+ WORD_BREAK_PROP_BOTH_ALETTER_EXTPICT ||
                      p.skip.next_prop[0] == WORD_BREAK_PROP_HEBREW_LETTER)) {
                         continue;
                 }
 
                 /* WB6 */
- if ((p.skip.prev_prop[0] == WORD_BREAK_PROP_ALETTER ||
- p.skip.prev_prop[0] == WORD_BREAK_PROP_BOTH_ALETTER_EXTPICT ||
+ if ((p.skip.prev_prop[0] == WORD_BREAK_PROP_ALETTER ||
+ p.skip.prev_prop[0] ==
+ WORD_BREAK_PROP_BOTH_ALETTER_EXTPICT ||
                      p.skip.prev_prop[0] == WORD_BREAK_PROP_HEBREW_LETTER) &&
- (p.skip.next_prop[0] == WORD_BREAK_PROP_MIDLETTER ||
- p.skip.next_prop[0] == WORD_BREAK_PROP_MIDNUMLET ||
+ (p.skip.next_prop[0] == WORD_BREAK_PROP_MIDLETTER ||
+ p.skip.next_prop[0] == WORD_BREAK_PROP_MIDNUMLET ||
                      p.skip.next_prop[0] == WORD_BREAK_PROP_SINGLE_QUOTE) &&
- (p.skip.next_prop[1] == WORD_BREAK_PROP_ALETTER ||
- p.skip.next_prop[1] == WORD_BREAK_PROP_BOTH_ALETTER_EXTPICT ||
+ (p.skip.next_prop[1] == WORD_BREAK_PROP_ALETTER ||
+ p.skip.next_prop[1] ==
+ WORD_BREAK_PROP_BOTH_ALETTER_EXTPICT ||
                      p.skip.next_prop[1] == WORD_BREAK_PROP_HEBREW_LETTER)) {
                         continue;
                 }
 
                 /* WB7 */
- if ((p.skip.prev_prop[0] == WORD_BREAK_PROP_MIDLETTER ||
- p.skip.prev_prop[0] == WORD_BREAK_PROP_MIDNUMLET ||
+ if ((p.skip.prev_prop[0] == WORD_BREAK_PROP_MIDLETTER ||
+ p.skip.prev_prop[0] == WORD_BREAK_PROP_MIDNUMLET ||
                      p.skip.prev_prop[0] == WORD_BREAK_PROP_SINGLE_QUOTE) &&
- (p.skip.next_prop[0] == WORD_BREAK_PROP_ALETTER ||
- p.skip.next_prop[0] == WORD_BREAK_PROP_BOTH_ALETTER_EXTPICT ||
+ (p.skip.next_prop[0] == WORD_BREAK_PROP_ALETTER ||
+ p.skip.next_prop[0] ==
+ WORD_BREAK_PROP_BOTH_ALETTER_EXTPICT ||
                      p.skip.next_prop[0] == WORD_BREAK_PROP_HEBREW_LETTER) &&
- (p.skip.prev_prop[1] == WORD_BREAK_PROP_ALETTER ||
- p.skip.prev_prop[1] == WORD_BREAK_PROP_BOTH_ALETTER_EXTPICT ||
+ (p.skip.prev_prop[1] == WORD_BREAK_PROP_ALETTER ||
+ p.skip.prev_prop[1] ==
+ WORD_BREAK_PROP_BOTH_ALETTER_EXTPICT ||
                      p.skip.prev_prop[1] == WORD_BREAK_PROP_HEBREW_LETTER)) {
                         continue;
                 }
_AT_@ -174,8 +181,9 @@ next_word_break(HERODOTUS_READER *r)
                 }
 
                 /* WB9 */
- if ((p.skip.prev_prop[0] == WORD_BREAK_PROP_ALETTER ||
- p.skip.prev_prop[0] == WORD_BREAK_PROP_BOTH_ALETTER_EXTPICT ||
+ if ((p.skip.prev_prop[0] == WORD_BREAK_PROP_ALETTER ||
+ p.skip.prev_prop[0] ==
+ WORD_BREAK_PROP_BOTH_ALETTER_EXTPICT ||
                      p.skip.prev_prop[0] == WORD_BREAK_PROP_HEBREW_LETTER) &&
                     p.skip.next_prop[0] == WORD_BREAK_PROP_NUMERIC) {
                         continue;
_AT_@ -183,15 +191,16 @@ next_word_break(HERODOTUS_READER *r)
 
                 /* WB10 */
                 if (p.skip.prev_prop[0] == WORD_BREAK_PROP_NUMERIC &&
- (p.skip.next_prop[0] == WORD_BREAK_PROP_ALETTER ||
- p.skip.next_prop[0] == WORD_BREAK_PROP_BOTH_ALETTER_EXTPICT ||
+ (p.skip.next_prop[0] == WORD_BREAK_PROP_ALETTER ||
+ p.skip.next_prop[0] ==
+ WORD_BREAK_PROP_BOTH_ALETTER_EXTPICT ||
                      p.skip.next_prop[0] == WORD_BREAK_PROP_HEBREW_LETTER)) {
                         continue;
                 }
 
                 /* WB11 */
- if ((p.skip.prev_prop[0] == WORD_BREAK_PROP_MIDNUM ||
- p.skip.prev_prop[0] == WORD_BREAK_PROP_MIDNUMLET ||
+ if ((p.skip.prev_prop[0] == WORD_BREAK_PROP_MIDNUM ||
+ p.skip.prev_prop[0] == WORD_BREAK_PROP_MIDNUMLET ||
                      p.skip.prev_prop[0] == WORD_BREAK_PROP_SINGLE_QUOTE) &&
                     p.skip.next_prop[0] == WORD_BREAK_PROP_NUMERIC &&
                     p.skip.prev_prop[1] == WORD_BREAK_PROP_NUMERIC) {
_AT_@ -200,8 +209,8 @@ next_word_break(HERODOTUS_READER *r)
 
                 /* WB12 */
                 if (p.skip.prev_prop[0] == WORD_BREAK_PROP_NUMERIC &&
- (p.skip.next_prop[0] == WORD_BREAK_PROP_MIDNUM ||
- p.skip.next_prop[0] == WORD_BREAK_PROP_MIDNUMLET ||
+ (p.skip.next_prop[0] == WORD_BREAK_PROP_MIDNUM ||
+ p.skip.next_prop[0] == WORD_BREAK_PROP_MIDNUMLET ||
                      p.skip.next_prop[0] == WORD_BREAK_PROP_SINGLE_QUOTE) &&
                     p.skip.next_prop[1] == WORD_BREAK_PROP_NUMERIC) {
                         continue;
_AT_@ -214,11 +223,12 @@ next_word_break(HERODOTUS_READER *r)
                 }
 
                 /* WB13a */
- if ((p.skip.prev_prop[0] == WORD_BREAK_PROP_ALETTER ||
- p.skip.prev_prop[0] == WORD_BREAK_PROP_BOTH_ALETTER_EXTPICT ||
- p.skip.prev_prop[0] == WORD_BREAK_PROP_HEBREW_LETTER ||
- p.skip.prev_prop[0] == WORD_BREAK_PROP_NUMERIC ||
- p.skip.prev_prop[0] == WORD_BREAK_PROP_KATAKANA ||
+ if ((p.skip.prev_prop[0] == WORD_BREAK_PROP_ALETTER ||
+ p.skip.prev_prop[0] ==
+ WORD_BREAK_PROP_BOTH_ALETTER_EXTPICT ||
+ p.skip.prev_prop[0] == WORD_BREAK_PROP_HEBREW_LETTER ||
+ p.skip.prev_prop[0] == WORD_BREAK_PROP_NUMERIC ||
+ p.skip.prev_prop[0] == WORD_BREAK_PROP_KATAKANA ||
                      p.skip.prev_prop[0] == WORD_BREAK_PROP_EXTENDNUMLET) &&
                     p.skip.next_prop[0] == WORD_BREAK_PROP_EXTENDNUMLET) {
                         continue;
_AT_@ -226,10 +236,11 @@ next_word_break(HERODOTUS_READER *r)
 
                 /* WB13b */
                 if (p.skip.prev_prop[0] == WORD_BREAK_PROP_EXTENDNUMLET &&
- (p.skip.next_prop[0] == WORD_BREAK_PROP_ALETTER ||
- p.skip.next_prop[0] == WORD_BREAK_PROP_BOTH_ALETTER_EXTPICT ||
- p.skip.next_prop[0] == WORD_BREAK_PROP_HEBREW_LETTER ||
- p.skip.next_prop[0] == WORD_BREAK_PROP_NUMERIC ||
+ (p.skip.next_prop[0] == WORD_BREAK_PROP_ALETTER ||
+ p.skip.next_prop[0] ==
+ WORD_BREAK_PROP_BOTH_ALETTER_EXTPICT ||
+ p.skip.next_prop[0] == WORD_BREAK_PROP_HEBREW_LETTER ||
+ p.skip.next_prop[0] == WORD_BREAK_PROP_NUMERIC ||
                      p.skip.next_prop[0] == WORD_BREAK_PROP_KATAKANA)) {
                         continue;
                 }
diff --git a/test/bidirectional.c b/test/bidirectional.c
index 0593a5b..9240b9d 100644
--- a/test/bidirectional.c
+++ b/test/bidirectional.c
_AT_@ -25,14 +25,16 @@ main(int argc, char *argv[])
 
         for (i = 0, failed = 0; i < LEN(bidirectional_test); i++) {
                 /*if (i != 490798)
- continue;*/
+ continue;*/
 
                 for (m = 0; m < bidirectional_test[i].modelen; m++) {
                         ret = grapheme_get_bidirectional_embedding_levels(
- bidirectional_test[i].cp, bidirectional_test[i].cplen,
+ bidirectional_test[i].cp,
+ bidirectional_test[i].cplen,
                                 bidirectional_test[i].mode[m], lev, levlen);
 
- if (ret != bidirectional_test[i].cplen || ret > levlen) {
+ if (ret != bidirectional_test[i].cplen ||
+ ret > levlen) {
                                 goto err;
                         }
 
_AT_@ -43,18 +45,22 @@ main(int argc, char *argv[])
                         }
                         continue;
 err:
- fprintf(stderr, "%s: Failed conformance test %zu (mode %i) [",
+ fprintf(stderr,
+ "%s: Failed conformance test %zu (mode %i) [",
                                 argv[0], i, bidirectional_test[i].mode[m]);
                         for (j = 0; j < bidirectional_test[i].cplen; j++) {
- fprintf(stderr, " 0x%04" PRIXLEAST32, bidirectional_test[i].cp[j]);
+ fprintf(stderr, " 0x%04" PRIXLEAST32,
+ bidirectional_test[i].cp[j]);
                         }
                         fprintf(stderr, " ],\n\tgot (");
                         for (j = 0; j < ret; j++) {
- fprintf(stderr, " %" PRIdLEAST8, (int_least8_t)lev[j]);
+ fprintf(stderr, " %" PRIdLEAST8,
+ (int_least8_t)lev[j]);
                         }
                         fprintf(stderr, " ),\n\texpected (");
                         for (j = 0; j < ret; j++) {
- fprintf(stderr, " %" PRIdLEAST8, bidirectional_test[i].level[j]);
+ fprintf(stderr, " %" PRIdLEAST8,
+ bidirectional_test[i].level[j]);
                         }
                         fprintf(stderr, " ).\n");
                         failed++;
diff --git a/test/case.c b/test/case.c
index 57ec68c..d6ce07d 100644
--- a/test/case.c
+++ b/test/case.c
_AT_@ -9,10 +9,12 @@
 
 struct unit_test_is_case_utf8 {
         const char *description;
+
         struct {
                 const char *src;
                 size_t srclen;
         } input;
+
         struct {
                 bool ret;
                 size_t caselen;
_AT_@ -21,11 +23,13 @@ struct unit_test_is_case_utf8 {
 
 struct unit_test_to_case_utf8 {
         const char *description;
+
         struct {
                 const char *src;
                 size_t srclen;
                 size_t destlen;
         } input;
+
         struct {
                 const char *dest;
                 size_t ret;
_AT_@ -35,57 +39,69 @@ struct unit_test_to_case_utf8 {
 static const struct unit_test_is_case_utf8 is_lowercase_utf8[] = {
         {
                 .description = "empty input",
- .input = { "", 0 },
+ .input = { "", 0 },
                 .output = { true, 0 },
         },
         {
                 .description = "one character, violation",
- .input = { "A", 1 },
+ .input = { "A", 1 },
                 .output = { false, 0 },
         },
         {
                 .description = "one character, confirmation",
- .input = { "\xC3\x9F", 2 },
+ .input = { "\xC3\x9F", 2 },
                 .output = { true, 2 },
         },
         {
                 .description = "one character, violation, NUL-terminated",
- .input = { "A", SIZE_MAX },
+ .input = { "A", SIZE_MAX },
                 .output = { false, 0 },
         },
         {
                 .description = "one character, confirmation, NUL-terminated",
- .input = { "\xC3\x9F", SIZE_MAX },
+ .input = { "\xC3\x9F", SIZE_MAX },
                 .output = { true, 2 },
         },
         {
                 .description = "one word, violation",
- .input = { "Hello", 5 },
+ .input = { "Hello", 5 },
                 .output = { false, 0 },
         },
         {
                 .description = "one word, partial confirmation",
- .input = { "gru" "\xC3\x9F" "fOrmel", 11 },
+ .input = { "gru"
+ "\xC3\x9F"
+ "fOrmel",
+ 11 },
                 .output = { false, 6 },
         },
         {
                 .description = "one word, full confirmation",
- .input = { "gru" "\xC3\x9F" "formel", 11 },
+ .input = { "gru"
+ "\xC3\x9F"
+ "formel",
+ 11 },
                 .output = { true, 11 },
         },
         {
                 .description = "one word, violation, NUL-terminated",
- .input = { "Hello", SIZE_MAX },
+ .input = { "Hello", SIZE_MAX },
                 .output = { false, 0 },
         },
         {
                 .description = "one word, partial confirmation, NUL-terminated",
- .input = { "gru" "\xC3\x9F" "fOrmel", SIZE_MAX },
+ .input = { "gru"
+ "\xC3\x9F"
+ "fOrmel",
+ SIZE_MAX },
                 .output = { false, 6 },
         },
         {
                 .description = "one word, full confirmation, NUL-terminated",
- .input = { "gru" "\xC3\x9F" "formel", SIZE_MAX },
+ .input = { "gru"
+ "\xC3\x9F"
+ "formel",
+ SIZE_MAX },
                 .output = { true, 11 },
         },
 };
_AT_@ -93,57 +109,63 @@ static const struct unit_test_is_case_utf8 is_lowercase_utf8[] = {
 static const struct unit_test_is_case_utf8 is_uppercase_utf8[] = {
         {
                 .description = "empty input",
- .input = { "", 0 },
+ .input = { "", 0 },
                 .output = { true, 0 },
         },
         {
                 .description = "one character, violation",
- .input = { "\xC3\x9F", 2 },
+ .input = { "\xC3\x9F", 2 },
                 .output = { false, 0 },
         },
         {
                 .description = "one character, confirmation",
- .input = { "A", 1 },
+ .input = { "A", 1 },
                 .output = { true, 1 },
         },
         {
                 .description = "one character, violation, NUL-terminated",
- .input = { "\xC3\x9F", SIZE_MAX },
+ .input = { "\xC3\x9F", SIZE_MAX },
                 .output = { false, 0 },
         },
         {
                 .description = "one character, confirmation, NUL-terminated",
- .input = { "A", SIZE_MAX },
+ .input = { "A", SIZE_MAX },
                 .output = { true, 1 },
         },
         {
                 .description = "one word, violation",
- .input = { "hello", 5 },
+ .input = { "hello", 5 },
                 .output = { false, 0 },
         },
         {
                 .description = "one word, partial confirmation",
- .input = { "GRU" "\xC3\x9F" "formel", 11 },
+ .input = { "GRU"
+ "\xC3\x9F"
+ "formel",
+ 11 },
                 .output = { false, 3 },
         },
         {
                 .description = "one word, full confirmation",
- .input = { "HELLO", 5 },
+ .input = { "HELLO", 5 },
                 .output = { true, 5 },
         },
         {
                 .description = "one word, violation, NUL-terminated",
- .input = { "hello", SIZE_MAX },
+ .input = { "hello", SIZE_MAX },
                 .output = { false, 0 },
         },
         {
                 .description = "one word, partial confirmation, NUL-terminated",
- .input = { "GRU" "\xC3\x9F" "formel", SIZE_MAX },
+ .input = { "GRU"
+ "\xC3\x9F"
+ "formel",
+ SIZE_MAX },
                 .output = { false, 3 },
         },
         {
                 .description = "one word, full confirmation, NUL-terminated",
- .input = { "HELLO", SIZE_MAX },
+ .input = { "HELLO", SIZE_MAX },
                 .output = { true, 5 },
         },
 };
_AT_@ -151,77 +173,103 @@ static const struct unit_test_is_case_utf8 is_uppercase_utf8[] = {
 static const struct unit_test_is_case_utf8 is_titlecase_utf8[] = {
         {
                 .description = "empty input",
- .input = { "", 0 },
+ .input = { "", 0 },
                 .output = { true, 0 },
         },
         {
                 .description = "one character, violation",
- .input = { "\xC3\x9F", 2 },
+ .input = { "\xC3\x9F", 2 },
                 .output = { false, 0 },
         },
         {
                 .description = "one character, confirmation",
- .input = { "A", 1 },
+ .input = { "A", 1 },
                 .output = { true, 1 },
         },
         {
                 .description = "one character, violation, NUL-terminated",
- .input = { "\xC3\x9F", SIZE_MAX },
+ .input = { "\xC3\x9F", SIZE_MAX },
                 .output = { false, 0 },
         },
         {
                 .description = "one character, confirmation, NUL-terminated",
- .input = { "A", SIZE_MAX },
+ .input = { "A", SIZE_MAX },
                 .output = { true, 1 },
         },
         {
                 .description = "one word, violation",
- .input = { "hello", 5 },
+ .input = { "hello", 5 },
                 .output = { false, 0 },
         },
         {
                 .description = "one word, partial confirmation",
- .input = { "Gru" "\xC3\x9F" "fOrmel", 11 },
+ .input = { "Gru"
+ "\xC3\x9F"
+ "fOrmel",
+ 11 },
                 .output = { false, 6 },
         },
         {
                 .description = "one word, full confirmation",
- .input = { "Gru" "\xC3\x9F" "formel", 11 },
+ .input = { "Gru"
+ "\xC3\x9F"
+ "formel",
+ 11 },
                 .output = { true, 11 },
         },
         {
                 .description = "one word, violation, NUL-terminated",
- .input = { "hello", SIZE_MAX },
+ .input = { "hello", SIZE_MAX },
                 .output = { false, 0 },
         },
         {
                 .description = "one word, partial confirmation, NUL-terminated",
- .input = { "Gru" "\xC3\x9F" "fOrmel", SIZE_MAX },
+ .input = { "Gru"
+ "\xC3\x9F"
+ "fOrmel",
+ SIZE_MAX },
                 .output = { false, 6 },
         },
         {
                 .description = "one word, full confirmation, NUL-terminated",
- .input = { "Gru" "\xC3\x9F" "formel", SIZE_MAX },
+ .input = { "Gru"
+ "\xC3\x9F"
+ "formel",
+ SIZE_MAX },
                 .output = { true, 11 },
         },
         {
                 .description = "multiple words, partial confirmation",
- .input = { "Hello Gru" "\xC3\x9F" "fOrmel!", 18 },
+ .input = { "Hello Gru"
+ "\xC3\x9F"
+ "fOrmel!",
+ 18 },
                 .output = { false, 12 },
         },
         {
                 .description = "multiple words, full confirmation",
- .input = { "Hello Gru" "\xC3\x9F" "formel!", 18 },
+ .input = { "Hello Gru"
+ "\xC3\x9F"
+ "formel!",
+ 18 },
                 .output = { true, 18 },
         },
         {
- .description = "multiple words, partial confirmation, NUL-terminated",
- .input = { "Hello Gru" "\xC3\x9F" "fOrmel!", SIZE_MAX },
+ .description =
+ "multiple words, partial confirmation, NUL-terminated",
+ .input = { "Hello Gru"
+ "\xC3\x9F"
+ "fOrmel!",
+ SIZE_MAX },
                 .output = { false, 12 },
         },
         {
- .description = "multiple words, full confirmation, NUL-terminated",
- .input = { "Hello Gru" "\xC3\x9F" "formel!", SIZE_MAX },
+ .description =
+ "multiple words, full confirmation, NUL-terminated",
+ .input = { "Hello Gru"
+ "\xC3\x9F"
+ "formel!",
+ SIZE_MAX },
                 .output = { true, 18 },
         },
 };
_AT_@ -229,72 +277,74 @@ static const struct unit_test_is_case_utf8 is_titlecase_utf8[] = {
 static const struct unit_test_to_case_utf8 to_lowercase_utf8[] = {
         {
                 .description = "empty input",
- .input = { "", 0, 10 },
+ .input = { "", 0, 10 },
                 .output = { "", 0 },
         },
         {
                 .description = "empty output",
- .input = { "hello", 5, 0 },
+ .input = { "hello", 5, 0 },
                 .output = { "", 5 },
         },
         {
                 .description = "one character, conversion",
- .input = { "A", 1, 10 },
+ .input = { "A", 1, 10 },
                 .output = { "a", 1 },
         },
         {
                 .description = "one character, no conversion",
- .input = { "\xC3\x9F", 2, 10 },
+ .input = { "\xC3\x9F", 2, 10 },
                 .output = { "\xC3\x9F", 2 },
         },
         {
                 .description = "one character, conversion, truncation",
- .input = { "A", 1, 0 },
+ .input = { "A", 1, 0 },
                 .output = { "", 1 },
         },
         {
                 .description = "one character, conversion, NUL-terminated",
- .input = { "A", SIZE_MAX, 10 },
+ .input = { "A", SIZE_MAX, 10 },
                 .output = { "a", 1 },
         },
         {
                 .description = "one character, no conversion, NUL-terminated",
- .input = { "\xC3\x9F", SIZE_MAX, 10 },
+ .input = { "\xC3\x9F", SIZE_MAX, 10 },
                 .output = { "\xC3\x9F", 2 },
         },
         {
- .description = "one character, conversion, NUL-terminated, truncation",
- .input = { "A", SIZE_MAX, 0 },
+ .description =
+ "one character, conversion, NUL-terminated, truncation",
+ .input = { "A", SIZE_MAX, 0 },
                 .output = { "", 1 },
         },
         {
                 .description = "one word, conversion",
- .input = { "wOrD", 4, 10 },
+ .input = { "wOrD", 4, 10 },
                 .output = { "word", 4 },
         },
         {
                 .description = "one word, no conversion",
- .input = { "word", 4, 10 },
+ .input = { "word", 4, 10 },
                 .output = { "word", 4 },
         },
         {
                 .description = "one word, conversion, truncation",
- .input = { "wOrD", 4, 3 },
+ .input = { "wOrD", 4, 3 },
                 .output = { "wo", 4 },
         },
         {
                 .description = "one word, conversion, NUL-terminated",
- .input = { "wOrD", SIZE_MAX, 10 },
+ .input = { "wOrD", SIZE_MAX, 10 },
                 .output = { "word", 4 },
         },
         {
                 .description = "one word, no conversion, NUL-terminated",
- .input = { "word", SIZE_MAX, 10 },
+ .input = { "word", SIZE_MAX, 10 },
                 .output = { "word", 4 },
         },
         {
- .description = "one word, conversion, NUL-terminated, truncation",
- .input = { "wOrD", SIZE_MAX, 3 },
+ .description =
+ "one word, conversion, NUL-terminated, truncation",
+ .input = { "wOrD", SIZE_MAX, 3 },
                 .output = { "wo", 4 },
         },
 };
_AT_@ -302,72 +352,86 @@ static const struct unit_test_to_case_utf8 to_lowercase_utf8[] = {
 static const struct unit_test_to_case_utf8 to_uppercase_utf8[] = {
         {
                 .description = "empty input",
- .input = { "", 0, 10 },
+ .input = { "", 0, 10 },
                 .output = { "", 0 },
         },
         {
                 .description = "empty output",
- .input = { "hello", 5, 0 },
+ .input = { "hello", 5, 0 },
                 .output = { "", 5 },
         },
         {
                 .description = "one character, conversion",
- .input = { "\xC3\x9F", 2, 10 },
+ .input = { "\xC3\x9F", 2, 10 },
                 .output = { "SS", 2 },
         },
         {
                 .description = "one character, no conversion",
- .input = { "A", 1, 10 },
+ .input = { "A", 1, 10 },
                 .output = { "A", 1 },
         },
         {
                 .description = "one character, conversion, truncation",
- .input = { "\xC3\x9F", 2, 0 },
+ .input = { "\xC3\x9F", 2, 0 },
                 .output = { "", 2 },
         },
         {
                 .description = "one character, conversion, NUL-terminated",
- .input = { "\xC3\x9F", SIZE_MAX, 10 },
+ .input = { "\xC3\x9F", SIZE_MAX, 10 },
                 .output = { "SS", 2 },
         },
         {
                 .description = "one character, no conversion, NUL-terminated",
- .input = { "A", SIZE_MAX, 10 },
+ .input = { "A", SIZE_MAX, 10 },
                 .output = { "A", 1 },
         },
         {
- .description = "one character, conversion, NUL-terminated, truncation",
- .input = { "\xC3\x9F", SIZE_MAX, 0 },
+ .description =
+ "one character, conversion, NUL-terminated, truncation",
+ .input = { "\xC3\x9F", SIZE_MAX, 0 },
                 .output = { "", 2 },
         },
         {
                 .description = "one word, conversion",
- .input = { "gRu" "\xC3\x9F" "fOrMel", 11, 15 },
+ .input = { "gRu"
+ "\xC3\x9F"
+ "fOrMel",
+ 11, 15 },
                 .output = { "GRUSSFORMEL", 11 },
         },
         {
                 .description = "one word, no conversion",
- .input = { "WORD", 4, 10 },
+ .input = { "WORD", 4, 10 },
                 .output = { "WORD", 4 },
         },
         {
                 .description = "one word, conversion, truncation",
- .input = { "gRu" "\xC3\x9F" "formel", 11, 5 },
+ .input = { "gRu"
+ "\xC3\x9F"
+ "formel",
+ 11, 5 },
                 .output = { "GRUS", 11 },
         },
         {
                 .description = "one word, conversion, NUL-terminated",
- .input = { "gRu" "\xC3\x9F" "formel", SIZE_MAX, 15 },
+ .input = { "gRu"
+ "\xC3\x9F"
+ "formel",
+ SIZE_MAX, 15 },
                 .output = { "GRUSSFORMEL", 11 },
         },
         {
                 .description = "one word, no conversion, NUL-terminated",
- .input = { "WORD", SIZE_MAX, 10 },
+ .input = { "WORD", SIZE_MAX, 10 },
                 .output = { "WORD", 4 },
         },
         {
- .description = "one word, conversion, NUL-terminated, truncation",
- .input = { "gRu" "\xC3\x9F" "formel", SIZE_MAX, 5 },
+ .description =
+ "one word, conversion, NUL-terminated, truncation",
+ .input = { "gRu"
+ "\xC3\x9F"
+ "formel",
+ SIZE_MAX, 5 },
                 .output = { "GRUS", 11 },
         },
 };
_AT_@ -375,102 +439,105 @@ static const struct unit_test_to_case_utf8 to_uppercase_utf8[] = {
 static const struct unit_test_to_case_utf8 to_titlecase_utf8[] = {
         {
                 .description = "empty input",
- .input = { "", 0, 10 },
+ .input = { "", 0, 10 },
                 .output = { "", 0 },
         },
         {
                 .description = "empty output",
- .input = { "hello", 5, 0 },
+ .input = { "hello", 5, 0 },
                 .output = { "", 5 },
         },
         {
                 .description = "one character, conversion",
- .input = { "a", 1, 10 },
+ .input = { "a", 1, 10 },
                 .output = { "A", 1 },
         },
         {
                 .description = "one character, no conversion",
- .input = { "A", 1, 10 },
+ .input = { "A", 1, 10 },
                 .output = { "A", 1 },
         },
         {
                 .description = "one character, conversion, truncation",
- .input = { "a", 1, 0 },
+ .input = { "a", 1, 0 },
                 .output = { "", 1 },
         },
         {
                 .description = "one character, conversion, NUL-terminated",
- .input = { "a", SIZE_MAX, 10 },
+ .input = { "a", SIZE_MAX, 10 },
                 .output = { "A", 1 },
         },
         {
                 .description = "one character, no conversion, NUL-terminated",
- .input = { "A", SIZE_MAX, 10 },
+ .input = { "A", SIZE_MAX, 10 },
                 .output = { "A", 1 },
         },
         {
- .description = "one character, conversion, NUL-terminated, truncation",
- .input = { "a", SIZE_MAX, 0 },
+ .description =
+ "one character, conversion, NUL-terminated, truncation",
+ .input = { "a", SIZE_MAX, 0 },
                 .output = { "", 1 },
         },
         {
                 .description = "one word, conversion",
- .input = { "heLlo", 5, 10 },
+ .input = { "heLlo", 5, 10 },
                 .output = { "Hello", 5 },
         },
         {
                 .description = "one word, no conversion",
- .input = { "Hello", 5, 10 },
+ .input = { "Hello", 5, 10 },
                 .output = { "Hello", 5 },
         },
         {
                 .description = "one word, conversion, truncation",
- .input = { "heLlo", 5, 2 },
+ .input = { "heLlo", 5, 2 },
                 .output = { "H", 5 },
         },
         {
                 .description = "one word, conversion, NUL-terminated",
- .input = { "heLlo", SIZE_MAX, 10 },
+ .input = { "heLlo", SIZE_MAX, 10 },
                 .output = { "Hello", 5 },
         },
         {
                 .description = "one word, no conversion, NUL-terminated",
- .input = { "Hello", SIZE_MAX, 10 },
+ .input = { "Hello", SIZE_MAX, 10 },
                 .output = { "Hello", 5 },
         },
         {
- .description = "one word, conversion, NUL-terminated, truncation",
- .input = { "heLlo", SIZE_MAX, 3 },
+ .description =
+ "one word, conversion, NUL-terminated, truncation",
+ .input = { "heLlo", SIZE_MAX, 3 },
                 .output = { "He", 5 },
         },
         {
                 .description = "two words, conversion",
- .input = { "heLlo wORLd!", 12, 20 },
+ .input = { "heLlo wORLd!", 12, 20 },
                 .output = { "Hello World!", 12 },
         },
         {
                 .description = "two words, no conversion",
- .input = { "Hello World!", 12, 20 },
+ .input = { "Hello World!", 12, 20 },
                 .output = { "Hello World!", 12 },
         },
         {
                 .description = "two words, conversion, truncation",
- .input = { "heLlo wORLd!", 12, 8 },
+ .input = { "heLlo wORLd!", 12, 8 },
                 .output = { "Hello W", 12 },
         },
         {
                 .description = "two words, conversion, NUL-terminated",
- .input = { "heLlo wORLd!", SIZE_MAX, 20 },
+ .input = { "heLlo wORLd!", SIZE_MAX, 20 },
                 .output = { "Hello World!", 12 },
         },
         {
                 .description = "two words, no conversion, NUL-terminated",
- .input = { "Hello World!", SIZE_MAX, 20 },
+ .input = { "Hello World!", SIZE_MAX, 20 },
                 .output = { "Hello World!", 12 },
         },
         {
- .description = "two words, conversion, NUL-terminated, truncation",
- .input = { "heLlo wORLd!", SIZE_MAX, 4 },
+ .description =
+ "two words, conversion, NUL-terminated, truncation",
+ .input = { "heLlo wORLd!", SIZE_MAX, 4 },
                 .output = { "Hel", 12 },
         },
 };
_AT_@ -485,14 +552,14 @@ unit_test_callback_is_case_utf8(const void *t, size_t off, const char *name,
         size_t caselen = 0x7f;
 
         if (t == is_lowercase_utf8) {
- ret = grapheme_is_lowercase_utf8(test->input.src, test->input.srclen,
- &caselen);
+ ret = grapheme_is_lowercase_utf8(test->input.src,
+ test->input.srclen, &caselen);
         } else if (t == is_uppercase_utf8) {
- ret = grapheme_is_uppercase_utf8(test->input.src, test->input.srclen,
- &caselen);
+ ret = grapheme_is_uppercase_utf8(test->input.src,
+ test->input.srclen, &caselen);
         } else if (t == is_titlecase_utf8) {
- ret = grapheme_is_titlecase_utf8(test->input.src, test->input.srclen,
- &caselen);
+ ret = grapheme_is_titlecase_utf8(test->input.src,
+ test->input.srclen, &caselen);
 
         } else {
                 goto err;
_AT_@ -505,10 +572,11 @@ unit_test_callback_is_case_utf8(const void *t, size_t off, const char *name,
 
         return 0;
 err:
- fprintf(stderr, "%s: %s: Failed unit test %zu \"%s\" "
- "(returned (%s, %zu) instead of (%s, %zu)).\n", argv0,
- name, off, test->description, ret ? "true" : "false",
- caselen, test->output.ret ? "true" : "false",
+ fprintf(stderr,
+ "%s: %s: Failed unit test %zu \"%s\" "
+ "(returned (%s, %zu) instead of (%s, %zu)).\n",
+ argv0, name, off, test->description, ret ? "true" : "false",
+ caselen, test->output.ret ? "true" : "false",
                 test->output.caselen);
         return 1;
 }
_AT_@ -526,21 +594,25 @@ unit_test_callback_to_case_utf8(const void *t, size_t off, const char *name,
         memset(buf, 0x7f, LEN(buf));
 
         if (t == to_lowercase_utf8) {
- ret = grapheme_to_lowercase_utf8(test->input.src, test->input.srclen,
- buf, test->input.destlen);
+ ret = grapheme_to_lowercase_utf8(test->input.src,
+ test->input.srclen, buf,
+ test->input.destlen);
         } else if (t == to_uppercase_utf8) {
- ret = grapheme_to_uppercase_utf8(test->input.src, test->input.srclen,
- buf, test->input.destlen);
+ ret = grapheme_to_uppercase_utf8(test->input.src,
+ test->input.srclen, buf,
+ test->input.destlen);
         } else if (t == to_titlecase_utf8) {
- ret = grapheme_to_titlecase_utf8(test->input.src, test->input.srclen,
- buf, test->input.destlen);
+ ret = grapheme_to_titlecase_utf8(test->input.src,
+ test->input.srclen, buf,
+ test->input.destlen);
         } else {
                 goto err;
         }
 
         /* check results */
         if (ret != test->output.ret ||
- memcmp(buf, test->output.dest, MIN(test->input.destlen, test->output.ret))) {
+ memcmp(buf, test->output.dest,
+ MIN(test->input.destlen, test->output.ret))) {
                 goto err;
         }
 
_AT_@ -553,9 +625,10 @@ unit_test_callback_to_case_utf8(const void *t, size_t off, const char *name,
 
         return 0;
 err:
- fprintf(stderr, "%s: %s: Failed unit test %zu \"%s\" "
- "(returned (\"%.*s\", %zu) instead of (\"%.*s\", %zu)).\n", argv0,
- name, off, test->description, (int)ret, buf, ret,
+ fprintf(stderr,
+ "%s: %s: Failed unit test %zu \"%s\" "
+ "(returned (\"%.*s\", %zu) instead of (\"%.*s\", %zu)).\n",
+ argv0, name, off, test->description, (int)ret, buf, ret,
                 (int)test->output.ret, test->output.dest, test->output.ret);
         return 1;
 }
_AT_@ -565,16 +638,22 @@ main(int argc, char *argv[])
 {
         (void)argc;
 
- return run_unit_tests(unit_test_callback_is_case_utf8, is_lowercase_utf8,
- LEN(is_lowercase_utf8), "grapheme_is_lowercase_utf8", argv[0]) +
- run_unit_tests(unit_test_callback_is_case_utf8, is_uppercase_utf8,
- LEN(is_uppercase_utf8), "grapheme_is_uppercase_utf8", argv[0]) +
- run_unit_tests(unit_test_callback_is_case_utf8, is_titlecase_utf8,
- LEN(is_titlecase_utf8), "grapheme_is_titlecase_utf8", argv[0]) +
- run_unit_tests(unit_test_callback_to_case_utf8, to_lowercase_utf8,
- LEN(to_lowercase_utf8), "grapheme_to_lowercase_utf8", argv[0]) +
- run_unit_tests(unit_test_callback_to_case_utf8, to_uppercase_utf8,
- LEN(to_uppercase_utf8), "grapheme_to_uppercase_utf8", argv[0]) +
- run_unit_tests(unit_test_callback_to_case_utf8, to_titlecase_utf8,
- LEN(to_titlecase_utf8), "grapheme_to_titlecase_utf8", argv[0]);
+ return run_unit_tests(unit_test_callback_is_case_utf8,
+ is_lowercase_utf8, LEN(is_lowercase_utf8),
+ "grapheme_is_lowercase_utf8", argv[0]) +
+ run_unit_tests(unit_test_callback_is_case_utf8,
+ is_uppercase_utf8, LEN(is_uppercase_utf8),
+ "grapheme_is_uppercase_utf8", argv[0]) +
+ run_unit_tests(unit_test_callback_is_case_utf8,
+ is_titlecase_utf8, LEN(is_titlecase_utf8),
+ "grapheme_is_titlecase_utf8", argv[0]) +
+ run_unit_tests(unit_test_callback_to_case_utf8,
+ to_lowercase_utf8, LEN(to_lowercase_utf8),
+ "grapheme_to_lowercase_utf8", argv[0]) +
+ run_unit_tests(unit_test_callback_to_case_utf8,
+ to_uppercase_utf8, LEN(to_uppercase_utf8),
+ "grapheme_to_uppercase_utf8", argv[0]) +
+ run_unit_tests(unit_test_callback_to_case_utf8,
+ to_titlecase_utf8, LEN(to_titlecase_utf8),
+ "grapheme_to_titlecase_utf8", argv[0]);
 }
diff --git a/test/character.c b/test/character.c
index a2abb9c..e1f8f95 100644
--- a/test/character.c
+++ b/test/character.c
_AT_@ -92,12 +92,10 @@ static const struct unit_test_next_break_utf8 next_character_break_utf8[] = {
 
 static int
 unit_test_callback_next_character_break(const void *t, size_t off,
- const char *name,
- const char *argv0)
+ const char *name, const char *argv0)
 {
- return unit_test_callback_next_break(t, off,
- grapheme_next_character_break,
- name, argv0);
+ return unit_test_callback_next_break(
+ t, off, grapheme_next_character_break, name, argv0);
 }
 
 static int
_AT_@ -105,9 +103,8 @@ unit_test_callback_next_character_break_utf8(const void *t, size_t off,
                                              const char *name,
                                              const char *argv0)
 {
- return unit_test_callback_next_break_utf8(t, off,
- grapheme_next_character_break_utf8,
- name, argv0);
+ return unit_test_callback_next_break_utf8(
+ t, off, grapheme_next_character_break_utf8, name, argv0);
 }
 
 int
_AT_@ -116,11 +113,13 @@ main(int argc, char *argv[])
         (void)argc;
 
         return run_break_tests(grapheme_next_character_break,
- character_break_test, LEN(character_break_test), argv[0]) +
+ character_break_test, LEN(character_break_test),
+ argv[0]) +
                run_unit_tests(unit_test_callback_next_character_break,
                               next_character_break, LEN(next_character_break),
                               "grapheme_next_character_break", argv[0]) +
                run_unit_tests(unit_test_callback_next_character_break_utf8,
- next_character_break_utf8, LEN(next_character_break_utf8),
+ next_character_break_utf8,
+ LEN(next_character_break_utf8),
                               "grapheme_next_character_break_utf8", argv[0]);
 }
diff --git a/test/line.c b/test/line.c
index b69ef39..580bc69 100644
--- a/test/line.c
+++ b/test/line.c
_AT_@ -91,23 +91,19 @@ static const struct unit_test_next_break_utf8 next_line_break_utf8[] = {
 };
 
 static int
-unit_test_callback_next_line_break(const void *t, size_t off,
- const char *name,
- const char *argv0)
+unit_test_callback_next_line_break(const void *t, size_t off, const char *name,
+ const char *argv0)
 {
- return unit_test_callback_next_break(t, off,
- grapheme_next_line_break,
+ return unit_test_callback_next_break(t, off, grapheme_next_line_break,
                                              name, argv0);
 }
 
 static int
 unit_test_callback_next_line_break_utf8(const void *t, size_t off,
- const char *name,
- const char *argv0)
+ const char *name, const char *argv0)
 {
- return unit_test_callback_next_break_utf8(t, off,
- grapheme_next_line_break_utf8,
- name, argv0);
+ return unit_test_callback_next_break_utf8(
+ t, off, grapheme_next_line_break_utf8, name, argv0);
 }
 
 int
_AT_@ -115,9 +111,8 @@ main(int argc, char *argv[])
 {
         (void)argc;
 
- return run_break_tests(grapheme_next_line_break,
- line_break_test, LEN(line_break_test),
- argv[0]) +
+ return run_break_tests(grapheme_next_line_break, line_break_test,
+ LEN(line_break_test), argv[0]) +
                run_unit_tests(unit_test_callback_next_line_break,
                               next_line_break, LEN(next_line_break),
                               "grapheme_next_line_break", argv[0]) +
diff --git a/test/sentence.c b/test/sentence.c
index c18df73..6addc8f 100644
--- a/test/sentence.c
+++ b/test/sentence.c
_AT_@ -92,22 +92,18 @@ static const struct unit_test_next_break_utf8 next_sentence_break_utf8[] = {
 
 static int
 unit_test_callback_next_sentence_break(const void *t, size_t off,
- const char *name,
- const char *argv0)
+ const char *name, const char *argv0)
 {
- return unit_test_callback_next_break(t, off,
- grapheme_next_sentence_break,
- name, argv0);
+ return unit_test_callback_next_break(
+ t, off, grapheme_next_sentence_break, name, argv0);
 }
 
 static int
 unit_test_callback_next_sentence_break_utf8(const void *t, size_t off,
- const char *name,
- const char *argv0)
+ const char *name, const char *argv0)
 {
- return unit_test_callback_next_break_utf8(t, off,
- grapheme_next_sentence_break_utf8,
- name, argv0);
+ return unit_test_callback_next_break_utf8(
+ t, off, grapheme_next_sentence_break_utf8, name, argv0);
 }
 
 int
_AT_@ -116,12 +112,13 @@ main(int argc, char *argv[])
         (void)argc;
 
         return run_break_tests(grapheme_next_sentence_break,
- sentence_break_test,
- LEN(sentence_break_test), argv[0]) +
+ sentence_break_test, LEN(sentence_break_test),
+ argv[0]) +
                run_unit_tests(unit_test_callback_next_sentence_break,
                               next_sentence_break, LEN(next_sentence_break),
                               "grapheme_next_sentence_break", argv[0]) +
                run_unit_tests(unit_test_callback_next_sentence_break_utf8,
- next_sentence_break_utf8, LEN(next_sentence_break_utf8),
+ next_sentence_break_utf8,
+ LEN(next_sentence_break_utf8),
                               "grapheme_next_character_break_utf8", argv[0]);
 }
diff --git a/test/utf8-decode.c b/test/utf8-decode.c
index 78f1854..b4ab58d 100644
--- a/test/utf8-decode.c
+++ b/test/utf8-decode.c
_AT_@ -8,281 +8,279 @@
 #include "util.h"
 
 static const struct {
- char *arr; /* UTF-8 byte sequence */
- size_t len; /* length of UTF-8 byte sequence */
- size_t exp_len; /* expected length returned */
- uint_least32_t exp_cp; /* expected codepoint returned */
+ char *arr; /* UTF-8 byte sequence */
+ size_t len; /* length of UTF-8 byte sequence */
+ size_t exp_len; /* expected length returned */
+ uint_least32_t exp_cp; /* expected codepoint returned */
 } dec_test[] = {
         {
                 /* empty sequence
- * [ ] ->
- * INVALID
- */
- .arr = NULL,
- .len = 0,
+ * [ ] ->
+ * INVALID
+ */
+ .arr = NULL,
+ .len = 0,
                 .exp_len = 0,
- .exp_cp = GRAPHEME_INVALID_CODEPOINT,
+ .exp_cp = GRAPHEME_INVALID_CODEPOINT,
         },
         {
                 /* invalid lead byte
- * [ 11111101 ] ->
- * INVALID
- */
- .arr = (char *)(unsigned char[]){ 0xFD },
- .len = 1,
+ * [ 11111101 ] ->
+ * INVALID
+ */
+ .arr = (char *)(unsigned char[]) { 0xFD },
+ .len = 1,
                 .exp_len = 1,
- .exp_cp = GRAPHEME_INVALID_CODEPOINT,
+ .exp_cp = GRAPHEME_INVALID_CODEPOINT,
         },
         {
                 /* valid 1-byte sequence
- * [ 00000001 ] ->
- * 0000001
- */
- .arr = (char *)(unsigned char[]){ 0x01 },
- .len = 1,
+ * [ 00000001 ] ->
+ * 0000001
+ */
+ .arr = (char *)(unsigned char[]) { 0x01 },
+ .len = 1,
                 .exp_len = 1,
- .exp_cp = 0x1,
+ .exp_cp = 0x1,
         },
         {
                 /* valid 2-byte sequence
- * [ 11000011 10111111 ] ->
- * 00011111111
- */
- .arr = (char *)(unsigned char[]){ 0xC3, 0xBF },
- .len = 2,
+ * [ 11000011 10111111 ] ->
+ * 00011111111
+ */
+ .arr = (char *)(unsigned char[]) { 0xC3, 0xBF },
+ .len = 2,
                 .exp_len = 2,
- .exp_cp = 0xFF,
+ .exp_cp = 0xFF,
         },
         {
                 /* invalid 2-byte sequence (second byte missing)
- * [ 11000011 ] ->
- * INVALID
- */
- .arr = (char *)(unsigned char[]){ 0xC3 },
- .len = 1,
+ * [ 11000011 ] ->
+ * INVALID
+ */
+ .arr = (char *)(unsigned char[]) { 0xC3 },
+ .len = 1,
                 .exp_len = 2,
- .exp_cp = GRAPHEME_INVALID_CODEPOINT,
+ .exp_cp = GRAPHEME_INVALID_CODEPOINT,
         },
         {
                 /* invalid 2-byte sequence (second byte malformed)
- * [ 11000011 11111111 ] ->
- * INVALID
- */
- .arr = (char *)(unsigned char[]){ 0xC3, 0xFF },
- .len = 2,
+ * [ 11000011 11111111 ] ->
+ * INVALID
+ */
+ .arr = (char *)(unsigned char[]) { 0xC3, 0xFF },
+ .len = 2,
                 .exp_len = 1,
- .exp_cp = GRAPHEME_INVALID_CODEPOINT,
+ .exp_cp = GRAPHEME_INVALID_CODEPOINT,
         },
         {
                 /* invalid 2-byte sequence (overlong encoded)
- * [ 11000001 10111111 ] ->
- * INVALID
- */
- .arr = (char *)(unsigned char[]){ 0xC1, 0xBF },
- .len = 2,
+ * [ 11000001 10111111 ] ->
+ * INVALID
+ */
+ .arr = (char *)(unsigned char[]) { 0xC1, 0xBF },
+ .len = 2,
                 .exp_len = 2,
- .exp_cp = GRAPHEME_INVALID_CODEPOINT,
+ .exp_cp = GRAPHEME_INVALID_CODEPOINT,
         },
         {
                 /* valid 3-byte sequence
- * [ 11100000 10111111 10111111 ] ->
- * 0000111111111111
- */
- .arr = (char *)(unsigned char[]){ 0xE0, 0xBF, 0xBF },
- .len = 3,
+ * [ 11100000 10111111 10111111 ] ->
+ * 0000111111111111
+ */
+ .arr = (char *)(unsigned char[]) { 0xE0, 0xBF, 0xBF },
+ .len = 3,
                 .exp_len = 3,
- .exp_cp = 0xFFF,
+ .exp_cp = 0xFFF,
         },
         {
                 /* invalid 3-byte sequence (second byte missing)
- * [ 11100000 ] ->
- * INVALID
- */
- .arr = (char *)(unsigned char[]){ 0xE0 },
- .len = 1,
+ * [ 11100000 ] ->
+ * INVALID
+ */
+ .arr = (char *)(unsigned char[]) { 0xE0 },
+ .len = 1,
                 .exp_len = 3,
- .exp_cp = GRAPHEME_INVALID_CODEPOINT,
+ .exp_cp = GRAPHEME_INVALID_CODEPOINT,
         },
         {
                 /* invalid 3-byte sequence (second byte malformed)
- * [ 11100000 01111111 10111111 ] ->
- * INVALID
- */
- .arr = (char *)(unsigned char[]){ 0xE0, 0x7F, 0xBF },
- .len = 3,
+ * [ 11100000 01111111 10111111 ] ->
+ * INVALID
+ */
+ .arr = (char *)(unsigned char[]) { 0xE0, 0x7F, 0xBF },
+ .len = 3,
                 .exp_len = 1,
- .exp_cp = GRAPHEME_INVALID_CODEPOINT,
+ .exp_cp = GRAPHEME_INVALID_CODEPOINT,
         },
         {
                 /* invalid 3-byte sequence (short string, second byte malformed)
- * [ 11100000 01111111 ] ->
- * INVALID
- */
- .arr = (char *)(unsigned char[]){ 0xE0, 0x7F },
- .len = 2,
+ * [ 11100000 01111111 ] ->
+ * INVALID
+ */
+ .arr = (char *)(unsigned char[]) { 0xE0, 0x7F },
+ .len = 2,
                 .exp_len = 1,
- .exp_cp = GRAPHEME_INVALID_CODEPOINT,
+ .exp_cp = GRAPHEME_INVALID_CODEPOINT,
         },
         {
                 /* invalid 3-byte sequence (third byte missing)
- * [ 11100000 10111111 ] ->
- * INVALID
- */
- .arr = (char *)(unsigned char[]){ 0xE0, 0xBF },
- .len = 2,
+ * [ 11100000 10111111 ] ->
+ * INVALID
+ */
+ .arr = (char *)(unsigned char[]) { 0xE0, 0xBF },
+ .len = 2,
                 .exp_len = 3,
- .exp_cp = GRAPHEME_INVALID_CODEPOINT,
+ .exp_cp = GRAPHEME_INVALID_CODEPOINT,
         },
         {
                 /* invalid 3-byte sequence (third byte malformed)
- * [ 11100000 10111111 01111111 ] ->
- * INVALID
- */
- .arr = (char *)(unsigned char[]){ 0xE0, 0xBF, 0x7F },
- .len = 3,
+ * [ 11100000 10111111 01111111 ] ->
+ * INVALID
+ */
+ .arr = (char *)(unsigned char[]) { 0xE0, 0xBF, 0x7F },
+ .len = 3,
                 .exp_len = 2,
- .exp_cp = GRAPHEME_INVALID_CODEPOINT,
+ .exp_cp = GRAPHEME_INVALID_CODEPOINT,
         },
         {
                 /* invalid 3-byte sequence (overlong encoded)
- * [ 11100000 10011111 10111111 ] ->
- * INVALID
- */
- .arr = (char *)(unsigned char[]){ 0xE0, 0x9F, 0xBF },
- .len = 3,
+ * [ 11100000 10011111 10111111 ] ->
+ * INVALID
+ */
+ .arr = (char *)(unsigned char[]) { 0xE0, 0x9F, 0xBF },
+ .len = 3,
                 .exp_len = 3,
- .exp_cp = GRAPHEME_INVALID_CODEPOINT,
+ .exp_cp = GRAPHEME_INVALID_CODEPOINT,
         },
         {
                 /* invalid 3-byte sequence (UTF-16 surrogate half)
- * [ 11101101 10100000 10000000 ] ->
- * INVALID
- */
- .arr = (char *)(unsigned char[]){ 0xED, 0xA0, 0x80 },
- .len = 3,
+ * [ 11101101 10100000 10000000 ] ->
+ * INVALID
+ */
+ .arr = (char *)(unsigned char[]) { 0xED, 0xA0, 0x80 },
+ .len = 3,
                 .exp_len = 3,
- .exp_cp = GRAPHEME_INVALID_CODEPOINT,
+ .exp_cp = GRAPHEME_INVALID_CODEPOINT,
         },
         {
                 /* valid 4-byte sequence
- * [ 11110011 10111111 10111111 10111111 ] ->
- * 011111111111111111111
- */
- .arr = (char *)(unsigned char[]){ 0xF3, 0xBF, 0xBF, 0xBF },
- .len = 4,
+ * [ 11110011 10111111 10111111 10111111 ] ->
+ * 011111111111111111111
+ */
+ .arr = (char *)(unsigned char[]) { 0xF3, 0xBF, 0xBF, 0xBF },
+ .len = 4,
                 .exp_len = 4,
- .exp_cp = UINT32_C(0xFFFFF),
+ .exp_cp = UINT32_C(0xFFFFF),
         },
         {
                 /* invalid 4-byte sequence (second byte missing)
- * [ 11110011 ] ->
- * INVALID
- */
- .arr = (char *)(unsigned char[]){ 0xF3 },
- .len = 1,
+ * [ 11110011 ] ->
+ * INVALID
+ */
+ .arr = (char *)(unsigned char[]) { 0xF3 },
+ .len = 1,
                 .exp_len = 4,
- .exp_cp = GRAPHEME_INVALID_CODEPOINT,
+ .exp_cp = GRAPHEME_INVALID_CODEPOINT,
         },
         {
                 /* invalid 4-byte sequence (second byte malformed)
- * [ 11110011 01111111 10111111 10111111 ] ->
- * INVALID
- */
- .arr = (char *)(unsigned char[]){ 0xF3, 0x7F, 0xBF, 0xBF },
- .len = 4,
+ * [ 11110011 01111111 10111111 10111111 ] ->
+ * INVALID
+ */
+ .arr = (char *)(unsigned char[]) { 0xF3, 0x7F, 0xBF, 0xBF },
+ .len = 4,
                 .exp_len = 1,
- .exp_cp = GRAPHEME_INVALID_CODEPOINT,
+ .exp_cp = GRAPHEME_INVALID_CODEPOINT,
         },
         {
- /* invalid 4-byte sequence (short string 1, second byte malformed)
- * [ 11110011 011111111 ] ->
- * INVALID
- */
- .arr = (char *)(unsigned char[]){ 0xF3, 0x7F },
- .len = 2,
+ /* invalid 4-byte sequence (short string 1, second byte
+ * malformed) [ 11110011 011111111 ] -> INVALID
+ */
+ .arr = (char *)(unsigned char[]) { 0xF3, 0x7F },
+ .len = 2,
                 .exp_len = 1,
- .exp_cp = GRAPHEME_INVALID_CODEPOINT,
+ .exp_cp = GRAPHEME_INVALID_CODEPOINT,
         },
         {
- /* invalid 4-byte sequence (short string 2, second byte malformed)
- * [ 11110011 011111111 10111111 ] ->
- * INVALID
- */
- .arr = (char *)(unsigned char[]){ 0xF3, 0x7F, 0xBF },
- .len = 3,
+ /* invalid 4-byte sequence (short string 2, second byte
+ * malformed) [ 11110011 011111111 10111111 ] -> INVALID
+ */
+ .arr = (char *)(unsigned char[]) { 0xF3, 0x7F, 0xBF },
+ .len = 3,
                 .exp_len = 1,
- .exp_cp = GRAPHEME_INVALID_CODEPOINT,
+ .exp_cp = GRAPHEME_INVALID_CODEPOINT,
         },
 
         {
                 /* invalid 4-byte sequence (third byte missing)
- * [ 11110011 10111111 ] ->
- * INVALID
- */
- .arr = (char *)(unsigned char[]){ 0xF3, 0xBF },
- .len = 2,
+ * [ 11110011 10111111 ] ->
+ * INVALID
+ */
+ .arr = (char *)(unsigned char[]) { 0xF3, 0xBF },
+ .len = 2,
                 .exp_len = 4,
- .exp_cp = GRAPHEME_INVALID_CODEPOINT,
+ .exp_cp = GRAPHEME_INVALID_CODEPOINT,
         },
         {
                 /* invalid 4-byte sequence (third byte malformed)
- * [ 11110011 10111111 01111111 10111111 ] ->
- * INVALID
- */
- .arr = (char *)(unsigned char[]){ 0xF3, 0xBF, 0x7F, 0xBF },
- .len = 4,
+ * [ 11110011 10111111 01111111 10111111 ] ->
+ * INVALID
+ */
+ .arr = (char *)(unsigned char[]) { 0xF3, 0xBF, 0x7F, 0xBF },
+ .len = 4,
                 .exp_len = 2,
- .exp_cp = GRAPHEME_INVALID_CODEPOINT,
+ .exp_cp = GRAPHEME_INVALID_CODEPOINT,
         },
         {
                 /* invalid 4-byte sequence (short string, third byte malformed)
- * [ 11110011 10111111 01111111 ] ->
- * INVALID
- */
- .arr = (char *)(unsigned char[]){ 0xF3, 0xBF, 0x7F },
- .len = 3,
+ * [ 11110011 10111111 01111111 ] ->
+ * INVALID
+ */
+ .arr = (char *)(unsigned char[]) { 0xF3, 0xBF, 0x7F },
+ .len = 3,
                 .exp_len = 2,
- .exp_cp = GRAPHEME_INVALID_CODEPOINT,
+ .exp_cp = GRAPHEME_INVALID_CODEPOINT,
         },
         {
                 /* invalid 4-byte sequence (fourth byte missing)
- * [ 11110011 10111111 10111111 ] ->
- * INVALID
- */
- .arr = (char *)(unsigned char[]){ 0xF3, 0xBF, 0xBF },
- .len = 3,
+ * [ 11110011 10111111 10111111 ] ->
+ * INVALID
+ */
+ .arr = (char *)(unsigned char[]) { 0xF3, 0xBF, 0xBF },
+ .len = 3,
                 .exp_len = 4,
- .exp_cp = GRAPHEME_INVALID_CODEPOINT,
+ .exp_cp = GRAPHEME_INVALID_CODEPOINT,
         },
         {
                 /* invalid 4-byte sequence (fourth byte malformed)
- * [ 11110011 10111111 10111111 01111111 ] ->
- * INVALID
- */
- .arr = (char *)(unsigned char[]){ 0xF3, 0xBF, 0xBF, 0x7F },
- .len = 4,
+ * [ 11110011 10111111 10111111 01111111 ] ->
+ * INVALID
+ */
+ .arr = (char *)(unsigned char[]) { 0xF3, 0xBF, 0xBF, 0x7F },
+ .len = 4,
                 .exp_len = 3,
- .exp_cp = GRAPHEME_INVALID_CODEPOINT,
+ .exp_cp = GRAPHEME_INVALID_CODEPOINT,
         },
         {
                 /* invalid 4-byte sequence (overlong encoded)
- * [ 11110000 10000000 10000001 10111111 ] ->
- * INVALID
- */
- .arr = (char *)(unsigned char[]){ 0xF0, 0x80, 0x81, 0xBF },
- .len = 4,
+ * [ 11110000 10000000 10000001 10111111 ] ->
+ * INVALID
+ */
+ .arr = (char *)(unsigned char[]) { 0xF0, 0x80, 0x81, 0xBF },
+ .len = 4,
                 .exp_len = 4,
- .exp_cp = GRAPHEME_INVALID_CODEPOINT,
+ .exp_cp = GRAPHEME_INVALID_CODEPOINT,
         },
         {
                 /* invalid 4-byte sequence (UTF-16-unrepresentable)
- * [ 11110100 10010000 10000000 10000000 ] ->
- * INVALID
- */
- .arr = (char *)(unsigned char[]){ 0xF4, 0x90, 0x80, 0x80 },
- .len = 4,
+ * [ 11110100 10010000 10000000 10000000 ] ->
+ * INVALID
+ */
+ .arr = (char *)(unsigned char[]) { 0xF4, 0x90, 0x80, 0x80 },
+ .len = 4,
                 .exp_len = 4,
- .exp_cp = GRAPHEME_INVALID_CODEPOINT,
+ .exp_cp = GRAPHEME_INVALID_CODEPOINT,
         },
 };
 
_AT_@ -298,12 +296,12 @@ main(int argc, char *argv[])
                 size_t len;
                 uint_least32_t cp;
 
- len = grapheme_decode_utf8(dec_test[i].arr,
- dec_test[i].len, &cp);
+ len = grapheme_decode_utf8(dec_test[i].arr, dec_test[i].len,
+ &cp);
 
- if (len != dec_test[i].exp_len ||
- cp != dec_test[i].exp_cp) {
- fprintf(stderr, "%s: Failed test %zu: "
+ if (len != dec_test[i].exp_len || cp != dec_test[i].exp_cp) {
+ fprintf(stderr,
+ "%s: Failed test %zu: "
                                 "Expected (%zx,%u), but got (%zx,%u).\n",
                                 argv[0], i, dec_test[i].exp_len,
                                 dec_test[i].exp_cp, len, cp);
diff --git a/test/utf8-encode.c b/test/utf8-encode.c
index 3b482ef..3862884 100644
--- a/test/utf8-encode.c
+++ b/test/utf8-encode.c
_AT_@ -8,44 +8,44 @@
 #include "util.h"
 
 static const struct {
- uint_least32_t cp; /* input codepoint */
- char *exp_arr; /* expected UTF-8 byte sequence */
- size_t exp_len; /* expected length of UTF-8 sequence */
+ uint_least32_t cp; /* input codepoint */
+ char *exp_arr; /* expected UTF-8 byte sequence */
+ size_t exp_len; /* expected length of UTF-8 sequence */
 } enc_test[] = {
         {
                 /* invalid codepoint (UTF-16 surrogate half) */
- .cp = UINT32_C(0xD800),
- .exp_arr = (char *)(unsigned char[]){ 0xEF, 0xBF, 0xBD },
+ .cp = UINT32_C(0xD800),
+ .exp_arr = (char *)(unsigned char[]) { 0xEF, 0xBF, 0xBD },
                 .exp_len = 3,
         },
         {
                 /* invalid codepoint (UTF-16-unrepresentable) */
- .cp = UINT32_C(0x110000),
- .exp_arr = (char *)(unsigned char[]){ 0xEF, 0xBF, 0xBD },
+ .cp = UINT32_C(0x110000),
+ .exp_arr = (char *)(unsigned char[]) { 0xEF, 0xBF, 0xBD },
                 .exp_len = 3,
         },
         {
                 /* codepoint encoded to a 1-byte sequence */
- .cp = 0x01,
- .exp_arr = (char *)(unsigned char[]){ 0x01 },
+ .cp = 0x01,
+ .exp_arr = (char *)(unsigned char[]) { 0x01 },
                 .exp_len = 1,
         },
         {
                 /* codepoint encoded to a 2-byte sequence */
- .cp = 0xFF,
- .exp_arr = (char *)(unsigned char[]){ 0xC3, 0xBF },
+ .cp = 0xFF,
+ .exp_arr = (char *)(unsigned char[]) { 0xC3, 0xBF },
                 .exp_len = 2,
         },
         {
                 /* codepoint encoded to a 3-byte sequence */
- .cp = 0xFFF,
- .exp_arr = (char *)(unsigned char[]){ 0xE0, 0xBF, 0xBF },
+ .cp = 0xFFF,
+ .exp_arr = (char *)(unsigned char[]) { 0xE0, 0xBF, 0xBF },
                 .exp_len = 3,
         },
         {
                 /* codepoint encoded to a 4-byte sequence */
- .cp = UINT32_C(0xFFFFF),
- .exp_arr = (char *)(unsigned char[]){ 0xF3, 0xBF, 0xBF, 0xBF },
+ .cp = UINT32_C(0xFFFFF),
+ .exp_arr = (char *)(unsigned char[]) { 0xF3, 0xBF, 0xBF, 0xBF },
                 .exp_len = 4,
         },
 };
_AT_@ -66,11 +66,12 @@ main(int argc, char *argv[])
 
                 if (len != enc_test[i].exp_len ||
                     memcmp(arr, enc_test[i].exp_arr, len)) {
- fprintf(stderr, "%s, Failed test %zu: "
- "Expected (", argv[0], i);
+ fprintf(stderr,
+ "%s, Failed test %zu: "
+ "Expected (",
+ argv[0], i);
                         for (j = 0; j < enc_test[i].exp_len; j++) {
- fprintf(stderr, "0x%x",
- enc_test[i].exp_arr[j]);
+ fprintf(stderr, "0x%x", enc_test[i].exp_arr[j]);
                                 if (j + 1 < enc_test[i].exp_len) {
                                         fprintf(stderr, " ");
                                 }
diff --git a/test/util.c b/test/util.c
index 7cd6eee..9d5ec61 100644
--- a/test/util.c
+++ b/test/util.c
_AT_@ -5,13 +5,14 @@
 #include <stdio.h>
 #include <string.h>
 
-#include "../grapheme.h"
 #include "../gen/types.h"
+#include "../grapheme.h"
 #include "util.h"
 
 int
 run_break_tests(size_t (*next_break)(const uint_least32_t *, size_t),
- const struct break_test *test, size_t testlen, const char *argv0)
+ const struct break_test *test, size_t testlen,
+ const char *argv0)
 {
         size_t i, j, off, res, failed;
 
_AT_@ -21,11 +22,14 @@ run_break_tests(size_t (*next_break)(const uint_least32_t *, size_t),
                         res = next_break(test[i].cp + off, test[i].cplen - off);
 
                         /* check if our resulting offset matches */
- if (j == test[i].lenlen ||
- res != test[i].len[j++]) {
- fprintf(stderr, "%s: Failed conformance test %zu \"%s\".\n",
+ if (j == test[i].lenlen || res != test[i].len[j++]) {
+ fprintf(stderr,
+ "%s: Failed conformance test %zu "
+ "\"%s\".\n",
                                         argv0, i, test[i].descr);
- fprintf(stderr, "J=%zu: EXPECTED len %zu, got %zu\n", j-1, test[i].len[j-1], res);
+ fprintf(stderr,
+ "J=%zu: EXPECTED len %zu, got %zu\n",
+ j - 1, test[i].len[j - 1], res);
                                 failed++;
                                 break;
                         }
_AT_@ -39,13 +43,15 @@ run_break_tests(size_t (*next_break)(const uint_least32_t *, size_t),
 
 int
 run_unit_tests(int (*unit_test_callback)(const void *, size_t, const char *,
- const char *), const void *test, size_t testlen, const char *name,
+ const char *),
+ const void *test, size_t testlen, const char *name,
                const char *argv0)
 {
         size_t i, failed;
 
         for (i = 0, failed = 0; i < testlen; i++) {
- failed += (unit_test_callback(test, i, name, argv0) == 0) ? 0 : 1;
+ failed +=
+ (unit_test_callback(test, i, name, argv0) == 0) ? 0 : 1;
         }
 
         printf("%s: %s: %zu/%zu unit tests passed.\n", argv0, name,
_AT_@ -56,8 +62,9 @@ run_unit_tests(int (*unit_test_callback)(const void *, size_t, const char *,
 
 int
 unit_test_callback_next_break(const struct unit_test_next_break *t, size_t off,
- size_t (*next_break)(const uint_least32_t *, size_t),
- const char *name, const char *argv0)
+ size_t (*next_break)(const uint_least32_t *,
+ size_t),
+ const char *name, const char *argv0)
 {
         const struct unit_test_next_break *test = t + off;
 
_AT_@ -69,16 +76,18 @@ unit_test_callback_next_break(const struct unit_test_next_break *t, size_t off,
 
         return 0;
 err:
- fprintf(stderr, "%s: %s: Failed unit test %zu \"%s\" "
- "(returned %zu instead of %zu).\n", argv0,
- name, off, test->description, ret, test->output.ret);
+ fprintf(stderr,
+ "%s: %s: Failed unit test %zu \"%s\" "
+ "(returned %zu instead of %zu).\n",
+ argv0, name, off, test->description, ret, test->output.ret);
         return 1;
 }
 
 int
 unit_test_callback_next_break_utf8(const struct unit_test_next_break_utf8 *t,
                                    size_t off,
- size_t (*next_break_utf8)(const char *, size_t),
+ size_t (*next_break_utf8)(const char *,
+ size_t),
                                    const char *name, const char *argv0)
 {
         const struct unit_test_next_break_utf8 *test = t + off;
_AT_@ -91,8 +100,9 @@ unit_test_callback_next_break_utf8(const struct unit_test_next_break_utf8 *t,
 
         return 0;
 err:
- fprintf(stderr, "%s: %s: Failed unit test %zu \"%s\" "
- "(returned %zu instead of %zu).\n", argv0,
- name, off, test->description, ret, test->output.ret);
+ fprintf(stderr,
+ "%s: %s: Failed unit test %zu \"%s\" "
+ "(returned %zu instead of %zu).\n",
+ argv0, name, off, test->description, ret, test->output.ret);
         return 1;
 }
diff --git a/test/util.h b/test/util.h
index 20cdf08..b1cbbfd 100644
--- a/test/util.h
+++ b/test/util.h
_AT_@ -6,16 +6,18 @@
 #include "../grapheme.h"
 
 #undef MIN
-#define MIN(x,y) ((x) < (y) ? (x) : (y))
+#define MIN(x, y) ((x) < (y) ? (x) : (y))
 #undef LEN
 #define LEN(x) (sizeof(x) / sizeof(*(x)))
 
 struct unit_test_next_break {
         const char *description;
+
         struct {
                 const uint_least32_t *src;
                 size_t srclen;
         } input;
+
         struct {
                 size_t ret;
         } output;
_AT_@ -23,10 +25,12 @@ struct unit_test_next_break {
 
 struct unit_test_next_break_utf8 {
         const char *description;
+
         struct {
                 const char *src;
                 size_t srclen;
         } input;
+
         struct {
                 size_t ret;
         } output;
_AT_@ -36,14 +40,17 @@ int run_break_tests(size_t (*next_break)(const uint_least32_t *, size_t),
                     const struct break_test *test, size_t testlen,
                     const char *);
 int run_unit_tests(int (*unit_test_callback)(const void *, size_t, const char *,
- const char *), const void *, size_t, const char *, const char *);
+ const char *),
+ const void *, size_t, const char *, const char *);
 
 int unit_test_callback_next_break(const struct unit_test_next_break *, size_t,
- size_t (*next_break)(const uint_least32_t *, size_t),
+ size_t (*next_break)(const uint_least32_t *,
+ size_t),
                                   const char *, const char *);
 int unit_test_callback_next_break_utf8(const struct unit_test_next_break_utf8 *,
                                        size_t,
- size_t (*next_break_utf8)(const char *, size_t),
+ size_t (*next_break_utf8)(const char *,
+ size_t),
                                        const char *, const char *);
 
 #endif /* UTIL_H */
diff --git a/test/word.c b/test/word.c
index 42abebc..c3cadbb 100644
--- a/test/word.c
+++ b/test/word.c
_AT_@ -91,23 +91,19 @@ static const struct unit_test_next_break_utf8 next_word_break_utf8[] = {
 };
 
 static int
-unit_test_callback_next_word_break(const void *t, size_t off,
- const char *name,
- const char *argv0)
+unit_test_callback_next_word_break(const void *t, size_t off, const char *name,
+ const char *argv0)
 {
- return unit_test_callback_next_break(t, off,
- grapheme_next_word_break,
+ return unit_test_callback_next_break(t, off, grapheme_next_word_break,
                                              name, argv0);
 }
 
 static int
 unit_test_callback_next_word_break_utf8(const void *t, size_t off,
- const char *name,
- const char *argv0)
+ const char *name, const char *argv0)
 {
- return unit_test_callback_next_break_utf8(t, off,
- grapheme_next_word_break_utf8,
- name, argv0);
+ return unit_test_callback_next_break_utf8(
+ t, off, grapheme_next_word_break_utf8, name, argv0);
 }
 
 int
Received on Tue Nov 15 2022 - 15:56:07 CET

This archive was generated by hypermail 2.3.0 : Tue Nov 15 2022 - 16:00:35 CET