From f8862627223d47603ce60f82d71aa9369b07ae60 Mon Sep 17 00:00:00 2001 From: Jonathan Schleifer Date: Sun, 26 Nov 2017 20:19:07 +0100 Subject: [PATCH] iOS: A few code modernizations --- LegacyPasswordGenerator.m | 16 ++++++++-------- NewPasswordGenerator.m | 16 ++++++++-------- ScryptPWGen.m | 8 ++++---- iOS/AboutController.m | 8 ++++---- iOS/AddSiteController.m | 8 ++++---- iOS/MainViewController.m | 4 ++-- iOS/ShowDetailsController.m | 4 ++-- iOS/scrypt-pwgen.xcodeproj/project.pbxproj | 15 ++++++++++++++- 8 files changed, 46 insertions(+), 33 deletions(-) diff --git a/LegacyPasswordGenerator.m b/LegacyPasswordGenerator.m index 327218c..4a92798 100644 --- a/LegacyPasswordGenerator.m +++ b/LegacyPasswordGenerator.m @@ -31,7 +31,7 @@ return [[[self alloc] init] autorelease]; } -- init +- (instancetype)init { self = [super init]; @@ -59,8 +59,8 @@ size_t passphraseLength, combinedPassphraseLength; char *combinedPassphrase; - [siteHash updateWithBuffer: [_site UTF8String] - length: [_site UTF8StringLength]]; + [siteHash updateWithBuffer: _site.UTF8String + length: _site.UTF8StringLength]; if (_output != NULL) { of_explicit_memset(_output, 0, _length); @@ -71,10 +71,10 @@ passphraseLength = combinedPassphraseLength = strlen(_passphrase); if (_keyfile != nil) { - if (SIZE_MAX - combinedPassphraseLength < [_keyfile count]) + if (SIZE_MAX - combinedPassphraseLength < _keyfile.count) @throw [OFOutOfRangeException exception]; - combinedPassphraseLength += [_keyfile count]; + combinedPassphraseLength += _keyfile.count; } if ((combinedPassphrase = malloc(combinedPassphraseLength)) == NULL) @@ -85,10 +85,10 @@ if (_keyfile != nil) memcpy(combinedPassphrase + passphraseLength, - [_keyfile items], [_keyfile count]); + _keyfile.items, _keyfile.count); - of_scrypt(8, 524288, 2, [siteHash digest], - [[siteHash class] digestSize], combinedPassphrase, + of_scrypt(8, 524288, 2, siteHash.digest, + [siteHash.class digestSize], combinedPassphrase, combinedPassphraseLength, _output, _length); } @finally { of_explicit_memset(combinedPassphrase, 0, diff --git a/NewPasswordGenerator.m b/NewPasswordGenerator.m index a8a1c14..66d132e 100644 --- a/NewPasswordGenerator.m +++ b/NewPasswordGenerator.m @@ -31,7 +31,7 @@ return [[[self alloc] init] autorelease]; } -- init +- (instancetype)init { self = [super init]; @@ -46,8 +46,8 @@ size_t passphraseLength, combinedPassphraseLength; char *combinedPassphrase; - [siteHash updateWithBuffer: [_site UTF8String] - length: [_site UTF8StringLength]]; + [siteHash updateWithBuffer: _site.UTF8String + length: _site.UTF8StringLength]; if (_output != NULL) { of_explicit_memset(_output, 0, _length); @@ -58,10 +58,10 @@ passphraseLength = combinedPassphraseLength = strlen(_passphrase); if (_keyfile != nil) { - if (SIZE_MAX - combinedPassphraseLength < [_keyfile count]) + if (SIZE_MAX - combinedPassphraseLength < _keyfile.count) @throw [OFOutOfRangeException exception]; - combinedPassphraseLength += [_keyfile count]; + combinedPassphraseLength += _keyfile.count; } if ((combinedPassphrase = malloc(combinedPassphraseLength)) == NULL) @@ -72,10 +72,10 @@ if (_keyfile != nil) memcpy(combinedPassphrase + passphraseLength, - [_keyfile items], [_keyfile count]); + _keyfile.items, _keyfile.count); - of_scrypt(8, 524288, 2, [siteHash digest], - [[siteHash class] digestSize], combinedPassphrase, + of_scrypt(8, 524288, 2, siteHash.digest, + [siteHash.class digestSize], combinedPassphrase, combinedPassphraseLength, _output, _length); } @finally { of_explicit_memset(combinedPassphrase, 0, diff --git a/ScryptPWGen.m b/ScryptPWGen.m index 46f730c..e316b9f 100644 --- a/ScryptPWGen.m +++ b/ScryptPWGen.m @@ -105,7 +105,7 @@ showHelp(OFStream *output, bool verbose) } } - if ([[optionsParser remainingArguments] count] != 1) { + if (optionsParser.remainingArguments.count != 1) { showHelp(of_stderr, false); [OFApplication terminateWithStatus: 1]; @@ -114,13 +114,13 @@ showHelp(OFStream *output, bool verbose) id generator = (_legacy ? [LegacyPasswordGenerator generator] : [NewPasswordGenerator generator]); - generator.site = [[optionsParser remainingArguments] firstObject]; + generator.site = optionsParser.remainingArguments.firstObject; if (lengthString != nil) { bool invalid = false; @try { - generator.length = (size_t)[lengthString decimalValue]; + generator.length = (size_t)lengthString.decimalValue; } @catch (OFInvalidFormatException *e) { invalid = true; } @catch (OFOutOfRangeException *e) { @@ -190,7 +190,7 @@ showHelp(OFStream *output, bool verbose) of_explicit_memset(passphrase, 0, strlen(passphrase)); if (keyfile != nil) - of_explicit_memset([keyfile items], 0, [keyfile count]); + of_explicit_memset(keyfile.items, 0, keyfile.count); } [OFApplication terminate]; diff --git a/iOS/AboutController.m b/iOS/AboutController.m index a8d8ebe..9a95475 100644 --- a/iOS/AboutController.m +++ b/iOS/AboutController.m @@ -66,7 +66,7 @@ static NSString *aboutHTMLTemplate = self.automaticallyAdjustsScrollViewInsets = NO; - NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary]; + NSDictionary *infoDictionary = NSBundle.mainBundle.infoDictionary; NSString *version = infoDictionary[@"CFBundleShortVersionString"]; NSString *aboutHTML = [aboutHTMLTemplate stringByReplacingOccurrencesOfString: @"{version}" @@ -87,9 +87,9 @@ static NSString *aboutHTMLTemplate = navigationType: (UIWebViewNavigationType)navigationType { if (navigationType == UIWebViewNavigationTypeLinkClicked) { - [[UIApplication sharedApplication] openURL: request.URL - options: @{} - completionHandler: ^ (BOOL success) { + [UIApplication.sharedApplication openURL: request.URL + options: @{} + completionHandler: ^ (BOOL success) { }]; return NO; } diff --git a/iOS/AddSiteController.m b/iOS/AddSiteController.m index 1ff9bd3..acbaf0f 100644 --- a/iOS/AddSiteController.m +++ b/iOS/AddSiteController.m @@ -54,18 +54,18 @@ showAlert(UIViewController *controller, NSString *title, NSString *message) - (IBAction)done: (id)sender { - OFString *name = [self.nameField.text OFObject]; - OFString *lengthStr = [self.lengthField.text OFObject]; + OFString *name = self.nameField.text.OFObject; + OFString *lengthString = self.lengthField.text.OFObject; bool lengthValid = true; size_t length; - if ([name length] == 0) { + if (name.length == 0) { showAlert(self, @"Name missing", @"Please enter a name."); return; } @try { - length = (size_t)[lengthStr decimalValue]; + length = (size_t)lengthString.decimalValue; if (length < 3 || length > 64) lengthValid = false; diff --git a/iOS/MainViewController.m b/iOS/MainViewController.m index f75ae44..250faa8 100644 --- a/iOS/MainViewController.m +++ b/iOS/MainViewController.m @@ -74,7 +74,7 @@ initWithStyle: UITableViewCellStyleDefault reuseIdentifier: @"site"] autorelease]; - cell.textLabel.text = [self.sites[indexPath.row] NSObject]; + cell.textLabel.text = self.sites[indexPath.row].NSObject; return cell; } @@ -82,7 +82,7 @@ - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText { - self.sites = [_siteStorage sitesWithFilter: [_searchBar.text OFObject]]; + self.sites = [_siteStorage sitesWithFilter: _searchBar.text.OFObject]; [_tableView reloadData]; } diff --git a/iOS/ShowDetailsController.m b/iOS/ShowDetailsController.m index 4d0e53a..51e7b56 100644 --- a/iOS/ShowDetailsController.m +++ b/iOS/ShowDetailsController.m @@ -77,7 +77,7 @@ clearNSMutableString(NSMutableString *string) _length = [siteStorage lengthForSite: _name]; _legacy = [siteStorage isSiteLegacy: _name]; - self.nameField.text = [_name NSObject]; + self.nameField.text = _name.NSObject; self.lengthField.text = [NSString stringWithFormat: @"%zu", _length]; self.legacySwitch.on = _legacy; @@ -182,7 +182,7 @@ clearNSMutableString(NSMutableString *string) generator.site = _name; generator.length = _length; - passphrase = of_strdup([self.passphraseField.text UTF8String]); + passphrase = of_strdup(self.passphraseField.text.UTF8String); generator.passphrase = passphrase; mainStoryboard = [UIStoryboard storyboardWithName: @"Main" diff --git a/iOS/scrypt-pwgen.xcodeproj/project.pbxproj b/iOS/scrypt-pwgen.xcodeproj/project.pbxproj index aee9081..c2c51e3 100644 --- a/iOS/scrypt-pwgen.xcodeproj/project.pbxproj +++ b/iOS/scrypt-pwgen.xcodeproj/project.pbxproj @@ -179,7 +179,7 @@ 4B2E52D41DA942840040D091 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0820; + LastUpgradeCheck = 0910; ORGANIZATIONNAME = "Jonathan Schleifer"; TargetAttributes = { 4B2E52DB1DA942840040D091 = { @@ -267,7 +267,9 @@ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; @@ -275,7 +277,11 @@ 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_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_SUSPICIOUS_MOVES = YES; CLANG_WARN_UNREACHABLE_CODE = YES; @@ -301,6 +307,7 @@ GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; }; name = Debug; @@ -313,7 +320,9 @@ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; @@ -321,7 +330,11 @@ 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_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_SUSPICIOUS_MOVES = YES; CLANG_WARN_UNREACHABLE_CODE = YES;