Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 #include <stdint.h> | 1 #include <stdint.h> |
| 2 #include <stdlib.h> | 2 #include <stdlib.h> |
| 3 | 3 |
| 4 #include <harfbuzz-external.h> | 4 #include <harfbuzz-external.h> |
| 5 #include <harfbuzz-impl.h> | 5 #include <harfbuzz-impl.h> |
| 6 #include <harfbuzz-shaper.h> | 6 #include <harfbuzz-shaper.h> |
| 7 #include "harfbuzz-unicode.h" | 7 #include "harfbuzz-unicode.h" |
| 8 | 8 |
| 9 #include "tables/script-properties.h" | 9 #include "tables/script-properties.h" |
| 10 #include "tables/grapheme-break-properties.h" | 10 #include "tables/grapheme-break-properties.h" |
| 11 #include "tables/mirroring-properties.h" | |
|
tony
2009/08/07 19:57:06
Nit: Should these headers be sorted or is this com
| |
| 11 | 12 |
| 12 uint32_t | 13 uint32_t |
| 13 utf16_to_code_point(const uint16_t *chars, size_t len, ssize_t *iter) { | 14 utf16_to_code_point(const uint16_t *chars, size_t len, ssize_t *iter) { |
| 14 const uint16_t v = chars[(*iter)++]; | 15 const uint16_t v = chars[(*iter)++]; |
| 15 if (HB_IsHighSurrogate(v)) { | 16 if (HB_IsHighSurrogate(v)) { |
| 16 // surrogate pair | 17 // surrogate pair |
| 17 if (*iter >= len) { | 18 if (*iter >= len) { |
| 18 // the surrogate is incomplete. | 19 // the surrogate is incomplete. |
| 19 return HB_InvalidCodePoint; | 20 return HB_InvalidCodePoint; |
| 20 } | 21 } |
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 227 abort(); | 228 abort(); |
| 228 return 0; | 229 return 0; |
| 229 } | 230 } |
| 230 | 231 |
| 231 void | 232 void |
| 232 HB_GetGraphemeAndLineBreakClass(HB_UChar32 ch, HB_GraphemeClass *gclass, HB_Line BreakClass *breakclass) { | 233 HB_GetGraphemeAndLineBreakClass(HB_UChar32 ch, HB_GraphemeClass *gclass, HB_Line BreakClass *breakclass) { |
| 233 *gclass = HB_GetGraphemeClass(ch); | 234 *gclass = HB_GetGraphemeClass(ch); |
| 234 *breakclass = HB_GetLineBreakClass(ch); | 235 *breakclass = HB_GetLineBreakClass(ch); |
| 235 } | 236 } |
| 236 | 237 |
| 238 static int | |
| 239 mirroring_property_cmp(const void *vkey, const void *vcandidate) { | |
| 240 const uint32_t key = (uint32_t) (intptr_t) vkey; | |
| 241 const struct mirroring_property *candidate = vcandidate; | |
| 242 | |
| 243 if (key < candidate->a) { | |
| 244 return -1; | |
| 245 } else if (key > candidate->a) { | |
| 246 return 1; | |
| 247 } else { | |
| 248 return 0; | |
| 249 } | |
| 250 } | |
| 251 | |
| 237 HB_UChar16 | 252 HB_UChar16 |
| 238 HB_GetMirroredChar(HB_UChar16 ch) { | 253 HB_GetMirroredChar(HB_UChar16 ch) { |
| 239 abort(); | 254 const void *mprop = bsearch((void *) (intptr_t) ch, mirroring_properties, |
| 240 return 0; | 255 mirroring_properties_count, |
| 256 sizeof(struct mirroring_property), | |
| 257 mirroring_property_cmp); | |
| 258 if (!mprop) | |
| 259 return ch; | |
| 260 | |
| 261 return ((const struct mirroring_property *) mprop)->b; | |
| 241 } | 262 } |
| 242 | 263 |
| 243 void * | 264 void * |
| 244 HB_Library_Resolve(const char *library, const char *symbol) { | 265 HB_Library_Resolve(const char *library, const char *symbol) { |
| 245 abort(); | 266 abort(); |
| 246 return NULL; | 267 return NULL; |
| 247 } | 268 } |
| 248 | 269 |
| 249 void * | 270 void * |
| 250 HB_TextCodecForMib(int mib) { | 271 HB_TextCodecForMib(int mib) { |
| 251 abort(); | 272 abort(); |
| 252 return NULL; | 273 return NULL; |
| 253 } | 274 } |
| 254 | 275 |
| 255 char * | 276 char * |
| 256 HB_TextCodec_ConvertFromUnicode(void *codec, const HB_UChar16 *unicode, hb_uint3 2 length, hb_uint32 *outputLength) { | 277 HB_TextCodec_ConvertFromUnicode(void *codec, const HB_UChar16 *unicode, hb_uint3 2 length, hb_uint32 *outputLength) { |
| 257 abort(); | 278 abort(); |
| 258 return NULL; | 279 return NULL; |
| 259 } | 280 } |
| 260 | 281 |
| 261 void | 282 void |
| 262 HB_TextCodec_FreeResult(char *v) { | 283 HB_TextCodec_FreeResult(char *v) { |
| 263 abort(); | 284 abort(); |
| 264 } | 285 } |
| OLD | NEW |