Merge pull request #1357 from ychin/store-last-used-version-macvim-better-about-version

Report better version in About MacVim, and store last used version
This commit is contained in:
Yee Cheng Chin
2023-02-02 19:07:43 -08:00
committed by GitHub
4 changed files with 49 additions and 1 deletions
+46
View File
@@ -263,6 +263,7 @@ fsEventCallback(ConstFSEventStreamRef streamRef,
[NSNumber numberWithBool:NO], MMRendererClipToRowKey,
[NSNumber numberWithBool:YES], MMAllowForceClickLookUpKey,
[NSNumber numberWithBool:NO], MMUpdaterPrereleaseChannelKey,
@"", MMLastUsedBundleVersionKey,
nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dict];
@@ -459,6 +460,51 @@ fsEventCallback(ConstFSEventStreamRef streamRef,
[self addInputSourceChangedObserver];
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
NSString *lastUsedVersion = [ud stringForKey:MMLastUsedBundleVersionKey];
NSString *currentVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:
@"CFBundleVersion"];
// This will be used for showing a "What's New" dialog box in the future. For
// now, just update the stored version for future use so later versions will
// be able to tell whether to show this dialog box or not.
if (currentVersion && currentVersion.length != 0) {
if (!lastUsedVersion || [lastUsedVersion length] == 0) {
[ud setValue:currentVersion forKey:MMLastUsedBundleVersionKey];
} else {
// If the current version is larger, set that to be stored. Don't
// want to do it otherwise to prevent testing older versions flipping
// the stored version back to an old one.
NSArray<NSString*> *lastUsedVersionItems = [lastUsedVersion componentsSeparatedByString:@"."];
NSArray<NSString*> *currentVersionItems = [currentVersion componentsSeparatedByString:@"."];
// Compare two arrays lexographically. We just assume that version
// numbers are also X.Y.Z… with no "beta" etc texts.
bool currentVersionLarger = NO;
for (int i = 0; i < currentVersionItems.count && i < lastUsedVersionItems.count; i++) {
if (i >= currentVersionItems.count) {
currentVersionLarger = NO;
break;
}
if (i >= lastUsedVersionItems.count) {
currentVersionLarger = YES;
break;
}
if (currentVersionItems[i].integerValue > lastUsedVersionItems[i].integerValue) {
currentVersionLarger = YES;
break;
}
else if (currentVersionItems[i].integerValue < lastUsedVersionItems[i].integerValue) {
currentVersionLarger = NO;
break;
}
}
if (currentVersionLarger) {
[ud setValue:currentVersion forKey:MMLastUsedBundleVersionKey];
}
}
}
ASLogInfo(@"MacVim finished launching");
}
+1 -1
View File
@@ -53,7 +53,7 @@
NSString *marketingVersion = [[NSBundle mainBundle]
objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
NSString *title = [NSString stringWithFormat:
@"Custom Version %@ (%@)", marketingVersion, version];
@"Vim %@ (MacVim r%@)", marketingVersion, version];
[self orderFrontStandardAboutPanelWithOptions:
[NSDictionary dictionaryWithObjectsAndKeys:
+1
View File
@@ -64,6 +64,7 @@ extern NSString *MMCmdLineAlignBottomKey;
extern NSString *MMRendererClipToRowKey;
extern NSString *MMAllowForceClickLookUpKey;
extern NSString *MMUpdaterPrereleaseChannelKey;
extern NSString *MMLastUsedBundleVersionKey; // The last used version of MacVim before this launch
// Enum for MMUntitledWindowKey
+1
View File
@@ -60,6 +60,7 @@ NSString *MMCmdLineAlignBottomKey = @"MMCmdLineAlignBottom";
NSString *MMRendererClipToRowKey = @"MMRendererClipToRow";
NSString *MMAllowForceClickLookUpKey = @"MMAllowForceClickLookUp";
NSString *MMUpdaterPrereleaseChannelKey = @"MMUpdaterPrereleaseChannel";
NSString *MMLastUsedBundleVersionKey = @"MMLastUsedBundleVersion";
@implementation NSIndexSet (MMExtras)