OSDN Git Service

For macOS Big Sur 11.0 Developer Beta 5
authorkurikinton <kurikinton@users.osdn.me>
Mon, 24 Aug 2020 05:28:49 +0000 (14:28 +0900)
committerkurikinton <kurikinton@users.osdn.me>
Mon, 24 Aug 2020 05:28:49 +0000 (14:28 +0900)
Info.plist
LFApp.h
LFApp.m
LetterFix.entitlements [new file with mode: 0644]
LetterFix.m
LetterFix.xcodeproj/project.pbxproj

index 88cb9e3..7947687 100644 (file)
@@ -59,5 +59,9 @@
        <array>
                <string>6EEA38FB-1A0B-469B-BB35-4C2E0EEA9053</string>
        </array>
+       <key>Supported11.0PluginCompatibilityUUIDs</key>
+       <array>
+               <string>D985F0E4-3BBC-4B95-BBA1-12056AC4A531</string>
+       </array>
 </dict>
 </plist>
diff --git a/LFApp.h b/LFApp.h
index 2d4fc78..5e5b075 100644 (file)
--- a/LFApp.h
+++ b/LFApp.h
@@ -10,7 +10,7 @@
 #import <AppKit/AppKit.h>
 //#import "LFMenu.h"
 
-#define LETTERFIX_VERSION "2.8.1"
+#define LETTERFIX_VERSION "3.0.0a"
 
 enum LFversion {
     LF_Unknown = -1,
@@ -20,7 +20,8 @@ enum LFversion {
     LF_Sierra    = 1012,
     LF_HighSierra= 1013,
     LF_Mojave    = 1014,
-    LF_Catalina  = 1015
+    LF_Catalina  = 1015,
+    LF_BigSur    = 1100
 };
 
 @interface LFApp : NSObject {
diff --git a/LFApp.m b/LFApp.m
index fd62d69..803e586 100644 (file)
--- a/LFApp.m
+++ b/LFApp.m
                         version = LF_Unknown;
                         break;
                 }
-           } else {
-               version = LF_Unknown;
-           }
+            } else if (systemVersionMajor == 11) {
+                switch (systemVersionMinor) {
+                    case 0:
+                        version = LF_BigSur;
+                        break;
+                    default:
+                        version = LF_Unknown;
+                        break;
+                }
+            } else {
+                version = LF_Unknown;
+            }
         } else {
             version = LF_Unknown;
         }
@@ -80,7 +89,7 @@
             self.shouldFixAllLetters = ![userDefaults boolForKey:@"LetterFixAllLetterFixDisabled"];
             self.shouldAppendCodeInfo = [userDefaults boolForKey:@"LetterFixDoAppendCodeInfo"];
             self.operationModeOnLoad = (int)[userDefaults integerForKey:@"LetterFixOperationAtOpen"];
-            if (version == LF_HighSierra || version == LF_Mojave || version == LF_Catalina)
+            if (version == LF_HighSierra || version == LF_Mojave || version == LF_Catalina || version == LF_BigSur )
                 self.shouldCheckSubject = [userDefaults integerForKey:@"LetterFixCheckSubjectEnabled"];
             else
                 self.shouldCheckSubject = ![userDefaults integerForKey:@"LetterFixCheckSubjectDisabled"];
diff --git a/LetterFix.entitlements b/LetterFix.entitlements
new file mode 100644 (file)
index 0000000..de8736b
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+    <dict>
+            <key>com.apple.security.app-sandbox</key>
+            <true/>
+            <key>com.apple.security.inherit</key>
+            <true/>
+    </dict>
+</plist>
\ No newline at end of file
index 1df1ff8..8ab994e 100644 (file)
@@ -78,7 +78,8 @@ static void backendSetPreferredEncoding(id backend, unsigned long long encoding)
        _flags->encodingHint = encoding;
     } else if (app.version == LF_Yosemite || app.version == LF_ElCapitan ||
                app.version == LF_Sierra || app.version == LF_HighSierra ||
-               app.version == LF_Mojave || app.version == LF_Catalina) {
+               app.version == LF_Mojave || app.version == LF_Catalina ||
+               app.version == LF_BigSur ) {
        [backend setEncodingHint: encoding];
     }
 }
@@ -91,7 +92,8 @@ static unsigned long long backendGetPreferredEncoding(id backend)
        return _flags->encodingHint; //FIXME: [backend _encodingHint] return wrong value?
     } else if (app.version == LF_Yosemite || app.version == LF_ElCapitan ||
                app.version == LF_Sierra || app.version == LF_HighSierra ||
-               app.version == LF_Mojave || app.version == LF_Catalina) {
+               app.version == LF_Mojave || app.version == LF_Catalina ||
+               app.version == LF_BigSur ) {
        return [backend encodingHint];
     }
     return LF_Encoding_Auto;
@@ -381,7 +383,7 @@ BOOL _LF_IMP_isLoaded(id self, SEL _cmd)
                                 fixLetter(self, [self webView], NO, YES);
                             } else if (app.version == LF_ElCapitan || app.version == LF_Sierra ||
                                        app.version == LF_HighSierra|| app.version == LF_Mojave ||
-                                       app.version == LF_Catalina) {
+                                       app.version == LF_Catalina  || app.version == LF_BigSur ) {
                                 fixLetter(self, [self composeWebView], NO, YES);
                             }
                         } else if (returnCode == NSAlertSecondButtonReturn) {
@@ -456,7 +458,7 @@ void _LF_IMP_finishLoadingEditor(id self, SEL _cmd)
                             fixSubject(self, NO, YES);
                             if (app.version == LF_ElCapitan || app.version == LF_Sierra ||
                                 app.version == LF_HighSierra|| app.version == LF_Mojave ||
-                                app.version == LF_Catalina) {
+                                app.version == LF_Catalina  || app.version == LF_BigSur ) {
                                 fixLetter(self, [self composeWebView], NO, YES);
                             }
                         } else if (returnCode == NSAlertSecondButtonReturn) {
@@ -496,7 +498,7 @@ void _LF_IMP_send_(id self, SEL _cmd, id arg1)
         composeView = [self webView];
     } else if (app.version == LF_ElCapitan || app.version == LF_Sierra ||
                app.version == LF_HighSierra|| app.version == LF_Mojave ||
-               app.version == LF_Catalina) {
+               app.version == LF_Catalina  || app.version == LF_BigSur ) {
         composeView = [self composeWebView];
     } else {
         [self _LF_send: arg1];
@@ -520,7 +522,7 @@ void _LF_IMP_send_(id self, SEL _cmd, id arg1)
                     fixLetter(self, [self webView], NO, NO);
                 } else if (app.version == LF_ElCapitan || app.version == LF_Sierra ||
                            app.version == LF_HighSierra|| app.version == LF_Mojave ||
-                           app.version == LF_Catalina) {
+                           app.version == LF_Catalina  || app.version == LF_BigSur ) {
                     fixLetter(self, [self composeWebView], NO, NO);
                 }
                 if (backendGetPreferredEncoding([self backEnd]) != LF_Encoding_ISO2022JP) backendSetPreferredEncoding([self backEnd], LF_Encoding_ISO2022JP);
@@ -542,7 +544,7 @@ void _LF_IMP_send_(id self, SEL _cmd, id arg1)
                     fixLetter(self, [self webView], NO, NO);
                 } else if (app.version == LF_ElCapitan || app.version == LF_Sierra ||
                            app.version == LF_HighSierra|| app.version == LF_Mojave ||
-                           app.version == LF_Catalina) {
+                           app.version == LF_Catalina  || app.version == LF_BigSur ) {
                     fixLetter(self, [self composeWebView], NO, NO);
                 }
                 if (backendGetPreferredEncoding([self backEnd]) != LF_Encoding_ISO2022JP) backendSetPreferredEncoding([self backEnd], LF_Encoding_ISO2022JP);
@@ -590,7 +592,7 @@ void _LF_IMP_saveDocument_(id self, SEL _cmd, id arg1)
     } else if (app.shouldCheckOnSave &&
                (app.version == LF_ElCapitan || app.version == LF_Sierra ||
                 app.version == LF_HighSierra|| app.version == LF_Mojave ||
-                app.version == LF_Catalina)) {
+                app.version == LF_Catalina  || app.version == LF_BigSur )) {
         composeView = [self composeWebView];
     } else {
         [self _LF_saveDocument: arg1];
@@ -612,7 +614,7 @@ void _LF_IMP_saveDocument_(id self, SEL _cmd, id arg1)
                     fixLetter(self, [self webView], NO, NO);
                 } else if (app.version == LF_ElCapitan || app.version == LF_Sierra ||
                            app.version == LF_HighSierra|| app.version == LF_Mojave ||
-                           app.version == LF_Catalina) {
+                           app.version == LF_Catalina  || app.version == LF_BigSur ) {
                     fixLetter(self, [self composeWebView], NO, NO);
                 }
             } else if (returnCode == NSAlertSecondButtonReturn) {
@@ -637,7 +639,8 @@ NSWindow *_LF_IMP_window(id self, SEL _cmd)
     if (app.version == LF_Mavericks || app.version == LF_Yosemite || app.version == LF_ElCapitan ) {
         return [self window];
     } else if (app.version == LF_Sierra || app.version == LF_HighSierra||
-               app.version == LF_Mojave || app.version == LF_Catalina) {
+               app.version == LF_Mojave || app.version == LF_Catalina  ||
+               app.version == LF_BigSur ) {
         return [(NSView *)[self view] window];
     }
     return nil;
@@ -662,7 +665,7 @@ NSWindow *_LF_IMP_window(id self, SEL _cmd)
         editorClass = NSClassFromString(@"DocumentEditor");
     } else if (app.version == LF_ElCapitan || app.version == LF_Sierra ||
                app.version == LF_HighSierra|| app.version == LF_Mojave ||
-               app.version == LF_Catalina) {
+               app.version == LF_Catalina  || app.version == LF_BigSur ) {
         editorClass = NSClassFromString(@"ComposeViewController");
     } else {
         return;
@@ -677,7 +680,7 @@ NSWindow *_LF_IMP_window(id self, SEL _cmd)
         swizzlingMethod(editorClass, @selector(_animationCompleted), @selector(_LF_animationCompleted), (IMP)_LF_IMP_animationCompleted);
     } else if (app.version == LF_ElCapitan) {
         swizzlingMethod(editorClass, @selector(finishLoadingEditor), @selector(_LF_finishLoadingEditor), (IMP)_LF_IMP_finishLoadingEditor);
-    } else if (app.version == LF_Sierra || app.version == LF_HighSierra || app.version == LF_Mojave || app.version == LF_Catalina) {
+    } else if (app.version == LF_Sierra || app.version == LF_HighSierra || app.version == LF_Mojave || app.version == LF_Catalina || app.version == LF_BigSur ) {
         swizzlingMethod(editorClass, @selector(_finishLoadingEditor), @selector(_LF_finishLoadingEditor), (IMP)_LF_IMP_finishLoadingEditor);
     }
     swizzlingMethod(editorClass, @selector(saveDocument:), @selector(_LF_saveDocument:), (IMP)_LF_IMP_saveDocument_);
index 7408905..959f704 100644 (file)
@@ -18,6 +18,7 @@
 /* Begin PBXFileReference section */
                32DBCF630370AF2F00C91783 /* LetterFix_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LetterFix_Prefix.pch; sourceTree = "<group>"; };
                8D5B49B7048680CD000E48DA /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+               C8359AB024EFD5AB00BC6BCA /* LetterFix.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = LetterFix.entitlements; sourceTree = "<group>"; };
                C8C63ABA1136B4BA0015B803 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
                C8C63B421136B4D30015B803 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
                C8C63B461136B4DB0015B803 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
@@ -47,6 +48,7 @@
                089C166AFE841209C02AAC07 /* kmail */ = {
                        isa = PBXGroup;
                        children = (
+                               C8359AB024EFD5AB00BC6BCA /* LetterFix.entitlements */,
                                08FB77AFFE84173DC02AAC07 /* Classes */,
                                32C88E010371C26100C91783 /* Other Sources */,
                                089C167CFE841241C02AAC07 /* Resources */,
                                8D5B49AF048680CD000E48DA /* Resources */,
                                8D5B49B1048680CD000E48DA /* Sources */,
                                8D5B49B3048680CD000E48DA /* Frameworks */,
-                               C8DEFF721349F37C004BB9ED /* ShellScript */,
                        );
                        buildRules = (
                        );
                089C1669FE841209C02AAC07 /* Project object */ = {
                        isa = PBXProject;
                        attributes = {
-                               LastUpgradeCheck = 0500;
+                               LastUpgradeCheck = 1200;
                                ORGANIZATIONNAME = kuri;
+                               TargetAttributes = {
+                                       8D5B49AC048680CD000E48DA = {
+                                               DevelopmentTeam = 38C3CR2D6A;
+                                               ProvisioningStyle = Manual;
+                                       };
+                               };
                        };
                        buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "LetterFix" */;
                        compatibilityVersion = "Xcode 3.2";
-                       developmentRegion = English;
+                       developmentRegion = en;
                        hasScannedForEncodings = 1;
                        knownRegions = (
-                               English,
-                               Japanese,
-                               French,
-                               German,
+                               en,
+                               Base,
                        );
                        mainGroup = 089C166AFE841209C02AAC07 /* kmail */;
                        projectDirPath = "";
                };
 /* End PBXResourcesBuildPhase section */
 
-/* Begin PBXShellScriptBuildPhase section */
-               C8DEFF721349F37C004BB9ED /* ShellScript */ = {
-                       isa = PBXShellScriptBuildPhase;
-                       buildActionMask = 2147483647;
-                       files = (
-                       );
-                       inputPaths = (
-                       );
-                       outputPaths = (
-                       );
-                       runOnlyForDeploymentPostprocessing = 0;
-                       shellPath = /bin/sh;
-                       shellScript = "if [ ! -d \"${USER_LIBRARY_DIR}/Mail/Bundles\" ]; then\n    mkdir -p \"${USER_LIBRARY_DIR}/Mail/Bundles\"\nfi\n\nif [ -e \"${USER_LIBRARY_DIR}/Mail/Bundles/${FULL_PRODUCT_NAME}\" ]; then\n    rm -Rf \"${USER_LIBRARY_DIR}/Mail/Bundles/${FULL_PRODUCT_NAME}\"\nfi\n\nif [ \"${CONFIGURATION}\" == \"Debug\" ]; then\n    cp -Rf \"${TARGET_BUILD_DIR}/${FULL_PRODUCT_NAME}\" \"${USER_LIBRARY_DIR}/Mail/Bundles/${FULL_PRODUCT_NAME}\"\nelif [ \"${CONFIGURATION}\" == \"Release\" ]; then\n    cp -Rf \"${TARGET_BUILD_DIR}/${FULL_PRODUCT_NAME}\" \"${USER_LIBRARY_DIR}/Mail/Bundles/${FULL_PRODUCT_NAME}\"\nfi";
-                       showEnvVarsInLog = 0;
-               };
-/* End PBXShellScriptBuildPhase section */
-
 /* Begin PBXSourcesBuildPhase section */
                8D5B49B1048680CD000E48DA /* Sources */ = {
                        isa = PBXSourcesBuildPhase;
                1DEB913C08733D840010E9CD /* Release */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
+                               CLANG_ENABLE_OBJC_WEAK = YES;
+                               CODE_SIGN_IDENTITY = "Developer ID Application: Yuichi Ohkawa (38C3CR2D6A)";
+                               CODE_SIGN_STYLE = Manual;
                                COMBINE_HIDPI_IMAGES = YES;
+                               DEVELOPMENT_TEAM = 38C3CR2D6A;
                                GCC_C_LANGUAGE_STANDARD = gnu99;
                                GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
                                GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
                                INFOPLIST_FILE = Info.plist;
                                INFOPLIST_OUTPUT_FORMAT = xml;
+                               PRODUCT_BUNDLE_IDENTIFIER = org.kuri.letterfix;
                                PRODUCT_NAME = LetterFix;
+                               PROVISIONING_PROFILE_SPECIFIER = "";
                                WRAPPER_EXTENSION = mailbundle;
                        };
                        name = Release;
                1DEB914008733D840010E9CD /* Release */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
+                               ALWAYS_SEARCH_USER_PATHS = NO;
+                               CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+                               CLANG_WARN_BOOL_CONVERSION = YES;
+                               CLANG_WARN_COMMA = YES;
+                               CLANG_WARN_CONSTANT_CONVERSION = YES;
+                               CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+                               CLANG_WARN_EMPTY_BODY = YES;
+                               CLANG_WARN_ENUM_CONVERSION = YES;
+                               CLANG_WARN_INFINITE_RECURSION = YES;
+                               CLANG_WARN_INT_CONVERSION = YES;
+                               CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+                               CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+                               CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+                               CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+                               CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+                               CLANG_WARN_STRICT_PROTOTYPES = YES;
+                               CLANG_WARN_SUSPICIOUS_MOVE = YES;
+                               CLANG_WARN_UNREACHABLE_CODE = YES;
+                               CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+                               CODE_SIGN_ENTITLEMENTS = LetterFix.entitlements;
+                               DEVELOPMENT_TEAM = 38C3CR2D6A;
+                               ENABLE_HARDENED_RUNTIME = YES;
+                               ENABLE_STRICT_OBJC_MSGSEND = YES;
+                               GCC_NO_COMMON_BLOCKS = YES;
+                               GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+                               GCC_WARN_ABOUT_RETURN_TYPE = YES;
+                               GCC_WARN_UNDECLARED_SELECTOR = YES;
+                               GCC_WARN_UNINITIALIZED_AUTOS = YES;
+                               GCC_WARN_UNUSED_FUNCTION = YES;
+                               GCC_WARN_UNUSED_VARIABLE = YES;
+                               MACOSX_DEPLOYMENT_TARGET = 10.9;
+                               OTHER_CODE_SIGN_FLAGS = "--timestamp";
                                SDKROOT = macosx;
                        };
                        name = Release;
                C8DEFF701349F114004BB9ED /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
+                               ALWAYS_SEARCH_USER_PATHS = NO;
+                               CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+                               CLANG_WARN_BOOL_CONVERSION = YES;
+                               CLANG_WARN_COMMA = YES;
+                               CLANG_WARN_CONSTANT_CONVERSION = YES;
+                               CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+                               CLANG_WARN_EMPTY_BODY = YES;
+                               CLANG_WARN_ENUM_CONVERSION = YES;
+                               CLANG_WARN_INFINITE_RECURSION = YES;
+                               CLANG_WARN_INT_CONVERSION = YES;
+                               CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+                               CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+                               CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+                               CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+                               CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+                               CLANG_WARN_STRICT_PROTOTYPES = YES;
+                               CLANG_WARN_SUSPICIOUS_MOVE = YES;
+                               CLANG_WARN_UNREACHABLE_CODE = YES;
+                               CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+                               CODE_SIGN_ENTITLEMENTS = LetterFix.entitlements;
                                COPY_PHASE_STRIP = NO;
+                               DEVELOPMENT_TEAM = 38C3CR2D6A;
+                               ENABLE_HARDENED_RUNTIME = YES;
+                               ENABLE_STRICT_OBJC_MSGSEND = YES;
+                               ENABLE_TESTABILITY = YES;
+                               GCC_NO_COMMON_BLOCKS = YES;
                                GCC_OPTIMIZATION_LEVEL = 0;
+                               GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+                               GCC_WARN_ABOUT_RETURN_TYPE = YES;
+                               GCC_WARN_UNDECLARED_SELECTOR = YES;
+                               GCC_WARN_UNINITIALIZED_AUTOS = YES;
+                               GCC_WARN_UNUSED_FUNCTION = YES;
+                               GCC_WARN_UNUSED_VARIABLE = YES;
+                               MACOSX_DEPLOYMENT_TARGET = 10.9;
                                ONLY_ACTIVE_ARCH = YES;
+                               OTHER_CODE_SIGN_FLAGS = "--timestamp";
                                SDKROOT = macosx;
                        };
                        name = Debug;
                C8DEFF711349F114004BB9ED /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
+                               CLANG_ENABLE_OBJC_WEAK = YES;
+                               CODE_SIGN_IDENTITY = "Developer ID Application: Yuichi Ohkawa (38C3CR2D6A)";
+                               CODE_SIGN_STYLE = Manual;
                                COMBINE_HIDPI_IMAGES = YES;
+                               DEVELOPMENT_TEAM = 38C3CR2D6A;
                                GCC_C_LANGUAGE_STANDARD = gnu99;
                                GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
                                GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
                                GCC_WARN_UNUSED_VARIABLE = YES;
                                INFOPLIST_FILE = Info.plist;
                                INFOPLIST_OUTPUT_FORMAT = xml;
+                               PRODUCT_BUNDLE_IDENTIFIER = org.kuri.letterfix;
                                PRODUCT_NAME = LetterFix;
+                               PROVISIONING_PROFILE_SPECIFIER = "";
                                WRAPPER_EXTENSION = mailbundle;
                        };
                        name = Debug;