* Headers/gnustep/base/GSObjCRuntime.h/m (GSPrintf),

* Headers/gnustep/base/NSObjCRuntime.h (GSPrintf),
        * Source/NSLog.m (GSPrintf): Moved implementation from NSLog.m
        * to
        GSObjCRuntime.m and declaration from NSObjCRuntime.h to
        GSObjCRuntime.h.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17084 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
David Ayers 2003-07-01 17:00:14 +00:00
parent a8fd582a87
commit f1fb026bb9
5 changed files with 77 additions and 62 deletions

View file

@ -33,9 +33,11 @@
#ifndef NeXT_Foundation_LIBRARY
#include <Foundation/NSArray.h>
#include <Foundation/NSAutoreleasePool.h>
#include <Foundation/NSData.h>
#include <Foundation/NSDictionary.h>
#include <Foundation/NSEnumerator.h>
#include <Foundation/NSException.h>
#include <Foundation/NSLock.h>
#include <Foundation/NSMethodSignature.h>
#include <Foundation/NSObjCRuntime.h>
#include <Foundation/NSSet.h>
@ -1513,3 +1515,50 @@ GSLastErrorStr(long error_id)
return strerror(error_id);
#endif
}
BOOL
GSPrintf (FILE *fptr, NSString* format, ...)
{
static Class stringClass = 0;
static NSStringEncoding enc;
CREATE_AUTORELEASE_POOL(arp);
va_list ap;
NSString *message;
NSData *data;
BOOL ok = NO;
if (stringClass == 0)
{
[gnustep_global_lock lock];
if (stringClass == 0)
{
stringClass = [NSString class];
enc = [stringClass defaultCStringEncoding];
}
[gnustep_global_lock unlock];
}
message = [stringClass allocWithZone: NSDefaultMallocZone()];
va_start (ap, format);
message = [message initWithFormat: format locale: nil arguments: ap];
va_end (ap);
data = [message dataUsingEncoding: enc];
if (data == nil)
{
data = [message dataUsingEncoding: NSUTF8StringEncoding];
}
RELEASE(message);
if (data != nil)
{
unsigned int length = [data length];
if (length == 0 || fwrite([data bytes], 1, length, fptr) == length)
{
ok = YES;
}
}
RELEASE(arp);
return ok;
}