diff --git a/ChangeLog b/ChangeLog index 97f944cd..4b657b4b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2005-02-14 01:00 Gregory John Casamento + + * GormObjCHeaderParser/OCIVarDecl.m: Corrected problem with + reading declarations which have the "*" spaced oddly. Problem + reported by Nicolas Roard. + 2005-02-13 09:37 Gregory John Casamento * GModelDecoder.m: After gmodel load, mark the document as diff --git a/GormObjCHeaderParser/OCIVarDecl.m b/GormObjCHeaderParser/OCIVarDecl.m index 590c72d4..0a35ed51 100644 --- a/GormObjCHeaderParser/OCIVarDecl.m +++ b/GormObjCHeaderParser/OCIVarDecl.m @@ -63,6 +63,7 @@ NSScanner *stripScanner = [NSScanner scannerWithString: ivarString]; NSString *resultString = nil; NSString *tempString = [NSString stringWithString: @""]; + NSString *tempString2 = [NSString stringWithString: @""]; NSCharacterSet *wsnl = [NSCharacterSet whitespaceAndNewlineCharacterSet]; NSString *typeName = [NSString stringWithString: @""]; NSString *varName = [NSString stringWithString: @""]; @@ -78,10 +79,28 @@ } } - // strip protocol qualifiers - if(lookAhead(tempString,@"<")) + if(lookAhead(tempString, @"*")) { stripScanner = [NSScanner scannerWithString: tempString]; + while(![stripScanner isAtEnd]) + { + NSString *string = nil, *string2 = nil; + [stripScanner scanUpToString: @"*" intoString: &string]; + [stripScanner scanString: @"*" intoString: NULL]; + [stripScanner scanUpToCharactersFromSet: wsnl intoString: &string2]; + tempString2 = [tempString2 stringByAppendingString: string]; + tempString2 = [tempString2 stringByAppendingString: string2]; + } + } + else + { + tempString2 = tempString; + } + + // strip protocol qualifiers + if(lookAhead(tempString2,@"<")) + { + stripScanner = [NSScanner scannerWithString: tempString2]; [stripScanner scanUpToString: @"<" intoString: &typeName]; [stripScanner scanUpToAndIncludingString: @">" intoString: NULL]; [stripScanner scanUpToCharactersFromSet: wsnl intoString: &varName]; @@ -91,7 +110,7 @@ } else { - resultString = tempString; + resultString = tempString2; } ASSIGN(ivarString, resultString);