#include #include #include "BidiBrackets.h" uint32_t bidi_brackets(uint32_t x) { long length = sizeof(BidiBrackets) / sizeof(BidiBrackets[0]); const uint32_t *try, *base; base = BidiBrackets; while (length > 0) { try = &base[length/2]; uint32_t y = try[0] & 0x1FFFFF; switch ((x > y) - (x < y)) { case -1: length /= 2; break; case 1: base = try + 1; length -= length/2+1; break; default: return try[0]; } } return x; }