mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-23 09:04:13 +00:00
Tidied
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@5294 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
d4c4e59396
commit
7a7a91d766
4 changed files with 65 additions and 6 deletions
|
@ -3,6 +3,8 @@ Fri Nov 26 19:46:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
|
|||
* Headers/Foundation/NSString.h: Tidied and fixed return types for
|
||||
for a few methods.
|
||||
* Source/NSString.m: ditto.
|
||||
* Headers/NSRange.h: Added NSRangeFromString()
|
||||
* Source/NSRange.m: Implemented NSRangeFromString()
|
||||
|
||||
Sun Nov 21 6:35:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Interface for NSObject for GNUStep
|
||||
* Copyright (C) 1995,199 Free Software Foundation, Inc.
|
||||
/*
|
||||
* Copyright (C) 1995,1999 Free Software Foundation, Inc.
|
||||
*
|
||||
* Written by: Adam Fedor <fedor@boulder.colorado.edu>
|
||||
* Date: 1995
|
||||
|
@ -134,8 +134,8 @@ NSIntersectionRange (NSRange aRange, NSRange bRange)
|
|||
|
||||
@class NSString;
|
||||
|
||||
extern NSString *
|
||||
NSStringFromRange(NSRange range);
|
||||
extern NSString *NSStringFromRange(NSRange range);
|
||||
extern NSRange NSRangeFromString(NSString *aString);
|
||||
|
||||
#ifdef GS_DEFINED_MAX
|
||||
#undef GS_DEFINED_MAX
|
||||
|
|
|
@ -282,6 +282,14 @@ enum {
|
|||
@protocol NSMutableString <NSString>
|
||||
|
||||
// Creating Temporary Strings
|
||||
+ (id) string;
|
||||
+ (id) stringWithCharacters: (const unichar*)chars
|
||||
length: (unsigned int)length;
|
||||
+ (id) stringWithCString: (const char*)byteString
|
||||
length: (unsigned int)length;
|
||||
+ (id) stringWithCString: (const char*) byteString;
|
||||
+ (id) stringWithFormat: (NSString*)format,...;
|
||||
+ (id) stringWithContentsOfFile:(NSString *)path;
|
||||
+ (NSMutableString*) stringWithCapacity: (unsigned)capacity;
|
||||
|
||||
// Initializing Newly Allocated Strings
|
||||
|
|
|
@ -8,9 +8,35 @@
|
|||
#include <Foundation/NSException.h>
|
||||
#include <Foundation/NSString.h>
|
||||
#include <Foundation/NSRange.h>
|
||||
#include <Foundation/NSScanner.h>
|
||||
|
||||
@class NSString;
|
||||
|
||||
static Class NSStringClass = 0;
|
||||
static Class NSScannerClass = 0;
|
||||
static SEL scanIntSel = @selector(scanInt:);
|
||||
static SEL scanStringSel = @selector(scanString:intoString:);
|
||||
static SEL scannerSel = @selector(scannerWithString:);
|
||||
static BOOL (*scanIntImp)(NSScanner*, SEL, int*);
|
||||
static BOOL (*scanStringImp)(NSScanner*, SEL, NSString*, NSString**);
|
||||
static id (*scannerImp)(Class, SEL, NSString*);
|
||||
|
||||
static inline void
|
||||
setupCache()
|
||||
{
|
||||
if (NSStringClass == 0)
|
||||
{
|
||||
NSStringClass = [NSString class];
|
||||
NSScannerClass = [NSScanner class];
|
||||
scanIntImp = (BOOL (*)(NSScanner*, SEL, int*))
|
||||
[NSScannerClass instanceMethodForSelector: scanIntSel];
|
||||
scanStringImp = (BOOL (*)(NSScanner*, SEL, NSString*, NSString**))
|
||||
[NSScannerClass instanceMethodForSelector: scanStringSel];
|
||||
scannerImp = (id (*)(Class, SEL, NSString*))
|
||||
[NSScannerClass methodForSelector: scannerSel];
|
||||
}
|
||||
}
|
||||
|
||||
NSRange
|
||||
NSMakeRange(unsigned int location, unsigned int length)
|
||||
{
|
||||
|
@ -27,10 +53,33 @@ NSMakeRange(unsigned int location, unsigned int length)
|
|||
return range;
|
||||
}
|
||||
|
||||
NSRange
|
||||
NSRangeFromString(NSString* string)
|
||||
{
|
||||
NSScanner *scanner;
|
||||
NSRange range;
|
||||
|
||||
setupCache();
|
||||
scanner = (*scannerImp)(NSScannerClass, scannerSel, string);
|
||||
if ((*scanStringImp)(scanner, scanStringSel, @"{", NULL)
|
||||
&& (*scanStringImp)(scanner, scanStringSel, @"location", NULL)
|
||||
&& (*scanStringImp)(scanner, scanStringSel, @"=", NULL)
|
||||
&& (*scanIntImp)(scanner, scanIntSel, &range.location)
|
||||
&& (*scanStringImp)(scanner, scanStringSel, @";", NULL)
|
||||
&& (*scanStringImp)(scanner, scanStringSel, @"length", NULL)
|
||||
&& (*scanStringImp)(scanner, scanStringSel, @"=", NULL)
|
||||
&& (*scanIntImp)(scanner, scanIntSel, &range.length)
|
||||
&& (*scanStringImp)(scanner, scanStringSel, @"}", NULL))
|
||||
return range;
|
||||
else
|
||||
return NSMakeRange(0, 0);
|
||||
}
|
||||
|
||||
NSString *
|
||||
NSStringFromRange(NSRange range)
|
||||
{
|
||||
return [NSString stringWithFormat: @"{location = %d, length = %d}",
|
||||
range.location, range.length];
|
||||
setupCache();
|
||||
return [NSStringClass stringWithFormat: @"{location = %d, length = %d}",
|
||||
range.location, range.length];
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue