mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-22 16:33:29 +00:00
Improve versioning macros
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@21279 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
dd772d376c
commit
9330a41df9
5 changed files with 77 additions and 32 deletions
|
@ -1,3 +1,11 @@
|
|||
2005-06-04 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Headers/Foundation/NSObject.h: Add subminor number to versioning
|
||||
macros as apple sometimes add/remove things at subminor versions.
|
||||
Add some constants for versions.
|
||||
* Tools/AGSParser.m: Support subminor version info
|
||||
* Tools/AGSHatm.m: ditto
|
||||
|
||||
2005-06-04 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
* Headers/Foundation/NSFileManager.h: hide private method in enumerator,
|
||||
|
|
|
@ -40,15 +40,15 @@
|
|||
|
||||
/*
|
||||
* NB. The version values below must be integers ... by convention these are
|
||||
* made up of two digits each for major and minor version numbers
|
||||
* (ie each is in the range 00 to 99) with subminor numbers ignored.
|
||||
* So for a MacOS-X 10.3.9 release the version number would be 1003
|
||||
* made up of two digits each for major, minor and subminor version numbers
|
||||
* (ie each is in the range 00 to 99).
|
||||
* So for a MacOS-X 10.3.9 release the version number would be 100309
|
||||
*
|
||||
* You may define GS_GNUSTEP_V or GS_OPENSTEP_V to ensure that your
|
||||
* program only 'sees' the specified vartsion of the API.
|
||||
* program only 'sees' the specified varsion of the API.
|
||||
*/
|
||||
|
||||
/*
|
||||
/**
|
||||
* Macro to check a defined GNUstep version number (GS_GNUSTEP_V) against the
|
||||
* supplied arguments. Returns true if no GNUstep version is specified,
|
||||
* or if ADD <= VER < REM
|
||||
|
@ -56,7 +56,7 @@
|
|||
#define GS_API_VERSION(ADD,REM) \
|
||||
(!defined(GS_GNUSTEP_V) || (GS_GNUSTEP_V >= ADD && GS_GNUSTEP_V < REM))
|
||||
|
||||
/*
|
||||
/**
|
||||
* Macro to check a defined OpenStep/OPENSTEP/MacOS-X version against the
|
||||
* supplied arguments. Returns true if no version is specified, or if
|
||||
* ADD <= VER < REM
|
||||
|
@ -64,6 +64,26 @@
|
|||
#define OS_API_VERSION(ADD,REM) \
|
||||
(!defined(GS_OPENSTEP_V) || (GS_OPENSTEP_V >= ADD && GS_OPENSTEP_V < REM))
|
||||
|
||||
/**
|
||||
* A constant to represent a feature which is still present in the latest
|
||||
* version. This is the highest possible version number.
|
||||
*/
|
||||
#define GS_API_LATEST 999999
|
||||
|
||||
/**
|
||||
* The version number of the initial OpenStep specification
|
||||
*/
|
||||
#define GS_API_OSSPEC 000000
|
||||
|
||||
/**
|
||||
* The version number of the first OPENSTEP implemenation
|
||||
*/
|
||||
#define GS_API_OPENSTEP 040000
|
||||
|
||||
/**
|
||||
* The version number of the first MacOS-X implementation
|
||||
*/
|
||||
#define GS_API_MACOSX 100000
|
||||
|
||||
#include <Foundation/NSObjCRuntime.h>
|
||||
#include <GNUstepBase/preface.h>
|
||||
|
|
|
@ -299,7 +299,7 @@ enum {
|
|||
- (const char*) cString;
|
||||
#ifndef STRICT_OPENSTEP
|
||||
|
||||
#if OS_API_VERSION(1004,9999) && GS_API_VERSION(0102,9999)
|
||||
#if OS_API_VERSION(100400,GS_API_LATEST) && GS_API_VERSION(010200,GS_API_LATEST)
|
||||
- (const char*) cStringUsingEncoding: (NSStringEncoding)encoding;
|
||||
- (void) getCString: (char*)buffer
|
||||
maxLength: (unsigned int)maxLength
|
||||
|
|
|
@ -2368,12 +2368,12 @@ static NSString *mainFont = nil;
|
|||
}
|
||||
else if (add < 10)
|
||||
{
|
||||
[buf appendString: @"OPENSTEP"];
|
||||
[buf appendString: @"OPENSTEP "];
|
||||
[buf appendString: ovadd];
|
||||
}
|
||||
else
|
||||
{
|
||||
[buf appendString: @"MacOS-X"];
|
||||
[buf appendString: @"MacOS-X "];
|
||||
[buf appendString: ovadd];
|
||||
}
|
||||
if (dep > add)
|
||||
|
@ -2381,12 +2381,12 @@ static NSString *mainFont = nil;
|
|||
[buf appendString: @" deprecated at "];
|
||||
if (add < 10)
|
||||
{
|
||||
[buf appendString: @"OPENSTEP"];
|
||||
[buf appendString: @"OPENSTEP "];
|
||||
[buf appendString: ovdep];
|
||||
}
|
||||
else
|
||||
{
|
||||
[buf appendString: @"MacOS-X"];
|
||||
[buf appendString: @"MacOS-X "];
|
||||
[buf appendString: ovdep];
|
||||
}
|
||||
}
|
||||
|
@ -2395,12 +2395,12 @@ static NSString *mainFont = nil;
|
|||
[buf appendString: @" removed at "];
|
||||
if (add < 10)
|
||||
{
|
||||
[buf appendString: @"OPENSTEP"];
|
||||
[buf appendString: @"OPENSTEP "];
|
||||
[buf appendString: ovrem];
|
||||
}
|
||||
else
|
||||
{
|
||||
[buf appendString: @"MacOS-X"];
|
||||
[buf appendString: @"MacOS-X "];
|
||||
[buf appendString: ovrem];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2976,10 +2976,8 @@ fail:
|
|||
ver = [self parseVersion];
|
||||
if ([ver length] == 0)
|
||||
{
|
||||
ver = @"0";
|
||||
ver = @"0.0.0";
|
||||
}
|
||||
i = [ver intValue];
|
||||
ver = [NSString stringWithFormat: @"%d.%d", i/100, i%100];
|
||||
if (openstep)
|
||||
{
|
||||
[top setObject: ver forKey: @"ovadd"];
|
||||
|
@ -2997,12 +2995,10 @@ fail:
|
|||
ver = [self parseVersion];
|
||||
if ([ver length] == 0)
|
||||
{
|
||||
ver = @"9999";
|
||||
ver = @"99.99.99";
|
||||
}
|
||||
i = [ver intValue];
|
||||
if (i != 9999 && [ver isEqualToString: @"NEVER"] == NO)
|
||||
if ([ver isEqualToString: @"99.99.99"] == NO)
|
||||
{
|
||||
ver = [NSString stringWithFormat: @"%d.%d", i/100, i%100];
|
||||
if (openstep)
|
||||
{
|
||||
[top setObject: ver forKey: @"ovrem"];
|
||||
|
@ -3020,12 +3016,10 @@ fail:
|
|||
ver = [self parseVersion];
|
||||
if ([ver length] == 0)
|
||||
{
|
||||
ver = @"9999";
|
||||
ver = @"99.99.99";
|
||||
}
|
||||
i = [ver intValue];
|
||||
if (i != 9999 && [ver isEqualToString: @"NEVER"] == NO)
|
||||
if ([ver isEqualToString: @"99.99.99"] == NO)
|
||||
{
|
||||
ver = [NSString stringWithFormat: @"%d.%d", i/100, i%100];
|
||||
if (openstep)
|
||||
{
|
||||
[top setObject: ver forKey: @"ovdep"];
|
||||
|
@ -3343,7 +3337,8 @@ fail:
|
|||
|
||||
- (NSString*) parseVersion
|
||||
{
|
||||
unsigned start;
|
||||
unsigned i;
|
||||
NSString *str;
|
||||
|
||||
while (pos < length && [spaces characterIsMember: buffer[pos]] == YES)
|
||||
{
|
||||
|
@ -3355,18 +3350,40 @@ fail:
|
|||
}
|
||||
if (!isdigit(buffer[pos]))
|
||||
{
|
||||
return [self parseIdentifier];
|
||||
str = [self parseIdentifier];
|
||||
}
|
||||
start = pos;
|
||||
while (pos < length)
|
||||
else
|
||||
{
|
||||
if (!isdigit(buffer[pos]))
|
||||
i = pos;
|
||||
while (pos < length)
|
||||
{
|
||||
break;
|
||||
if (!isdigit(buffer[pos]))
|
||||
{
|
||||
break;
|
||||
}
|
||||
pos++;
|
||||
}
|
||||
pos++;
|
||||
str = [NSString stringWithCharacters: &buffer[i] length: pos - i];
|
||||
}
|
||||
return [NSString stringWithCharacters: &buffer[start] length: pos - start];
|
||||
if ([str isEqualToString: @"GS_API_LATEST"] == YES)
|
||||
{
|
||||
str = @"999999";
|
||||
}
|
||||
else if ([str isEqualToString: @"GS_API_OSSPEC"] == YES)
|
||||
{
|
||||
str = @"000000";
|
||||
}
|
||||
else if ([str isEqualToString: @"GS_API_OPENSTEP"] == YES)
|
||||
{
|
||||
str = @"000400";
|
||||
}
|
||||
else if ([str isEqualToString: @"GS_API_MACOSX"] == YES)
|
||||
{
|
||||
str = @"100000";
|
||||
}
|
||||
i = [str intValue];
|
||||
return [NSString stringWithFormat: @"%d.%d.%d",
|
||||
i/10000, (i/100)%100, i%100];
|
||||
}
|
||||
|
||||
- (void) reset
|
||||
|
|
Loading…
Reference in a new issue