diff --git a/Extension/Extension.swift b/Extension/Extension.swift index d8bec1c..9c83c25 100644 --- a/Extension/Extension.swift +++ b/Extension/Extension.swift @@ -303,14 +303,17 @@ extension Extension { completionHandler: @escaping (URL?, NSFileProviderItem?, NSRange?, Error?) -> Void) -> Progress { let param: DomainService.DownloadItemParameter + let biggerRange = range.map { + NSRange(location: $0.location, length: 2 * $0.length) + } if let version = requestedVersion { param = DomainService.DownloadItemParameter(itemIdentifier: DomainService.ItemIdentifier(itemIdentifier), requestedRevision: DomainService.Version(version), - range: range) + range: biggerRange) } else { param = DomainService.DownloadItemParameter(itemIdentifier: DomainService.ItemIdentifier(itemIdentifier), requestedRevision: nil, - range: range) + range: biggerRange) } return connection.makeJSONCallWithReturn(param) { result in @@ -320,10 +323,12 @@ extension Extension { case .success((let response, let data)): do { let dataURL = self.makeTemporaryURL("fetchedContents") - let returnedLength = NSRange(location: 0, length: data.count) + let _ = NSRange(location: 0, length: data.count) try data.write(to: dataURL) - completionHandler(dataURL, Item(response.item), returnedLength, nil) + completionHandler(dataURL, Item(response.item), range, nil) + // Below works just fine granted biggerRange is aligned. + // completionHandler(dataURL, Item(response.item), biggerRange, nil) } catch let error { completionHandler(nil, nil, nil, error.toPresentableError()) }