Add deprecation support

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@21209 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-Macdonald 2005-05-10 05:06:08 +00:00
parent a5cf839255
commit 80152a8a0d
6 changed files with 122 additions and 95 deletions

View file

@ -1,3 +1,11 @@
2005-05-10 Richard Frith-Macdonald <rfm@gnu.org>
* Tools/AGSHtml.h:
* Tools/AGSHtml.m:
* Tools/AGSParser.m:
* Tools/gsdoc-1_0_2.dtd:
Support deprecation version as well as addition/removal.
2005-05-09 David Ayers <d.ayers@inode.at> 2005-05-09 David Ayers <d.ayers@inode.at>
* Source/NSPropertyList.m (OAppend): Revert patch from * Source/NSPropertyList.m (OAppend): Revert patch from

View file

@ -26,6 +26,7 @@
@interface AGSHtml : NSObject @interface AGSHtml : NSObject
{ {
NSString *project;
AGSIndex *localRefs; AGSIndex *localRefs;
AGSIndex *globalRefs; AGSIndex *globalRefs;
AGSIndex *projectRefs; AGSIndex *projectRefs;

View file

@ -84,6 +84,7 @@ static NSString *mainFont = nil;
- (void) dealloc - (void) dealloc
{ {
RELEASE(project);
RELEASE(globalRefs); RELEASE(globalRefs);
RELEASE(localRefs); RELEASE(localRefs);
RELEASE(projectRefs); RELEASE(projectRefs);
@ -109,6 +110,8 @@ static NSString *mainFont = nil;
- (id) init - (id) init
{ {
indent = [[NSMutableString alloc] initWithCapacity: 64]; indent = [[NSMutableString alloc] initWithCapacity: 64];
project = RETAIN([[NSUserDefaults standardUserDefaults]
stringForKey: @"Project"]);
return self; return self;
} }
@ -2346,52 +2349,72 @@ static NSString *mainFont = nil;
{ {
NSString *ovadd = [prop objectForKey: @"ovadd"]; NSString *ovadd = [prop objectForKey: @"ovadd"];
NSString *gvadd = [prop objectForKey: @"gvadd"]; NSString *gvadd = [prop objectForKey: @"gvadd"];
NSString *ovdep = [prop objectForKey: @"ovdep"];
NSString *gvdep = [prop objectForKey: @"gvdep"];
NSString *ovrem = [prop objectForKey: @"ovrem"]; NSString *ovrem = [prop objectForKey: @"ovrem"];
NSString *gvrem = [prop objectForKey: @"gvrem"]; NSString *gvrem = [prop objectForKey: @"gvrem"];
if ([ovadd length] > 0) if ([ovadd length] > 0)
{ {
int add = [ovadd intValue]; int add = [ovadd intValue];
int dep = [ovdep intValue];
int rem = [ovrem intValue]; int rem = [ovrem intValue];
[buf appendString: indent]; [buf appendString: indent];
[buf appendString: @"<b>Releases:</b>"]; [buf appendString: @"<b>Releases:</b> "];
if (add < 4) if (add < 4)
{ {
[buf appendString: @" OpenStep"]; [buf appendString: @"OpenStep"];
} }
else if (add < 10) else if (add < 10)
{ {
[buf appendString: @" OPENSTEP "]; [buf appendString: @"OPENSTEP"];
[buf appendString: ovadd]; [buf appendString: ovadd];
} }
else else
{ {
[buf appendString: @" MacOS-X "]; [buf appendString: @"MacOS-X"];
[buf appendString: ovadd]; [buf appendString: ovadd];
} }
if (dep > add)
{
[buf appendString: @" deprecated at "];
if (add < 10)
{
[buf appendString: @"OPENSTEP"];
[buf appendString: ovdep];
}
else
{
[buf appendString: @"MacOS-X"];
[buf appendString: ovdep];
}
}
if (rem > add) if (rem > add)
{ {
[buf appendString: @" removed at "]; [buf appendString: @" removed at "];
if (add < 4) if (add < 10)
{ {
[buf appendString: @" OpenStep"]; [buf appendString: @"OPENSTEP"];
} [buf appendString: ovrem];
else if (add < 10)
{
[buf appendString: @" OPENSTEP "];
[buf appendString: ovadd];
} }
else else
{ {
[buf appendString: @" MacOS-X "]; [buf appendString: @"MacOS-X"];
[buf appendString: ovadd]; [buf appendString: ovrem];
} }
} }
if ([gvadd length] > 0) if ([gvadd length] > 0)
{ {
[buf appendString: @", GNUstep "]; [buf appendString: @", "];
[buf appendString: project];
[buf appendString: @" "];
[buf appendString: gvadd]; [buf appendString: gvadd];
if ([gvdep length] > 0)
{
[buf appendString: @" deprecated at "];
[buf appendString: gvdep];
}
if ([gvrem length] > 0) if ([gvrem length] > 0)
{ {
[buf appendString: @" removed at "]; [buf appendString: @" removed at "];
@ -2403,9 +2426,16 @@ static NSString *mainFont = nil;
else if ([gvadd length] > 0) else if ([gvadd length] > 0)
{ {
[buf appendString: indent]; [buf appendString: indent];
[buf appendString: @"<b>Releases:</b>"]; [buf appendString: @"<b>Releases:</b> "];
[buf appendString: @"GNUstep "]; [buf appendString: project];
[buf appendString: @" "];
[buf appendString: gvadd]; [buf appendString: gvadd];
if ([gvdep length] > 0)
{
[buf appendString: @" deprecated at "];
[buf appendString: gvdep];
}
[buf appendString: @"<br />\n"];
if ([gvrem length] > 0) if ([gvrem length] > 0)
{ {
[buf appendString: @" removed at "]; [buf appendString: @" removed at "];

View file

@ -2946,6 +2946,9 @@ fail:
return [self skipRemainderOfLine]; return [self skipRemainderOfLine];
} }
hadOstep = YES; hadOstep = YES;
[top removeObjectForKey: @"ovadd"];
[top removeObjectForKey: @"ovdep"];
[top removeObjectForKey: @"ovrem"];
} }
else if ([arg isEqual: @"GS_API_VERSION"] == YES) else if ([arg isEqual: @"GS_API_VERSION"] == YES)
{ {
@ -2956,17 +2959,16 @@ fail:
return [self skipRemainderOfLine]; return [self skipRemainderOfLine];
} }
hadGstep = YES; hadGstep = YES;
[top removeObjectForKey: @"gvadd"];
[top removeObjectForKey: @"gvdep"];
[top removeObjectForKey: @"gvrem"];
} }
else else
{ {
break; break;
} }
while (pos < length [self parseSpace: spaces];
&& [spaces characterIsMember: buffer[pos]] == YES)
{
pos++;
}
if (pos < length && buffer[pos] == '(') if (pos < length && buffer[pos] == '(')
{ {
pos++; pos++;
@ -2987,11 +2989,7 @@ fail:
[top setObject: ver forKey: @"gvadd"]; [top setObject: ver forKey: @"gvadd"];
} }
while (pos < length [self parseSpace: spaces];
&& [spaces characterIsMember: buffer[pos]] == YES)
{
pos++;
}
if (pos < length && buffer[pos] == ',') if (pos < length && buffer[pos] == ',')
{ {
pos++; pos++;
@ -3002,18 +3000,7 @@ fail:
ver = @"9999"; ver = @"9999";
} }
i = [ver intValue]; i = [ver intValue];
if (i == 9999 || [ver isEqualToString: @"NEVER"] == YES) if (i != 9999 && [ver isEqualToString: @"NEVER"] == NO)
{
if (openstep)
{
[top removeObjectForKey: @"ovrem"];
}
else
{
[top removeObjectForKey: @"gvrem"];
}
}
else
{ {
ver = [NSString stringWithFormat: @"%d.%d", i/100, i%100]; ver = [NSString stringWithFormat: @"%d.%d", i/100, i%100];
if (openstep) if (openstep)
@ -3026,21 +3013,37 @@ fail:
} }
} }
while (pos < length [self parseSpace: spaces];
&& [spaces characterIsMember: buffer[pos]] == YES) if (pos < length && buffer[pos] == ',')
{ {
pos++; pos++;
ver = [self parseVersion];
if ([ver length] == 0)
{
ver = @"9999";
} }
i = [ver intValue];
if (i != 9999 && [ver isEqualToString: @"NEVER"] == NO)
{
ver = [NSString stringWithFormat: @"%d.%d", i/100, i%100];
if (openstep)
{
[top setObject: ver forKey: @"ovdep"];
}
else
{
[top setObject: ver forKey: @"gvdep"];
}
}
[self parseSpace: spaces];
}
if (pos < length && buffer[pos] == ')') if (pos < length && buffer[pos] == ')')
{ {
pos++; pos++;
} }
while (pos < length [self parseSpace: spaces];
&& [spaces characterIsMember: buffer[pos]] == YES)
{
pos++;
}
if (pos < length-1 && buffer[pos] == '&' && buffer[pos+1] == '&') if (pos < length-1 && buffer[pos] == '&' && buffer[pos+1] == '&')
{ {
pos += 2; pos += 2;
@ -3058,11 +3061,7 @@ fail:
{ {
BOOL isIfDef = [directive isEqual: @"ifdef"]; BOOL isIfDef = [directive isEqual: @"ifdef"];
while (pos < length [self parseSpace: spaces];
&& [spaces characterIsMember: buffer[pos]] == YES)
{
pos++;
}
if (pos < length && buffer[pos] != '\n') if (pos < length && buffer[pos] != '\n')
{ {
NSMutableDictionary *top; NSMutableDictionary *top;
@ -3462,6 +3461,10 @@ fail:
if (ovadd != nil) if (ovadd != nil)
{ {
[m appendFormat: @" ovadd=\"%@\"", ovadd]; [m appendFormat: @" ovadd=\"%@\"", ovadd];
if ((s = [top objectForKey: @"ovdep"]) != nil)
{
[m appendFormat: @" ovdep=\"%@\"", s];
}
if ((s = [top objectForKey: @"ovrem"]) != nil) if ((s = [top objectForKey: @"ovrem"]) != nil)
{ {
[m appendFormat: @" ovrem=\"%@\"", s]; [m appendFormat: @" ovrem=\"%@\"", s];
@ -3470,6 +3473,10 @@ fail:
if (gvadd != nil) if (gvadd != nil)
{ {
[m appendFormat: @" gvadd=\"%@\"", gvadd]; [m appendFormat: @" gvadd=\"%@\"", gvadd];
if ((s = [top objectForKey: @"gvdep"]) != nil)
{
[m appendFormat: @" gvdep=\"%@\"", s];
}
if ((s = [top objectForKey: @"gvrem"]) != nil) if ((s = [top objectForKey: @"gvrem"]) != nil)
{ {
[m appendFormat: @" gvrem=\"%@\"", s]; [m appendFormat: @" gvrem=\"%@\"", s];

View file

@ -240,11 +240,6 @@
is used to override some information from the same method in the is used to override some information from the same method in the
superclass. superclass.
If factory not set, instance method If factory not set, instance method
gvadd is the gnustep version at which this was introduced
gvrem is the gnustep version at which this was removed
ovadd is the OpenStep/OPENSTEP/MacOS-X version at which this was introduced
ovrem is the OpenStep/OPENSTEP/MacOS-X version at which this was removed
--> -->
<!ELEMENT method (((sel, arg?), (sel, arg)*, vararg?), desc?, standards?)> <!ELEMENT method (((sel, arg?), (sel, arg)*, vararg?), desc?, standards?)>
<!ATTLIST method <!ATTLIST method
@ -253,8 +248,10 @@
init %boolean; "no" init %boolean; "no"
override (subclass|never) #IMPLIED override (subclass|never) #IMPLIED
gvadd CDATA #IMPLIED gvadd CDATA #IMPLIED
gvdep CDATA #IMPLIED
gvrem CDATA #IMPLIED gvrem CDATA #IMPLIED
ovadd CDATA #IMPLIED ovadd CDATA #IMPLIED
ovdep CDATA #IMPLIED
ovrem CDATA #IMPLIED ovrem CDATA #IMPLIED
> >
@ -264,42 +261,34 @@
<!ELEMENT declared (#PCDATA)*> <!ELEMENT declared (#PCDATA)*>
<!-- A macro definition. <!-- A macro definition.
gvadd is the gnustep version at which this was introduced
gvrem is the gnustep version at which this was removed
ovadd is the OpenStep/OPENSTEP/MacOS-X version at which this was introduced
ovrem is the OpenStep/OPENSTEP/MacOS-X version at which this was removed
--> -->
<!ELEMENT macro ((arg*, vararg?), declared?, desc?, standards?)> <!ELEMENT macro ((arg*, vararg?), declared?, desc?, standards?)>
<!ATTLIST macro <!ATTLIST macro
name CDATA #REQUIRED name CDATA #REQUIRED
gvadd CDATA #IMPLIED gvadd CDATA #IMPLIED
gvdep CDATA #IMPLIED
gvrem CDATA #IMPLIED gvrem CDATA #IMPLIED
ovadd CDATA #IMPLIED ovadd CDATA #IMPLIED
ovdep CDATA #IMPLIED
ovrem CDATA #IMPLIED ovrem CDATA #IMPLIED
> >
<!-- A type definition. <!-- A type definition.
gvadd is the gnustep version at which this was introduced
gvrem is the gnustep version at which this was removed
ovadd is the OpenStep/OPENSTEP/MacOS-X version at which this was introduced
ovrem is the OpenStep/OPENSTEP/MacOS-X version at which this was removed
--> -->
<!ELEMENT type (declared?, desc?, standards?)> <!ELEMENT type (declared?, desc?, standards?)>
<!ATTLIST type <!ATTLIST type
name CDATA #REQUIRED name CDATA #REQUIRED
type CDATA #REQUIRED type CDATA #REQUIRED
gvadd CDATA #IMPLIED gvadd CDATA #IMPLIED
gvdep CDATA #IMPLIED
gvrem CDATA #IMPLIED gvrem CDATA #IMPLIED
ovadd CDATA #IMPLIED ovadd CDATA #IMPLIED
ovdep CDATA #IMPLIED
ovrem CDATA #IMPLIED ovrem CDATA #IMPLIED
> >
<!-- Variable definition. <!-- Variable definition.
VALUE may be set for a constant or a default value VALUE may be set for a constant or a default value
gvadd is the gnustep version at which this was introduced
gvrem is the gnustep version at which this was removed
ovadd is the OpenStep/OPENSTEP/MacOS-X version at which this was introduced
ovrem is the OpenStep/OPENSTEP/MacOS-X version at which this was removed
--> -->
<!ELEMENT variable (declared?, desc?, standards?)> <!ELEMENT variable (declared?, desc?, standards?)>
<!ATTLIST variable <!ATTLIST variable
@ -307,16 +296,14 @@
type CDATA #REQUIRED type CDATA #REQUIRED
value CDATA #IMPLIED value CDATA #IMPLIED
gvadd CDATA #IMPLIED gvadd CDATA #IMPLIED
gvdep CDATA #IMPLIED
gvrem CDATA #IMPLIED gvrem CDATA #IMPLIED
ovadd CDATA #IMPLIED ovadd CDATA #IMPLIED
ovdep CDATA #IMPLIED
ovrem CDATA #IMPLIED ovrem CDATA #IMPLIED
> >
<!-- Ivariable definition. <!-- Ivariable definition.
gvadd is the gnustep version at which this was introduced
gvrem is the gnustep version at which this was removed
ovadd is the OpenStep/OPENSTEP/MacOS-X version at which this was introduced
ovrem is the OpenStep/OPENSTEP/MacOS-X version at which this was removed
--> -->
<!ELEMENT ivariable (desc?, standards?)> <!ELEMENT ivariable (desc?, standards?)>
<!ATTLIST ivariable <!ATTLIST ivariable
@ -324,17 +311,15 @@
type CDATA #REQUIRED type CDATA #REQUIRED
validity (public|protected|private) "public" validity (public|protected|private) "public"
gvadd CDATA #IMPLIED gvadd CDATA #IMPLIED
gvdep CDATA #IMPLIED
gvrem CDATA #IMPLIED gvrem CDATA #IMPLIED
ovadd CDATA #IMPLIED ovadd CDATA #IMPLIED
ovdep CDATA #IMPLIED
ovrem CDATA #IMPLIED ovrem CDATA #IMPLIED
> >
<!-- Constant definition. <!-- Constant definition.
VALUE may be set for a constant or a default value VALUE may be set for a constant or a default value
gvadd is the gnustep version at which this was introduced
gvrem is the gnustep version at which this was removed
ovadd is the OpenStep/OPENSTEP/MacOS-X version at which this was introduced
ovrem is the OpenStep/OPENSTEP/MacOS-X version at which this was removed
--> -->
<!ELEMENT constant (declared?, desc?, standards?)> <!ELEMENT constant (declared?, desc?, standards?)>
<!ATTLIST constant <!ATTLIST constant
@ -343,63 +328,55 @@
value CDATA #IMPLIED value CDATA #IMPLIED
role (except|defaults|notify|key) #IMPLIED role (except|defaults|notify|key) #IMPLIED
gvadd CDATA #IMPLIED gvadd CDATA #IMPLIED
gvdep CDATA #IMPLIED
gvrem CDATA #IMPLIED gvrem CDATA #IMPLIED
ovadd CDATA #IMPLIED ovadd CDATA #IMPLIED
ovdep CDATA #IMPLIED
ovrem CDATA #IMPLIED ovrem CDATA #IMPLIED
> >
<!-- A function definition. <!-- A function definition.
gvadd is the gnustep version at which this was introduced
gvrem is the gnustep version at which this was removed
ovadd is the OpenStep/OPENSTEP/MacOS-X version at which this was introduced
ovrem is the OpenStep/OPENSTEP/MacOS-X version at which this was removed
--> -->
<!ELEMENT function ((arg*, vararg?), declared?, desc?, standards?)> <!ELEMENT function ((arg*, vararg?), declared?, desc?, standards?)>
<!ATTLIST function <!ATTLIST function
name CDATA #REQUIRED name CDATA #REQUIRED
type CDATA #REQUIRED type CDATA #REQUIRED
gvadd CDATA #IMPLIED gvadd CDATA #IMPLIED
gvdep CDATA #IMPLIED
gvrem CDATA #IMPLIED gvrem CDATA #IMPLIED
ovadd CDATA #IMPLIED ovadd CDATA #IMPLIED
ovdep CDATA #IMPLIED
ovrem CDATA #IMPLIED ovrem CDATA #IMPLIED
> >
<!-- Protocol definition. <!-- Protocol definition.
gvadd is the gnustep version at which this was introduced
gvrem is the gnustep version at which this was removed
ovadd is the OpenStep/OPENSTEP/MacOS-X version at which this was introduced
ovrem is the OpenStep/OPENSTEP/MacOS-X version at which this was removed
--> -->
<!ELEMENT protocol (declared?, conform*, desc?, method*, standards?)> <!ELEMENT protocol (declared?, conform*, desc?, method*, standards?)>
<!ATTLIST protocol <!ATTLIST protocol
name CDATA #REQUIRED name CDATA #REQUIRED
gvadd CDATA #IMPLIED gvadd CDATA #IMPLIED
gvdep CDATA #IMPLIED
gvrem CDATA #IMPLIED gvrem CDATA #IMPLIED
ovadd CDATA #IMPLIED ovadd CDATA #IMPLIED
ovdep CDATA #IMPLIED
ovrem CDATA #IMPLIED ovrem CDATA #IMPLIED
> >
<!-- Category definition. <!-- Category definition.
gvadd is the gnustep version at which this was introduced
gvrem is the gnustep version at which this was removed
ovadd is the OpenStep/OPENSTEP/MacOS-X version at which this was introduced
ovrem is the OpenStep/OPENSTEP/MacOS-X version at which this was removed
--> -->
<!ELEMENT category (declared?, conform*, desc?, method*, standards?)> <!ELEMENT category (declared?, conform*, desc?, method*, standards?)>
<!ATTLIST category <!ATTLIST category
name CDATA #REQUIRED name CDATA #REQUIRED
class CDATA #REQUIRED class CDATA #REQUIRED
gvadd CDATA #IMPLIED gvadd CDATA #IMPLIED
gvdep CDATA #IMPLIED
gvrem CDATA #IMPLIED gvrem CDATA #IMPLIED
ovadd CDATA #IMPLIED ovadd CDATA #IMPLIED
ovdep CDATA #IMPLIED
ovrem CDATA #IMPLIED ovrem CDATA #IMPLIED
> >
<!-- Show a protocol a class conforms to. <!-- Show a protocol a class conforms to.
gvadd is the gnustep version at which this was introduced
gvrem is the gnustep version at which this was removed
ovadd is the OpenStep/OPENSTEP/MacOS-X version at which this was introduced
ovrem is the OpenStep/OPENSTEP/MacOS-X version at which this was removed
--> -->
<!ELEMENT conform (#PCDATA)*> <!ELEMENT conform (#PCDATA)*>
@ -408,8 +385,10 @@
name CDATA #REQUIRED name CDATA #REQUIRED
super CDATA #IMPLIED super CDATA #IMPLIED
gvadd CDATA #IMPLIED gvadd CDATA #IMPLIED
gvdep CDATA #IMPLIED
gvrem CDATA #IMPLIED gvrem CDATA #IMPLIED
ovadd CDATA #IMPLIED ovadd CDATA #IMPLIED
ovdep CDATA #IMPLIED
ovrem CDATA #IMPLIED ovrem CDATA #IMPLIED
> >

View file

@ -610,11 +610,13 @@
not need to write GSDoc using these elements, since they can be not need to write GSDoc using these elements, since they can be
autogenerated from Objective-C source files and special comments autogenerated from Objective-C source files and special comments
within them. Most of the elements representing parts of the API within them. Most of the elements representing parts of the API
have optional attributes ovadd and ovrem which may be used to have optional attributes ovadd, ovdep and ovrem which may be used to
specify the OpenStep/OPENSTEP/MacOS-X versions at which the specify the OpenStep/OPENSTEP/MacOS-X versions at which the
documented element was added to or removed from the API, and documented element was added to, deprecated in, or removed from
gvadd and gvrem which may be used to specify when an elment was the API, Similarly they have gvadd, gvdep and gvrem which may be
added to or removed from the GNUstep API.<br /> used to specify when an elment was added to or removed from
the API of the source code being documented
(eg a gnustep library).<br />
The definition elements are - The definition elements are -
</p> </p>
<deflist> <deflist>