Skip to content

Commit

Permalink
Interim build with initial support for encoding detection and save.
Browse files Browse the repository at this point in the history
  • Loading branch information
RobertoMachorro committed Jan 22, 2020
1 parent 5280c17 commit e8471fb
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 4 deletions.
4 changes: 2 additions & 2 deletions Moped.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -344,7 +344,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MARKETING_VERSION = 1.5.1;
MARKETING_VERSION = 1.5.2;
PRODUCT_BUNDLE_IDENTIFIER = net.machorro.roberto.Moped;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
Expand All @@ -368,7 +368,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MARKETING_VERSION = 1.5.1;
MARKETING_VERSION = 1.5.2;
PRODUCT_BUNDLE_IDENTIFIER = net.machorro.roberto.Moped;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
Expand Down
26 changes: 24 additions & 2 deletions Moped/TextFileModel.swift
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,13 @@ class TextFileModel: NSObject {
@objc dynamic var content: String
@objc dynamic var docTypeName: String
@objc dynamic var docTypeLanguage: String
var encoding: String.Encoding

public init(content: String, typeName: String, typeLanguage: String) {
self.content = content
self.docTypeName = typeName
self.docTypeLanguage = typeLanguage
self.encoding = .utf8
}

}
Expand All @@ -39,13 +41,33 @@ extension TextFileModel {
func read(from data: Data, ofType typeName: String) {
docTypeName = typeName
docTypeLanguage = getLanguageForType(typeName: docTypeName)
content = String(data: data, encoding: .utf8) ?? "** UNRECOGNIZED FILE **"
/*
var convertedString: NSString?
let encodingRaw = NSString.stringEncoding(for: data, encodingOptions: nil, convertedString: &convertedString, usedLossyConversion: nil)
if let text = String(data: data, encoding: .init(rawValue: encodingRaw)) {
content = text
} else {
content = "** UNRECOGNIZED FILE **"
}
*/
if let text = String(data: data, encoding: .utf8) {
content = text
encoding = .utf8
} else if let text = String(data: data, encoding: .macOSRoman) {
content = text
encoding = .macOSRoman
} else if let text = String(data: data, encoding: .ascii) {
content = text
encoding = .ascii
} else {
content = "** UNRECOGNIZED FILE **"
}
}

func data(ofType typeName: String) -> Data? {
docTypeName = typeName
docTypeLanguage = getLanguageForType(typeName: docTypeName)
return content.data(using: .utf8)
return content.data(using: encoding)
}

}
Expand Down

0 comments on commit e8471fb

Please sign in to comment.