diff --git a/ChangeLog b/ChangeLog index c532724f1..43718839a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2005-12-20 Richard Frith-Macdonald + + * Tools/AGSParser.m: Deal with C++ declaration of external C/ObjC libs. + * Tools/AGSHtml.m: Add changes to avoid colons in references to allow + dumb windows help system to use our output. Same idea as patch #4569 + but (hopefully) doesn't break anything. + * Source/DocMakefile: A couple of fixes for building documentation of + the additions library. + 2005-12-20 Adam Fedor * SSL/configure.ac: Check for GNUSTEP_MAKEFILES not diff --git a/Source/DocMakefile b/Source/DocMakefile index 8bf9f7508..ca4f350f1 100644 --- a/Source/DocMakefile +++ b/Source/DocMakefile @@ -159,6 +159,8 @@ BaseAdditions_AGSDOC_FLAGS = \ -VariablesTemplate TypesAndConstants \ -WordMap '{\ FOUNDATION_EXPORT=extern;FOUNDATION_STATIC_INLINE="";\ + GS_ATTRIB_DEPRECATED="";\ + GS_STATIC_INLINE="";\ GS_GEOM_SCOPE=extern;GS_GEOM_ATTR="";\ GS_EXPORT=extern;GS_DECLARE="";\ GS_RANGE_SCOPE=extern;GS_RANGE_ATTR="";\ diff --git a/Tools/AGSHtml.m b/Tools/AGSHtml.m index d404e584d..93ec97c2d 100644 --- a/Tools/AGSHtml.m +++ b/Tools/AGSHtml.m @@ -187,7 +187,7 @@ static NSString *mainFont = nil; s = [NSString stringWithFormat: @"", kind, s, hash, t, r]; } - return s; + return [s stringByReplacingString: @":" withString: @"$"]; } /** @@ -272,7 +272,7 @@ static NSString *mainFont = nil; kind, s, hash, t, u, sep, r]; } } - return s; + return [s stringByReplacingString: @":" withString: @"$"]; } - (NSString*) outputDocument: (GSXMLNode*)node @@ -362,6 +362,7 @@ static NSString *mainFont = nil; NSString *text = [dict objectForKey: ref]; NSString *file = ref; + ref = [ref stringByReplacingString: @":" withString: @"$"]; if ([file isEqual: base] == YES) { continue; // Don't list current file. @@ -463,6 +464,8 @@ static NSString *mainFont = nil; NSString *ref = [NSString stringWithFormat: @"(%@)%@", catName, mname]; + ref = [ref stringByReplacingString: @":" + withString: @"$"]; [m setObject: file forKey: ref]; } } @@ -495,6 +498,8 @@ static NSString *mainFont = nil; NSString *file = [dict objectForKey: ref]; NSString *text = ref; + ref = [ref stringByReplacingString: @":" withString: @"$"]; + /* * If a reference to a method contains a leading category name, * we don't want it in the visible method name, however if it's @@ -536,7 +541,7 @@ static NSString *mainFont = nil; else { if (([type isEqual: @"protocol"] == YES) - && ([text hasPrefix: @"<"] == NO)) + && ([text hasPrefix: @"<"] == NO)) { // it's an informal protocol, detected earlier as an // unimplemented category of NSObject; make proper link diff --git a/Tools/AGSParser.m b/Tools/AGSParser.m index 48e9d05d3..80cb071df 100644 --- a/Tools/AGSParser.m +++ b/Tools/AGSParser.m @@ -1089,6 +1089,24 @@ } else { + if ([s isEqualToString: @"extern"] == YES + && [self skipSpaces] < length - 3 && buffer[pos] == '\"' + && buffer[pos+1] == 'C' && buffer[pos+2] == '\"') + { + /* + * Found 'extern "C" ...' + * Which is for C++ and should be ignored + */ + pos += 3; + if ([self skipSpaces] < length && buffer[pos] == '{') + { + pos++; + [self skipSpaces]; + } + DESTROY(arp); + return nil; + } + if ([s isEqualToString: @"typedef"] == YES) { isTypedef = YES; @@ -1483,6 +1501,11 @@ } [self skipBlock]; } + else if (buffer[pos] == '}') + { + pos++; // Ignore extraneous '}' + [self skipSpaces]; + } else { [self log: @"Unexpected char (%c) in declaration", buffer[pos]];