diff options
author | stuconnolly <stuart02@gmail.com> | 2011-08-07 18:42:51 +0000 |
---|---|---|
committer | stuconnolly <stuart02@gmail.com> | 2011-08-07 18:42:51 +0000 |
commit | d01474532b11014019d4d5a1197a8f8f7d683c0b (patch) | |
tree | fc22b25c8ba23b21490673b416ce9064c77ed524 | |
parent | 8a77a195fa6ce3aad15857a2213011bf0e8d7bd5 (diff) | |
download | sequelpro-d01474532b11014019d4d5a1197a8f8f7d683c0b.tar.gz sequelpro-d01474532b11014019d4d5a1197a8f8f7d683c0b.tar.bz2 sequelpro-d01474532b11014019d4d5a1197a8f8f7d683c0b.zip |
Don't allow newlines in the connection view input fields. Fixes issue #1008.
-rw-r--r-- | Source/SPConnectionController.m | 12 | ||||
-rw-r--r-- | Source/SPConnectionControllerDelegate.m | 6 |
2 files changed, 17 insertions, 1 deletions
diff --git a/Source/SPConnectionController.m b/Source/SPConnectionController.m index a5021206..937cb521 100644 --- a/Source/SPConnectionController.m +++ b/Source/SPConnectionController.m @@ -59,6 +59,7 @@ static NSString *SPExportFavoritesFilename = @"SequelProFavorites.plist"; - (NSNumber *)_createNewFavoriteID; - (SPTreeNode *)_favoriteNodeForFavoriteID:(NSInteger)favoriteID; +- (NSString *)_stripInvalidCharactersFromString:(NSString *)subject; - (void)_updateFavoritePasswordsFromField:(NSControl *)control; @@ -1396,6 +1397,17 @@ static NSComparisonResult compareFavoritesUsingKey(id favorite1, id favorite2, v } /** + * Strips any invalid characters form the supplied string. Invalid is defined as any characters that should + * not be allowed to be enetered on the connection screen. + */ +- (NSString *)_stripInvalidCharactersFromString:(NSString *)subject +{ + NSString *result = [subject stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; + + return [result stringByReplacingOccurrencesOfString:@"\n" withString:@""]; +} + +/** * Check all fields used in the keychain names against the old values for that * favorite, and update the keychain names to match if necessary. * If an (optional) recognised password field is supplied, that field is assumed diff --git a/Source/SPConnectionControllerDelegate.m b/Source/SPConnectionControllerDelegate.m index 63f58ace..7d461233 100644 --- a/Source/SPConnectionControllerDelegate.m +++ b/Source/SPConnectionControllerDelegate.m @@ -44,6 +44,8 @@ static NSString *SPDatabaseImage = @"database-small"; - (void)_reloadFavoritesViewData; - (void)_updateFavoritePasswordsFromField:(NSControl *)control; +- (NSString *)_stripInvalidCharactersFromString:(NSString *)subject; + @end @implementation SPConnectionController (SPConnectionControllerDelegate) @@ -274,7 +276,9 @@ static NSString *SPDatabaseImage = @"database-small"; - (void)controlTextDidChange:(NSNotification *)notification { id field = [notification object]; - + + [field setStringValue:[self _stripInvalidCharactersFromString:[field stringValue]]]; + if (((field == standardNameField) || (field == socketNameField) || (field == sshNameField)) && [self selectedFavoriteNode]) { favoriteNameFieldWasTouched = YES; |