Index: Info.plist
==================================================================
--- Info.plist
+++ Info.plist
@@ -15,12 +15,12 @@
CFBundleName
objfw
CFBundlePackageType
FMWK
CFBundleShortVersionString
- 0.3-dev
+ 0.3
CFBundleSignature
OBJF
CFBundleVersion
- 0.3-dev
+ 0.3
Index: configure.ac
==================================================================
--- configure.ac
+++ configure.ac
@@ -1,6 +1,6 @@
-AC_INIT(ObjFW, 0.3-dev, js@webkeks.org)
+AC_INIT(ObjFW, 0.3, js@webkeks.org)
AC_CONFIG_SRCDIR(src)
AC_CANONICAL_HOST
AC_LANG([Objective C])
Index: src/OFXMLElement.m
==================================================================
--- src/OFXMLElement.m
+++ src/OFXMLElement.m
@@ -15,259 +15,14 @@
#include
#include
#import "OFXMLElement.h"
#import "OFString.h"
-#import "OFArray.h"
-#import "OFAutoreleasePool.h"
#import "OFExceptions.h"
int _OFXMLElement_reference;
-@implementation OFXMLAttribute
-+ attributeWithName: (OFString*)name
- prefix: (OFString*)prefix
- namespace: (OFString*)ns
- stringValue: (OFString*)value
-{
- return [[[self alloc] initWithName: name
- prefix: prefix
- namespace: ns
- stringValue: value] autorelease];
-}
-
-- initWithName: (OFString*)name_
- prefix: (OFString*)prefix_
- namespace: (OFString*)ns
- stringValue: (OFString*)value
-{
- self = [super init];
-
- name = [name_ copy];
- prefix = [prefix_ copy];
- namespace = [ns copy];
- stringValue = [value copy];
-
- return self;
-}
-
-- (void)dealloc
-{
- [name release];
- [prefix release];
- [namespace release];
- [stringValue release];
-
- [super dealloc];
-}
-
-- (OFString*)name
-{
- return [[name copy] autorelease];
-}
-
-- (OFString*)prefix
-{
- return [[prefix copy] autorelease];
-}
-
-- (OFString*)namespace
-{
- return [[namespace copy] autorelease];
-}
-
-- (OFString*)stringValue
-{
- return [[stringValue copy] autorelease];
-}
-@end
-
-@implementation OFXMLElement
-+ elementWithName: (OFString*)name_
-{
- return [[[self alloc] initWithName: name_] autorelease];
-}
-
-+ elementWithName: (OFString*)name
- stringValue: (OFString*)stringval
-{
- return [[[self alloc] initWithName: name
- stringValue: stringval] autorelease];
-}
-
-- init
-{
- @throw [OFNotImplementedException newWithClass: isa
- selector: _cmd];
-}
-
-- initWithName: (OFString*)name_
-{
- self = [super init];
-
- name = [name_ copy];
-
- return self;
-}
-
-- initWithName: (OFString*)name_
- stringValue: (OFString*)stringval
-{
- self = [super init];
-
- name = [name_ copy];
- stringValue = [stringval copy];
-
- return self;
-}
-
-- (OFString*)string
-{
- OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
- char *str_c;
- size_t len, i, j, attrs_count;
- OFXMLAttribute **attrs_carray;
- OFString *ret, *tmp;
-
- len = [name cStringLength] + 3;
- str_c = [self allocMemoryWithSize: len];
-
- /* Start of tag */
- *str_c = '<';
- memcpy(str_c + 1, [name cString], [name cStringLength]);
- i = [name cStringLength] + 1;
-
- /* Attributes */
- attrs_carray = [attributes cArray];
- attrs_count = [attributes count];
-
- for (j = 0; j < attrs_count; j++) {
- /* FIXME: Add namespace support */
- OFString *attr_name = [attrs_carray[j] name];
- tmp = [[attrs_carray[j] stringValue] stringByXMLEscaping];
-
- len += [attr_name cStringLength] + [tmp cStringLength] + 4;
- @try {
- str_c = [self resizeMemory: str_c
- toSize: len];
- } @catch (OFException *e) {
- [self freeMemory: str_c];
- @throw e;
- }
-
- str_c[i++] = ' ';
- memcpy(str_c + i, [attr_name cString],
- [attr_name cStringLength]);
- i += [attr_name cStringLength];
- str_c[i++] = '=';
- str_c[i++] = '\'';
- memcpy(str_c + i, [tmp cString], [tmp cStringLength]);
- i += [tmp cStringLength];
- str_c[i++] = '\'';
-
- [pool releaseObjects];
- }
-
- /* Childen */
- if (stringValue != nil || children != nil) {
- if (stringValue != nil)
- tmp = [stringValue stringByXMLEscaping];
- else if (children != nil) {
- OFXMLElement **children_carray = [children cArray];
- size_t children_count = [children count];
- IMP append;
-
- tmp = [OFMutableString string];
- append = [tmp methodForSelector:
- @selector(appendCStringWithoutUTF8Checking:)];
-
- for (j = 0; j < children_count; j++)
- append(tmp, @selector(
- appendCStringWithoutUTF8Checking:),
- [[children_carray[j] string] cString]);
- }
-
- len += [tmp cStringLength] + [name cStringLength] + 2;
- @try {
- str_c = [self resizeMemory: str_c
- toSize: len];
- } @catch (OFException *e) {
- [self freeMemory: str_c];
- @throw e;
- }
-
- str_c[i++] = '>';
- memcpy(str_c + i, [tmp cString], [tmp cStringLength]);
- i += [tmp cStringLength];
- str_c[i++] = '<';
- str_c[i++] = '/';
- memcpy(str_c + i, [name cString], [name cStringLength]);
- i += [name cStringLength];
- } else
- str_c[i++] = '/';
-
- str_c[i++] = '>';
- assert(i == len);
-
- [pool release];
-
- @try {
- ret = [OFString stringWithCString: str_c
- length: len];
- } @finally {
- [self freeMemory: str_c];
- }
- return ret;
-}
-
-- (void)addAttribute: (OFXMLAttribute*)attr
-{
- if (attributes == nil)
- attributes = [[OFMutableArray alloc] init];
-
- /* FIXME: Prevent having it twice! */
-
- [attributes addObject: attr];
-}
-
-- (void)addAttributeWithName: (OFString*)name_
- stringValue: (OFString*)value
-{
- OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
- [self addAttribute: [OFXMLAttribute attributeWithName: name_
- prefix: nil
- namespace: nil
- stringValue: value]];
- [pool release];
-}
-
-/* TODO: Replace attribute */
-/* TODO: Remove attribute */
-
-- (void)addChild: (OFXMLElement*)child
-{
- if (stringValue != nil)
- @throw [OFInvalidArgumentException newWithClass: isa
- selector: _cmd];
-
- if (children == nil)
- children = [[OFMutableArray alloc] init];
-
- [children addObject: child];
-}
-
-- (void)dealloc
-{
- [name release];
- [attributes release];
- [stringValue release];
- [children release];
-
- [super dealloc];
-}
-@end
-
@implementation OFString (OFXMLEscaping)
- (OFString*)stringByXMLEscaping
{
char *str_c, *append, *tmp;
size_t len, append_len;
Index: src/OFXMLParser.m
==================================================================
--- src/OFXMLParser.m
+++ src/OFXMLParser.m
@@ -13,27 +13,16 @@
#include
#import "OFXMLParser.h"
#import "OFString.h"
-#import "OFArray.h"
#import "OFAutoreleasePool.h"
#import "OFExceptions.h"
#import "macros.h"
int _OFXMLParser_reference;
-static OF_INLINE OFString*
-transform_string(OFMutableString *cache,
- OFObject *handler)
-{
- /* TODO: Support for xml:space */
-
- [cache removeLeadingAndTrailingWhitespaces];
- return [cache stringByXMLUnescapingWithHandler: handler];
-}
-
static OF_INLINE OFString*
parse_numeric_entity(const char *entity, size_t length)
{
of_unichar_t c;
size_t i;
@@ -78,426 +67,10 @@
return [OFString stringWithCString: buf
length: i];
}
-@implementation OFXMLParser
-+ xmlParser
-{
- return [[[self alloc] init] autorelease];
-}
-
-- init
-{
- self = [super init];
-
- @try {
- cache = [[OFMutableString alloc] init];
- previous = [[OFMutableArray alloc] init];
- } @catch (OFException *e) {
- /* We can't use [super dealloc] on OS X here. Compiler bug? */
- [self dealloc];
- @throw e;
- }
-
- return self;
-}
-
-- (void)dealloc
-{
- [delegate release];
-
- [cache release];
- [name release];
- [prefix release];
- [ns release];
- [attrs release];
- [attrName release];
- [attrPrefix release];
- [previous release];
-
- [super dealloc];
-}
-
-- (id)delegate
-{
- return [[delegate retain] autorelease];
-}
-
-- (void)setDelegate: (OFObject *)delegate_
-{
- [delegate_ retain];
- [delegate release];
- delegate = delegate_;
-}
-
-- (void)parseBuffer: (const char*)buf
- withSize: (size_t)size
-{
- OFAutoreleasePool *pool;
- size_t i, last, len;
-
- last = 0;
-
- for (i = 0; i < size; i++) {
- switch (state) {
- /* Not in a tag */
- case OF_XMLPARSER_OUTSIDE_TAG:
- if (buf[i] == '<') {
- len = i - last;
-
- if (len > 0)
- [cache appendCString: buf + last
- withLength: len];
-
- if ([cache cStringLength] > 0) {
- OFString *str;
-
- pool = [[OFAutoreleasePool alloc] init];
- str = transform_string(cache, self);
- [delegate xmlParser: self
- foundString: str];
- [pool release];
- }
-
- [cache setToCString: ""];
-
- last = i + 1;
- state = OF_XMLPARSER_TAG_OPENED;
- }
- break;
-
- /* Tag was just opened */
- case OF_XMLPARSER_TAG_OPENED:
- if (buf[i] == '/') {
- last = i + 1;
- state = OF_XMLPARSER_IN_CLOSE_TAG_NAME;
- } else if(buf[i] == '!') {
- last = i + 1;
- state = OF_XMLPARSER_IN_COMMENT_1;
- } else {
- state = OF_XMLPARSER_IN_TAG_NAME;
- i--;
- }
- break;
-
- /* Inside a tag, no name yet */
- case OF_XMLPARSER_IN_TAG_NAME:
- if (buf[i] == ' ' || buf[i] == '>' || buf[i] == '/') {
- const char *cache_c, *tmp;
- size_t cache_len;
-
- len = i - last;
- if (len > 0)
- [cache appendCString: buf + last
- withLength: len];
- cache_c = [cache cString];
- cache_len = [cache cStringLength];
-
- if ((tmp = memchr(cache_c, ':',
- cache_len)) != NULL) {
- name = [[OFString alloc]
- initWithCString: tmp + 1
- length: cache_len - (tmp -
- cache_c) - 1];
- prefix = [[OFString alloc]
- initWithCString: cache_c
- length: tmp - cache_c];
- } else {
- name = [cache copy];
- prefix = nil;
- }
-
- if (buf[i] == '>' || buf[i] == '/') {
- pool = [[OFAutoreleasePool alloc] init];
-
- [delegate xmlParser: self
- didStartTagWithName: name
- prefix: prefix
- namespace: ns
- attributes: nil];
-
- if (buf[i] == '/')
- [delegate xmlParser: self
- didEndTagWithName: name
- prefix: prefix
- namespace: ns];
- else
- [previous addObject:
- [[cache copy] autorelease]];
-
- [pool release];
-
- [name release];
- [prefix release];
- [ns release];
- name = prefix = ns = nil;
-
- state = (buf[i] == '/'
- ? OF_XMLPARSER_EXPECT_CLOSE
- : OF_XMLPARSER_OUTSIDE_TAG);
- } else
- state = OF_XMLPARSER_IN_TAG;
-
- [cache setToCString: ""];
- last = i + 1;
- }
- break;
-
- /* Inside a close tag, no name yet */
- case OF_XMLPARSER_IN_CLOSE_TAG_NAME:
- if (buf[i] == ' ' || buf[i] == '>') {
- const char *cache_c, *tmp;
- size_t cache_len;
-
- len = i - last;
- if (len > 0)
- [cache appendCString: buf + last
- withLength: len];
- cache_c = [cache cString];
- cache_len = [cache cStringLength];
-
- if ((tmp = memchr(cache_c, ':',
- cache_len)) != NULL) {
- name = [[OFString alloc]
- initWithCString: tmp + 1
- length: cache_len - (tmp -
- cache_c) - 1];
- prefix = [[OFString alloc]
- initWithCString: cache_c
- length: tmp - cache_c];
- } else {
- name = [cache copy];
- prefix = nil;
- }
-
- if (![[previous lastObject] isEqual: cache])
- @throw [OFMalformedXMLException
- newWithClass: isa];
- [previous removeNObjects: 1];
-
- [cache setToCString: ""];
-
- pool = [[OFAutoreleasePool alloc] init];
-
- [delegate xmlParser: self
- didEndTagWithName: name
- prefix: prefix
- namespace: ns];
-
- [pool release];
-
- [name release];
- [prefix release];
- [ns release];
- name = prefix = ns = nil;
-
- last = i + 1;
- state = (buf[i] == ' '
- ? OF_XMLPARSER_EXPECT_SPACE_OR_CLOSE
- : OF_XMLPARSER_OUTSIDE_TAG);
- }
- break;
-
- /* Inside a tag, name found */
- case OF_XMLPARSER_IN_TAG:
- if (buf[i] == '>' || buf[i] == '/') {
- pool = [[OFAutoreleasePool alloc] init];
-
- [delegate xmlParser: self
- didStartTagWithName: name
- prefix: prefix
- namespace: ns
- attributes: attrs];
-
- if (buf[i] == '/')
- [delegate xmlParser: self
- didEndTagWithName: name
- prefix: prefix
- namespace: ns];
- else if (prefix != nil) {
- OFString *str = [OFString
- stringWithFormat: @"%s:%s",
- [prefix cString],
- [name cString]];
- [previous addObject: str];
- } else
- [previous addObject: name];
-
- [pool release];
-
- [name release];
- [prefix release];
- [ns release];
- [attrs release];
- name = prefix = ns = nil;
- attrs = nil;
-
- last = i + 1;
- state = (buf[i] == '/'
- ? OF_XMLPARSER_EXPECT_CLOSE
- : OF_XMLPARSER_OUTSIDE_TAG);
- } else if (buf[i] != ' ') {
- last = i;
- state = OF_XMLPARSER_IN_ATTR_NAME;
- i--;
- }
- break;
-
- /* Looking for attribute name */
- case OF_XMLPARSER_IN_ATTR_NAME:
- if (buf[i] == '=') {
- const char *cache_c, *tmp;
- size_t cache_len;
-
- len = i - last;
- if (len > 0)
- [cache appendCString: buf + last
- withLength: len];
-
- cache_c = [cache cString];
- cache_len = [cache cStringLength];
-
- if ((tmp = memchr(cache_c, ':',
- cache_len)) != NULL ) {
- attrName = [[OFString alloc]
- initWithCString: tmp + 1
- length: cache_len - (tmp -
- cache_c) - 1];
- attrPrefix = [[OFString alloc]
- initWithCString: cache_c
- length: tmp - cache_c];
- } else {
- attrName = [cache copy];
- attrPrefix = nil;
- }
-
- [cache setToCString: ""];
-
- last = i + 1;
- state = OF_XMLPARSER_EXPECT_DELIM;
- }
- break;
-
- /* Expecting delimiter */
- case OF_XMLPARSER_EXPECT_DELIM:
- if (buf[i] != '\'' && buf[i] != '"')
- @throw [OFMalformedXMLException
- newWithClass: isa];
-
- delim = buf[i];
- last = i + 1;
- state = OF_XMLPARSER_IN_ATTR_VALUE;
- break;
-
- /* Looking for attribute value */
- case OF_XMLPARSER_IN_ATTR_VALUE:
- if (buf[i] == delim) {
- OFString *attr_val;
-
- len = i - last;
- if (len > 0)
- [cache appendCString: buf + last
- withLength: len];
-
- if (attrs == nil)
- attrs = [[OFMutableArray alloc] init];
-
- pool = [[OFAutoreleasePool alloc] init];
- attr_val = [cache
- stringByXMLUnescapingWithHandler: self];
- [attrs addObject: [OFXMLAttribute
- attributeWithName: attrName
- prefix: attrPrefix
- namespace: nil
- stringValue: attr_val]];
- [pool release];
-
- [cache setToCString: ""];
- [attrName release];
- [attrPrefix release];
- attrName = attrPrefix = nil;
-
- last = i + 1;
- state = OF_XMLPARSER_IN_TAG;
- }
- break;
-
- /* Expecting closing '>' */
- case OF_XMLPARSER_EXPECT_CLOSE:
- if (buf[i] == '>') {
- last = i + 1;
- state = OF_XMLPARSER_OUTSIDE_TAG;
- } else
- @throw [OFMalformedXMLException
- newWithClass: isa];
- break;
-
- /* Expecting closing '>' or space */
- case OF_XMLPARSER_EXPECT_SPACE_OR_CLOSE:
- if (buf[i] == '>') {
- last = i + 1;
- state = OF_XMLPARSER_OUTSIDE_TAG;
- } else if (buf[i] != ' ')
- @throw [OFMalformedXMLException
- newWithClass: isa];
- break;
-
- /* Comment */
- case OF_XMLPARSER_IN_COMMENT_1:
- case OF_XMLPARSER_IN_COMMENT_2:
- if (buf[i] != '-')
- @throw [OFMalformedXMLException
- newWithClass: isa];
- last = i + 1;
- state++;
- break;
- case OF_XMLPARSER_IN_COMMENT_3:
- if (buf[i] == '-')
- state = OF_XMLPARSER_IN_COMMENT_4;
- break;
- case OF_XMLPARSER_IN_COMMENT_4:
- if (buf[i] == '-') {
- size_t cache_len;
-
- [cache appendCString: buf + last
- withLength: i - last];
- cache_len = [cache length];
-
- pool = [[OFAutoreleasePool alloc] init];
- [cache removeCharactersFromIndex: cache_len - 1
- toIndex: cache_len];
- [cache removeLeadingAndTrailingWhitespaces];
- [delegate xmlParser: self
- foundComment: cache];
- [pool release];
-
- [cache setToCString: ""];
-
- last = i + 1;
- state = OF_XMLPARSER_EXPECT_CLOSE;
- } else
- state = OF_XMLPARSER_IN_COMMENT_3;
-
- break;
- }
- }
-
- len = size - last;
- /* In OF_XMLPARSER_IN_TAG, there can be only spaces */
- if (len > 0 && state != OF_XMLPARSER_IN_TAG)
- [cache appendCString: buf + last
- withLength: len];
-}
-
-- (OFString*)foundUnknownEntityNamed: (OFString*)entity
-{
- return [delegate xmlParser: self
- foundUnknownEntityNamed: entity];
-}
-@end
-
@implementation OFString (OFXMLUnescaping)
- (OFString*)stringByXMLUnescaping
{
return [self stringByXMLUnescapingWithHandler: nil];
}
@@ -591,39 +164,6 @@
[ret appendCStringWithoutUTF8Checking: string + last
length: i - last];
return ret;
}
-@end
-
-@implementation OFObject (OFXMLParserDelegate)
-- (void)xmlParser: (OFXMLParser*)parser
- didStartTagWithName: (OFString*)name
- prefix: (OFString*)prefix
- namespace: (OFString*)ns
- attributes: (OFArray*)attrs
-{
-}
-
-- (void)xmlParser: (OFXMLParser*)parser
- didEndTagWithName: (OFString*)name
- prefix: (OFString*)prefix
- namespace: (OFString*)ns
-{
-}
-
-- (void)xmlParser: (OFXMLParser*)parser
- foundString: (OFString*)string
-{
-}
-
-- (void)xmlParser: (OFXMLParser*)parser
- foundComment: (OFString*)comment
-{
-}
-
-- (OFString*)xmlParser: (OFXMLParser*)parser
- foundUnknownEntityNamed: (OFString*)entity
-{
- return nil;
-}
@end
Index: tests/Makefile
==================================================================
--- tests/Makefile
+++ tests/Makefile
@@ -14,12 +14,10 @@
${OFPLUGINTESTS_M} \
OFStreamTests.m \
OFStringTests.m \
OFTCPSocketTests.m \
${OFTHREADTESTS_M} \
- OFXMLElementTests.m \
- OFXMLParserTests.m \
${PROPERTIESTESTS_M} \
TestsAppDelegate.m
IPHONE_USER = mobile
IPHONE_TMP = /tmp/objfw-test
DELETED tests/OFXMLElementTests.m
Index: tests/OFXMLElementTests.m
==================================================================
--- tests/OFXMLElementTests.m
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (c) 2008 - 2010
- * Jonathan Schleifer
- *
- * All rights reserved.
- *
- * This file is part of ObjFW. It may be distributed under the terms of the
- * Q Public License 1.0, which can be found in the file LICENSE included in
- * the packaging of this file.
- */
-
-#include "config.h"
-
-#import "OFXMLElement.h"
-#import "OFString.h"
-#import "OFArray.h"
-#import "OFAutoreleasePool.h"
-#import "OFString.h"
-#import "OFExceptions.h"
-
-#import "TestsAppDelegate.h"
-
-static OFString *module = @"OFXMLElement";
-
-@implementation TestsAppDelegate (OFXMLElementTests)
-- (void)XMLElementTests
-{
- OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
- OFXMLElement *elem[2];
-
- TEST(@"+[elementWithName:]",
- (elem[0] = [OFXMLElement elementWithName: @"foo"]) &&
- [[elem[0] string] isEqual: @""])
-
- TEST(@"+[elementWithName:stringValue:]",
- (elem[1] = [OFXMLElement elementWithName: @"foo"
- stringValue: @"b&ar"]) &&
- [[elem[1] string] isEqual: @"b&ar"])
-
- TEST(@"-[addAttributeWithName:stringValue:]",
- R([elem[0] addAttributeWithName: @"foo"
- stringValue: @"b&ar"]) &&
- [[elem[0] string] isEqual: @""] &&
- R([elem[1] addAttributeWithName: @"foo"
- stringValue: @"b&ar"]) &&
- [[elem[1] string] isEqual: @"b&ar"])
-
- TEST(@"-[addChild:]",
- R([elem[0] addChild: [OFXMLElement elementWithName: @"bar"]]) &&
- [[elem[0] string] isEqual: @""])
-
- [pool drain];
-}
-@end
DELETED tests/OFXMLParserTests.m
Index: tests/OFXMLParserTests.m
==================================================================
--- tests/OFXMLParserTests.m
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * Copyright (c) 2008 - 2010
- * Jonathan Schleifer
- *
- * All rights reserved.
- *
- * This file is part of ObjFW. It may be distributed under the terms of the
- * Q Public License 1.0, which can be found in the file LICENSE included in
- * the packaging of this file.
- */
-
-#include "config.h"
-
-#include
-
-#import "OFXMLParser.h"
-#import "OFString.h"
-#import "OFArray.h"
-#import "OFAutoreleasePool.h"
-#import "OFString.h"
-#import "OFExceptions.h"
-
-#import "TestsAppDelegate.h"
-
-static OFString *module = @"OFXMLParser";
-static int i = 0;
-
-enum event_type {
- TAG_START,
- TAG_END,
- STRING,
- COMMENT
-};
-
-@implementation TestsAppDelegate (OFXMLParser)
-- (void)xmlParserCallbackWithEventType: (enum event_type)et
- name: (OFString*)name
- prefix: (OFString*)prefix
- namespace: (OFString*)ns
- attributes: (OFArray*)attrs
- string: (OFString*)string
- comment: (OFString*)comment
-{
- OFString *msg;
- id *carray;
- size_t count;
-
- i++;
- msg = [OFString stringWithFormat: @"Parsing part #%d", i];
-
- switch (i) {
- case 1:
- case 5:
- TEST(msg, et == STRING && [string isEqual: @"bar"])
- break;
- case 2:
- /* FIXME: Namespace */
- carray = [attrs cArray];
- count = [attrs count];
-
- TEST(msg, et == TAG_START && [name isEqual: @"bar"] &&
- [prefix isEqual: @"foo"] && ns == nil &&
- attrs != nil && count == 2 &&
- /* Attribute 1 */
- [[carray[0] name] isEqual: @"bar"] &&
- [carray[0] prefix] == nil &&
- [[carray[0] stringValue] isEqual: @"b&az"] &&
- [carray[0] namespace] == nil &&
- /* Attribute 2 */
- [[carray[1] name] isEqual: @"qux"] &&
- [[carray[1] prefix] isEqual: @"qux"] &&
- [[carray[1] stringValue] isEqual: @" quux "] &&
- [carray[1] namespace] == nil)
- break;
- case 3:
- TEST(msg, et == STRING && [string isEqual: @"foo\r\n"
- "foo<barbar quxbar\r\n"
- "";
- size_t j, len;
-
- TEST(@"+[xmlParser]", (parser = [OFXMLParser xmlParser]))
-
- TEST(@"-[setDelegate:]", R([parser setDelegate: self]))
-
- /* Simulate a stream where we only get chunks */
- len = strlen(str);
-
- for (j = 0; j < len; j+= 2) {
- if (j + 2 > len)
- [parser parseBuffer: str + j
- withSize: 1];
- else
- [parser parseBuffer: str + j
- withSize: 2];
- }
-
- TEST(@"Checking if everything was parsed", i == 11)
-
- [pool drain];
-}
-@end
Index: tests/TestsAppDelegate.h
==================================================================
--- tests/TestsAppDelegate.h
+++ tests/TestsAppDelegate.h
@@ -120,13 +120,5 @@
@end
@interface TestsAppDelegate (OFThreadTests)
- (void)threadTests;
@end
-
-@interface TestsAppDelegate (OFXMLElementTests)
-- (void)XMLElementTests;
-@end
-
-@interface TestsAppDelegate (OFXMLParserTests)
-- (void)XMLParserTests;
-@end
Index: tests/TestsAppDelegate.m
==================================================================
--- tests/TestsAppDelegate.m
+++ tests/TestsAppDelegate.m
@@ -88,12 +88,10 @@
[self streamTests];
[self TCPSocketTests];
#ifdef OF_THREADS
[self threadTests];
#endif
- [self XMLElementTests];
- [self XMLParserTests];
#ifdef OF_PLUGINS
[self pluginTests];
#endif
#ifdef OF_HAVE_PROPERTIES
[self propertiesTests];
Index: utils/objfw-config.in
==================================================================
--- utils/objfw-config.in
+++ utils/objfw-config.in
@@ -10,11 +10,11 @@
OBJCFLAGS="$OBJCFLAGS -fconstant-string-class=OFConstString"
OBJCFLAGS="$OBJCFLAGS @NO_CONST_CFSTRINGS@ @NO_WARN_UNUSED@ @ATOMIC_OBJCFLAGS@"
LDFLAGS=""
LDFLAGS_RPATH="@LDFLAGS_RPATH@"
LIBS="-L${libdir} -lobjfw @LIBS@"
-VERSION="0.3-dev"
+VERSION="0.3"
show_help() {
cat <<__EOF__
objfw-config: Available arguments are: