Skip to content

Commit d311aae

Browse files
authored
Merge pull request #1332 from ychin/sparkle-2
Upgrade to Sparkle 2
2 parents 88dc6f7 + a48a6e5 commit d311aae

File tree

406 files changed

+13911
-4905
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

406 files changed

+13911
-4905
lines changed

.github/workflows/ci-macvim.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,20 @@ jobs:
7474
- name: Set up legacy build
7575
if: matrix.legacy
7676
run: |
77+
# Set the correct build env vars to target the correct architectures and min OS targets.
7778
echo "MACOSX_DEPLOYMENT_TARGET=$MACOSX_DEPLOYMENT_TARGET_LEGACY" >> $GITHUB_ENV
7879
echo "MACVIM_ARCHS=$MACVIM_ARCHS_LEGACY" >> $GITHUB_ENV
7980
81+
- name: Set up Sparkle 1
82+
if: matrix.legacy || !matrix.publish
83+
run: |
84+
# Use Sparkle 1 because Sparkle 2 requires newer OS version than our legacy build.
85+
# Later, we pass the --enable-sparkle_1 flag to configure to set the corresponding ifdef.
86+
#
87+
# We also do this for non-publish builds, because those are usually run on older versions
88+
# of Xcode, and they cannot handle the Sparkle 2 framework as it's built using newer Xcode.
89+
ln -fhs Sparkle_1.framework src/MacVim/Sparkle.framework
90+
8091
# Set up, install, and cache gettext library for localization.
8192
#
8293
# Instead of using the default binary installed by Homebrew, need to build our own because gettext is statically
@@ -161,6 +172,12 @@ jobs:
161172
else
162173
CONFOPT+=(
163174
--with-macarchs=x86_64
175+
--disable-sparkle # Disable Sparkle for testing that this flag builds and works
176+
)
177+
fi
178+
if ${{ matrix.legacy == true }}; then
179+
CONFOPT+=(
180+
--enable-sparkle_1
164181
)
165182
fi
166183
echo "CONFOPT: ${CONFOPT[@]}"

runtime/doc/gui_mac.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,7 @@ KEY VALUE ~
305305
*MMUseMouseTime* use mousetime to detect multiple clicks [bool]
306306
*MMVerticalSplit* files open in vertical splits [bool]
307307
*MMZoomBoth* zoom button maximizes both directions [bool]
308+
*MMUpdaterPrereleaseChannel* opt-in to pre-release software update [bool]
308309

309310
As an example, if you have more than one mouse button and would wish to free
310311
up Ctrl-click so you can bind it to something else, then the appropriate

runtime/doc/tags

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5454,6 +5454,7 @@ MMTextInsetTop gui_mac.txt /*MMTextInsetTop*
54545454
MMTexturedWindow gui_mac.txt /*MMTexturedWindow*
54555455
MMTitlebarAppearsTransparent gui_mac.txt /*MMTitlebarAppearsTransparent*
54565456
MMTranslateCtrlClick gui_mac.txt /*MMTranslateCtrlClick*
5457+
MMUpdaterPrereleaseChannel gui_mac.txt /*MMUpdaterPrereleaseChannel*
54575458
MMUseMouseTime gui_mac.txt /*MMUseMouseTime*
54585459
MMVerticalSplit gui_mac.txt /*MMVerticalSplit*
54595460
MMZoomBoth gui_mac.txt /*MMZoomBoth*

src/MacVim/Base.lproj/Preferences.xib

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
<outlet property="generalPreferences" destination="115" id="143"/>
1616
<outlet property="inputPreferences" destination="Bnq-Nx-GJH" id="FES-rQ-Fpa"/>
1717
<outlet property="layoutPopUpButton" destination="427" id="596"/>
18+
<outlet property="sparklePrereleaseButton" destination="4Y5-mA-blQ" id="baN-Dn-dgO"/>
19+
<outlet property="sparklePrereleaseDesc" destination="ere-oJ-WLd" id="fTe-GS-5qR"/>
1820
<outlet property="sparkleUpdaterPane" destination="0hT-y8-Hge" id="e0L-sv-OCW"/>
1921
</connections>
2022
</customObject>
@@ -538,11 +540,22 @@
538540
<point key="canvasLocation" x="137.5" y="692"/>
539541
</customView>
540542
<customView id="620" userLabel="Advanced">
541-
<rect key="frame" x="0.0" y="0.0" width="483" height="264"/>
543+
<rect key="frame" x="0.0" y="0.0" width="483" height="367"/>
542544
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
543545
<subviews>
546+
<button id="4Y5-mA-blQ" userLabel="Pre-release channel">
547+
<rect key="frame" x="19" y="97" width="249" height="18"/>
548+
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
549+
<buttonCell key="cell" type="check" title="Enable pre-release software updates" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="rTs-jS-K8M">
550+
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
551+
<font key="font" metaFont="system"/>
552+
</buttonCell>
553+
<connections>
554+
<binding destination="58" name="value" keyPath="values.MMUpdaterPrereleaseChannel" id="Kb1-yL-bmN"/>
555+
</connections>
556+
</button>
544557
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" id="826">
545-
<rect key="frame" x="17" y="116" width="449" height="56"/>
558+
<rect key="frame" x="18" y="218" width="449" height="56"/>
546559
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
547560
<textFieldCell key="cell" controlSize="small" sendsActionOnEndEditing="YES" id="993">
548561
<font key="font" metaFont="smallSystem"/>
@@ -552,7 +565,7 @@
552565
</textFieldCell>
553566
</textField>
554567
<button id="817">
555-
<rect key="frame" x="18" y="174" width="133" height="18"/>
568+
<rect key="frame" x="19" y="276" width="133" height="18"/>
556569
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
557570
<buttonCell key="cell" type="check" title="Enable Quickstart" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="992">
558571
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
@@ -564,7 +577,7 @@
564577
</connections>
565578
</button>
566579
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" id="815">
567-
<rect key="frame" x="17" y="198" width="449" height="28"/>
580+
<rect key="frame" x="18" y="300" width="449" height="28"/>
568581
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
569582
<textFieldCell key="cell" controlSize="small" sendsActionOnEndEditing="YES" title="(Deprecated) Deselect this option to use the legacy renderer, which is unsupported and will be removed in a future version." id="991">
570583
<font key="font" metaFont="smallSystem"/>
@@ -573,7 +586,7 @@
573586
</textFieldCell>
574587
</textField>
575588
<button id="782">
576-
<rect key="frame" x="18" y="228" width="174" height="18"/>
589+
<rect key="frame" x="19" y="330" width="174" height="18"/>
577590
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
578591
<buttonCell key="cell" type="check" title="Use Core Text renderer" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="990">
579592
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
@@ -585,7 +598,7 @@
585598
</connections>
586599
</button>
587600
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" id="1001">
588-
<rect key="frame" x="17" y="20" width="444" height="70"/>
601+
<rect key="frame" x="18" y="122" width="444" height="70"/>
589602
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
590603
<textFieldCell key="cell" controlSize="small" sendsActionOnEndEditing="YES" id="1004">
591604
<font key="font" metaFont="smallSystem"/>
@@ -595,7 +608,7 @@
595608
</textFieldCell>
596609
</textField>
597610
<button id="1013">
598-
<rect key="frame" x="18" y="92" width="174" height="18"/>
611+
<rect key="frame" x="19" y="194" width="174" height="18"/>
599612
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
600613
<buttonCell key="cell" type="check" title="Draw marked text inline" bezelStyle="regularSquare" imagePosition="left" alignment="left" inset="2" id="1014">
601614
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
@@ -605,8 +618,18 @@
605618
<binding destination="58" name="value" keyPath="values.MMUseInlineIm" id="1016"/>
606619
</connections>
607620
</button>
621+
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" id="ere-oJ-WLd">
622+
<rect key="frame" x="19" y="20" width="449" height="70"/>
623+
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
624+
<textFieldCell key="cell" controlSize="small" sendsActionOnEndEditing="YES" id="Gdp-Ib-RGS">
625+
<font key="font" metaFont="smallSystem"/>
626+
<string key="title">Opt-in to the pre-release software update channel. Sofware updater will now also download early pre-release builds that will get new features faster, but will be less tested and occasionally have stability issues or incomplete features. Use this if you want to try out new features and help provide feedbacks early on, but don't use this if you need to rely on MacVim.</string>
627+
<color key="textColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
628+
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
629+
</textFieldCell>
630+
</textField>
608631
</subviews>
609-
<point key="canvasLocation" x="144" y="911"/>
632+
<point key="canvasLocation" x="143.5" y="962.5"/>
610633
</customView>
611634
</objects>
612635
</document>

src/MacVim/MMAppController.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,12 @@
1616
@class MMVimController;
1717

1818
#if !DISABLE_SPARKLE
19+
#if USE_SPARKLE_1
1920
@class SUUpdater;
21+
#else
22+
@class SPUStandardUpdaterController;
23+
@class MMSparkle2Delegate;
24+
#endif
2025
#endif
2126

2227

@@ -46,7 +51,12 @@
4651
int processingFlag;
4752

4853
#if !DISABLE_SPARKLE
54+
#if USE_SPARKLE_1
4955
SUUpdater *updater;
56+
#else
57+
SPUStandardUpdaterController *updater;
58+
MMSparkle2Delegate *sparkle2delegate; ///< Sparkle 2 delegate which allows us to customize the updater's behavior.
59+
#endif
5060
#endif
5161

5262
FSEventStreamRef fsEventStream;

src/MacVim/MMAppController.m

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,16 @@
4444
#import "MMWindowController.h"
4545
#import "MMTextView.h"
4646
#import "Miscellaneous.h"
47-
#import "Sparkle.framework/Headers/Sparkle.h"
4847
#import <unistd.h>
4948
#import <CoreServices/CoreServices.h>
5049
// Need Carbon for TIS...() functions
5150
#import <Carbon/Carbon.h>
5251

52+
#if !DISABLE_SPARKLE
53+
#import "MMSparkle2Delegate.h"
54+
#import "Sparkle.framework/Headers/Sparkle.h"
55+
#endif
56+
5357

5458
#define MM_HANDLE_XCODE_MOD_EVENT 0
5559

@@ -257,6 +261,7 @@ + (void)initialize
257261
[NSNumber numberWithBool:NO], MMSmoothResizeKey,
258262
[NSNumber numberWithBool:NO], MMCmdLineAlignBottomKey,
259263
[NSNumber numberWithBool:YES], MMAllowForceClickLookUpKey,
264+
[NSNumber numberWithBool:NO], MMUpdaterPrereleaseChannelKey,
260265
nil];
261266

262267
[[NSUserDefaults standardUserDefaults] registerDefaults:dict];
@@ -312,7 +317,12 @@ - (id)init
312317
#if !DISABLE_SPARKLE
313318
// Sparkle is enabled (this is the default). Initialize it. It will
314319
// automatically check for update.
320+
#if USE_SPARKLE_1
315321
updater = [[SUUpdater alloc] init];
322+
#else
323+
sparkle2delegate = [[MMSparkle2Delegate alloc] init];
324+
updater = [[SPUStandardUpdaterController alloc] initWithUpdaterDelegate:sparkle2delegate userDriverDelegate:sparkle2delegate];
325+
#endif
316326
#endif
317327

318328
return self;
@@ -334,6 +344,9 @@ - (void)dealloc
334344
[appMenuItemTemplate release]; appMenuItemTemplate = nil;
335345
#if !DISABLE_SPARKLE
336346
[updater release]; updater = nil;
347+
#if !USE_SPARKLE_1
348+
[sparkle2delegate release]; sparkle2delegate = nil;
349+
#endif
337350
#endif
338351

339352
[super dealloc];

src/MacVim/MMPreferenceController.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@
2424

2525
// Input pane
2626
IBOutlet NSButton *allowForceClickLookUpButton;
27+
28+
// Advanced pane
29+
IBOutlet NSView *sparklePrereleaseButton;
30+
IBOutlet NSView *sparklePrereleaseDesc;
2731
}
2832

2933
// General pane

src/MacVim/MMPreferenceController.m

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,35 @@ @implementation MMPreferenceController
1717
- (void)windowDidLoad
1818
{
1919
#if DISABLE_SPARKLE
20-
// If Sparkle is disabled in config, we don't want to show the preference pane
21-
// which could be confusing as it won't do anything.
22-
// After hiding the Sparkle subview, shorten the height of the General pane
23-
// and move its other subviews down.
24-
[sparkleUpdaterPane setHidden:YES];
25-
CGFloat sparkleHeight = NSHeight(sparkleUpdaterPane.frame);
26-
NSRect frame = generalPreferences.frame;
27-
frame.size.height -= sparkleHeight;
28-
generalPreferences.frame = frame;
20+
{
21+
// If Sparkle is disabled in config, we don't want to show the preference pane
22+
// which could be confusing as it won't do anything.
23+
// After hiding the Sparkle subview, shorten the height of the General pane
24+
// and move its other subviews down.
25+
[sparkleUpdaterPane setHidden:YES];
26+
CGFloat sparkleHeight = NSHeight(sparkleUpdaterPane.frame);
27+
NSRect frame = generalPreferences.frame;
28+
frame.size.height -= sparkleHeight;
29+
generalPreferences.frame = frame;
30+
}
31+
#endif
32+
33+
#if DISABLE_SPARKLE || USE_SPARKLE_1
34+
{
35+
// Also hide the pre-release update channel pane, if we disabled Sparkle, or
36+
// we are using Sparkle 1 still (since it doesn't support this feature).
37+
[sparklePrereleaseButton setHidden:YES];
38+
CGFloat sparkleHeight = NSHeight(sparklePrereleaseButton.frame);
39+
NSRect frame = advancedPreferences.frame;
40+
frame.size.height -= sparkleHeight;
41+
advancedPreferences.frame = frame;
42+
43+
[sparklePrereleaseDesc setHidden:YES];
44+
sparkleHeight = NSHeight(sparklePrereleaseDesc.frame);
45+
frame = advancedPreferences.frame;
46+
frame.size.height -= sparkleHeight;
47+
advancedPreferences.frame = frame;
48+
}
2949
#endif
3050
[super windowDidLoad];
3151

src/MacVim/MMSparkle2Delegate.h

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
//
2+
// MMSparkle2Delegate.h
3+
//
4+
// Delegate class to interface with Sparkle 2
5+
//
6+
7+
#if !DISABLE_SPARKLE && !USE_SPARKLE_1
8+
9+
#import "Sparkle.framework/Headers/Sparkle.h"
10+
11+
@interface MMSparkle2Delegate : NSObject <SPUUpdaterDelegate, SPUStandardUserDriverDelegate>;
12+
13+
// SPUUpdaterDelegate
14+
- (nonnull NSSet<NSString *> *)allowedChannelsForUpdater:(nonnull SPUUpdater *)updater;
15+
16+
// SPUStandardUserDriverDelegate
17+
// No need to implement anything for now. Default behaviors work fine.
18+
19+
@end
20+
21+
#endif

src/MacVim/MMSparkle2Delegate.m

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
//
2+
// MMSparkle2Delegate.m
3+
//
4+
// This file contains code to interface with Sparkle 2 and customize it.
5+
//
6+
7+
#if !DISABLE_SPARKLE && !USE_SPARKLE_1
8+
9+
#import "MMSparkle2Delegate.h"
10+
11+
#import "Miscellaneous.h"
12+
13+
#import <Foundation/Foundation.h>
14+
15+
@implementation MMSparkle2Delegate;
16+
17+
/// If the user has opted in, return the pre-release channel to Sparkle so pre-
18+
/// release builds will be available for update as well.
19+
- (nonnull NSSet<NSString *> *)allowedChannelsForUpdater:(nonnull SPUUpdater *)updater
20+
{
21+
if ([[NSUserDefaults standardUserDefaults] boolForKey:MMUpdaterPrereleaseChannelKey]) {
22+
return [NSSet<NSString *> setWithObject:@"prerelease"];
23+
}
24+
return [NSSet<NSString *> set];
25+
}
26+
27+
@end;
28+
29+
#endif

src/MacVim/MacVim.xcodeproj/project.pbxproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
907FF7512521BCE200BADACB /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 907FF74F2521BCE200BADACB /* MainMenu.xib */; };
7373
907FF7542521BDA600BADACB /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = 907FF7522521BDA600BADACB /* Preferences.xib */; };
7474
907FF7572521BDC300BADACB /* FindAndReplace.xib in Resources */ = {isa = PBXBuildFile; fileRef = 907FF7552521BDC200BADACB /* FindAndReplace.xib */; };
75+
90A33BEA28D563DF003A2E2F /* MMSparkle2Delegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 90A33BE928D563DF003A2E2F /* MMSparkle2Delegate.m */; };
7576
/* End PBXBuildFile section */
7677

7778
/* Begin PBXContainerItemProxy section */
@@ -414,6 +415,8 @@
414415
90922ABC221D42F700F1E1F4 /* MMBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MMBackend.h; sourceTree = "<group>"; };
415416
90922ABD221D42F700F1E1F4 /* gui_macvim.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = gui_macvim.m; sourceTree = "<group>"; };
416417
90922ABE221D42F700F1E1F4 /* MMBackend.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MMBackend.m; sourceTree = "<group>"; };
418+
90A33BE928D563DF003A2E2F /* MMSparkle2Delegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MMSparkle2Delegate.m; sourceTree = "<group>"; };
419+
90A33BEC28D56423003A2E2F /* MMSparkle2Delegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MMSparkle2Delegate.h; sourceTree = "<group>"; };
417420
90F84F1E2521F2270000268B /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/MainMenu.strings; sourceTree = "<group>"; };
418421
90F84F232521F6480000268B /* ca */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ca; path = ca.lproj/MainMenu.strings; sourceTree = "<group>"; };
419422
90F84F242521F6590000268B /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/MainMenu.strings; sourceTree = "<group>"; };
@@ -502,6 +505,8 @@
502505
1D1474960C56703C0038FA2B /* MacVim.m */,
503506
32CA4F630368D1EE00C91783 /* MacVim_Prefix.pch */,
504507
29B97316FDCFA39411CA2CEA /* main.m */,
508+
90A33BE928D563DF003A2E2F /* MMSparkle2Delegate.m */,
509+
90A33BEC28D56423003A2E2F /* MMSparkle2Delegate.h */,
505510
);
506511
name = "MacVim Source";
507512
sourceTree = "<group>";
@@ -1089,6 +1094,7 @@
10891094
1D1474B60C56796D0038FA2B /* MMVimController.m in Sources */,
10901095
1D1474BC0C567A910038FA2B /* MMWindowController.m in Sources */,
10911096
1D09AB420C6A4D520045497E /* MMTypesetter.m in Sources */,
1097+
90A33BEA28D563DF003A2E2F /* MMSparkle2Delegate.m in Sources */,
10921098
1DD66ECE0C803D3600EBDAB3 /* MMApplication.m in Sources */,
10931099
1D80FBD40CBBD3B700102A1C /* MMFullScreenWindow.m in Sources */,
10941100
1D80FBD60CBBD3B700102A1C /* MMVimView.m in Sources */,

src/MacVim/Miscellaneous.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ extern NSString *MMNonNativeFullScreenSafeAreaBehaviorKey;
6262
extern NSString *MMSmoothResizeKey;
6363
extern NSString *MMCmdLineAlignBottomKey;
6464
extern NSString *MMAllowForceClickLookUpKey;
65+
extern NSString *MMUpdaterPrereleaseChannelKey;
6566

6667

6768
// Enum for MMUntitledWindowKey

src/MacVim/Miscellaneous.m

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
NSString *MMSmoothResizeKey = @"MMSmoothResize";
5959
NSString *MMCmdLineAlignBottomKey = @"MMCmdLineAlignBottom";
6060
NSString *MMAllowForceClickLookUpKey = @"MMAllowForceClickLookUp";
61+
NSString *MMUpdaterPrereleaseChannelKey = @"MMUpdaterPrereleaseChannel";
6162

6263

6364
@implementation NSIndexSet (MMExtras)

src/MacVim/Sparkle.framework

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Sparkle_2.framework
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Versions/Current/Autoupdate
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Versions/Current/Headers
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Versions/Current/Modules
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Versions/Current/PrivateHeaders
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Versions/Current/Resources

0 commit comments

Comments
 (0)