Skip to content
This repository has been archived by the owner on Sep 6, 2018. It is now read-only.

Commit

Permalink
Merge pull request #77 from chipp/master
Browse files Browse the repository at this point in the history
Fonts: fix code which checks if a font is already registered
  • Loading branch information
AliSoftware authored Aug 22, 2017
2 parents b00073d + c32fb38 commit 4f09ab8
Show file tree
Hide file tree
Showing 13 changed files with 116 additions and 96 deletions.
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,26 @@

---

## Master

### Bug Fixes

* Fonts: fix code which checks if a font is already registered.
[Vladimir Burdukov](https://github.com/chipp)
[#77](https://github.com/SwiftGen/templates/pull/77)

### Breaking Changes

_None_

### New Features

_None_

### Internal Changes

_None_

## 2.1.1

### Bug Fixes
Expand Down
16 changes: 8 additions & 8 deletions Tests/Expected/Fonts/swift2-context-defaults-customname.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,25 @@ struct FontConvertible {
}

func register() {
let bundle = NSBundle(forClass: BundleToken.self)

guard let url = bundle.URLForResource(path, withExtension: nil) else {
return
}

guard let url = url else { return }
var errorRef: Unmanaged<CFError>?
CTFontManagerRegisterFontsForURL(url as CFURL, .Process, &errorRef)
}

fileprivate var url: NSURL? {
let bundle = NSBundle(forClass: BundleToken.self)
return bundle.URLForResource(path, withExtension: nil)
}
}

extension Font {
convenience init!(font: FontConvertible, size: CGFloat) {
#if os(iOS) || os(tvOS) || os(watchOS)
if UIFont.fontNamesForFamilyName(font.family).isEmpty {
if !UIFont.fontNamesForFamilyName(font.family).contains(font.name) {
font.register()
}
#elseif os(OSX)
if NSFontManager.sharedFontManager().availableMembersOfFontFamily(font.family) == nil {
if let url = font.url, CTFontManagerGetScopeForURL(url as CFURL) == .None {
font.register()
}
#endif
Expand Down
16 changes: 8 additions & 8 deletions Tests/Expected/Fonts/swift2-context-defaults-preservepath.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,25 @@ struct FontConvertible {
}

func register() {
let bundle = NSBundle(forClass: BundleToken.self)

guard let url = bundle.URLForResource(path, withExtension: nil) else {
return
}

guard let url = url else { return }
var errorRef: Unmanaged<CFError>?
CTFontManagerRegisterFontsForURL(url as CFURL, .Process, &errorRef)
}

fileprivate var url: NSURL? {
let bundle = NSBundle(forClass: BundleToken.self)
return bundle.URLForResource(path, withExtension: nil)
}
}

extension Font {
convenience init!(font: FontConvertible, size: CGFloat) {
#if os(iOS) || os(tvOS) || os(watchOS)
if UIFont.fontNamesForFamilyName(font.family).isEmpty {
if !UIFont.fontNamesForFamilyName(font.family).contains(font.name) {
font.register()
}
#elseif os(OSX)
if NSFontManager.sharedFontManager().availableMembersOfFontFamily(font.family) == nil {
if let url = font.url, CTFontManagerGetScopeForURL(url as CFURL) == .None {
font.register()
}
#endif
Expand Down
16 changes: 8 additions & 8 deletions Tests/Expected/Fonts/swift2-context-defaults.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,25 @@ struct FontConvertible {
}

func register() {
let bundle = NSBundle(forClass: BundleToken.self)

guard let url = bundle.URLForResource(path, withExtension: nil) else {
return
}

guard let url = url else { return }
var errorRef: Unmanaged<CFError>?
CTFontManagerRegisterFontsForURL(url as CFURL, .Process, &errorRef)
}

fileprivate var url: NSURL? {
let bundle = NSBundle(forClass: BundleToken.self)
return bundle.URLForResource(path, withExtension: nil)
}
}

extension Font {
convenience init!(font: FontConvertible, size: CGFloat) {
#if os(iOS) || os(tvOS) || os(watchOS)
if UIFont.fontNamesForFamilyName(font.family).isEmpty {
if !UIFont.fontNamesForFamilyName(font.family).contains(font.name) {
font.register()
}
#elseif os(OSX)
if NSFontManager.sharedFontManager().availableMembersOfFontFamily(font.family) == nil {
if let url = font.url, CTFontManagerGetScopeForURL(url as CFURL) == .None {
font.register()
}
#endif
Expand Down
16 changes: 8 additions & 8 deletions Tests/Expected/Fonts/swift3-context-defaults-customname.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,25 @@ struct FontConvertible {
}

func register() {
let bundle = Bundle(for: BundleToken.self)

guard let url = bundle.url(forResource: path, withExtension: nil) else {
return
}

guard let url = url else { return }
var errorRef: Unmanaged<CFError>?
CTFontManagerRegisterFontsForURL(url as CFURL, .process, &errorRef)
}

fileprivate var url: URL? {
let bundle = Bundle(for: BundleToken.self)
return bundle.url(forResource: path, withExtension: nil)
}
}

extension Font {
convenience init!(font: FontConvertible, size: CGFloat) {
#if os(iOS) || os(tvOS) || os(watchOS)
if UIFont.fontNames(forFamilyName: font.family).isEmpty {
if !UIFont.fontNames(forFamilyName: font.family).contains(font.name) {
font.register()
}
#elseif os(OSX)
if NSFontManager.shared().availableMembers(ofFontFamily: font.family) == nil {
if let url = font.url, CTFontManagerGetScopeForURL(url as CFURL) == .none {
font.register()
}
#endif
Expand Down
16 changes: 8 additions & 8 deletions Tests/Expected/Fonts/swift3-context-defaults-preservepath.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,25 @@ struct FontConvertible {
}

func register() {
let bundle = Bundle(for: BundleToken.self)

guard let url = bundle.url(forResource: path, withExtension: nil) else {
return
}

guard let url = url else { return }
var errorRef: Unmanaged<CFError>?
CTFontManagerRegisterFontsForURL(url as CFURL, .process, &errorRef)
}

fileprivate var url: URL? {
let bundle = Bundle(for: BundleToken.self)
return bundle.url(forResource: path, withExtension: nil)
}
}

extension Font {
convenience init!(font: FontConvertible, size: CGFloat) {
#if os(iOS) || os(tvOS) || os(watchOS)
if UIFont.fontNames(forFamilyName: font.family).isEmpty {
if !UIFont.fontNames(forFamilyName: font.family).contains(font.name) {
font.register()
}
#elseif os(OSX)
if NSFontManager.shared().availableMembers(ofFontFamily: font.family) == nil {
if let url = font.url, CTFontManagerGetScopeForURL(url as CFURL) == .none {
font.register()
}
#endif
Expand Down
16 changes: 8 additions & 8 deletions Tests/Expected/Fonts/swift3-context-defaults.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,25 @@ struct FontConvertible {
}

func register() {
let bundle = Bundle(for: BundleToken.self)

guard let url = bundle.url(forResource: path, withExtension: nil) else {
return
}

guard let url = url else { return }
var errorRef: Unmanaged<CFError>?
CTFontManagerRegisterFontsForURL(url as CFURL, .process, &errorRef)
}

fileprivate var url: URL? {
let bundle = Bundle(for: BundleToken.self)
return bundle.url(forResource: path, withExtension: nil)
}
}

extension Font {
convenience init!(font: FontConvertible, size: CGFloat) {
#if os(iOS) || os(tvOS) || os(watchOS)
if UIFont.fontNames(forFamilyName: font.family).isEmpty {
if !UIFont.fontNames(forFamilyName: font.family).contains(font.name) {
font.register()
}
#elseif os(OSX)
if NSFontManager.shared().availableMembers(ofFontFamily: font.family) == nil {
if let url = font.url, CTFontManagerGetScopeForURL(url as CFURL) == .none {
font.register()
}
#endif
Expand Down
16 changes: 8 additions & 8 deletions Tests/Expected/Fonts/swift4-context-defaults-customname.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,25 @@ struct FontConvertible {
}

func register() {
let bundle = Bundle(for: BundleToken.self)

guard let url = bundle.url(forResource: path, withExtension: nil) else {
return
}

guard let url = url else { return }
var errorRef: Unmanaged<CFError>?
CTFontManagerRegisterFontsForURL(url as CFURL, .process, &errorRef)
}

fileprivate var url: URL? {
let bundle = Bundle(for: BundleToken.self)
return bundle.url(forResource: path, withExtension: nil)
}
}

extension Font {
convenience init!(font: FontConvertible, size: CGFloat) {
#if os(iOS) || os(tvOS) || os(watchOS)
if UIFont.fontNames(forFamilyName: font.family).isEmpty {
if !UIFont.fontNames(forFamilyName: font.family).contains(font.name) {
font.register()
}
#elseif os(OSX)
if NSFontManager.shared.availableMembers(ofFontFamily: font.family) == nil {
if let url = font.url, CTFontManagerGetScopeForURL(url as CFURL) == .none {
font.register()
}
#endif
Expand Down
16 changes: 8 additions & 8 deletions Tests/Expected/Fonts/swift4-context-defaults-preservepath.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,25 @@ struct FontConvertible {
}

func register() {
let bundle = Bundle(for: BundleToken.self)

guard let url = bundle.url(forResource: path, withExtension: nil) else {
return
}

guard let url = url else { return }
var errorRef: Unmanaged<CFError>?
CTFontManagerRegisterFontsForURL(url as CFURL, .process, &errorRef)
}

fileprivate var url: URL? {
let bundle = Bundle(for: BundleToken.self)
return bundle.url(forResource: path, withExtension: nil)
}
}

extension Font {
convenience init!(font: FontConvertible, size: CGFloat) {
#if os(iOS) || os(tvOS) || os(watchOS)
if UIFont.fontNames(forFamilyName: font.family).isEmpty {
if !UIFont.fontNames(forFamilyName: font.family).contains(font.name) {
font.register()
}
#elseif os(OSX)
if NSFontManager.shared.availableMembers(ofFontFamily: font.family) == nil {
if let url = font.url, CTFontManagerGetScopeForURL(url as CFURL) == .none {
font.register()
}
#endif
Expand Down
16 changes: 8 additions & 8 deletions Tests/Expected/Fonts/swift4-context-defaults.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,25 @@ struct FontConvertible {
}

func register() {
let bundle = Bundle(for: BundleToken.self)

guard let url = bundle.url(forResource: path, withExtension: nil) else {
return
}

guard let url = url else { return }
var errorRef: Unmanaged<CFError>?
CTFontManagerRegisterFontsForURL(url as CFURL, .process, &errorRef)
}

fileprivate var url: URL? {
let bundle = Bundle(for: BundleToken.self)
return bundle.url(forResource: path, withExtension: nil)
}
}

extension Font {
convenience init!(font: FontConvertible, size: CGFloat) {
#if os(iOS) || os(tvOS) || os(watchOS)
if UIFont.fontNames(forFamilyName: font.family).isEmpty {
if !UIFont.fontNames(forFamilyName: font.family).contains(font.name) {
font.register()
}
#elseif os(OSX)
if NSFontManager.shared.availableMembers(ofFontFamily: font.family) == nil {
if let url = font.url, CTFontManagerGetScopeForURL(url as CFURL) == .none {
font.register()
}
#endif
Expand Down
16 changes: 8 additions & 8 deletions templates/fonts/swift2.stencil
Original file line number Diff line number Diff line change
Expand Up @@ -21,25 +21,25 @@ struct FontConvertible {
}

func register() {
let bundle = NSBundle(forClass: BundleToken.self)

guard let url = bundle.URLForResource(path, withExtension: nil) else {
return
}

guard let url = url else { return }
var errorRef: Unmanaged<CFError>?
CTFontManagerRegisterFontsForURL(url as CFURL, .Process, &errorRef)
}

fileprivate var url: NSURL? {
let bundle = NSBundle(forClass: BundleToken.self)
return bundle.URLForResource(path, withExtension: nil)
}
}

extension Font {
convenience init!(font: FontConvertible, size: CGFloat) {
#if os(iOS) || os(tvOS) || os(watchOS)
if UIFont.fontNamesForFamilyName(font.family).isEmpty {
if !UIFont.fontNamesForFamilyName(font.family).contains(font.name) {
font.register()
}
#elseif os(OSX)
if NSFontManager.sharedFontManager().availableMembersOfFontFamily(font.family) == nil {
if let url = font.url, CTFontManagerGetScopeForURL(url as CFURL) == .None {
font.register()
}
#endif
Expand Down
Loading

0 comments on commit 4f09ab8

Please sign in to comment.