From ca0aa5f6960c09e5cf5cb20249f895628fd97449 Mon Sep 17 00:00:00 2001 From: Heiko Becker Date: Sat, 5 Dec 2020 11:30:42 +0100 Subject: [PATCH] Fix build with ICU >= 68 ICU stopped defining the macros FALSE and TRUE in its headers with 68: https://github.com/unicode-org/icu/commit/c3fe7e09d844 --- src/calibre/utils/icu.c | 6 ++++-- src/calibre/utils/matcher.c | 18 ++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/calibre/utils/icu.c b/src/calibre/utils/icu.c index 62d05de3101..36902dbdd25 100644 --- a/src/calibre/utils/icu.c +++ b/src/calibre/utils/icu.c @@ -1,5 +1,7 @@ #include "icu_calibre_utils.h" +#include + #define UPPER_CASE 0 #define LOWER_CASE 1 #define TITLE_CASE 2 @@ -238,14 +240,14 @@ icu_Collator_contains(icu_Collator *self, PyObject *args) { a = python_to_icu(a_, &asz); if (a == NULL) goto end; - if (asz == 0) { found = TRUE; goto end; } + if (asz == 0) { found = true; goto end; } b = python_to_icu(b_, &bsz); if (b == NULL) goto end; search = usearch_openFromCollator(a, asz, b, bsz, self->collator, NULL, &status); if (U_SUCCESS(status)) { pos = usearch_first(search, &status); - if (pos != USEARCH_DONE) found = TRUE; + if (pos != USEARCH_DONE) found = true; } end: if (search != NULL) usearch_close(search); diff --git a/src/calibre/utils/matcher.c b/src/calibre/utils/matcher.c index f38a7082cee..72715cc0ae3 100644 --- a/src/calibre/utils/matcher.c +++ b/src/calibre/utils/matcher.c @@ -9,15 +9,13 @@ #define NO_PYTHON_TO_ICU32 #include "icu_calibre_utils.h" #include +#include #ifdef _MSC_VER // inline does not work with the visual studio C compiler #define inline #endif -typedef unsigned char bool; -#define TRUE 1 -#define FALSE 0 #define MAX(x, y) ((x > y) ? x : y) #define nullfree(x) if(x != NULL) free(x); x = NULL; @@ -240,10 +238,10 @@ static bool create_searches(UStringSearch **searches, UChar *haystack, int32_t h U16_FWD_1(needle, i, needle_len); if (pos == i) break; searches[pos] = usearch_openFromCollator(needle + pos, i - pos, haystack, haystack_len, collator, NULL, &status); - if (U_FAILURE(status)) { PyErr_SetString(PyExc_ValueError, u_errorName(status)); searches[pos] = NULL; return FALSE; } + if (U_FAILURE(status)) { PyErr_SetString(PyExc_ValueError, u_errorName(status)); searches[pos] = NULL; return false; } } - return TRUE; + return true; } static void free_searches(UStringSearch **searches, int32_t count) { @@ -259,14 +257,14 @@ static bool match(UChar **items, int32_t *item_lengths, uint32_t item_count, UCh int32_t i = 0, maxhl = 0; int32_t r = 0, *positions = NULL; MatchInfo *matches = NULL; - bool ok = FALSE; + bool ok = false; MemoryItem ***memo = NULL; int32_t needle_len = u_strlen(needle); UStringSearch **searches = NULL; if (needle_len <= 0 || item_count <= 0) { for (i = 0; i < (int32_t)item_count; i++) match_results[i].score = 0.0; - ok = TRUE; + ok = true; goto end; } @@ -289,7 +287,7 @@ static bool match(UChar **items, int32_t *item_lengths, uint32_t item_count, UCh if (maxhl <= 0) { for (i = 0; i < (int32_t)item_count; i++) match_results[i].score = 0.0; - ok = TRUE; + ok = true; goto end; } @@ -308,7 +306,7 @@ static bool match(UChar **items, int32_t *item_lengths, uint32_t item_count, UCh convert_positions(positions, final_positions + i * needle_char_len, matches[i].haystack, needle_char_len, needle_len, match_results[i].score); } - ok = TRUE; + ok = true; end: nullfree(positions); nullfree(stack.items); @@ -401,7 +399,7 @@ static PyObject * Matcher_calculate_scores(Matcher *self, PyObject *args) { int32_t *final_positions = NULL, *p; Match *matches = NULL; - bool ok = FALSE; + bool ok = false; uint32_t i = 0, needle_char_len = 0, j = 0; PyObject *items = NULL, *score = NULL, *positions = NULL, *pneedle = NULL; UChar *needle = NULL;