Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Unified Diff: third_party/harfbuzz/contrib/harfbuzz-unicode.c

Issue 164123: Linux: support mirrored charactors (Closed)
Patch Set: Created 11 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/harfbuzz/contrib/harfbuzz-unicode.c
diff --git a/third_party/harfbuzz/contrib/harfbuzz-unicode.c b/third_party/harfbuzz/contrib/harfbuzz-unicode.c
index 9b3c43e237fcf0f83d1e73cb7a45e300626d293a..6ee29485dc9093139b20c8fce5a9cbb70436a49f 100644
--- a/third_party/harfbuzz/contrib/harfbuzz-unicode.c
+++ b/third_party/harfbuzz/contrib/harfbuzz-unicode.c
@@ -8,6 +8,7 @@
#include "tables/script-properties.h"
#include "tables/grapheme-break-properties.h"
+#include "tables/mirroring-properties.h"
tony 2009/08/07 19:57:06 Nit: Should these headers be sorted or is this com
uint32_t
utf16_to_code_point(const uint16_t *chars, size_t len, ssize_t *iter) {
@@ -234,10 +235,30 @@ HB_GetGraphemeAndLineBreakClass(HB_UChar32 ch, HB_GraphemeClass *gclass, HB_Line
*breakclass = HB_GetLineBreakClass(ch);
}
+static int
+mirroring_property_cmp(const void *vkey, const void *vcandidate) {
+ const uint32_t key = (uint32_t) (intptr_t) vkey;
+ const struct mirroring_property *candidate = vcandidate;
+
+ if (key < candidate->a) {
+ return -1;
+ } else if (key > candidate->a) {
+ return 1;
+ } else {
+ return 0;
+ }
+}
+
HB_UChar16
HB_GetMirroredChar(HB_UChar16 ch) {
- abort();
- return 0;
+ const void *mprop = bsearch((void *) (intptr_t) ch, mirroring_properties,
+ mirroring_properties_count,
+ sizeof(struct mirroring_property),
+ mirroring_property_cmp);
+ if (!mprop)
+ return ch;
+
+ return ((const struct mirroring_property *) mprop)->b;
}
void *

Powered by Google App Engine
This is Rietveld 408576698