Merge branch 'master' into cff-more-arrayof-fixes
This commit is contained in:
commit
1239b6b2b4
|
@ -171,7 +171,7 @@ create_ct_font (CGFontRef cg_font, CGFloat font_size)
|
||||||
if (CFStringHasPrefix (cg_postscript_name, CFSTR (".SFNSText")) ||
|
if (CFStringHasPrefix (cg_postscript_name, CFSTR (".SFNSText")) ||
|
||||||
CFStringHasPrefix (cg_postscript_name, CFSTR (".SFNSDisplay")))
|
CFStringHasPrefix (cg_postscript_name, CFSTR (".SFNSDisplay")))
|
||||||
{
|
{
|
||||||
#if MAC_OS_X_VERSION_MIN_REQUIRED < 1080
|
#if TARGET_OS_MAC && !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) && MAC_OS_X_VERSION_MIN_REQUIRED < 1080
|
||||||
# define kCTFontUIFontSystem kCTFontSystemFontType
|
# define kCTFontUIFontSystem kCTFontSystemFontType
|
||||||
# define kCTFontUIFontEmphasizedSystem kCTFontEmphasizedSystemFontType
|
# define kCTFontUIFontEmphasizedSystem kCTFontEmphasizedSystemFontType
|
||||||
#endif
|
#endif
|
||||||
|
@ -214,7 +214,7 @@ create_ct_font (CGFontRef cg_font, CGFloat font_size)
|
||||||
}
|
}
|
||||||
|
|
||||||
CFURLRef original_url = nullptr;
|
CFURLRef original_url = nullptr;
|
||||||
#if TARGET_OS_OSX && MAC_OS_X_VERSION_MIN_REQUIRED < 1060
|
#if TARGET_OS_MAC && !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) && MAC_OS_X_VERSION_MIN_REQUIRED < 1060
|
||||||
ATSFontRef atsFont;
|
ATSFontRef atsFont;
|
||||||
FSRef fsref;
|
FSRef fsref;
|
||||||
OSStatus status;
|
OSStatus status;
|
||||||
|
@ -244,7 +244,7 @@ create_ct_font (CGFontRef cg_font, CGFloat font_size)
|
||||||
* process in Blink. This can be detected by the new file URL location
|
* process in Blink. This can be detected by the new file URL location
|
||||||
* that the newly found font points to. */
|
* that the newly found font points to. */
|
||||||
CFURLRef new_url = nullptr;
|
CFURLRef new_url = nullptr;
|
||||||
#if TARGET_OS_OSX && MAC_OS_X_VERSION_MIN_REQUIRED < 1060
|
#if TARGET_OS_MAC && !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) && MAC_OS_X_VERSION_MIN_REQUIRED < 1060
|
||||||
atsFont = CTFontGetPlatformFont (new_ct_font, NULL);
|
atsFont = CTFontGetPlatformFont (new_ct_font, NULL);
|
||||||
status = ATSFontGetFileReference (atsFont, &fsref);
|
status = ATSFontGetFileReference (atsFont, &fsref);
|
||||||
if (status == noErr)
|
if (status == noErr)
|
||||||
|
@ -711,7 +711,7 @@ resize_and_retry:
|
||||||
/* What's the iOS equivalent of this check?
|
/* What's the iOS equivalent of this check?
|
||||||
* The symbols was introduced in iOS 7.0.
|
* The symbols was introduced in iOS 7.0.
|
||||||
* At any rate, our fallback is safe and works fine. */
|
* At any rate, our fallback is safe and works fine. */
|
||||||
#if MAC_OS_X_VERSION_MIN_REQUIRED < 1090
|
#if TARGET_OS_MAC && !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) && MAC_OS_X_VERSION_MIN_REQUIRED < 1090
|
||||||
# define kCTLanguageAttributeName CFSTR ("NSLanguage")
|
# define kCTLanguageAttributeName CFSTR ("NSLanguage")
|
||||||
#endif
|
#endif
|
||||||
CFStringRef lang = CFStringCreateWithCStringNoCopy (kCFAllocatorDefault,
|
CFStringRef lang = CFStringCreateWithCStringNoCopy (kCFAllocatorDefault,
|
||||||
|
@ -783,7 +783,7 @@ resize_and_retry:
|
||||||
|
|
||||||
int level = HB_DIRECTION_IS_FORWARD (buffer->props.direction) ? 0 : 1;
|
int level = HB_DIRECTION_IS_FORWARD (buffer->props.direction) ? 0 : 1;
|
||||||
CFNumberRef level_number = CFNumberCreate (kCFAllocatorDefault, kCFNumberIntType, &level);
|
CFNumberRef level_number = CFNumberCreate (kCFAllocatorDefault, kCFNumberIntType, &level);
|
||||||
#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
|
#if TARGET_OS_MAC && !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) && MAC_OS_X_VERSION_MIN_REQUIRED < 1060
|
||||||
extern const CFStringRef kCTTypesetterOptionForcedEmbeddingLevel;
|
extern const CFStringRef kCTTypesetterOptionForcedEmbeddingLevel;
|
||||||
#endif
|
#endif
|
||||||
CFDictionaryRef options = CFDictionaryCreate (kCFAllocatorDefault,
|
CFDictionaryRef options = CFDictionaryCreate (kCFAllocatorDefault,
|
||||||
|
|
|
@ -299,33 +299,19 @@ hb_ceil_to_4 (unsigned int v)
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T> struct hb_is_signed;
|
template <typename T> struct hb_is_signed;
|
||||||
template <> struct hb_is_signed<signed char> { enum { value = true }; };
|
/* https://github.com/harfbuzz/harfbuzz/issues/1535 */
|
||||||
template <> struct hb_is_signed<signed short> { enum { value = true }; };
|
template <> struct hb_is_signed<int8_t> { enum { value = true }; };
|
||||||
template <> struct hb_is_signed<signed int> { enum { value = true }; };
|
template <> struct hb_is_signed<int16_t> { enum { value = true }; };
|
||||||
template <> struct hb_is_signed<signed long> { enum { value = true }; };
|
template <> struct hb_is_signed<int32_t> { enum { value = true }; };
|
||||||
template <> struct hb_is_signed<unsigned char> { enum { value = false }; };
|
template <> struct hb_is_signed<int64_t> { enum { value = true }; };
|
||||||
template <> struct hb_is_signed<unsigned short> { enum { value = false }; };
|
template <> struct hb_is_signed<uint8_t> { enum { value = false }; };
|
||||||
template <> struct hb_is_signed<unsigned int> { enum { value = false }; };
|
template <> struct hb_is_signed<uint16_t> { enum { value = false }; };
|
||||||
template <> struct hb_is_signed<unsigned long> { enum { value = false }; };
|
template <> struct hb_is_signed<uint32_t> { enum { value = false }; };
|
||||||
/* We need to define hb_is_signed for the typedefs we use on pre-Visual
|
template <> struct hb_is_signed<uint64_t> { enum { value = false }; };
|
||||||
* Studio 2010 for the int8_t type, since __int8/__int64 is not considered
|
|
||||||
* the same as char/long. The previous lines will suffice for the other
|
|
||||||
* types, though. Note that somehow, unsigned __int8 is considered same
|
|
||||||
* as unsigned char.
|
|
||||||
* https://github.com/harfbuzz/harfbuzz/pull/1499
|
|
||||||
*/
|
|
||||||
#if defined(_MSC_VER) && (_MSC_VER < 1600)
|
|
||||||
template <> struct hb_is_signed<__int8> { enum { value = true }; };
|
|
||||||
#endif
|
|
||||||
|
|
||||||
template <typename T> static inline bool
|
template <typename T> static inline bool
|
||||||
hb_in_range (T u, T lo, T hi)
|
hb_in_range (T u, T lo, T hi)
|
||||||
{
|
{
|
||||||
/* The sizeof() is here to force template instantiation.
|
|
||||||
* I'm sure there are better ways to do this but can't think of
|
|
||||||
* one right now. Declaring a variable won't work as HB_UNUSED
|
|
||||||
* is unusable on some platforms and unused types are less likely
|
|
||||||
* to generate a warning than unused variables. */
|
|
||||||
static_assert (!hb_is_signed<T>::value, "");
|
static_assert (!hb_is_signed<T>::value, "");
|
||||||
|
|
||||||
/* The casts below are important as if T is smaller than int,
|
/* The casts below are important as if T is smaller than int,
|
||||||
|
|
Loading…
Reference in New Issue