Skip to content

Commit 8894243

Browse files
committed
Fix HDR issues
1 parent fb82633 commit 8894243

File tree

10 files changed

+80
-58
lines changed

10 files changed

+80
-58
lines changed

Clop.xcodeproj/project.pbxproj

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -830,7 +830,7 @@
830830
CODE_SIGN_IDENTITY = "Apple Development";
831831
CODE_SIGN_STYLE = Automatic;
832832
COMBINE_HIDPI_IMAGES = YES;
833-
CURRENT_PROJECT_VERSION = 2.10.7;
833+
CURRENT_PROJECT_VERSION = 2.11.1;
834834
DEVELOPMENT_TEAM = RDDXV84A73;
835835
ENABLE_HARDENED_RUNTIME = YES;
836836
ENABLE_USER_SCRIPT_SANDBOXING = YES;
@@ -846,7 +846,7 @@
846846
);
847847
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
848848
MACOSX_DEPLOYMENT_TARGET = 13.0;
849-
MARKETING_VERSION = 2.10.7;
849+
MARKETING_VERSION = 2.11.1;
850850
PRODUCT_BUNDLE_IDENTIFIER = com.lowtechguys.Clop.FinderOptimiser;
851851
PRODUCT_NAME = "$(TARGET_NAME)";
852852
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -865,7 +865,7 @@
865865
CODE_SIGN_IDENTITY = "Apple Development";
866866
CODE_SIGN_STYLE = Automatic;
867867
COMBINE_HIDPI_IMAGES = YES;
868-
CURRENT_PROJECT_VERSION = 2.10.7;
868+
CURRENT_PROJECT_VERSION = 2.11.1;
869869
DEVELOPMENT_TEAM = RDDXV84A73;
870870
ENABLE_HARDENED_RUNTIME = YES;
871871
ENABLE_USER_SCRIPT_SANDBOXING = YES;
@@ -881,7 +881,7 @@
881881
);
882882
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
883883
MACOSX_DEPLOYMENT_TARGET = 13.0;
884-
MARKETING_VERSION = 2.10.7;
884+
MARKETING_VERSION = 2.11.1;
885885
PRODUCT_BUNDLE_IDENTIFIER = com.lowtechguys.Clop.FinderOptimiser;
886886
PRODUCT_NAME = "$(TARGET_NAME)";
887887
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -901,7 +901,7 @@
901901
CODE_SIGN_IDENTITY = "Apple Development";
902902
CODE_SIGN_STYLE = Automatic;
903903
COMBINE_HIDPI_IMAGES = YES;
904-
CURRENT_PROJECT_VERSION = 2.10.7;
904+
CURRENT_PROJECT_VERSION = 2.11.1;
905905
DEAD_CODE_STRIPPING = YES;
906906
DEVELOPMENT_ASSET_PATHS = "\"Clop/Preview Content\"";
907907
DEVELOPMENT_TEAM = RDDXV84A73;
@@ -923,7 +923,7 @@
923923
);
924924
LLVM_LTO = YES_THIN;
925925
MACOSX_DEPLOYMENT_TARGET = 13.0;
926-
MARKETING_VERSION = 2.10.7;
926+
MARKETING_VERSION = 2.11.1;
927927
PRODUCT_BUNDLE_IDENTIFIER = com.lowtechguys.Clop;
928928
PRODUCT_NAME = "$(TARGET_NAME)";
929929
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -943,7 +943,7 @@
943943
CODE_SIGN_IDENTITY = "Apple Development";
944944
CODE_SIGN_STYLE = Automatic;
945945
COMBINE_HIDPI_IMAGES = YES;
946-
CURRENT_PROJECT_VERSION = 2.10.7;
946+
CURRENT_PROJECT_VERSION = 2.11.1;
947947
DEAD_CODE_STRIPPING = YES;
948948
DEVELOPMENT_ASSET_PATHS = "\"Clop/Preview Content\"";
949949
DEVELOPMENT_TEAM = RDDXV84A73;
@@ -965,7 +965,7 @@
965965
);
966966
LLVM_LTO = YES;
967967
MACOSX_DEPLOYMENT_TARGET = 13.0;
968-
MARKETING_VERSION = 2.10.7;
968+
MARKETING_VERSION = 2.11.1;
969969
OTHER_LDFLAGS = "";
970970
PRODUCT_BUNDLE_IDENTIFIER = com.lowtechguys.Clop;
971971
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -1156,7 +1156,7 @@
11561156
CODE_SIGN_IDENTITY = "Apple Development";
11571157
CODE_SIGN_STYLE = Automatic;
11581158
COMBINE_HIDPI_IMAGES = YES;
1159-
CURRENT_PROJECT_VERSION = 2.10.7;
1159+
CURRENT_PROJECT_VERSION = 2.11.1;
11601160
DEAD_CODE_STRIPPING = YES;
11611161
DEVELOPMENT_ASSET_PATHS = "\"Clop/Preview Content\"";
11621162
DEVELOPMENT_TEAM = RDDXV84A73;
@@ -1185,7 +1185,7 @@
11851185
);
11861186
LLVM_LTO = YES_THIN;
11871187
MACOSX_DEPLOYMENT_TARGET = 13.0;
1188-
MARKETING_VERSION = 2.10.7;
1188+
MARKETING_VERSION = 2.11.1;
11891189
PRODUCT_BUNDLE_IDENTIFIER = com.lowtechguys.Clop;
11901190
PRODUCT_NAME = "$(TARGET_NAME)";
11911191
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -1213,7 +1213,7 @@
12131213
CODE_SIGN_IDENTITY = "Apple Development";
12141214
CODE_SIGN_STYLE = Automatic;
12151215
COMBINE_HIDPI_IMAGES = YES;
1216-
CURRENT_PROJECT_VERSION = 2.10.7;
1216+
CURRENT_PROJECT_VERSION = 2.11.1;
12171217
DEAD_CODE_STRIPPING = YES;
12181218
DEVELOPMENT_ASSET_PATHS = "\"Clop/Preview Content\"";
12191219
DEVELOPMENT_TEAM = RDDXV84A73;
@@ -1241,7 +1241,7 @@
12411241
);
12421242
LLVM_LTO = YES;
12431243
MACOSX_DEPLOYMENT_TARGET = 13.0;
1244-
MARKETING_VERSION = 2.10.7;
1244+
MARKETING_VERSION = 2.11.1;
12451245
OTHER_LDFLAGS = "";
12461246
PRODUCT_BUNDLE_IDENTIFIER = com.lowtechguys.Clop;
12471247
PRODUCT_NAME = "$(TARGET_NAME)";

Clop/Automation.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ var shortcutCacheResetTask: DispatchWorkItem? {
193193

194194
func startShortcutWatcher() {
195195
guard fm.fileExists(atPath: "\(HOME)/Library/Shortcuts") else {
196+
guard hasShortcutsDB() else { return }
196197
return
197198
}
198199

Clop/ClopApp.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -280,13 +280,13 @@ class AppDelegate: AppDelegateParent {
280280
KM.primaryKeys = Defaults[.enabledKeys] + Defaults[.quickResizeKeys]
281281
KM.onPrimaryHotkey = { key in
282282
self.handleHotkey(key)
283-
let _ = checkInternalRequirements(PRODUCTS, nil)
283+
let _ = checkInternalRequirements2(PRODUCTS, nil)
284284
}
285285

286286
KM.secondaryKeyModifiers = [.lcmd]
287287
KM.onSecondaryHotkey = { key in
288288
self.handleCommandHotkey(key)
289-
let _ = checkInternalRequirements(PRODUCTS, nil)
289+
let _ = checkInternalRequirements3(PRODUCTS, nil)
290290
}
291291
}
292292
super.applicationDidFinishLaunching(_: notification)

Clop/ClopUtils.swift

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,6 @@ import Foundation
1010
import Lowtech
1111
import System
1212

13-
// MARK: - Process + Sendable
14-
15-
extension Process: @unchecked Sendable {}
16-
1713
func shellProc(_ launchPath: String = "/bin/zsh", args: [String], env: [String: String]? = nil, out: Pipe? = nil, err: Pipe? = nil) -> Process? {
1814
let outputDir = FilePath.processLogs.appending("\(launchPath) \(args)".safeFilename)
1915

@@ -233,19 +229,51 @@ extension FilePath {
233229
}
234230
}
235231

232+
func copyExifCGImage(from source: FilePath) {
233+
guard let fileType = fetchFileType()?.split(separator: ";").first?.s, let uttype = UTType(mimeType: fileType) else {
234+
return
235+
}
236+
237+
let src = CGImageSourceCreateWithURL(source.url as CFURL, nil)!
238+
let dst = CGImageDestinationCreateWithURL(url as CFURL, uttype.identifier as CFString, 1, nil)!
239+
240+
let metadata = CGImageSourceCopyPropertiesAtIndex(src, 0, nil)!
241+
242+
CGImageDestinationAddImageFromSource(dst, src, 0, metadata)
243+
CGImageDestinationFinalize(dst)
244+
245+
}
246+
247+
func hasExifHDR() -> Bool {
248+
// exiftool -q -q -if '($NumberOfImages > 1) or $HDRHeadroom or defined $XMP-hdrgm:Version' -filename file.jpg
249+
let args = [EXIFTOOL.string, "-q", "-q", "-if", "($NumberOfImages > 1) or $HDRHeadroom or defined $XMP-hdrgm:Version", "-filename", string]
250+
let exifProc = shell("/usr/bin/perl", args: args, wait: true)
251+
return exifProc.success
252+
}
253+
236254
func copyExif(from source: FilePath, excludeTags: [String]? = nil, stripMetadata: Bool = true) {
237255
guard source != self else { return }
238256

257+
if !stripMetadata, isImage {
258+
copyExifCGImage(from: source)
259+
return
260+
}
261+
239262
if stripMetadata {
240263
_ = shell("/usr/bin/perl", args: [EXIFTOOL.string, "-overwrite_original", "-all=", string], wait: true)
241264
}
265+
let hdr = isImage && source.hasExifHDR()
242266

243267
var additionalArgs: [String] = []
244268
if let excludeTags, excludeTags.isNotEmpty {
245269
additionalArgs += ["-x"] + excludeTags.map { [$0] }.joined(separator: ["-x"]).map { $0 }
246270
}
247271

248-
let tagsToKeep = (stripMetadata ? ["-XResolution", "-YResolution", "-Orientation"] + (Defaults[.preserveColorMetadata] ? ["-ColorSpaceTags", "-icc_profile"] : []) : (isVideo ? ["-All:All"] : []))
272+
let tagsToKeep = if stripMetadata {
273+
["-XResolution", "-YResolution", "-Orientation"] + (!hdr && Defaults[.preserveColorMetadata] ? ["-ColorSpaceTags", "-icc_profile"] : [])
274+
} else {
275+
isVideo ? ["-All:All"] : []
276+
}
249277
let args = [EXIFTOOL.string, "-overwrite_original", "-XResolution=72", "-YResolution=72"]
250278
+ additionalArgs
251279
+ ["-extractEmbedded", "-tagsFromFile", source.string]

Clop/Images.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -591,7 +591,7 @@ class Image: CustomStringConvertible {
591591
#if arch(arm64)
592592
let archDependentArgs = ["--auto-mode"]
593593
#else
594-
let archDependentArgs = []
594+
let archDependentArgs: [String] = []
595595
#endif
596596

597597
let jpegProc = Proc(cmd: JPEGOPTIM.string, args: [

Clop/Uploads.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import Foundation
44
import Lowtech
55
import System
66

7-
extension NSRunningApplication: @retroactive @unchecked Sendable {}
87
extension NSWorkspace.OpenConfiguration: @retroactive @unchecked Sendable {}
98

109
@MainActor

ReleaseNotes/2.11.0.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@
55
- Update `jpegoptim` and `jpegli` encoder to fix high CPU usage and improve encoding speed
66
- Update `vipsthumbnail` to improve HDR image support when resizing and cropping
77
- Photos.app clipboard integration based on Kevin Lynagh's idea: [copy-resized-from-mac-photos-app](https://github.com/lynaghk/copy-resized-from-mac-photos-app)
8+
- Copy images from Photos.app to have Clop automatically optimise them, downscale to a specific size then copy them back as optimised images
9+
- Setting can be enabled from the *Images* tab of the *Settings* window of Clop

ReleaseNotes/2.11.1.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
## Fixes
2+
3+
- Use ImageIO to copy metadata natively when **Strip EXIF Metadata** is disabled
4+
- Avoid bad tone mapping by not trying to preserve color profile on HDR photos *(unfortunately preserving HDR gain maps is not yet supported)*

Releases/appcast.xml

Lines changed: 25 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,31 @@
11
<?xml version="1.0" standalone="yes"?>
22
<rss xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" version="2.0">
33
<channel>
4+
<item>
5+
<title>2.11.1</title>
6+
<pubDate>Mon, 19 Jan 2026 16:31:23 +0200</pubDate>
7+
<link>https://lowtechguys.com/clop</link>
8+
<sparkle:fullReleaseNotesLink>https://github.com/FuzzyIdeas/Clop/releases</sparkle:fullReleaseNotesLink>
9+
<sparkle:version>2.11.1</sparkle:version>
10+
<sparkle:shortVersionString>2.11.1</sparkle:shortVersionString>
11+
<sparkle:minimumSystemVersion>13.0</sparkle:minimumSystemVersion>
12+
<sparkle:releaseNotesLink>https://files.lowtechguys.com/ReleaseNotes/Clop-2.11.1.html</sparkle:releaseNotesLink>
13+
<enclosure url="https://files.lowtechguys.com/releases/Clop-2.11.1.dmg" length="99422511" type="application/octet-stream" sparkle:edSignature="SAnv6u8Fmwgm6lgZjhokMtMsaDOUXNY/6qhWnF+wIAv7c3RVXKtGuE8vchiqZ3AQQk9uJqil0aXKJcccYDcLDQ=="/>
14+
<sparkle:deltas>
15+
<enclosure url="https://files.lowtechguys.com/releases/Clop2.11.1-2.11.0.delta" sparkle:deltaFrom="2.11.0" length="740658" type="application/octet-stream" sparkle:deltaFromSparkleExecutableSize="860560" sparkle:deltaFromSparkleLocales="de,he,ar,el,ja,fa,uk" sparkle:edSignature="yFmSjLHXrJjukLd0hrf1Yl3EB+jrZRIqtSLPaJFMLDNg4WAaoQIMQNmEEG/YSDmtvc7Rm9kCztKDEhal7lXfDw=="/>
16+
</sparkle:deltas>
17+
</item>
18+
<item>
19+
<title>2.11.0</title>
20+
<pubDate>Sat, 10 Jan 2026 19:49:19 +0200</pubDate>
21+
<link>https://lowtechguys.com/clop</link>
22+
<sparkle:fullReleaseNotesLink>https://github.com/FuzzyIdeas/Clop/releases</sparkle:fullReleaseNotesLink>
23+
<sparkle:version>2.11.0</sparkle:version>
24+
<sparkle:shortVersionString>2.11.0</sparkle:shortVersionString>
25+
<sparkle:minimumSystemVersion>13.0</sparkle:minimumSystemVersion>
26+
<sparkle:releaseNotesLink>https://files.lowtechguys.com/ReleaseNotes/Clop-2.11.0.html</sparkle:releaseNotesLink>
27+
<enclosure url="https://files.lowtechguys.com/releases/Clop-2.11.0.dmg" length="99419692" type="application/octet-stream" sparkle:edSignature="vKbUFHycsvvUStqBKZ7xg5zi2EKjdLZmDdfqoe5NC32eg5gYvZ5jB4kR+s0ZSZxF1sDmmptYdFJ0OWLyaMrSAA=="/>
28+
</item>
429
<item>
530
<title>2.10.7</title>
631
<pubDate>Thu, 06 Nov 2025 13:58:48 +0200</pubDate>
@@ -102,41 +127,5 @@
102127
<sparkle:releaseNotesLink>https://files.lowtechguys.com/ReleaseNotes/Clop-2.10.0.html</sparkle:releaseNotesLink>
103128
<enclosure url="https://files.lowtechguys.com/releases/Clop-2.10.0.dmg" length="99705957" type="application/octet-stream" sparkle:edSignature="f4R7khOS3H/kKIwXuB9wxWmT30N6T4ifpbP7CZwvVWoPKCA81TgMP4606HFtbuX2YYvVlnCdKD1uuCzB+gWAAg=="/>
104129
</item>
105-
<item>
106-
<title>2.9.3</title>
107-
<pubDate>Mon, 12 May 2025 22:11:53 +0300</pubDate>
108-
<link>https://lowtechguys.com/clop</link>
109-
<sparkle:fullReleaseNotesLink>https://github.com/FuzzyIdeas/Clop/releases</sparkle:fullReleaseNotesLink>
110-
<sparkle:version>2.9.3</sparkle:version>
111-
<sparkle:shortVersionString>2.9.3</sparkle:shortVersionString>
112-
<sparkle:minimumSystemVersion>13.0</sparkle:minimumSystemVersion>
113-
<sparkle:releaseNotesLink>https://files.lowtechguys.com/ReleaseNotes/Clop-2.9.3.html</sparkle:releaseNotesLink>
114-
<enclosure url="https://files.lowtechguys.com/releases/Clop-2.9.3.dmg" length="91538384" type="application/octet-stream" sparkle:edSignature="R11hTYHdcb4vm2o6z6fKoMgsyrxu7n+iNG9zu8ukYBD0aW1CBpfdx/9xm8kcoorj08IghH2S8Q499j6qIvukDw=="/>
115-
<sparkle:deltas>
116-
<enclosure url="https://files.lowtechguys.com/releases/Clop2.9.3-2.9.2.delta" sparkle:deltaFrom="2.9.2" length="3973762" type="application/octet-stream" sparkle:deltaFromSparkleExecutableSize="864864" sparkle:deltaFromSparkleLocales="de,he,ar,el,ja,fa,en" sparkle:edSignature="7x4vwQ7N1sspardz27buQyi25iGPVMXagSmsdGrvy7AjBp3MEwMiOdLqSD0eeOGV7K5fdq1SvDQid2j/JxUyDA=="/>
117-
<enclosure url="https://files.lowtechguys.com/releases/Clop2.9.3-2.9.1.delta" sparkle:deltaFrom="2.9.1" length="5136450" type="application/octet-stream" sparkle:deltaFromSparkleExecutableSize="864784" sparkle:deltaFromSparkleLocales="de,he,ar,el,ja,fa,en" sparkle:edSignature="GNM02nmiuqcIxvNM4MjpIhAKGMROSHpKKsXYZVQ0be//mk0UWHM0XpSwqSjxW8WRmPqX0kFT/nI0RpPA0VjPBg=="/>
118-
<enclosure url="https://files.lowtechguys.com/releases/Clop2.9.3-2.9.0.delta" sparkle:deltaFrom="2.9.0" length="5138858" type="application/octet-stream" sparkle:deltaFromSparkleExecutableSize="864784" sparkle:deltaFromSparkleLocales="de,he,ar,el,ja,fa,en" sparkle:edSignature="DzWNT2qW2Adw2/Qm2ErBnakU+1XxXsV4sDGCoNKdBLhX50yHwVwx8gQqJJ4pB54zoWHNjrD87OnjSlUSrMDaCQ=="/>
119-
<enclosure url="https://files.lowtechguys.com/releases/Clop2.9.3-2.8.7.delta" sparkle:deltaFrom="2.8.7" length="5202602" type="application/octet-stream" sparkle:deltaFromSparkleExecutableSize="864784" sparkle:deltaFromSparkleLocales="de,he,ar,el,ja,fa,en" sparkle:edSignature="Mcry87QCBuOfEdtpTRdt7aFd53JBF5AoBiLvWG1l4KYAg6/lX7GSc9EAUI5wKrv+LkPOW3IuzBAFljwHyosjBw=="/>
120-
<enclosure url="https://files.lowtechguys.com/releases/Clop2.9.3-2.8.6.delta" sparkle:deltaFrom="2.8.6" length="5232926" type="application/octet-stream" sparkle:deltaFromSparkleExecutableSize="864784" sparkle:deltaFromSparkleLocales="de,he,ar,el,ja,fa,en" sparkle:edSignature="0dClEyzEUGF0bIn42MderkkGpKQ+j1g9cBQtZs0xsynQmUHQxp++8AyjO+yVXD7996VixKYk6zgS8SZT80ztDg=="/>
121-
</sparkle:deltas>
122-
</item>
123-
<item>
124-
<title>2.9.2</title>
125-
<pubDate>Thu, 20 Mar 2025 23:20:13 +0200</pubDate>
126-
<link>https://lowtechguys.com/clop</link>
127-
<sparkle:fullReleaseNotesLink>https://github.com/FuzzyIdeas/Clop/releases</sparkle:fullReleaseNotesLink>
128-
<sparkle:version>2.9.2</sparkle:version>
129-
<sparkle:shortVersionString>2.9.2</sparkle:shortVersionString>
130-
<sparkle:minimumSystemVersion>13.0</sparkle:minimumSystemVersion>
131-
<sparkle:releaseNotesLink>https://files.lowtechguys.com/ReleaseNotes/Clop-2.9.2.html</sparkle:releaseNotesLink>
132-
<enclosure url="https://files.lowtechguys.com/releases/Clop-2.9.2.dmg" length="91326646" type="application/octet-stream" sparkle:edSignature="pzwcEJhm6tt1UT8swjzs9F1ajjAJjLeHFjW+K8bzsxbFcKFrcFogv3fLuYuUEKWgrS2whY9ISmXjAKeXKXIHAw=="/>
133-
<sparkle:deltas>
134-
<enclosure url="https://files.lowtechguys.com/releases/Clop2.9.2-2.9.1.delta" sparkle:deltaFrom="2.9.1" length="2266210" type="application/octet-stream" sparkle:deltaFromSparkleExecutableSize="864784" sparkle:deltaFromSparkleLocales="de,he,ar,el,ja,fa,en" sparkle:edSignature="n3r5gIEDDZzM9TmDkJuXkmmbMpL9lBJDZoSiewNB+6hiamSub6fwumydbZHieSI0i0l9fXLHJCAUa9eduEJ4Dw=="/>
135-
<enclosure url="https://files.lowtechguys.com/releases/Clop2.9.2-2.9.0.delta" sparkle:deltaFrom="2.9.0" length="2275686" type="application/octet-stream" sparkle:deltaFromSparkleExecutableSize="864784" sparkle:deltaFromSparkleLocales="de,he,ar,el,ja,fa,en" sparkle:edSignature="E87FagwHWvJe81aDJJ+wFSgS3J8xmYb6AlUSKiicHrY7qFbQlWbJCYgzUOH4k8ow+ChVb0betPJJVNXNotnnCA=="/>
136-
<enclosure url="https://files.lowtechguys.com/releases/Clop2.9.2-2.8.7.delta" sparkle:deltaFrom="2.8.7" length="2456062" type="application/octet-stream" sparkle:deltaFromSparkleExecutableSize="864784" sparkle:deltaFromSparkleLocales="de,he,ar,el,ja,fa,en" sparkle:edSignature="xnAW8pyphkE17jyJy3OjOR9EZI2G2B/ZcLsyx4N3xBNJn1uWgDbHmAk1DtgKLVSrPf19UXpBqo4hlItor2QGCw=="/>
137-
<enclosure url="https://files.lowtechguys.com/releases/Clop2.9.2-2.8.6.delta" sparkle:deltaFrom="2.8.6" length="2515186" type="application/octet-stream" sparkle:deltaFromSparkleExecutableSize="864784" sparkle:deltaFromSparkleLocales="de,he,ar,el,ja,fa,en" sparkle:edSignature="TCsetIBlocrpSNbqADVQFRm4IzU8eDJhsatwZZL1cp+SwlmJHEYNFcmTQJAHtvBaFpUYDF59BOctOGJwyyM5DQ=="/>
138-
<enclosure url="https://files.lowtechguys.com/releases/Clop2.9.2-2.8.5.delta" sparkle:deltaFrom="2.8.5" length="2514154" type="application/octet-stream" sparkle:deltaFromSparkleExecutableSize="864784" sparkle:deltaFromSparkleLocales="de,he,ar,el,ja,fa,en" sparkle:edSignature="j8ch7ebtZXsZ7o0l/gOXveOzezxO/cG8qRySf+2FjJtjPy3Y5CnmqN3W1zSwBQ4JU7hTB1QU2A+Ma7Z535NwAg=="/>
139-
</sparkle:deltas>
140-
</item>
141130
</channel>
142131
</rss>

Shared.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,6 @@ extension URL {
399399
}
400400
}
401401

402-
import Defaults
403402
import PDFKit
404403

405404
extension Double {

0 commit comments

Comments
 (0)