Merge branch 'fix-build-with-icu68' of https://github.com/heirecka/calibre

This commit is contained in:
Kovid Goyal 2020-12-11 15:42:57 +05:30
commit 44f2d0e073
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 12 additions and 12 deletions

View File

@ -1,5 +1,7 @@
#include "icu_calibre_utils.h"
#include <stdbool.h>
#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);

View File

@ -9,15 +9,13 @@
#define NO_PYTHON_TO_ICU32
#include "icu_calibre_utils.h"
#include <float.h>
#include <stdbool.h>
#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;