Mark unsigned integer literals with the u suffix Simplifies hb_in_range() calls as the type can be inferred. The rest is obsessiveness, I admit.
diff --git a/src/hb-buffer-serialize.cc b/src/hb-buffer-serialize.cc index 263bc81..406d69d 100644 --- a/src/hb-buffer-serialize.cc +++ b/src/hb-buffer-serialize.cc
@@ -63,7 +63,7 @@ hb_buffer_serialize_format_from_string (const char *str, int len) { /* Upper-case it. */ - return (hb_buffer_serialize_format_t) (hb_tag_from_string (str, len) & ~0x20202020); + return (hb_buffer_serialize_format_t) (hb_tag_from_string (str, len) & ~0x20202020u); } /**
diff --git a/src/hb-common.cc b/src/hb-common.cc index da5f4f7..a089e52 100644 --- a/src/hb-common.cc +++ b/src/hb-common.cc
@@ -371,7 +371,7 @@ return HB_SCRIPT_INVALID; /* Be lenient, adjust case (one capital letter followed by three small letters) */ - tag = (tag & 0xDFDFDFDF) | 0x00202020; + tag = (tag & 0xDFDFDFDFu) | 0x00202020u; switch (tag) { @@ -391,7 +391,7 @@ } /* If it looks right, just use the tag as a script */ - if (((uint32_t) tag & 0xE0E0E0E0) == 0x40606060) + if (((uint32_t) tag & 0xE0E0E0E0u) == 0x40606060u) return (hb_script_t) tag; /* Otherwise, return unknown */
diff --git a/src/hb-coretext.cc b/src/hb-coretext.cc index 864e9e7..d92c6ba 100644 --- a/src/hb-coretext.cc +++ b/src/hb-coretext.cc
@@ -610,13 +610,13 @@ for (unsigned int i = 0; i < buffer->len; i++) { hb_codepoint_t c = buffer->info[i].codepoint; buffer->info[i].utf16_index() = chars_len; - if (likely (c < 0x10000)) + if (likely (c <= 0xFFFFu)) pchars[chars_len++] = c; - else if (unlikely (c >= 0x110000)) - pchars[chars_len++] = 0xFFFD; + else if (unlikely (c > 0x10FFFFu)) + pchars[chars_len++] = 0xFFFDu; else { - pchars[chars_len++] = 0xD800 + ((c - 0x10000) >> 10); - pchars[chars_len++] = 0xDC00 + ((c - 0x10000) & ((1 << 10) - 1)); + pchars[chars_len++] = 0xD800u + ((c - 0x10000u) >> 10); + pchars[chars_len++] = 0xDC00u + ((c - 0x10000u) & ((1 << 10) - 1)); } } @@ -642,7 +642,7 @@ hb_codepoint_t c = buffer->info[i].codepoint; unsigned int cluster = buffer->info[i].cluster; log_clusters[chars_len++] = cluster; - if (c >= 0x10000 && c < 0x110000) + if (hb_in_range (c, 0x10000u, 0x10FFFFu)) log_clusters[chars_len++] = cluster; /* Surrogates. */ } @@ -714,10 +714,10 @@ for (CFIndex j = range.location; j < range.location + range.length; j++) { UniChar ch = CFStringGetCharacterAtIndex (string_ref, j); - if (hb_in_range<UniChar> (ch, 0xDC00, 0xDFFF) && range.location < j) + if (hb_in_range<UniChar> (ch, 0xDC00u, 0xDFFFu) && range.location < j) { ch = CFStringGetCharacterAtIndex (string_ref, j - 1); - if (hb_in_range<UniChar> (ch, 0xD800, 0xDBFF)) + if (hb_in_range<UniChar> (ch, 0xD800u, 0xDBFFu)) /* This is the second of a surrogate pair. Don't need .notdef * for this one. */ continue;
diff --git a/src/hb-open-file-private.hh b/src/hb-open-file-private.hh index de76a96..57db59d 100644 --- a/src/hb-open-file-private.hh +++ b/src/hb-open-file-private.hh
@@ -138,7 +138,7 @@ protected: Tag ttcTag; /* TrueType Collection ID string: 'ttcf' */ FixedVersion version; /* Version of the TTC Header (1.0), - * 0x00010000 */ + * 0x00010000u */ ArrayOf<OffsetTo<OffsetTable, ULONG>, ULONG> table; /* Array of offsets to the OffsetTable for each font * from the beginning of the file */ @@ -184,7 +184,7 @@ struct { Tag ttcTag; /* TrueType Collection ID string: 'ttcf' */ FixedVersion version; /* Version of the TTC Header (1.0 or 2.0), - * 0x00010000 or 0x00020000 */ + * 0x00010000u or 0x00020000u */ } header; TTCHeaderVersion1 version1; } u;
diff --git a/src/hb-open-type-private.hh b/src/hb-open-type-private.hh index 5f4cd42..046df97 100644 --- a/src/hb-open-type-private.hh +++ b/src/hb-open-type-private.hh
@@ -626,7 +626,7 @@ /* Script/language-system/feature index */ struct Index : USHORT { - static const unsigned int NOT_FOUND_INDEX = 0xFFFF; + static const unsigned int NOT_FOUND_INDEX = 0xFFFFu; }; DEFINE_NULL_DATA (Index, "\xff\xff");
diff --git a/src/hb-ot-cmap-table.hh b/src/hb-ot-cmap-table.hh index e683b07..d531411 100644 --- a/src/hb-ot-cmap-table.hh +++ b/src/hb-ot-cmap-table.hh
@@ -121,7 +121,7 @@ gid += idDelta[i]; } - *glyph = gid & 0xFFFF; + *glyph = gid & 0xFFFFu; return true; } @@ -159,7 +159,7 @@ USHORT values[VAR]; #if 0 USHORT endCount[segCount]; /* End characterCode for each segment, - * last=0xFFFF. */ + * last=0xFFFFu. */ USHORT reservedPad; /* Set to 0. */ USHORT startCount[segCount]; /* Start character code for each segment. */ SHORT idDelta[segCount]; /* Delta for all character codes in segment. */
diff --git a/src/hb-ot-head-table.hh b/src/hb-ot-head-table.hh index 0285f0c..ec4e8c9 100644 --- a/src/hb-ot-head-table.hh +++ b/src/hb-ot-head-table.hh
@@ -58,12 +58,12 @@ protected: FixedVersion version; /* Version of the head table--currently - * 0x00010000 for version 1.0. */ + * 0x00010000u for version 1.0. */ FixedVersion fontRevision; /* Set by font manufacturer. */ ULONG checkSumAdjustment; /* To compute: set it to 0, sum the * entire font as ULONG, then store - * 0xB1B0AFBA - sum. */ - ULONG magicNumber; /* Set to 0x5F0F3CF5. */ + * 0xB1B0AFBAu - sum. */ + ULONG magicNumber; /* Set to 0x5F0F3CF5u. */ USHORT flags; /* Bit 0: Baseline for font at y=0; * Bit 1: Left sidebearing point at x=0; * Bit 2: Instructions may depend on point size;
diff --git a/src/hb-ot-hhea-table.hh b/src/hb-ot-hhea-table.hh index f34bd26..d433200 100644 --- a/src/hb-ot-hhea-table.hh +++ b/src/hb-ot-hhea-table.hh
@@ -50,7 +50,7 @@ } public: - FixedVersion version; /* 0x00010000 for version 1.0. */ + FixedVersion version; /* 0x00010000u for version 1.0. */ FWORD ascender; /* Typographic ascent. <a * href="http://developer.apple.com/fonts/TTRefMan/RM06/Chap6hhea.html"> * (Distance from baseline of highest
diff --git a/src/hb-ot-layout-common-private.hh b/src/hb-ot-layout-common-private.hh index c9b4b2f..abd063c 100644 --- a/src/hb-ot-layout-common-private.hh +++ b/src/hb-ot-layout-common-private.hh
@@ -190,10 +190,10 @@ unsigned int *feature_indexes /* OUT */) const { return featureIndex.get_indexes (start_offset, feature_count, feature_indexes); } - inline bool has_required_feature (void) const { return reqFeatureIndex != 0xffff; } + inline bool has_required_feature (void) const { return reqFeatureIndex != 0xFFFFu; } inline unsigned int get_required_feature_index (void) const { - if (reqFeatureIndex == 0xffff) + if (reqFeatureIndex == 0xFFFFu) return Index::NOT_FOUND_INDEX; return reqFeatureIndex;; } @@ -208,7 +208,7 @@ * reordering table) */ USHORT reqFeatureIndex;/* Index of a feature required for this * language system--if no required features - * = 0xFFFF */ + * = 0xFFFFu */ IndexArray featureIndex; /* Array of indices into the FeatureList */ public: DEFINE_SIZE_ARRAY (6, featureIndex); @@ -448,9 +448,9 @@ TRACE_SANITIZE (this); if (tag == HB_TAG ('s','i','z','e')) return TRACE_RETURN (u.size.sanitize (c)); - if ((tag & 0xFFFF0000) == HB_TAG ('s','s','\0','\0')) /* ssXX */ + if ((tag & 0xFFFF0000u) == HB_TAG ('s','s','\0','\0')) /* ssXX */ return TRACE_RETURN (u.stylisticSet.sanitize (c)); - if ((tag & 0xFFFF0000) == HB_TAG ('c','v','\0','\0')) /* cvXX */ + if ((tag & 0xFFFF0000u) == HB_TAG ('c','v','\0','\0')) /* cvXX */ return TRACE_RETURN (u.characterVariants.sanitize (c)); return TRACE_RETURN (true); } @@ -585,7 +585,7 @@ TRACE_SERIALIZE (this); if (unlikely (!c->extend_min (*this))) return TRACE_RETURN (false); lookupType.set (lookup_type); - lookupFlag.set (lookup_props & 0xFFFF); + lookupFlag.set (lookup_props & 0xFFFFu); if (unlikely (!subTable.serialize (c, num_subtables))) return TRACE_RETURN (false); if (lookupFlag & LookupFlag::UseMarkFilteringSet) { @@ -1131,7 +1131,7 @@ unsigned int byte = deltaValue[s >> (4 - f)]; unsigned int bits = (byte >> (16 - (((s & ((1 << (4 - f)) - 1)) + 1) << f))); - unsigned int mask = (0xFFFF >> (16 - (1 << f))); + unsigned int mask = (0xFFFFu >> (16 - (1 << f))); int delta = bits & mask;
diff --git a/src/hb-ot-layout-gdef-table.hh b/src/hb-ot-layout-gdef-table.hh index bb8a4b9..84a5e79 100644 --- a/src/hb-ot-layout-gdef-table.hh +++ b/src/hb-ot-layout-gdef-table.hh
@@ -360,9 +360,9 @@ hb_position_t *caret_array /* OUT */) const { return (this+ligCaretList).get_lig_carets (font, direction, glyph_id, start_offset, caret_count, caret_array); } - inline bool has_mark_sets (void) const { return version.to_int () >= 0x00010002 && markGlyphSetsDef[0] != 0; } + inline bool has_mark_sets (void) const { return version.to_int () >= 0x00010002u && markGlyphSetsDef[0] != 0; } inline bool mark_set_covers (unsigned int set_index, hb_codepoint_t glyph_id) const - { return version.to_int () >= 0x00010002 && (this+markGlyphSetsDef[0]).covers (set_index, glyph_id); } + { return version.to_int () >= 0x00010002u && (this+markGlyphSetsDef[0]).covers (set_index, glyph_id); } inline bool sanitize (hb_sanitize_context_t *c) { TRACE_SANITIZE (this); @@ -372,7 +372,7 @@ attachList.sanitize (c, this) && ligCaretList.sanitize (c, this) && markAttachClassDef.sanitize (c, this) && - (version.to_int () < 0x00010002 || markGlyphSetsDef[0].sanitize (c, this))); + (version.to_int () < 0x00010002u || markGlyphSetsDef[0].sanitize (c, this))); } @@ -400,7 +400,7 @@ protected: FixedVersion version; /* Version of the GDEF table--currently - * 0x00010002 */ + * 0x00010002u */ OffsetTo<ClassDef> glyphClassDef; /* Offset to class definition table * for glyph type--from beginning of
diff --git a/src/hb-ot-layout-gpos-table.hh b/src/hb-ot-layout-gpos-table.hh index 91e1f8b..d8e3e6e 100644 --- a/src/hb-ot-layout-gpos-table.hh +++ b/src/hb-ot-layout-gpos-table.hh
@@ -49,18 +49,18 @@ struct ValueFormat : USHORT { enum Flags { - xPlacement = 0x0001, /* Includes horizontal adjustment for placement */ - yPlacement = 0x0002, /* Includes vertical adjustment for placement */ - xAdvance = 0x0004, /* Includes horizontal adjustment for advance */ - yAdvance = 0x0008, /* Includes vertical adjustment for advance */ - xPlaDevice = 0x0010, /* Includes horizontal Device table for placement */ - yPlaDevice = 0x0020, /* Includes vertical Device table for placement */ - xAdvDevice = 0x0040, /* Includes horizontal Device table for advance */ - yAdvDevice = 0x0080, /* Includes vertical Device table for advance */ - ignored = 0x0F00, /* Was used in TrueType Open for MM fonts */ - reserved = 0xF000, /* For future use */ + xPlacement = 0x0001u, /* Includes horizontal adjustment for placement */ + yPlacement = 0x0002u, /* Includes vertical adjustment for placement */ + xAdvance = 0x0004u, /* Includes horizontal adjustment for advance */ + yAdvance = 0x0008u, /* Includes vertical adjustment for advance */ + xPlaDevice = 0x0010u, /* Includes horizontal Device table for placement */ + yPlaDevice = 0x0020u, /* Includes vertical Device table for placement */ + xAdvDevice = 0x0040u, /* Includes horizontal Device table for advance */ + yAdvDevice = 0x0080u, /* Includes vertical Device table for advance */ + ignored = 0x0F00u, /* Was used in TrueType Open for MM fonts */ + reserved = 0xF000u, /* For future use */ - devices = 0x00F0 /* Mask for having any Device table */ + devices = 0x00F0u /* Mask for having any Device table */ }; /* All fields are options. Only those available advance the value pointer. */
diff --git a/src/hb-ot-layout-gsub-table.hh b/src/hb-ot-layout-gsub-table.hh index 2e867e3..e193973 100644 --- a/src/hb-ot-layout-gsub-table.hh +++ b/src/hb-ot-layout-gsub-table.hh
@@ -44,7 +44,7 @@ for (iter.init (this+coverage); iter.more (); iter.next ()) { hb_codepoint_t glyph_id = iter.get_glyph (); if (c->glyphs->has (glyph_id)) - c->glyphs->add ((glyph_id + deltaGlyphID) & 0xFFFF); + c->glyphs->add ((glyph_id + deltaGlyphID) & 0xFFFFu); } } @@ -55,7 +55,7 @@ for (iter.init (this+coverage); iter.more (); iter.next ()) { hb_codepoint_t glyph_id = iter.get_glyph (); c->input->add (glyph_id); - c->output->add ((glyph_id + deltaGlyphID) & 0xFFFF); + c->output->add ((glyph_id + deltaGlyphID) & 0xFFFFu); } } @@ -79,7 +79,7 @@ /* According to the Adobe Annotated OpenType Suite, result is always * limited to 16bit. */ - glyph_id = (glyph_id + deltaGlyphID) & 0xFFFF; + glyph_id = (glyph_id + deltaGlyphID) & 0xFFFFu; c->replace_glyph (glyph_id); return TRACE_RETURN (true);
diff --git a/src/hb-ot-layout-gsubgpos-private.hh b/src/hb-ot-layout-gsubgpos-private.hh index 8f8d7b8..0416589 100644 --- a/src/hb-ot-layout-gsubgpos-private.hh +++ b/src/hb-ot-layout-gsubgpos-private.hh
@@ -2294,7 +2294,7 @@ protected: FixedVersion version; /* Version of the GSUB/GPOS table--initially set - * to 0x00010000 */ + * to 0x00010000u */ OffsetTo<ScriptList> scriptList; /* ScriptList table */ OffsetTo<FeatureList>
diff --git a/src/hb-ot-layout-jstf-table.hh b/src/hb-ot-layout-jstf-table.hh index 79eb859..67a6df5 100644 --- a/src/hb-ot-layout-jstf-table.hh +++ b/src/hb-ot-layout-jstf-table.hh
@@ -214,7 +214,7 @@ protected: FixedVersion version; /* Version of the JSTF table--initially set - * to 0x00010000 */ + * to 0x00010000u */ RecordArrayOf<JstfScript> scriptList; /* Array of JstfScripts--listed * alphabetically by ScriptTag */
diff --git a/src/hb-ot-layout-private.hh b/src/hb-ot-layout-private.hh index e66e19c..9b06300 100644 --- a/src/hb-ot-layout-private.hh +++ b/src/hb-ot-layout-private.hh
@@ -190,8 +190,8 @@ /* XXX This shouldn't be inlined, or at least not while is_default_ignorable() is inline. */ info->unicode_props0() = ((unsigned int) unicode->general_category (info->codepoint)) | (unicode->is_default_ignorable (info->codepoint) ? MASK0_IGNORABLE : 0) | - (info->codepoint == 0x200C ? MASK0_ZWNJ : 0) | - (info->codepoint == 0x200D ? MASK0_ZWJ : 0); + (info->codepoint == 0x200Cu ? MASK0_ZWNJ : 0) | + (info->codepoint == 0x200Du ? MASK0_ZWJ : 0); info->unicode_props1() = unicode->modified_combining_class (info->codepoint); }
diff --git a/src/hb-ot-layout.h b/src/hb-ot-layout.h index 87171d7..949678a 100644 --- a/src/hb-ot-layout.h +++ b/src/hb-ot-layout.h
@@ -92,9 +92,9 @@ * GSUB/GPOS feature query and enumeration interface */ -#define HB_OT_LAYOUT_NO_SCRIPT_INDEX ((unsigned int) 0xFFFF) -#define HB_OT_LAYOUT_NO_FEATURE_INDEX ((unsigned int) 0xFFFF) -#define HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX ((unsigned int) 0xFFFF) +#define HB_OT_LAYOUT_NO_SCRIPT_INDEX 0xFFFFu +#define HB_OT_LAYOUT_NO_FEATURE_INDEX 0xFFFFu +#define HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX 0xFFFFu unsigned int hb_ot_layout_table_get_script_tags (hb_face_t *face,
diff --git a/src/hb-ot-map-private.hh b/src/hb-ot-map-private.hh index 74e2d9a..86b7e9f 100644 --- a/src/hb-ot-map-private.hh +++ b/src/hb-ot-map-private.hh
@@ -153,10 +153,10 @@ }; enum hb_ot_map_feature_flags_t { - F_NONE = 0x0000, - F_GLOBAL = 0x0001, - F_HAS_FALLBACK = 0x0002, - F_MANUAL_ZWJ = 0x0004 + F_NONE = 0x0000u, + F_GLOBAL = 0x0001u, + F_HAS_FALLBACK = 0x0002u, + F_MANUAL_ZWJ = 0x0004u }; /* Macro version for where const is desired. */ #define F_COMBINE(l,r) (hb_ot_map_feature_flags_t ((unsigned int) (l) | (unsigned int) (r)))
diff --git a/src/hb-ot-maxp-table.hh b/src/hb-ot-maxp-table.hh index e6d2555..b1f8328 100644 --- a/src/hb-ot-maxp-table.hh +++ b/src/hb-ot-maxp-table.hh
@@ -50,13 +50,13 @@ inline bool sanitize (hb_sanitize_context_t *c) { TRACE_SANITIZE (this); return TRACE_RETURN (c->check_struct (this) && - likely (version.major == 1 || (version.major == 0 && version.minor == 0x5000))); + likely (version.major == 1 || (version.major == 0 && version.minor == 0x5000u))); } /* We only implement version 0.5 as none of the extra fields in version 1.0 are useful. */ protected: FixedVersion version; /* Version of the maxp table (0.5 or 1.0), - * 0x00005000 or 0x00010000. */ + * 0x00005000u or 0x00010000u. */ USHORT numGlyphs; /* The number of glyphs in the font. */ public: DEFINE_SIZE_STATIC (6);
diff --git a/src/hb-ot-shape-complex-arabic-fallback.hh b/src/hb-ot-shape-complex-arabic-fallback.hh index 6b2b87e..2d8488e 100644 --- a/src/hb-ot-shape-complex-arabic-fallback.hh +++ b/src/hb-ot-shape-complex-arabic-fallback.hh
@@ -71,7 +71,7 @@ !hb_font_get_glyph (font, u, 0, &u_glyph) || !hb_font_get_glyph (font, s, 0, &s_glyph) || u_glyph == s_glyph || - u_glyph > 0xFFFF || s_glyph > 0xFFFF) + u_glyph > 0xFFFFu || s_glyph > 0xFFFFu) continue; glyphs[num_glyphs].set (u_glyph);
diff --git a/src/hb-ot-shape-complex-hangul.cc b/src/hb-ot-shape-complex-hangul.cc index 47aa44f..54c12eb 100644 --- a/src/hb-ot-shape-complex-hangul.cc +++ b/src/hb-ot-shape-complex-hangul.cc
@@ -86,26 +86,26 @@ } /* Constants for algorithmic hangul syllable [de]composition. */ -#define LBase 0x1100 -#define VBase 0x1161 -#define TBase 0x11A7 -#define LCount 19 -#define VCount 21 -#define TCount 28 -#define SBase 0xAC00 +#define LBase 0x1100u +#define VBase 0x1161u +#define TBase 0x11A7u +#define LCount 19u +#define VCount 21u +#define TCount 28u +#define SBase 0xAC00u #define NCount (VCount * TCount) #define SCount (LCount * NCount) -#define isCombiningL(u) (hb_in_range<hb_codepoint_t> ((u), LBase, LBase+LCount-1)) -#define isCombiningV(u) (hb_in_range<hb_codepoint_t> ((u), VBase, VBase+VCount-1)) -#define isCombiningT(u) (hb_in_range<hb_codepoint_t> ((u), TBase+1, TBase+TCount-1)) -#define isCombinedS(u) (hb_in_range<hb_codepoint_t> ((u), SBase, SBase+SCount-1)) +#define isCombiningL(u) (hb_in_range ((u), LBase, LBase+LCount-1)) +#define isCombiningV(u) (hb_in_range ((u), VBase, VBase+VCount-1)) +#define isCombiningT(u) (hb_in_range ((u), TBase+1, TBase+TCount-1)) +#define isCombinedS(u) (hb_in_range ((u), SBase, SBase+SCount-1)) -#define isL(u) (hb_in_ranges<hb_codepoint_t> ((u), 0x1100, 0x115F, 0xA960, 0xA97C)) -#define isV(u) (hb_in_ranges<hb_codepoint_t> ((u), 0x1160, 0x11A7, 0xD7B0, 0xD7C6)) -#define isT(u) (hb_in_ranges<hb_codepoint_t> ((u), 0x11A8, 0x11FF, 0xD7CB, 0xD7FB)) +#define isL(u) (hb_in_ranges ((u), 0x1100u, 0x115Fu, 0xA960u, 0xA97Cu)) +#define isV(u) (hb_in_ranges ((u), 0x1160u, 0x11A7u, 0xD7B0u, 0xD7C6u)) +#define isT(u) (hb_in_ranges ((u), 0x11A8u, 0x11FFu, 0xD7CBu, 0xD7FBu)) -#define isHangulTone(u) (hb_in_range<hb_codepoint_t> ((u), 0x302e, 0x302f)) +#define isHangulTone(u) (hb_in_range ((u), 0x302Eu, 0x302Fu)) /* buffer var allocations */ #define hangul_shaping_feature() complex_var_u8_0() /* hangul jamo shaping feature */ @@ -211,14 +211,14 @@ else { /* No valid syllable as base for tone mark; try to insert dotted circle. */ - if (font->has_glyph (0x25cc)) + if (font->has_glyph (0x25CCu)) { hb_codepoint_t chars[2]; if (!is_zero_width_char (font, u)) { chars[0] = u; - chars[1] = 0x25cc; + chars[1] = 0x25CCu; } else { - chars[0] = 0x25cc; + chars[0] = 0x25CCu; chars[1] = u; } buffer->replace_glyphs (1, 2, chars);
diff --git a/src/hb-ot-shape-complex-hebrew.cc b/src/hb-ot-shape-complex-hebrew.cc index 6bb6043..2381a6e 100644 --- a/src/hb-ot-shape-complex-hebrew.cc +++ b/src/hb-ot-shape-complex-hebrew.cc
@@ -35,37 +35,37 @@ { /* Hebrew presentation-form shaping. * https://bugzilla.mozilla.org/show_bug.cgi?id=728866 - * Hebrew presentation forms with dagesh, for characters 0x05D0..0x05EA; + * Hebrew presentation forms with dagesh, for characters U+05D0..05EA; * Note that some letters do not have a dagesh presForm encoded. */ - static const hb_codepoint_t sDageshForms[0x05EA - 0x05D0 + 1] = { - 0xFB30, /* ALEF */ - 0xFB31, /* BET */ - 0xFB32, /* GIMEL */ - 0xFB33, /* DALET */ - 0xFB34, /* HE */ - 0xFB35, /* VAV */ - 0xFB36, /* ZAYIN */ - 0x0000, /* HET */ - 0xFB38, /* TET */ - 0xFB39, /* YOD */ - 0xFB3A, /* FINAL KAF */ - 0xFB3B, /* KAF */ - 0xFB3C, /* LAMED */ - 0x0000, /* FINAL MEM */ - 0xFB3E, /* MEM */ - 0x0000, /* FINAL NUN */ - 0xFB40, /* NUN */ - 0xFB41, /* SAMEKH */ - 0x0000, /* AYIN */ - 0xFB43, /* FINAL PE */ - 0xFB44, /* PE */ - 0x0000, /* FINAL TSADI */ - 0xFB46, /* TSADI */ - 0xFB47, /* QOF */ - 0xFB48, /* RESH */ - 0xFB49, /* SHIN */ - 0xFB4A /* TAV */ + static const hb_codepoint_t sDageshForms[0x05EAu - 0x05D0u + 1] = { + 0xFB30u, /* ALEF */ + 0xFB31u, /* BET */ + 0xFB32u, /* GIMEL */ + 0xFB33u, /* DALET */ + 0xFB34u, /* HE */ + 0xFB35u, /* VAV */ + 0xFB36u, /* ZAYIN */ + 0x0000u, /* HET */ + 0xFB38u, /* TET */ + 0xFB39u, /* YOD */ + 0xFB3Au, /* FINAL KAF */ + 0xFB3Bu, /* KAF */ + 0xFB3Cu, /* LAMED */ + 0x0000u, /* FINAL MEM */ + 0xFB3Eu, /* MEM */ + 0x0000u, /* FINAL NUN */ + 0xFB40u, /* NUN */ + 0xFB41u, /* SAMEKH */ + 0x0000u, /* AYIN */ + 0xFB43u, /* FINAL PE */ + 0xFB44u, /* PE */ + 0x0000u, /* FINAL TSADI */ + 0xFB46u, /* TSADI */ + 0xFB47u, /* QOF */ + 0xFB48u, /* RESH */ + 0xFB49u, /* SHIN */ + 0xFB4Au /* TAV */ }; bool found = c->unicode->compose (a, b, ab); @@ -75,76 +75,76 @@ /* Special-case Hebrew presentation forms that are excluded from * standard normalization, but wanted for old fonts. */ switch (b) { - case 0x05B4: /* HIRIQ */ - if (a == 0x05D9) { /* YOD */ - *ab = 0xFB1D; + case 0x05B4u: /* HIRIQ */ + if (a == 0x05D9u) { /* YOD */ + *ab = 0xFB1Du; found = true; } break; - case 0x05B7: /* patah */ - if (a == 0x05F2) { /* YIDDISH YOD YOD */ - *ab = 0xFB1F; + case 0x05B7u: /* patah */ + if (a == 0x05F2u) { /* YIDDISH YOD YOD */ + *ab = 0xFB1Fu; found = true; - } else if (a == 0x05D0) { /* ALEF */ - *ab = 0xFB2E; + } else if (a == 0x05D0u) { /* ALEF */ + *ab = 0xFB2Eu; found = true; } break; - case 0x05B8: /* QAMATS */ - if (a == 0x05D0) { /* ALEF */ - *ab = 0xFB2F; + case 0x05B8u: /* QAMATS */ + if (a == 0x05D0u) { /* ALEF */ + *ab = 0xFB2Fu; found = true; } break; - case 0x05B9: /* HOLAM */ - if (a == 0x05D5) { /* VAV */ - *ab = 0xFB4B; + case 0x05B9u: /* HOLAM */ + if (a == 0x05D5u) { /* VAV */ + *ab = 0xFB4Bu; found = true; } break; - case 0x05BC: /* DAGESH */ - if (a >= 0x05D0 && a <= 0x05EA) { - *ab = sDageshForms[a - 0x05D0]; + case 0x05BCu: /* DAGESH */ + if (a >= 0x05D0u && a <= 0x05EAu) { + *ab = sDageshForms[a - 0x05D0u]; found = (*ab != 0); - } else if (a == 0xFB2A) { /* SHIN WITH SHIN DOT */ - *ab = 0xFB2C; + } else if (a == 0xFB2Au) { /* SHIN WITH SHIN DOT */ + *ab = 0xFB2Cu; found = true; - } else if (a == 0xFB2B) { /* SHIN WITH SIN DOT */ - *ab = 0xFB2D; + } else if (a == 0xFB2Bu) { /* SHIN WITH SIN DOT */ + *ab = 0xFB2Du; found = true; } break; - case 0x05BF: /* RAFE */ + case 0x05BFu: /* RAFE */ switch (a) { - case 0x05D1: /* BET */ - *ab = 0xFB4C; + case 0x05D1u: /* BET */ + *ab = 0xFB4Cu; found = true; break; - case 0x05DB: /* KAF */ - *ab = 0xFB4D; + case 0x05DBu: /* KAF */ + *ab = 0xFB4Du; found = true; break; - case 0x05E4: /* PE */ - *ab = 0xFB4E; + case 0x05E4u: /* PE */ + *ab = 0xFB4Eu; found = true; break; } break; - case 0x05C1: /* SHIN DOT */ - if (a == 0x05E9) { /* SHIN */ - *ab = 0xFB2A; + case 0x05C1u: /* SHIN DOT */ + if (a == 0x05E9u) { /* SHIN */ + *ab = 0xFB2Au; found = true; - } else if (a == 0xFB49) { /* SHIN WITH DAGESH */ - *ab = 0xFB2C; + } else if (a == 0xFB49u) { /* SHIN WITH DAGESH */ + *ab = 0xFB2Cu; found = true; } break; - case 0x05C2: /* SIN DOT */ - if (a == 0x05E9) { /* SHIN */ - *ab = 0xFB2B; + case 0x05C2u: /* SIN DOT */ + if (a == 0x05E9u) { /* SHIN */ + *ab = 0xFB2Bu; found = true; - } else if (a == 0xFB49) { /* SHIN WITH DAGESH */ - *ab = 0xFB2D; + } else if (a == 0xFB49u) { /* SHIN WITH DAGESH */ + *ab = 0xFB2Du; found = true; } break;
diff --git a/src/hb-ot-shape-complex-indic.cc b/src/hb-ot-shape-complex-indic.cc index 1100b4a..02087a0 100644 --- a/src/hb-ot-shape-complex-indic.cc +++ b/src/hb-ot-shape-complex-indic.cc
@@ -37,19 +37,19 @@ */ -#define IN_HALF_BLOCK(u, Base) (((u) & ~0x7F) == (Base)) +#define IN_HALF_BLOCK(u, Base) (((u) & ~0x7Fu) == (Base)) -#define IS_DEVA(u) (IN_HALF_BLOCK (u, 0x0900)) -#define IS_BENG(u) (IN_HALF_BLOCK (u, 0x0980)) -#define IS_GURU(u) (IN_HALF_BLOCK (u, 0x0A00)) -#define IS_GUJR(u) (IN_HALF_BLOCK (u, 0x0A80)) -#define IS_ORYA(u) (IN_HALF_BLOCK (u, 0x0B00)) -#define IS_TAML(u) (IN_HALF_BLOCK (u, 0x0B80)) -#define IS_TELU(u) (IN_HALF_BLOCK (u, 0x0C00)) -#define IS_KNDA(u) (IN_HALF_BLOCK (u, 0x0C80)) -#define IS_MLYM(u) (IN_HALF_BLOCK (u, 0x0D00)) -#define IS_SINH(u) (IN_HALF_BLOCK (u, 0x0D80)) -#define IS_KHMR(u) (IN_HALF_BLOCK (u, 0x1780)) +#define IS_DEVA(u) (IN_HALF_BLOCK (u, 0x0900u)) +#define IS_BENG(u) (IN_HALF_BLOCK (u, 0x0980u)) +#define IS_GURU(u) (IN_HALF_BLOCK (u, 0x0A00u)) +#define IS_GUJR(u) (IN_HALF_BLOCK (u, 0x0A80u)) +#define IS_ORYA(u) (IN_HALF_BLOCK (u, 0x0B00u)) +#define IS_TAML(u) (IN_HALF_BLOCK (u, 0x0B80u)) +#define IS_TELU(u) (IN_HALF_BLOCK (u, 0x0C00u)) +#define IS_KNDA(u) (IN_HALF_BLOCK (u, 0x0C80u)) +#define IS_MLYM(u) (IN_HALF_BLOCK (u, 0x0D00u)) +#define IS_SINH(u) (IN_HALF_BLOCK (u, 0x0D80u)) +#define IS_KHMR(u) (IN_HALF_BLOCK (u, 0x1780u)) #define MATRA_POS_LEFT(u) POS_PRE_M @@ -60,8 +60,8 @@ IS_GUJR(u) ? POS_AFTER_POST : \ IS_ORYA(u) ? POS_AFTER_POST : \ IS_TAML(u) ? POS_AFTER_POST : \ - IS_TELU(u) ? (u <= 0x0C42 ? POS_BEFORE_SUB : POS_AFTER_SUB) : \ - IS_KNDA(u) ? (u < 0x0CC3 || u > 0xCD6 ? POS_BEFORE_SUB : POS_AFTER_SUB) : \ + IS_TELU(u) ? (u <= 0x0C42u ? POS_BEFORE_SUB : POS_AFTER_SUB) : \ + IS_KNDA(u) ? (u < 0x0CC3u || u > 0xCD6u ? POS_BEFORE_SUB : POS_AFTER_SUB) : \ IS_MLYM(u) ? POS_AFTER_POST : \ IS_SINH(u) ? POS_AFTER_SUB : \ IS_KHMR(u) ? POS_AFTER_POST : \ @@ -112,20 +112,20 @@ * Or completely remove it and just check in the tables. */ static const hb_codepoint_t ra_chars[] = { - 0x0930, /* Devanagari */ - 0x09B0, /* Bengali */ - 0x09F0, /* Bengali */ - 0x0A30, /* Gurmukhi */ /* No Reph */ - 0x0AB0, /* Gujarati */ - 0x0B30, /* Oriya */ - 0x0BB0, /* Tamil */ /* No Reph */ - 0x0C30, /* Telugu */ /* Reph formed only with ZWJ */ - 0x0CB0, /* Kannada */ - 0x0D30, /* Malayalam */ /* No Reph, Logical Repha */ + 0x0930u, /* Devanagari */ + 0x09B0u, /* Bengali */ + 0x09F0u, /* Bengali */ + 0x0A30u, /* Gurmukhi */ /* No Reph */ + 0x0AB0u, /* Gujarati */ + 0x0B30u, /* Oriya */ + 0x0BB0u, /* Tamil */ /* No Reph */ + 0x0C30u, /* Telugu */ /* Reph formed only with ZWJ */ + 0x0CB0u, /* Kannada */ + 0x0D30u, /* Malayalam */ /* No Reph, Logical Repha */ - 0x0DBB, /* Sinhala */ /* Reph formed only with ZWJ */ + 0x0DBBu, /* Sinhala */ /* Reph formed only with ZWJ */ - 0x179A, /* Khmer */ /* No Reph, Visual Repha */ + 0x179Au, /* Khmer */ /* No Reph, Visual Repha */ }; static inline bool @@ -168,7 +168,7 @@ { hb_codepoint_t u = info.codepoint; unsigned int type = hb_indic_get_categories (u); - indic_category_t cat = (indic_category_t) (type & 0x7F); + indic_category_t cat = (indic_category_t) (type & 0x7Fu); indic_position_t pos = (indic_position_t) (type >> 8); @@ -187,50 +187,50 @@ * U+092E,U+0951,U+0952 * U+092E,U+0952,U+0951 */ - if (unlikely (hb_in_ranges<hb_codepoint_t> (u, 0x0951, 0x0952, - 0x1CD0, 0x1CD2, - 0x1CD4, 0x1CE1) || - u == 0x1CF4)) + if (unlikely (hb_in_ranges (u, 0x0951u, 0x0952u, + 0x1CD0u, 0x1CD2u, + 0x1CD4u, 0x1CE1u) || + u == 0x1CF4u)) cat = OT_A; /* The following act more like the Bindus. */ - else if (unlikely (hb_in_range<hb_codepoint_t> (u, 0x0953, 0x0954))) + else if (unlikely (hb_in_range (u, 0x0953u, 0x0954u))) cat = OT_SM; /* The following act like consonants. */ - else if (unlikely (hb_in_ranges<hb_codepoint_t> (u, 0x0A72, 0x0A73, - 0x1CF5, 0x1CF6))) + else if (unlikely (hb_in_ranges (u, 0x0A72u, 0x0A73u, + 0x1CF5u, 0x1CF6u))) cat = OT_C; /* TODO: The following should only be allowed after a Visarga. * For now, just treat them like regular tone marks. */ - else if (unlikely (hb_in_range<hb_codepoint_t> (u, 0x1CE2, 0x1CE8))) + else if (unlikely (hb_in_range (u, 0x1CE2u, 0x1CE8u))) cat = OT_A; /* TODO: The following should only be allowed after some of * the nasalization marks, maybe only for U+1CE9..U+1CF1. * For now, just treat them like tone marks. */ - else if (unlikely (u == 0x1CED)) + else if (unlikely (u == 0x1CEDu)) cat = OT_A; /* The following take marks in standalone clusters, similar to Avagraha. */ - else if (unlikely (hb_in_ranges<hb_codepoint_t> (u, 0xA8F2, 0xA8F7, - 0x1CE9, 0x1CEC, - 0x1CEE, 0x1CF1))) + else if (unlikely (hb_in_ranges (u, 0xA8F2u, 0xA8F7u, + 0x1CE9u, 0x1CECu, + 0x1CEEu, 0x1CF1u))) { cat = OT_Symbol; ASSERT_STATIC ((int) INDIC_SYLLABIC_CATEGORY_AVAGRAHA == OT_Symbol); } - else if (unlikely (hb_in_range<hb_codepoint_t> (u, 0x17CD, 0x17D1) || - u == 0x17CB || u == 0x17D3 || u == 0x17DD)) /* Khmer Various signs */ + else if (unlikely (hb_in_range (u, 0x17CDu, 0x17D1u) || + u == 0x17CBu || u == 0x17D3u || u == 0x17DDu)) /* Khmer Various signs */ { /* These are like Top Matras. */ cat = OT_M; pos = POS_ABOVE_C; } - else if (unlikely (u == 0x17C6)) cat = OT_N; /* Khmer Bindu doesn't like to be repositioned. */ - else if (unlikely (u == 0x17D2)) cat = OT_Coeng; /* Khmer coeng */ - else if (unlikely (hb_in_range<hb_codepoint_t> (u, 0x2010, 0x2011))) - cat = OT_PLACEHOLDER; - else if (unlikely (u == 0x25CC)) cat = OT_DOTTEDCIRCLE; - else if (unlikely (u == 0xA982)) cat = OT_SM; /* Javanese repha. */ - else if (unlikely (u == 0xA9BE)) cat = OT_CM2; /* Javanese medial ya. */ - else if (unlikely (u == 0xA9BD)) { cat = OT_M; pos = POS_POST_C; } /* Javanese vocalic r. */ + else if (unlikely (u == 0x17C6u)) cat = OT_N; /* Khmer Bindu doesn't like to be repositioned. */ + else if (unlikely (u == 0x17D2u)) cat = OT_Coeng; /* Khmer coeng */ + else if (unlikely (hb_in_range (u, 0x2010u, 0x2011u))) + cat = OT_PLACEHOLDER; + else if (unlikely (u == 0x25CCu)) cat = OT_DOTTEDCIRCLE; + else if (unlikely (u == 0xA982u)) cat = OT_SM; /* Javanese repha. */ + else if (unlikely (u == 0xA9BEu)) cat = OT_CM2; /* Javanese medial ya. */ + else if (unlikely (u == 0xA9BDu)) { cat = OT_M; pos = POS_POST_C; } /* Javanese vocalic r. */ /* @@ -252,7 +252,7 @@ pos = POS_SMVD; } - if (unlikely (u == 0x0B01)) pos = POS_BEFORE_SUB; /* Oriya Bindu is BeforeSub in the spec. */ + if (unlikely (u == 0x0B01u)) pos = POS_BEFORE_SUB; /* Oriya Bindu is BeforeSub in the spec. */ @@ -316,20 +316,20 @@ static const indic_config_t indic_configs[] = { /* Default. Should be first. */ - {HB_SCRIPT_INVALID, false, 0,BASE_POS_LAST, REPH_POS_BEFORE_POST,REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_1}, - {HB_SCRIPT_DEVANAGARI,true, 0x094D,BASE_POS_LAST, REPH_POS_BEFORE_POST,REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE}, - {HB_SCRIPT_BENGALI, true, 0x09CD,BASE_POS_LAST, REPH_POS_AFTER_SUB, REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE}, - {HB_SCRIPT_GURMUKHI, true, 0x0A4D,BASE_POS_LAST, REPH_POS_BEFORE_SUB, REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE}, - {HB_SCRIPT_GUJARATI, true, 0x0ACD,BASE_POS_LAST, REPH_POS_BEFORE_POST,REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE}, - {HB_SCRIPT_ORIYA, true, 0x0B4D,BASE_POS_LAST, REPH_POS_AFTER_MAIN, REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE}, - {HB_SCRIPT_TAMIL, true, 0x0BCD,BASE_POS_LAST, REPH_POS_AFTER_POST, REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_2}, - {HB_SCRIPT_TELUGU, true, 0x0C4D,BASE_POS_LAST, REPH_POS_AFTER_POST, REPH_MODE_EXPLICIT, BLWF_MODE_POST_ONLY, PREF_LEN_2}, - {HB_SCRIPT_KANNADA, true, 0x0CCD,BASE_POS_LAST, REPH_POS_AFTER_POST, REPH_MODE_IMPLICIT, BLWF_MODE_POST_ONLY, PREF_LEN_2}, - {HB_SCRIPT_MALAYALAM, true, 0x0D4D,BASE_POS_LAST, REPH_POS_AFTER_MAIN, REPH_MODE_LOG_REPHA,BLWF_MODE_PRE_AND_POST, PREF_LEN_2}, - {HB_SCRIPT_SINHALA, false,0x0DCA,BASE_POS_LAST_SINHALA, - REPH_POS_AFTER_MAIN, REPH_MODE_EXPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE}, - {HB_SCRIPT_KHMER, false,0x17D2,BASE_POS_FIRST,REPH_POS_DONT_CARE, REPH_MODE_VIS_REPHA,BLWF_MODE_PRE_AND_POST, PREF_LEN_2}, - {HB_SCRIPT_JAVANESE, false,0xA9C0,BASE_POS_FIRST,REPH_POS_DONT_CARE, REPH_MODE_VIS_REPHA,BLWF_MODE_PRE_AND_POST, PREF_LEN_1}, + {HB_SCRIPT_INVALID, false, 0,BASE_POS_LAST, REPH_POS_BEFORE_POST,REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_1}, + {HB_SCRIPT_DEVANAGARI,true, 0x094Du,BASE_POS_LAST, REPH_POS_BEFORE_POST,REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE}, + {HB_SCRIPT_BENGALI, true, 0x09CDu,BASE_POS_LAST, REPH_POS_AFTER_SUB, REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE}, + {HB_SCRIPT_GURMUKHI, true, 0x0A4Du,BASE_POS_LAST, REPH_POS_BEFORE_SUB, REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE}, + {HB_SCRIPT_GUJARATI, true, 0x0ACDu,BASE_POS_LAST, REPH_POS_BEFORE_POST,REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE}, + {HB_SCRIPT_ORIYA, true, 0x0B4Du,BASE_POS_LAST, REPH_POS_AFTER_MAIN, REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE}, + {HB_SCRIPT_TAMIL, true, 0x0BCDu,BASE_POS_LAST, REPH_POS_AFTER_POST, REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_2}, + {HB_SCRIPT_TELUGU, true, 0x0C4Du,BASE_POS_LAST, REPH_POS_AFTER_POST, REPH_MODE_EXPLICIT, BLWF_MODE_POST_ONLY, PREF_LEN_2}, + {HB_SCRIPT_KANNADA, true, 0x0CCDu,BASE_POS_LAST, REPH_POS_AFTER_POST, REPH_MODE_IMPLICIT, BLWF_MODE_POST_ONLY, PREF_LEN_2}, + {HB_SCRIPT_MALAYALAM, true, 0x0D4Du,BASE_POS_LAST, REPH_POS_AFTER_MAIN, REPH_MODE_LOG_REPHA,BLWF_MODE_PRE_AND_POST, PREF_LEN_2}, + {HB_SCRIPT_SINHALA, false,0x0DCAu,BASE_POS_LAST_SINHALA, + REPH_POS_AFTER_MAIN, REPH_MODE_EXPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE}, + {HB_SCRIPT_KHMER, false,0x17D2u,BASE_POS_FIRST,REPH_POS_DONT_CARE, REPH_MODE_VIS_REPHA,BLWF_MODE_PRE_AND_POST, PREF_LEN_2}, + {HB_SCRIPT_JAVANESE, false,0xA9C0u,BASE_POS_FIRST,REPH_POS_DONT_CARE, REPH_MODE_VIS_REPHA,BLWF_MODE_PRE_AND_POST, PREF_LEN_1}, }; @@ -553,7 +553,7 @@ break; } - indic_plan->is_old_spec = indic_plan->config->has_old_spec && ((plan->map.chosen_script[0] & 0x000000FF) != '2'); + indic_plan->is_old_spec = indic_plan->config->has_old_spec && ((plan->map.chosen_script[0] & 0x000000FFu) != '2'); indic_plan->virama_glyph = (hb_codepoint_t) -1; /* Use zero-context would_substitute() matching for new-spec of the main @@ -1238,11 +1238,11 @@ hb_codepoint_t dottedcircle_glyph; - if (!font->get_glyph (0x25CC, 0, &dottedcircle_glyph)) + if (!font->get_glyph (0x25CCu, 0, &dottedcircle_glyph)) return; hb_glyph_info_t dottedcircle = {0}; - dottedcircle.codepoint = 0x25CC; + dottedcircle.codepoint = 0x25CCu; set_indic_properties (dottedcircle); dottedcircle.codepoint = dottedcircle_glyph; @@ -1749,37 +1749,37 @@ switch (ab) { /* Don't decompose these. */ - case 0x0931 : return false; - case 0x0B94 : return false; + case 0x0931u : return false; + case 0x0B94u : return false; /* * Decompose split matras that don't have Unicode decompositions. */ - case 0x0F77 : *a = 0x0FB2; *b= 0x0F81; return true; - case 0x0F79 : *a = 0x0FB3; *b= 0x0F81; return true; - case 0x17BE : *a = 0x17C1; *b= 0x17BE; return true; - case 0x17BF : *a = 0x17C1; *b= 0x17BF; return true; - case 0x17C0 : *a = 0x17C1; *b= 0x17C0; return true; - case 0x17C4 : *a = 0x17C1; *b= 0x17C4; return true; - case 0x17C5 : *a = 0x17C1; *b= 0x17C5; return true; - case 0x1925 : *a = 0x1920; *b= 0x1923; return true; - case 0x1926 : *a = 0x1920; *b= 0x1924; return true; - case 0x1B3C : *a = 0x1B42; *b= 0x1B3C; return true; - case 0x1112E : *a = 0x11127; *b= 0x11131; return true; - case 0x1112F : *a = 0x11127; *b= 0x11132; return true; + case 0x0F77u : *a = 0x0FB2u; *b= 0x0F81u; return true; + case 0x0F79u : *a = 0x0FB3u; *b= 0x0F81u; return true; + case 0x17BEu : *a = 0x17C1u; *b= 0x17BEu; return true; + case 0x17BFu : *a = 0x17C1u; *b= 0x17BFu; return true; + case 0x17C0u : *a = 0x17C1u; *b= 0x17C0u; return true; + case 0x17C4u : *a = 0x17C1u; *b= 0x17C4u; return true; + case 0x17C5u : *a = 0x17C1u; *b= 0x17C5u; return true; + case 0x1925u : *a = 0x1920u; *b= 0x1923u; return true; + case 0x1926u : *a = 0x1920u; *b= 0x1924u; return true; + case 0x1B3Cu : *a = 0x1B42u; *b= 0x1B3Cu; return true; + case 0x1112Eu : *a = 0x11127u; *b= 0x11131u; return true; + case 0x1112Fu : *a = 0x11127u; *b= 0x11132u; return true; #if 0 /* This one has no decomposition in Unicode, but needs no decomposition either. */ - /* case 0x0AC9 : return false; */ - case 0x0B57 : *a = no decomp, -> RIGHT; return true; - case 0x1C29 : *a = no decomp, -> LEFT; return true; - case 0xA9C0 : *a = no decomp, -> RIGHT; return true; - case 0x111BF : *a = no decomp, -> ABOVE; return true; + /* case 0x0AC9u : return false; */ + case 0x0B57u : *a = no decomp, -> RIGHT; return true; + case 0x1C29u : *a = no decomp, -> LEFT; return true; + case 0xA9C0u : *a = no decomp, -> RIGHT; return true; + case 0x111BuF : *a = no decomp, -> ABOVE; return true; #endif } - if ((ab == 0x0DDA || hb_in_range<hb_codepoint_t> (ab, 0x0DDC, 0x0DDE))) + if ((ab == 0x0DDAu || hb_in_range (ab, 0x0DDCu, 0x0DDEu))) { /* * Sinhala split matras... Let the fun begin. @@ -1816,7 +1816,7 @@ indic_plan->pstf.would_substitute (&glyph, 1, c->font->face))) { /* Ok, safe to use Uniscribe-style decomposition. */ - *a = 0x0DD9; + *a = 0x0DD9u; *b = ab; return true; } @@ -1836,7 +1836,7 @@ return false; /* Composition-exclusion exceptions that we want to recompose. */ - if (a == 0x09AF && b == 0x09BC) { *ab = 0x09DF; return true; } + if (a == 0x09AFu && b == 0x09BCu) { *ab = 0x09DFu; return true; } return c->unicode->compose (a, b, ab); }
diff --git a/src/hb-ot-shape-complex-myanmar.cc b/src/hb-ot-shape-complex-myanmar.cc index ae5446a..8b2c00c 100644 --- a/src/hb-ot-shape-complex-myanmar.cc +++ b/src/hb-ot-shape-complex-myanmar.cc
@@ -169,80 +169,80 @@ { hb_codepoint_t u = info.codepoint; unsigned int type = hb_indic_get_categories (u); - indic_category_t cat = (indic_category_t) (type & 0x7F); + indic_category_t cat = (indic_category_t) (type & 0x7Fu); indic_position_t pos = (indic_position_t) (type >> 8); /* Myanmar * http://www.microsoft.com/typography/OpenTypeDev/myanmar/intro.htm#analyze */ - if (unlikely (hb_in_range<hb_codepoint_t> (u, 0xFE00, 0xFE0F))) + if (unlikely (hb_in_range (u, 0xFE00u, 0xFE0Fu))) cat = (indic_category_t) OT_VS; switch (u) { - case 0x104E: + case 0x104Eu: cat = (indic_category_t) OT_C; /* The spec says C, IndicSyllableCategory doesn't have. */ break; - case 0x002D: case 0x00A0: case 0x00D7: case 0x2012: - case 0x2013: case 0x2014: case 0x2015: case 0x2022: - case 0x25CC: case 0x25FB: case 0x25FC: case 0x25FD: - case 0x25FE: + case 0x002Du: case 0x00A0u: case 0x00D7u: case 0x2012u: + case 0x2013u: case 0x2014u: case 0x2015u: case 0x2022u: + case 0x25CCu: case 0x25FBu: case 0x25FCu: case 0x25FDu: + case 0x25FEu: cat = (indic_category_t) OT_GB; break; - case 0x1004: case 0x101B: case 0x105A: + case 0x1004u: case 0x101Bu: case 0x105Au: cat = (indic_category_t) OT_Ra; break; - case 0x1032: case 0x1036: + case 0x1032u: case 0x1036u: cat = (indic_category_t) OT_A; break; - case 0x103A: + case 0x103Au: cat = (indic_category_t) OT_As; break; - case 0x1041: case 0x1042: case 0x1043: case 0x1044: - case 0x1045: case 0x1046: case 0x1047: case 0x1048: - case 0x1049: case 0x1090: case 0x1091: case 0x1092: - case 0x1093: case 0x1094: case 0x1095: case 0x1096: - case 0x1097: case 0x1098: case 0x1099: + case 0x1041u: case 0x1042u: case 0x1043u: case 0x1044u: + case 0x1045u: case 0x1046u: case 0x1047u: case 0x1048u: + case 0x1049u: case 0x1090u: case 0x1091u: case 0x1092u: + case 0x1093u: case 0x1094u: case 0x1095u: case 0x1096u: + case 0x1097u: case 0x1098u: case 0x1099u: cat = (indic_category_t) OT_D; break; - case 0x1040: + case 0x1040u: cat = (indic_category_t) OT_D; /* XXX The spec says D0, but Uniscribe doesn't seem to do. */ break; - case 0x103E: case 0x1060: + case 0x103Eu: case 0x1060u: cat = (indic_category_t) OT_MH; break; - case 0x103C: + case 0x103Cu: cat = (indic_category_t) OT_MR; break; - case 0x103D: case 0x1082: + case 0x103Du: case 0x1082u: cat = (indic_category_t) OT_MW; break; - case 0x103B: case 0x105E: case 0x105F: + case 0x103Bu: case 0x105Eu: case 0x105Fu: cat = (indic_category_t) OT_MY; break; - case 0x1063: case 0x1064: case 0x1069: case 0x106A: - case 0x106B: case 0x106C: case 0x106D: case 0xAA7B: + case 0x1063u: case 0x1064u: case 0x1069u: case 0x106Au: + case 0x106Bu: case 0x106Cu: case 0x106Du: case 0xAA7Bu: cat = (indic_category_t) OT_PT; break; - case 0x1038: case 0x1087: case 0x1088: case 0x1089: - case 0x108A: case 0x108B: case 0x108C: case 0x108D: - case 0x108F: case 0x109A: case 0x109B: case 0x109C: + case 0x1038u: case 0x1087u: case 0x1088u: case 0x1089u: + case 0x108Au: case 0x108Bu: case 0x108Cu: case 0x108Du: + case 0x108Fu: case 0x109Au: case 0x109Bu: case 0x109Cu: cat = (indic_category_t) OT_SM; break; - case 0x104A: case 0x104B: + case 0x104Au: case 0x104Bu: cat = (indic_category_t) OT_P; break; } @@ -461,11 +461,11 @@ hb_codepoint_t dottedcircle_glyph; - if (!font->get_glyph (0x25CC, 0, &dottedcircle_glyph)) + if (!font->get_glyph (0x25CCu, 0, &dottedcircle_glyph)) return; hb_glyph_info_t dottedcircle = {0}; - dottedcircle.codepoint = 0x25CC; + dottedcircle.codepoint = 0x25CCu; set_myanmar_properties (dottedcircle); dottedcircle.codepoint = dottedcircle_glyph;
diff --git a/src/hb-ot-shape-complex-sea.cc b/src/hb-ot-shape-complex-sea.cc index 6288a90..a4adb8f 100644 --- a/src/hb-ot-shape-complex-sea.cc +++ b/src/hb-ot-shape-complex-sea.cc
@@ -139,11 +139,11 @@ { hb_codepoint_t u = info.codepoint; unsigned int type = hb_indic_get_categories (u); - indic_category_t cat = (indic_category_t) (type & 0x7F); + indic_category_t cat = (indic_category_t) (type & 0x7Fu); indic_position_t pos = (indic_position_t) (type >> 8); /* Medial Ra */ - if (u == 0x1A55 || u == 0xAA34) + if (u == 0x1A55u || u == 0xAA34u) cat = (indic_category_t) OT_MR; if (cat == OT_M) @@ -288,11 +288,11 @@ hb_codepoint_t dottedcircle_glyph; - if (!font->get_glyph (0x25CC, 0, &dottedcircle_glyph)) + if (!font->get_glyph (0x25CCu, 0, &dottedcircle_glyph)) return; hb_glyph_info_t dottedcircle = {0}; - dottedcircle.codepoint = 0x25CC; + dottedcircle.codepoint = 0x25CCu; set_sea_properties (dottedcircle); dottedcircle.codepoint = dottedcircle_glyph;
diff --git a/src/hb-ot-shape-complex-thai.cc b/src/hb-ot-shape-complex-thai.cc index cb9a7d9..feb7fc7 100644 --- a/src/hb-ot-shape-complex-thai.cc +++ b/src/hb-ot-shape-complex-thai.cc
@@ -46,13 +46,13 @@ static thai_consonant_type_t get_consonant_type (hb_codepoint_t u) { - if (u == 0x0E1B || u == 0x0E1D || u == 0x0E1F/* || u == 0x0E2C*/) + if (u == 0x0E1Bu || u == 0x0E1Du || u == 0x0E1Fu/* || u == 0x0E2Cu*/) return AC; - if (u == 0x0E0D || u == 0x0E10) + if (u == 0x0E0Du || u == 0x0E10u) return RC; - if (u == 0x0E0E || u == 0x0E0F) + if (u == 0x0E0Eu || u == 0x0E0Fu) return DC; - if (hb_in_range<hb_codepoint_t> (u, 0x0E01, 0x0E2E)) + if (hb_in_range (u, 0x0E01u, 0x0E2Eu)) return NC; return NOT_CONSONANT; } @@ -70,12 +70,12 @@ static thai_mark_type_t get_mark_type (hb_codepoint_t u) { - if (u == 0x0E31 || hb_in_range<hb_codepoint_t> (u, 0x0E34, 0x0E37) || - u == 0x0E47 || hb_in_range<hb_codepoint_t> (u, 0x0E4D, 0x0E4E)) + if (u == 0x0E31u || hb_in_range (u, 0x0E34u, 0x0E37u) || + u == 0x0E47u || hb_in_range (u, 0x0E4Du, 0x0E4Eu)) return AV; - if (hb_in_range<hb_codepoint_t> (u, 0x0E38, 0x0E3A)) + if (hb_in_range (u, 0x0E38u, 0x0E3Au)) return BV; - if (hb_in_range<hb_codepoint_t> (u, 0x0E48, 0x0E4C)) + if (hb_in_range (u, 0x0E48u, 0x0E4Cu)) return T; return NOT_MARK; } @@ -99,43 +99,43 @@ hb_codepoint_t mac_pua; } const *pua_mappings = NULL; static const thai_pua_mapping_t SD_mappings[] = { - {0x0E48, 0xF70A, 0xF88B}, /* MAI EK */ - {0x0E49, 0xF70B, 0xF88E}, /* MAI THO */ - {0x0E4A, 0xF70C, 0xF891}, /* MAI TRI */ - {0x0E4B, 0xF70D, 0xF894}, /* MAI CHATTAWA */ - {0x0E4C, 0xF70E, 0xF897}, /* THANTHAKHAT */ - {0x0E38, 0xF718, 0xF89B}, /* SARA U */ - {0x0E39, 0xF719, 0xF89C}, /* SARA UU */ - {0x0E3A, 0xF71A, 0xF89D}, /* PHINTHU */ - {0x0000, 0x0000, 0x0000} + {0x0E48u, 0xF70Au, 0xF88Bu}, /* MAI EK */ + {0x0E49u, 0xF70Bu, 0xF88Eu}, /* MAI THO */ + {0x0E4Au, 0xF70Cu, 0xF891u}, /* MAI TRI */ + {0x0E4Bu, 0xF70Du, 0xF894u}, /* MAI CHATTAWA */ + {0x0E4Cu, 0xF70Eu, 0xF897u}, /* THANTHAKHAT */ + {0x0E38u, 0xF718u, 0xF89Bu}, /* SARA U */ + {0x0E39u, 0xF719u, 0xF89Cu}, /* SARA UU */ + {0x0E3Au, 0xF71Au, 0xF89Du}, /* PHINTHU */ + {0x0000u, 0x0000u, 0x0000u} }; static const thai_pua_mapping_t SDL_mappings[] = { - {0x0E48, 0xF705, 0xF88C}, /* MAI EK */ - {0x0E49, 0xF706, 0xF88F}, /* MAI THO */ - {0x0E4A, 0xF707, 0xF892}, /* MAI TRI */ - {0x0E4B, 0xF708, 0xF895}, /* MAI CHATTAWA */ - {0x0E4C, 0xF709, 0xF898}, /* THANTHAKHAT */ - {0x0000, 0x0000, 0x0000} + {0x0E48u, 0xF705u, 0xF88Cu}, /* MAI EK */ + {0x0E49u, 0xF706u, 0xF88Fu}, /* MAI THO */ + {0x0E4Au, 0xF707u, 0xF892u}, /* MAI TRI */ + {0x0E4Bu, 0xF708u, 0xF895u}, /* MAI CHATTAWA */ + {0x0E4Cu, 0xF709u, 0xF898u}, /* THANTHAKHAT */ + {0x0000u, 0x0000u, 0x0000u} }; static const thai_pua_mapping_t SL_mappings[] = { - {0x0E48, 0xF713, 0xF88A}, /* MAI EK */ - {0x0E49, 0xF714, 0xF88D}, /* MAI THO */ - {0x0E4A, 0xF715, 0xF890}, /* MAI TRI */ - {0x0E4B, 0xF716, 0xF893}, /* MAI CHATTAWA */ - {0x0E4C, 0xF717, 0xF896}, /* THANTHAKHAT */ - {0x0E31, 0xF710, 0xF884}, /* MAI HAN-AKAT */ - {0x0E34, 0xF701, 0xF885}, /* SARA I */ - {0x0E35, 0xF702, 0xF886}, /* SARA II */ - {0x0E36, 0xF703, 0xF887}, /* SARA UE */ - {0x0E37, 0xF704, 0xF888}, /* SARA UEE */ - {0x0E47, 0xF712, 0xF889}, /* MAITAIKHU */ - {0x0E4D, 0xF711, 0xF899}, /* NIKHAHIT */ - {0x0000, 0x0000, 0x0000} + {0x0E48u, 0xF713u, 0xF88Au}, /* MAI EK */ + {0x0E49u, 0xF714u, 0xF88Du}, /* MAI THO */ + {0x0E4Au, 0xF715u, 0xF890u}, /* MAI TRI */ + {0x0E4Bu, 0xF716u, 0xF893u}, /* MAI CHATTAWA */ + {0x0E4Cu, 0xF717u, 0xF896u}, /* THANTHAKHAT */ + {0x0E31u, 0xF710u, 0xF884u}, /* MAI HAN-AKAT */ + {0x0E34u, 0xF701u, 0xF885u}, /* SARA I */ + {0x0E35u, 0xF702u, 0xF886u}, /* SARA II */ + {0x0E36u, 0xF703u, 0xF887u}, /* SARA UE */ + {0x0E37u, 0xF704u, 0xF888u}, /* SARA UEE */ + {0x0E47u, 0xF712u, 0xF889u}, /* MAITAIKHU */ + {0x0E4Du, 0xF711u, 0xF899u}, /* NIKHAHIT */ + {0x0000u, 0x0000u, 0x0000u} }; static const thai_pua_mapping_t RD_mappings[] = { - {0x0E0D, 0xF70F, 0xF89A}, /* YO YING */ - {0x0E10, 0xF700, 0xF89E}, /* THO THAN */ - {0x0000, 0x0000, 0x0000} + {0x0E0Du, 0xF70Fu, 0xF89Au}, /* YO YING */ + {0x0E10u, 0xF700u, 0xF89Eu}, /* THO THAN */ + {0x0000u, 0x0000u, 0x0000u} }; switch (action) { @@ -308,10 +308,10 @@ /* We only get one script at a time, so a script-agnostic implementation * is adequate here. */ -#define IS_SARA_AM(x) (((x) & ~0x0080) == 0x0E33) -#define NIKHAHIT_FROM_SARA_AM(x) ((x) - 0xE33 + 0xE4D) +#define IS_SARA_AM(x) (((x) & ~0x0080u) == 0x0E33u) +#define NIKHAHIT_FROM_SARA_AM(x) ((x) - 0x0E33u + 0x0E4Du) #define SARA_AA_FROM_SARA_AM(x) ((x) - 1) -#define IS_TONE_MARK(x) (hb_in_ranges<hb_codepoint_t> ((x) & ~0x0080, 0x0E34, 0x0E37, 0x0E47, 0x0E4E, 0x0E31, 0x0E31)) +#define IS_TONE_MARK(x) (hb_in_ranges ((x) & ~0x0080u, 0x0E34u, 0x0E37u, 0x0E47u, 0x0E4Eu, 0x0E31u, 0x0E31u)) buffer->clear_output (); unsigned int count = buffer->len;
diff --git a/src/hb-ot-shape-fallback.cc b/src/hb-ot-shape-fallback.cc index 5d526c3..89eab28 100644 --- a/src/hb-ot-shape-fallback.cc +++ b/src/hb-ot-shape-fallback.cc
@@ -35,42 +35,42 @@ return klass; /* Thai / Lao need some per-character work. */ - if ((u & ~0xFF) == 0x0E00) + if ((u & ~0xFF) == 0x0E00u) { if (unlikely (klass == 0)) { switch (u) { - case 0x0E31: - case 0x0E34: - case 0x0E35: - case 0x0E36: - case 0x0E37: - case 0x0E47: - case 0x0E4C: - case 0x0E4D: - case 0x0E4E: + case 0x0E31u: + case 0x0E34u: + case 0x0E35u: + case 0x0E36u: + case 0x0E37u: + case 0x0E47u: + case 0x0E4Cu: + case 0x0E4Du: + case 0x0E4Eu: klass = HB_UNICODE_COMBINING_CLASS_ABOVE_RIGHT; break; - case 0x0EB1: - case 0x0EB4: - case 0x0EB5: - case 0x0EB6: - case 0x0EB7: - case 0x0EBB: - case 0x0ECC: - case 0x0ECD: + case 0x0EB1u: + case 0x0EB4u: + case 0x0EB5u: + case 0x0EB6u: + case 0x0EB7u: + case 0x0EBBu: + case 0x0ECCu: + case 0x0ECDu: klass = HB_UNICODE_COMBINING_CLASS_ABOVE; break; - case 0x0EBC: + case 0x0EBCu: klass = HB_UNICODE_COMBINING_CLASS_BELOW; break; } } else { /* Thai virama is below-right */ - if (u == 0x0E3A) + if (u == 0x0E3Au) klass = HB_UNICODE_COMBINING_CLASS_BELOW_RIGHT; } }
diff --git a/src/hb-ot-shape-normalize.cc b/src/hb-ot-shape-normalize.cc index 0d2f8f5..7a9f24c 100644 --- a/src/hb-ot-shape-normalize.cc +++ b/src/hb-ot-shape-normalize.cc
@@ -213,7 +213,7 @@ /* Not found, not decomposible; If codepoint is invalid Unicode and * font supports U+FFFD REPLACEMENT CHARACTER, use that instead. */ hb_codepoint_t FFFD_glyph; - if (buffer->cur().codepoint > 0x10FFFF && c->font->get_glyph (0xFFFD, 0, &FFFD_glyph)) + if (buffer->cur().codepoint > 0x10FFFFu && c->font->get_glyph (0xFFFDu, 0, &FFFD_glyph)) glyph = FFFD_glyph; next_char (buffer, glyph); /* glyph is initialized in earlier branches. */ }
diff --git a/src/hb-ot-shape.cc b/src/hb-ot-shape.cc index 42f68ab..bc9eaa5 100644 --- a/src/hb-ot-shape.cc +++ b/src/hb-ot-shape.cc
@@ -238,11 +238,11 @@ HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK) return; - if (!font->has_glyph (0x25CC)) + if (!font->has_glyph (0x25CCu)) return; hb_glyph_info_t dottedcircle; - dottedcircle.codepoint = 0x25CC; + dottedcircle.codepoint = 0x25CCu; _hb_glyph_info_set_unicode_props (&dottedcircle, buffer->unicode); buffer->clear_output (); @@ -321,7 +321,7 @@ hb_glyph_info_t *info = buffer->info; for (unsigned int i = 0; i < count; i++) { - if (info[i].codepoint == 0x2044) /* FRACTION SLASH */ + if (info[i].codepoint == 0x2044u) /* FRACTION SLASH */ { unsigned int start = i, end = i + 1; while (start &&
diff --git a/src/hb-ot-tag.cc b/src/hb-ot-tag.cc index 89cc1e2..878dd79 100644 --- a/src/hb-ot-tag.cc +++ b/src/hb-ot-tag.cc
@@ -57,7 +57,7 @@ } /* Else, just change first char to lowercase and return */ - return ((hb_tag_t) script) | 0x20000000; + return ((hb_tag_t) script) | 0x20000000u; } static hb_script_t @@ -70,13 +70,13 @@ /* Any spaces at the end of the tag are replaced by repeating the last * letter. Eg 'nko ' -> 'Nkoo' */ - if (unlikely ((tag & 0x0000FF00) == 0x00002000)) - tag |= (tag >> 8) & 0x0000FF00; /* Copy second letter to third */ - if (unlikely ((tag & 0x000000FF) == 0x00000020)) - tag |= (tag >> 8) & 0x000000FF; /* Copy third letter to fourth */ + if (unlikely ((tag & 0x0000FF00u) == 0x00002000u)) + tag |= (tag >> 8) & 0x0000FF00u; /* Copy second letter to third */ + if (unlikely ((tag & 0x000000FFu) == 0x00000020u)) + tag |= (tag >> 8) & 0x000000FFu; /* Copy third letter to fourth */ /* Change first char to uppercase and return */ - return (hb_script_t) (tag & ~0x20000000); + return (hb_script_t) (tag & ~0x20000000u); } static hb_tag_t @@ -146,7 +146,7 @@ hb_script_t hb_ot_tag_to_script (hb_tag_t tag) { - if (unlikely ((tag & 0x000000FF) == '2')) + if (unlikely ((tag & 0x000000FFu) == '2')) return hb_ot_new_tag_to_script (tag); return hb_ot_old_tag_to_script (tag); @@ -858,7 +858,7 @@ s = lang_str + strlen (lang_str); if (s - lang_str == 3) { /* Assume it's ISO-639-3 and upper-case and use it. */ - return hb_tag_from_string (lang_str, s - lang_str) & ~0x20202000; + return hb_tag_from_string (lang_str, s - lang_str) & ~0x20202000u; } return HB_OT_TAG_DEFAULT_LANGUAGE; @@ -877,7 +877,7 @@ return hb_language_from_string (ot_languages[i].language, -1); /* If tag starts with ZH, it's Chinese */ - if ((tag & 0xFFFF0000) == 0x5A480000) { + if ((tag & 0xFFFF0000u) == 0x5A480000u) { switch (tag) { case HB_TAG('Z','H','H',' '): return hb_language_from_string ("zh-hk", -1); /* Hong Kong */ case HB_TAG('Z','H','S',' '): return hb_language_from_string ("zh-Hans", -1); /* Simplified */
diff --git a/src/hb-unicode-private.hh b/src/hb-unicode-private.hh index 583a197..31a7abb 100644 --- a/src/hb-unicode-private.hh +++ b/src/hb-unicode-private.hh
@@ -106,15 +106,15 @@ modified_combining_class (hb_codepoint_t unicode) { /* XXX This hack belongs to the Myanmar shaper. */ - if (unlikely (unicode == 0x1037)) unicode = 0x103A; + if (unlikely (unicode == 0x1037u)) unicode = 0x103Au; /* XXX This hack belongs to the SEA shaper (for Tai Tham): * Reorder SAKOT to ensure it comes after any tone marks. */ - if (unlikely (unicode == 0x1A60)) return 254; + if (unlikely (unicode == 0x1A60u)) return 254; /* XXX This hack belongs to the Tibetan shaper: * Reorder PADMA to ensure it comes after any vowel marks. */ - if (unlikely (unicode == 0x0FC6)) return 254; + if (unlikely (unicode == 0x0FC6u)) return 254; return _hb_modified_combining_class[combining_class (unicode)]; } @@ -122,10 +122,10 @@ inline hb_bool_t is_variation_selector (hb_codepoint_t unicode) { - return unlikely (hb_in_ranges<hb_codepoint_t> (unicode, - 0x180B, 0x180D, /* MONGOLIAN FREE VARIATION SELECTOR ONE..THREE */ - 0xFE00, 0xFE0F, /* VARIATION SELECTOR-1..16 */ - 0xE0100, 0xE01EF)); /* VARIATION SELECTOR-17..256 */ + return unlikely (hb_in_ranges (unicode, + 0x180Bu, 0x180Du, /* MONGOLIAN FREE VARIATION SELECTOR ONE..THREE */ + 0xFE00u, 0xFE0Fu, /* VARIATION SELECTOR-1..16 */ + 0xE0100u, 0xE01EFu)); /* VARIATION SELECTOR-17..256 */ } /* Default_Ignorable codepoints: @@ -173,16 +173,16 @@ /* BMP */ hb_codepoint_t page = ch >> 8; switch (page) { - case 0x00: return unlikely (ch == 0x00AD); - case 0x03: return unlikely (ch == 0x034F); - case 0x06: return unlikely (ch == 0x061C); - case 0x17: return hb_in_range<hb_codepoint_t> (ch, 0x17B4, 0x17B5); - case 0x18: return hb_in_range<hb_codepoint_t> (ch, 0x180B, 0x180E); - case 0x20: return hb_in_ranges<hb_codepoint_t> (ch, 0x200B, 0x200F, - 0x202A, 0x202E, - 0x2060, 0x206F); - case 0xFE: return hb_in_range<hb_codepoint_t> (ch, 0xFE00, 0xFE0F) || ch == 0xFEFF; - case 0xFF: return hb_in_range<hb_codepoint_t> (ch, 0xFFF0, 0xFFF8); + case 0x00: return unlikely (ch == 0x00ADu); + case 0x03: return unlikely (ch == 0x034Fu); + case 0x06: return unlikely (ch == 0x061Cu); + case 0x17: return hb_in_range (ch, 0x17B4u, 0x17B5u); + case 0x18: return hb_in_range (ch, 0x180Bu, 0x180Eu); + case 0x20: return hb_in_ranges (ch, 0x200Bu, 0x200Fu, + 0x202Au, 0x202Eu, + 0x2060u, 0x206Fu); + case 0xFE: return hb_in_range (ch, 0xFE00u, 0xFE0Fu) || ch == 0xFEFFu; + case 0xFF: return hb_in_range (ch, 0xFFF0u, 0xFFF8u); default: return false; } } @@ -190,9 +190,9 @@ { /* Other planes */ switch (plane) { - case 0x01: return hb_in_ranges<hb_codepoint_t> (ch, 0x0001BCA0, 0x0001BCA3, - 0x0001D173, 0x0001D17A); - case 0x0E: return hb_in_range<hb_codepoint_t> (ch, 0x000E0000, 0x000E0FFF); + case 0x01: return hb_in_ranges (ch, 0x1BCA0u, 0x1BCA3u, + 0x1D173u, 0x1D17Au); + case 0x0E: return hb_in_range (ch, 0xE0000u, 0xE0FFFu); default: return false; } }
diff --git a/src/hb-uniscribe.cc b/src/hb-uniscribe.cc index f699415..6bdf0f5 100644 --- a/src/hb-uniscribe.cc +++ b/src/hb-uniscribe.cc
@@ -379,7 +379,7 @@ OT::NameRecord &record = name.nameRecord[i]; record.platformID.set (3); record.encodingID.set (1); - record.languageID.set (0x0409); /* English */ + record.languageID.set (0x0409u); /* English */ record.nameID.set (name_IDs[i]); record.length.set (name_str_len * 2); record.offset.set (0); @@ -749,13 +749,13 @@ { hb_codepoint_t c = buffer->info[i].codepoint; buffer->info[i].utf16_index() = chars_len; - if (likely (c < 0x10000)) + if (likely (c <= 0xFFFFu)) pchars[chars_len++] = c; - else if (unlikely (c >= 0x110000)) - pchars[chars_len++] = 0xFFFD; + else if (unlikely (c > 0x10FFFFu)) + pchars[chars_len++] = 0xFFFDu; else { - pchars[chars_len++] = 0xD800 + ((c - 0x10000) >> 10); - pchars[chars_len++] = 0xDC00 + ((c - 0x10000) & ((1 << 10) - 1)); + pchars[chars_len++] = 0xD800u + ((c - 0x10000u) >> 10); + pchars[chars_len++] = 0xDC00u + ((c - 0x10000u) & ((1 << 10) - 1)); } } @@ -771,7 +771,7 @@ hb_codepoint_t c = buffer->info[i].codepoint; unsigned int cluster = buffer->info[i].cluster; log_clusters[chars_len++] = cluster; - if (c >= 0x10000 && c < 0x110000) + if (hb_in_range (c, 0x10000u, 0x10FFFFu)) log_clusters[chars_len++] = cluster; /* Surrogates. */ } }
diff --git a/src/hb-utf-private.hh b/src/hb-utf-private.hh index fece185..bfb3a80 100644 --- a/src/hb-utf-private.hh +++ b/src/hb-utf-private.hh
@@ -105,20 +105,20 @@ { hb_codepoint_t c = *text++; - if (likely (!hb_in_range<hb_codepoint_t> (c, 0xd800, 0xdfff))) + if (likely (!hb_in_range (c, 0xD800u, 0xDFFFu))) { *unicode = c; return text; } - if (likely (hb_in_range<hb_codepoint_t> (c, 0xd800, 0xdbff))) + if (likely (hb_in_range (c, 0xD800u, 0xDBFFu))) { /* High-surrogate in c */ hb_codepoint_t l; - if (text < end && ((l = *text), likely (hb_in_range<hb_codepoint_t> (l, 0xdc00, 0xdfff)))) + if (text < end && ((l = *text), likely (hb_in_range (l, 0xDC00u, 0xDFFFu)))) { /* Low-surrogate in l */ - *unicode = (c << 10) + l - ((0xd800 << 10) - 0x10000 + 0xdc00); + *unicode = (c << 10) + l - ((0xD800u << 10) - 0x10000u + 0xDC00u); text++; return text; } @@ -136,20 +136,20 @@ { hb_codepoint_t c = *--text; - if (likely (!hb_in_range<hb_codepoint_t> (c, 0xd800, 0xdfff))) + if (likely (!hb_in_range (c, 0xD800u, 0xDFFFu))) { *unicode = c; return text; } - if (likely (hb_in_range<hb_codepoint_t> (c, 0xdc00, 0xdfff))) + if (likely (hb_in_range (c, 0xDC00u, 0xDFFFu))) { /* Low-surrogate in c */ hb_codepoint_t h; - if (start < text && ((h = *(text - 1)), likely (hb_in_range<hb_codepoint_t> (h, 0xd800, 0xdbff)))) + if (start < text && ((h = *(text - 1)), likely (hb_in_range (h, 0xD800u, 0xDBFFu)))) { /* High-surrogate in h */ - *unicode = (h << 10) + c - ((0xd800 << 10) - 0x10000 + 0xdc00); + *unicode = (h << 10) + c - ((0xD800u << 10) - 0x10000u + 0xDC00u); text--; return text; }