mirror of
https://github.com/gnustep/libs-gdl2.git
synced 2025-02-21 02:20:55 +00:00
* EOAccess/EOSQLQualifier.m
o fix in EOOrQualifier -sqlStringForSQLExpression: use sqlExpression -sqlStringForDisjoinedQualifiers: (problem was missing () around expression) * EOControl/EOAndQualifier.m: o implemented -_addBindingsToDictionary: o implemented -qualifierWithBindings:requiresAllVariables: o implemented -validateKeysWithRootClassDescription: * EOControl/EOKeyValueQualifier.m: o implemented -validateKeysWithRootClassDescription: o implemented -initWithKeyValueUnarchiver: o removed duplicate -initWithKeyValueUnarchiver: and -encodeWithKeyValueArchiver o implemented -_addBindingsToDictionary: o implemented -qualifierWithBindings:requiresAllVariables: * EOControl/EOOrQualifier.m: o implemented -_addBindingsToDictionary: o implemented -qualifierWithBindings:requiresAllVariables: o implemented -validateKeysWithRootClassDescription: * EOControl/EONotQualifier.m: o implemented -_addBindingsToDictionary: o implemented -validateKeysWithRootClassDescription: o implemented -qualifierWithBindings:requiresAllVariables: * EOControl/EOQualifier.m: o implemented _validateKey:withRootClassDescription: o implemented -validateKeysWithRootClassDescription: o implemented -bindingKeys o implemented -keyPathForBindingKey: o added EOQualifierVariableSubstitutionException; git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@18226 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
565696cba9
commit
ce6dc1bf92
7 changed files with 269 additions and 63 deletions
29
ChangeLog
29
ChangeLog
|
@ -53,6 +53,35 @@
|
|||
o subclass joinExpression to avoid building join
|
||||
expression (it's now build in -tableListWithRootEntity
|
||||
o sublass -tableListWithRootEntity to add joins in it.
|
||||
* EOAccess/EOSQLQualifier.m
|
||||
o fix in EOOrQualifier -sqlStringForSQLExpression:
|
||||
use sqlExpression -sqlStringForDisjoinedQualifiers:
|
||||
(problem was missing () around expression)
|
||||
* EOControl/EOAndQualifier.m:
|
||||
o implemented -_addBindingsToDictionary:
|
||||
o implemented -qualifierWithBindings:requiresAllVariables:
|
||||
o implemented -validateKeysWithRootClassDescription:
|
||||
* EOControl/EOKeyValueQualifier.m:
|
||||
o implemented -validateKeysWithRootClassDescription:
|
||||
o implemented -initWithKeyValueUnarchiver:
|
||||
o removed duplicate -initWithKeyValueUnarchiver: and
|
||||
-encodeWithKeyValueArchiver
|
||||
o implemented -_addBindingsToDictionary:
|
||||
o implemented - qualifierWithBindings:requiresAllVariables:
|
||||
* EOControl/EOOrQualifier.m:
|
||||
o implemented -_addBindingsToDictionary:
|
||||
o implemented -qualifierWithBindings:requiresAllVariables:
|
||||
o implemented -validateKeysWithRootClassDescription:
|
||||
* EOControl/EONotQualifier.m:
|
||||
o implemented -_addBindingsToDictionary:
|
||||
o implemented -validateKeysWithRootClassDescription:
|
||||
o implemented -qualifierWithBindings:requiresAllVariables:
|
||||
* EOControl/EOQualifier.m:
|
||||
o implemented _validateKey:withRootClassDescription:
|
||||
o implemented -validateKeysWithRootClassDescription:
|
||||
o implemented -bindingKeys
|
||||
o implemented -keyPathForBindingKey:
|
||||
o added EOQualifierVariableSubstitutionException;
|
||||
|
||||
2003-10-24 David Ayers <d.ayers@inode.at>
|
||||
|
||||
|
|
|
@ -105,6 +105,7 @@ RCS_ID("$Id$")
|
|||
- (NSString *)sqlStringForSQLExpression: (EOSQLExpression *)sqlExpression
|
||||
{
|
||||
//OK?
|
||||
//Ayers: Review (This looks correct, time to cleanup.)
|
||||
return [sqlExpression sqlStringForConjoinedQualifiers: _qualifiers];
|
||||
|
||||
/*
|
||||
|
@ -176,6 +177,11 @@ RCS_ID("$Id$")
|
|||
|
||||
- (NSString *)sqlStringForSQLExpression: (EOSQLExpression *)sqlExpression
|
||||
{
|
||||
//OK?
|
||||
//Ayers: Review (This looks correct, time to cleanup.)
|
||||
return [sqlExpression sqlStringForDisjoinedQualifiers: _qualifiers];
|
||||
|
||||
/*
|
||||
NSEnumerator *qualifiersEnum;
|
||||
EOQualifier *qualifier;
|
||||
NSMutableString *sqlString = nil;
|
||||
|
@ -197,6 +203,7 @@ RCS_ID("$Id$")
|
|||
}
|
||||
|
||||
return sqlString;
|
||||
*/
|
||||
}
|
||||
|
||||
- (EOQualifier *)schemaBasedQualifierWithRootEntity: (EOEntity *)entity
|
||||
|
|
|
@ -155,23 +155,52 @@ RCS_ID("$Id$")
|
|||
return [self notImplemented: _cmd]; //TODO
|
||||
}
|
||||
|
||||
- (void) _addBindingsToDictionary: (id)param0
|
||||
- (void) _addBindingsToDictionary: (NSMutableDictionary*)dictionary
|
||||
{
|
||||
[self notImplemented: _cmd]; //TODO
|
||||
int i=0;
|
||||
int count=[_qualifiers count];
|
||||
for(i=0;i<count;i++)
|
||||
[[_qualifiers objectAtIndex:i]_addBindingsToDictionary:dictionary];
|
||||
}
|
||||
|
||||
- (EOQualifier *) qualifierWithBindings: (NSDictionary *)bindings
|
||||
requiresAllVariables: (BOOL)requiresAllVariables
|
||||
{
|
||||
//Ayers: Review
|
||||
EOQualifier* resultQualifier = nil;
|
||||
int i = 0;
|
||||
int count = [_qualifiers count];
|
||||
NSMutableArray* newQualifiers = nil;
|
||||
EOFLOGObjectLevelArgs(@"EOQualifier", @"bindings=%@", bindings);
|
||||
|
||||
if ([bindings count] > 0)
|
||||
for(i=0; i<count; i++)
|
||||
{
|
||||
NSEmitTODO();
|
||||
return [self notImplemented: _cmd]; //TODO
|
||||
EOQualifier* qualifier = [_qualifiers objectAtIndex:i];
|
||||
EOQualifier* newQualifier
|
||||
= [qualifier qualifierWithBindings: bindings
|
||||
requiresAllVariables: requiresAllVariables];
|
||||
if (newQualifier)
|
||||
{
|
||||
if (!newQualifiers)
|
||||
{
|
||||
newQualifiers=(NSMutableArray*)[NSMutableArray array];
|
||||
}
|
||||
[newQualifiers addObject: newQualifier];
|
||||
}
|
||||
}
|
||||
else
|
||||
return self;
|
||||
if ([newQualifiers count] > 0)
|
||||
{
|
||||
if ([newQualifiers count] == 1)
|
||||
{
|
||||
resultQualifier=[newQualifiers lastObject];
|
||||
}
|
||||
else
|
||||
{
|
||||
resultQualifier
|
||||
=[[self class] qualifierWithQualifierArray:newQualifiers];
|
||||
}
|
||||
}
|
||||
return resultQualifier;
|
||||
}
|
||||
|
||||
- (id) initWithKeyValueUnarchiver: (id)param0
|
||||
|
@ -184,9 +213,17 @@ RCS_ID("$Id$")
|
|||
[self notImplemented: _cmd]; //TODO
|
||||
}
|
||||
|
||||
- (id) validateKeysWithRootClassDescription: (id)param0
|
||||
- (NSException *) validateKeysWithRootClassDescription:(EOClassDescription*)classDescription
|
||||
{
|
||||
return [self notImplemented: _cmd]; //TODO
|
||||
//Ayers: Review
|
||||
int i = 0;
|
||||
int count = [_qualifiers count];
|
||||
for(i=0; i<count; i++)
|
||||
{
|
||||
[[_qualifiers objectAtIndex:i]
|
||||
validateKeysWithRootClassDescription:classDescription];
|
||||
}
|
||||
return nil;//TODO
|
||||
}
|
||||
|
||||
- (id) description
|
||||
|
|
|
@ -42,6 +42,7 @@ RCS_ID("$Id$")
|
|||
#include <Foundation/NSString.h>
|
||||
#include <Foundation/NSDictionary.h>
|
||||
#include <Foundation/NSObjCRuntime.h>
|
||||
#include <Foundation/NSException.h>
|
||||
#else
|
||||
#include <Foundation/Foundation.h>
|
||||
#endif
|
||||
|
@ -69,6 +70,12 @@ RCS_ID("$Id$")
|
|||
- (NSComparisonResult)compare: (id)other;
|
||||
@end
|
||||
|
||||
@interface EOQualifier (Privat)
|
||||
- (void) _addBindingsToDictionary: (NSMutableDictionary*)dictionary;
|
||||
- (NSException *)_validateKey: (NSString*)key
|
||||
withRootClassDescription: (EOClassDescription *)classDescription;
|
||||
@end
|
||||
|
||||
@implementation EOKeyValueQualifier
|
||||
|
||||
/**
|
||||
|
@ -254,38 +261,39 @@ RCS_ID("$Id$")
|
|||
}
|
||||
|
||||
|
||||
- (id) validateKeysWithRootClassDescription: (id)param0
|
||||
- (NSException *)validateKeysWithRootClassDescription:(EOClassDescription*)classDescription
|
||||
{
|
||||
return [self notImplemented: _cmd]; //TODO
|
||||
}
|
||||
|
||||
- (id) initWithKeyValueUnarchiver: (id)param0
|
||||
{
|
||||
return [self notImplemented: _cmd]; //TODO
|
||||
}
|
||||
|
||||
- (void) encodeWithKeyValueArchiver: (id)param0
|
||||
{
|
||||
[self notImplemented: _cmd]; //TODO
|
||||
}
|
||||
|
||||
- (void) _addBindingsToDictionary: (id)param0
|
||||
{
|
||||
[self notImplemented: _cmd]; //TODO
|
||||
return [self _validateKey:_key
|
||||
withRootClassDescription:classDescription];
|
||||
}
|
||||
|
||||
- (EOQualifier *) qualifierWithBindings: (NSDictionary*)bindings
|
||||
requiresAllVariables: (BOOL)requiresAllVariables
|
||||
{
|
||||
EOQualifier* qualifier=nil;
|
||||
|
||||
EOFLOGObjectLevelArgs(@"EOQualifier", @"bindings=%@", bindings);
|
||||
|
||||
if ([bindings count] > 0)
|
||||
if ([_value isKindOfClass:[EOQualifierVariable class]])
|
||||
{
|
||||
NSEmitTODO();
|
||||
return [self notImplemented: _cmd]; //TODO
|
||||
}
|
||||
else
|
||||
return self;
|
||||
id value=[bindings valueForKeyPath:[(EOQualifierVariable*)_value key]];
|
||||
if (value)
|
||||
qualifier=[EOKeyValueQualifier qualifierWithKey:_key
|
||||
operatorSelector:_selector
|
||||
value:value];
|
||||
else if (requiresAllVariables)
|
||||
{
|
||||
[NSException raise: EOQualifierVariableSubstitutionException
|
||||
format: @"%@ -- %@ 0x%x: Value for '%@' not found in binding resolution",
|
||||
NSStringFromSelector(_cmd),
|
||||
NSStringFromClass([self class]),
|
||||
self,
|
||||
_key];
|
||||
};
|
||||
}
|
||||
else
|
||||
qualifier=self;
|
||||
return qualifier;
|
||||
}
|
||||
|
||||
- (EOQualifier *) qualifierMigratedFromEntity: (id)param0
|
||||
|
@ -294,6 +302,17 @@ RCS_ID("$Id$")
|
|||
return [self notImplemented: _cmd]; //TODO
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation EOKeyValueQualifier (Privat)
|
||||
- (void) _addBindingsToDictionary: (NSMutableDictionary*)dictionary
|
||||
{
|
||||
if ([_value isKindOfClass:[EOQualifierVariable class]])
|
||||
[dictionary setObject:[(EOQualifierVariable*)_value key]
|
||||
forKey:_key];
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
|
||||
@implementation EOKeyValueQualifier (EOKeyValueArchiving)
|
||||
|
@ -318,9 +337,15 @@ RCS_ID("$Id$")
|
|||
return self;
|
||||
}
|
||||
|
||||
- (void) encodeWithKeyValueArchiver: (EOKeyValueUnarchiver*)archiver
|
||||
- (void) encodeWithKeyValueArchiver: (EOKeyValueArchiver*)archiver
|
||||
{
|
||||
[self notImplemented: _cmd];
|
||||
NSString* selectorName=NSStringFromSelector(_selector);
|
||||
[archiver encodeObject:_key
|
||||
forKey:@"key"];
|
||||
[archiver encodeObject:selectorName
|
||||
forKey:@"selectorName"];
|
||||
[archiver encodeObject:_value
|
||||
forKey:@"value"];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -49,6 +49,9 @@ RCS_ID("$Id$")
|
|||
|
||||
#include <EOControl/EOQualifier.h>
|
||||
|
||||
@interface EOQualifier (Privat)
|
||||
- (void) _addBindingsToDictionary: (NSMutableDictionary*)dictionary;
|
||||
@end
|
||||
|
||||
@implementation EONotQualifier
|
||||
|
||||
|
@ -92,4 +95,28 @@ RCS_ID("$Id$")
|
|||
return ([_qualifier evaluateWithObject: object] ? NO : YES);
|
||||
}
|
||||
|
||||
- (NSException *) validateKeysWithRootClassDescription:(EOClassDescription*)classDescription
|
||||
{
|
||||
return [_qualifier validateKeysWithRootClassDescription:classDescription];
|
||||
}
|
||||
|
||||
- (EOQualifier *) qualifierWithBindings: (NSDictionary *)bindings
|
||||
requiresAllVariables: (BOOL)requiresAllVariables
|
||||
{
|
||||
EOQualifier* resultQualifier
|
||||
= [_qualifier qualifierWithBindings: bindings
|
||||
requiresAllVariables: requiresAllVariables];
|
||||
if (resultQualifier==_qualifier)
|
||||
resultQualifier=self;
|
||||
else if (resultQualifier)
|
||||
resultQualifier=[[self class]qualifierWithQualifier:resultQualifier];
|
||||
return resultQualifier;
|
||||
}
|
||||
|
||||
- (void) _addBindingsToDictionary: (NSMutableDictionary*)dictionary
|
||||
{
|
||||
[_qualifier _addBindingsToDictionary:dictionary];
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
|
|
|
@ -152,23 +152,43 @@ RCS_ID("$Id$")
|
|||
return [self notImplemented: _cmd]; //TODO
|
||||
}
|
||||
|
||||
- (void) _addBindingsToDictionary: (id)param0
|
||||
- (void) _addBindingsToDictionary: (NSMutableDictionary*)dictionary
|
||||
{
|
||||
[self notImplemented: _cmd]; //TODO
|
||||
int i=0;
|
||||
int count=[_qualifiers count];
|
||||
for(i=0;i<count;i++)
|
||||
[[_qualifiers objectAtIndex:i]_addBindingsToDictionary:dictionary];
|
||||
}
|
||||
|
||||
- (EOQualifier *) qualifierWithBindings: (NSDictionary *)bindings
|
||||
requiresAllVariables: (BOOL)requiresAllVariables
|
||||
{
|
||||
EOQualifier* resultQualifier=nil;
|
||||
int i=0;
|
||||
int count=[_qualifiers count];
|
||||
NSMutableArray* newQualifiers=nil;
|
||||
EOFLOGObjectLevelArgs(@"EOQualifier", @"bindings=%@", bindings);
|
||||
|
||||
if ([bindings count] > 0)
|
||||
for(i=0;i<count;i++)
|
||||
{
|
||||
NSEmitTODO();
|
||||
return [self notImplemented: _cmd]; //TODO
|
||||
}
|
||||
else
|
||||
return self;
|
||||
EOQualifier* qualifier=[_qualifiers objectAtIndex:i];
|
||||
EOQualifier* newQualifier=[qualifier qualifierWithBindings:bindings
|
||||
requiresAllVariables:requiresAllVariables];
|
||||
if (newQualifier)
|
||||
{
|
||||
if (!newQualifiers)
|
||||
newQualifiers=(NSMutableArray*)[NSMutableArray array];
|
||||
[newQualifiers addObject:newQualifier];
|
||||
};
|
||||
};
|
||||
if ([newQualifiers count]>0)
|
||||
{
|
||||
if ([newQualifiers count]==1)
|
||||
resultQualifier=[newQualifiers lastObject];
|
||||
else
|
||||
resultQualifier=[[self class]qualifierWithQualifierArray:newQualifiers];
|
||||
};
|
||||
return resultQualifier;
|
||||
}
|
||||
|
||||
- (id) initWithKeyValueUnarchiver: (id)param0
|
||||
|
@ -181,9 +201,14 @@ RCS_ID("$Id$")
|
|||
[self notImplemented: _cmd]; //TODO
|
||||
}
|
||||
|
||||
- (id) validateKeysWithRootClassDescription: (id)param0
|
||||
- (NSException *) validateKeysWithRootClassDescription:(EOClassDescription*)classDescription
|
||||
{
|
||||
return [self notImplemented: _cmd]; //TODO
|
||||
int i=0;
|
||||
int count=[_qualifiers count];
|
||||
for(i=0;i<count;i++)
|
||||
[[_qualifiers objectAtIndex:i]validateKeysWithRootClassDescription:classDescription];
|
||||
//TODO
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (id) description
|
||||
|
|
|
@ -58,9 +58,13 @@ RCS_ID("$Id$")
|
|||
#include <EOControl/EOQualifier.h>
|
||||
#include <EOControl/EONSAddOns.h>
|
||||
#include <EOControl/EODebug.h>
|
||||
#include <EOControl/EOClassDescription.h>
|
||||
|
||||
#include <GNUstepBase/GSObjCRuntime.h>
|
||||
|
||||
NSString *EOQualifierVariableSubstitutionException=@"EOQualifierVariableSubstitutionException";
|
||||
|
||||
|
||||
@implementation NSNumber (EOQualifierExtras)
|
||||
|
||||
- (id)initWithString: (NSString *)string
|
||||
|
@ -88,6 +92,12 @@ RCS_ID("$Id$")
|
|||
}
|
||||
@end
|
||||
|
||||
@interface EOQualifier (Privat)
|
||||
- (void) _addBindingsToDictionary: (NSMutableDictionary*)dictionary;
|
||||
- (id) _qualifierMigratedToSubEntity: (id)param0
|
||||
fromParentEntity: (id)param1;
|
||||
@end
|
||||
|
||||
@implementation EOQualifier
|
||||
|
||||
/**
|
||||
|
@ -676,9 +686,52 @@ static Class whichQualifier(const char **cFormat, const char **s)
|
|||
return [EOOrQualifier qualifierWithQualifierArray: array];
|
||||
}
|
||||
|
||||
- (NSException *)validateKeysWithRootClassDescription: (EOClassDescription *)classDesc
|
||||
- (NSException *)_validateKey:(NSString*)key
|
||||
withRootClassDescription: (EOClassDescription *)classDescription
|
||||
{
|
||||
return [self notImplemented: _cmd]; //TODO
|
||||
if (!key)
|
||||
[NSException raise: NSInvalidArgumentException
|
||||
format: @"%@ -- %@ 0x%x: nil key",
|
||||
NSStringFromSelector(_cmd),
|
||||
NSStringFromClass([self class]),
|
||||
self];
|
||||
else
|
||||
{
|
||||
NSArray* keyParts = [key componentsSeparatedByString:@"."];
|
||||
int keyPartsCount=[keyParts count];
|
||||
int i = 0;
|
||||
BOOL stop=NO;
|
||||
for(i=0;i<keyPartsCount && !stop; i++)
|
||||
{
|
||||
NSString* keyPart = [keyParts objectAtIndex:i];
|
||||
NSArray* attributeKeys = [classDescription attributeKeys];
|
||||
if ([attributeKeys containsObject:keyPart])
|
||||
{
|
||||
stop=(i!=(keyPartsCount-1));
|
||||
}
|
||||
else
|
||||
{
|
||||
classDescription = [classDescription classDescriptionForDestinationKey:keyPart];
|
||||
stop=(classDescription==nil);
|
||||
};
|
||||
};
|
||||
|
||||
if (stop)
|
||||
{
|
||||
[NSException raise: NSInternalInconsistencyException
|
||||
format: @"%@ -- %@ 0x%x: invalid key '%@'",
|
||||
NSStringFromSelector(_cmd),
|
||||
NSStringFromClass([self class]),
|
||||
key];
|
||||
} ;
|
||||
};
|
||||
//TODO
|
||||
return nil;
|
||||
};
|
||||
|
||||
- (NSException *)validateKeysWithRootClassDescription: (EOClassDescription *)classDescription
|
||||
{
|
||||
return [self subclassResponsibility: _cmd];
|
||||
}
|
||||
|
||||
+ (NSArray *)allQualifierOperators
|
||||
|
@ -774,16 +827,15 @@ static Class whichQualifier(const char **cFormat, const char **s)
|
|||
- (EOQualifier *)qualifierWithBindings: (NSDictionary *)bindings
|
||||
requiresAllVariables: (BOOL)requiresAll
|
||||
{
|
||||
// TODO
|
||||
[self notImplemented: _cmd];
|
||||
return nil;
|
||||
return [self subclassResponsibility: _cmd];
|
||||
}
|
||||
|
||||
/** Returns binding keys **/
|
||||
- (NSArray *)bindingKeys
|
||||
{
|
||||
// TODO
|
||||
[self notImplemented: _cmd];
|
||||
return nil;
|
||||
NSMutableDictionary* bindings = (NSMutableDictionary*)[NSMutableDictionary dictionary];
|
||||
[self _addBindingsToDictionary:bindings];
|
||||
return [bindings allKeys];
|
||||
}
|
||||
|
||||
//NO
|
||||
|
@ -795,14 +847,9 @@ static Class whichQualifier(const char **cFormat, const char **s)
|
|||
|
||||
- (NSString *)keyPathForBindingKey: (NSString *)key
|
||||
{
|
||||
// TODO
|
||||
[self notImplemented: _cmd];
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (void) _addBindingsToDictionary: (id)param0
|
||||
{
|
||||
[self notImplemented: _cmd]; //TODO
|
||||
NSMutableDictionary* bindings = (NSMutableDictionary*)[NSMutableDictionary dictionary];
|
||||
[self _addBindingsToDictionary:bindings];
|
||||
return [bindings objectForKey:key];
|
||||
}
|
||||
|
||||
- (EOQualifier *)qualifierMigratedFromEntity: (EOEntity *)entity
|
||||
|
@ -811,16 +858,25 @@ static Class whichQualifier(const char **cFormat, const char **s)
|
|||
return [self notImplemented: _cmd]; //TODO
|
||||
}
|
||||
|
||||
- (BOOL) usesDistinct
|
||||
{
|
||||
[self notImplemented: _cmd]; //TODO
|
||||
return NO;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation EOQualifier (Privat)
|
||||
|
||||
- (id) _qualifierMigratedToSubEntity: (id)param0
|
||||
fromParentEntity: (id)param1
|
||||
{
|
||||
return [self notImplemented: _cmd]; //TODO
|
||||
}
|
||||
|
||||
- (BOOL) usesDistinct
|
||||
- (void) _addBindingsToDictionary: (NSMutableDictionary*)dictionary
|
||||
{
|
||||
[self notImplemented: _cmd]; //TODO
|
||||
return NO;
|
||||
}
|
||||
|
||||
@end
|
||||
|
@ -996,7 +1052,7 @@ _isLike (NSString *self, NSString *regExpr, BOOL isCaseSensative)
|
|||
if ([regExScanner scanCharactersFromSet: isLikeWildCardSet
|
||||
intoString: &scanned])
|
||||
{
|
||||
char *cScanned;
|
||||
const char *cScanned;
|
||||
|
||||
for (cScanned = [scanned cString]; *cScanned != 0; cScanned++)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue