/* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "minikin/Emoji.h" namespace minikin { bool isEmoji(uint32_t c) { return u_hasBinaryProperty(c, UCHAR_EMOJI); } bool isEmojiModifier(uint32_t c) { // Emoji modifier are not expected to change, so there's a small change we need to customize // this. return u_hasBinaryProperty(c, UCHAR_EMOJI_MODIFIER); } bool isEmojiBase(uint32_t c) { // These two characters were removed from Emoji_Modifier_Base in Emoji 4.0, but we need to keep // them as emoji modifier bases since there are fonts and user-generated text out there that // treats these as potential emoji bases. if (c == 0x1F91D || c == 0x1F93C) { return true; } return u_hasBinaryProperty(c, UCHAR_EMOJI_MODIFIER_BASE); } UCharDirection emojiBidiOverride(const void* /* context */, UChar32 c) { return u_charDirection(c); } } // namespace minikin