Overview
Context
Changes
Modified src/OFArray.h
from [b142bf7140]
to [456c5d972c].
︙ | | | ︙ | |
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
|
/**
* Creates a string by joining all objects of the array.
*
* \param separator The string with which the objects should be joined
* \return A string containing all objects joined by the separator
*/
- (OFString*)componentsJoinedByString: (OFString*)separator;
- addObject: (OFObject*)obj;
- addObject: (OFObject*)obj
atIndex: (size_t)index;
- replaceObject: (OFObject*)old
withObject: (OFObject*)new;
- replaceObjectAtIndex: (size_t)index
withObject: (OFObject*)obj;
- replaceObjectIdenticalTo: (OFObject*)old
withObject: (OFObject*)new;
- removeObject: (OFObject*)obj;
- removeObjectIdenticalTo: (OFObject*)obj;
- removeObjectAtIndex: (size_t)index;
- removeNObjects: (size_t)nobjects;
- removeNObjects: (size_t)nobjects
atIndex: (size_t)index;
@end
#import "OFMutableArray.h"
#import "OFString.h"
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
138
139
140
141
142
143
144
145
146
147
|
/**
* Creates a string by joining all objects of the array.
*
* \param separator The string with which the objects should be joined
* \return A string containing all objects joined by the separator
*/
- (OFString*)componentsJoinedByString: (OFString*)separator;
@end
#import "OFMutableArray.h"
|
Modified src/OFArray.m
from [368e6650a6]
to [40a8b278df].
︙ | | | ︙ | |
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
|
for (i = 0; i < count; i++)
[objs[i] release];
[array release];
[super dealloc];
}
- addObject: (OFObject*)obj
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- addObject: (OFObject*)obj
atIndex: (size_t)index
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- replaceObject: (OFObject*)old
withObject: (OFObject*)new
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- replaceObjectAtIndex: (size_t)index
withObject: (OFObject*)obj
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- replaceObjectIdenticalTo: (OFObject*)old
withObject: (OFObject*)new
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- removeObject: (OFObject*)obj
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- removeObjectIdenticalTo: (OFObject*)obj
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- removeObjectAtIndex: (size_t)index
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- removeNObjects: (size_t)nobjects
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- removeNObjects: (size_t)nobjects
atIndex: (size_t)index
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
@end
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
308
309
310
311
312
313
314
315
|
for (i = 0; i < count; i++)
[objs[i] release];
[array release];
[super dealloc];
}
@end
|
Modified src/OFAutoreleasePool.h
from [68fc70c495]
to [2774ec3150].
︙ | | | ︙ | |
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
* The OFAutoreleasePool class is a class that keeps track of objects that will
* be released when the autorelease pool is released.
*
* Every thread has its own stack of autorelease pools.
*/
@interface OFAutoreleasePool: OFObject
{
OFArray *objects;
OFAutoreleasePool *next, *prev;
}
/**
* Adds an object to the autorelease pool at the top of the thread-specific
* stack.
*
|
|
|
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
* The OFAutoreleasePool class is a class that keeps track of objects that will
* be released when the autorelease pool is released.
*
* Every thread has its own stack of autorelease pools.
*/
@interface OFAutoreleasePool: OFObject
{
OFMutableArray *objects;
OFAutoreleasePool *next, *prev;
}
/**
* Adds an object to the autorelease pool at the top of the thread-specific
* stack.
*
|
︙ | | | ︙ | |
Modified src/OFDictionary.h
from [dfa50c8022]
to [10e7ab0031].
︙ | | | ︙ | |
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
*/
- (id)objectForKey: (OFObject <OFCopying>*)key;
/**
* \return The number of objects in the dictionary
*/
- (size_t)count;
- setObject: (OFObject*)obj
forKey: (OFObject <OFCopying>*)key;
- removeObjectForKey: (OFObject*)key;
@end
#import "OFEnumerator.h"
#import "OFMutableDictionary.h"
|
<
<
<
<
|
140
141
142
143
144
145
146
147
148
149
150
|
*/
- (id)objectForKey: (OFObject <OFCopying>*)key;
/**
* \return The number of objects in the dictionary
*/
- (size_t)count;
@end
#import "OFEnumerator.h"
#import "OFMutableDictionary.h"
|
Modified src/OFDictionary.m
from [df376703da]
to [abf6aee912].
︙ | | | ︙ | |
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
|
[data[i].object release];
}
}
[super dealloc];
}
- setObject: (OFObject*)obj
forKey: (OFObject <OFCopying>*)key
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- removeObjectForKey: (OFObject*)key
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- (uint32_t)hash
{
size_t i;
uint32_t hash;
OF_HASH_INIT(hash);
|
<
<
<
<
<
<
<
<
<
<
<
<
<
|
541
542
543
544
545
546
547
548
549
550
551
552
553
554
|
[data[i].object release];
}
}
[super dealloc];
}
- (uint32_t)hash
{
size_t i;
uint32_t hash;
OF_HASH_INIT(hash);
|
︙ | | | ︙ | |
Modified src/OFPlugin.m
from [403317ec50]
to [2ac3e6603f].
︙ | | | ︙ | |
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#define dlclose(handle) FreeLibrary(handle)
#endif
@implementation OFPlugin
+ pluginFromFile: (OFString*)path
{
OFAutoreleasePool *pool;
OFString *file;
of_plugin_handle_t handle;
OFPlugin *(*init_plugin)();
OFPlugin *plugin;
pool = [[OFAutoreleasePool alloc] init];
file = [OFMutableString stringWithString: path];
[file appendCString: PLUGIN_SUFFIX];
|
|
|
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#define dlclose(handle) FreeLibrary(handle)
#endif
@implementation OFPlugin
+ pluginFromFile: (OFString*)path
{
OFAutoreleasePool *pool;
OFMutableString *file;
of_plugin_handle_t handle;
OFPlugin *(*init_plugin)();
OFPlugin *plugin;
pool = [[OFAutoreleasePool alloc] init];
file = [OFMutableString stringWithString: path];
[file appendCString: PLUGIN_SUFFIX];
|
︙ | | | ︙ | |
Modified src/OFString.h
from [bb02b7e8a2]
to [9d51bd491c].
︙ | | | ︙ | |
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
|
/**
* Returns the hexadecimal value of the string as an intmax_t or throws an
* OFInvalidEncoding exception if the string contains any non-number characters.
*
* \return An OFNumber
*/
- (intmax_t)hexadecimalValueAsInteger;
- setToCString: (const char*)str;
- appendCString: (const char*)str;
- appendCString: (const char*)str
withLength: (size_t)len;
- appendCStringWithoutUTF8Checking: (const char*)str;
- appendCStringWithoutUTF8Checking: (const char*)str
length: (size_t)len;
- appendString: (OFString*)str;
- appendWithFormat: (OFString*)fmt, ...;
- appendWithFormat: (OFString*)fmt
arguments: (va_list)args;
- reverse;
- upper;
- lower;
- removeCharactersFromIndex: (size_t)start
toIndex: (size_t)end;
- replaceOccurrencesOfString: (OFString*)str
withString: (OFString*)repl;
- removeLeadingWhitespaces;
- removeTrailingWhitespaces;
- removeLeadingAndTrailingWhitespaces;
@end
#import "OFConstString.h"
#import "OFMutableString.h"
#import "OFHashes.h"
#import "OFURLEncoding.h"
#import "OFXMLElement.h"
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
288
289
290
291
292
293
294
295
296
297
298
299
300
301
|
/**
* Returns the hexadecimal value of the string as an intmax_t or throws an
* OFInvalidEncoding exception if the string contains any non-number characters.
*
* \return An OFNumber
*/
- (intmax_t)hexadecimalValueAsInteger;
@end
#import "OFConstString.h"
#import "OFMutableString.h"
#import "OFHashes.h"
#import "OFURLEncoding.h"
#import "OFXMLElement.h"
|
︙ | | | ︙ | |
Modified src/OFString.m
from [1791ee0081]
to [5c17b2346a].
︙ | | | ︙ | |
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
|
return (memcmp(string + (length - len), [suffix cString], len)
? NO : YES);
}
- (OFArray*)splitWithDelimiter: (OFString*)delimiter
{
OFAutoreleasePool *pool;
OFArray *array;
const char *delim = [delimiter cString];
size_t delim_len = [delimiter cStringLength];
size_t i, last;
array = [OFMutableArray array];
pool = [[OFAutoreleasePool alloc] init];
|
|
|
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
|
return (memcmp(string + (length - len), [suffix cString], len)
? NO : YES);
}
- (OFArray*)splitWithDelimiter: (OFString*)delimiter
{
OFAutoreleasePool *pool;
OFMutableArray *array;
const char *delim = [delimiter cString];
size_t delim_len = [delimiter cStringLength];
size_t i, last;
array = [OFMutableArray array];
pool = [[OFAutoreleasePool alloc] init];
|
︙ | | | ︙ | |
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
|
@throw [OFOutOfRangeException newWithClass: isa];
num = newnum;
}
return num;
}
- setToCString: (const char*)str
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- appendCString: (const char*)str
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- appendCString: (const char*)str
withLength: (size_t)len
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- appendCStringWithoutUTF8Checking: (const char*)str
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- appendCStringWithoutUTF8Checking: (const char*)str
length: (size_t)len
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- appendString: (OFString*)str
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- appendWithFormat: (OFString*)fmt, ...
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- appendWithFormat: (OFString*)fmt
arguments: (va_list)args
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- reverse
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- upper
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- lower
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- removeCharactersFromIndex: (size_t)start
toIndex: (size_t)end
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- replaceOccurrencesOfString: (OFString*)str
withString: (OFString*)repl
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- removeLeadingWhitespaces
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- removeTrailingWhitespaces
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
- removeLeadingAndTrailingWhitespaces
{
@throw [OFNotImplementedException newWithClass: isa
selector: _cmd];
}
@end
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
867
868
869
870
871
872
873
874
|
@throw [OFOutOfRangeException newWithClass: isa];
num = newnum;
}
return num;
}
@end
|
Modified src/OFXMLElement.h
from [4746e2975b]
to [0348de15ba].
︙ | | | ︙ | |
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
/**
* The OFXMLElement represents an XML element as an object which can be
* modified and converted back to XML again.
*/
@interface OFXMLElement: OFObject
{
OFString *name;
OFArray *attrs;
OFString *stringval;
OFArray *children;
}
/**
* \param name The name for the element
* \return A new autorelease OFXMLElement with the specified element name
*/
+ elementWithName: (OFString*)name;
|
|
|
|
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
/**
* The OFXMLElement represents an XML element as an object which can be
* modified and converted back to XML again.
*/
@interface OFXMLElement: OFObject
{
OFString *name;
OFMutableArray *attrs;
OFString *stringval;
OFMutableArray *children;
}
/**
* \param name The name for the element
* \return A new autorelease OFXMLElement with the specified element name
*/
+ elementWithName: (OFString*)name;
|
︙ | | | ︙ | |
Modified src/OFXMLParser.h
from [2d338a54e8]
to [7ded0c5e85].
︙ | | | ︙ | |
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
*/
#import "OFObject.h"
#import "OFString.h"
extern int _OFXMLParser_reference;
@class OFXMLParser;
/**
* A protocol that needs to be implemented by delegates for OFXMLParser.
*/
@protocol OFXMLParserDelegate
/**
|
>
|
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
*/
#import "OFObject.h"
#import "OFString.h"
extern int _OFXMLParser_reference;
@class OFMutableString;
@class OFXMLParser;
/**
* A protocol that needs to be implemented by delegates for OFXMLParser.
*/
@protocol OFXMLParserDelegate
/**
|
︙ | | | ︙ | |
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
OF_XMLPARSER_EXPECT_CLOSE,
OF_XMLPARSER_EXPECT_SPACE_OR_CLOSE,
OF_XMLPARSER_IN_COMMENT_1,
OF_XMLPARSER_IN_COMMENT_2,
OF_XMLPARSER_IN_COMMENT_3,
OF_XMLPARSER_IN_COMMENT_4
} state;
OFString *cache;
OFString *name;
OFString *prefix;
OFString *ns;
OFArray *attrs;
OFString *attr_name;
OFString *attr_prefix;
char delim;
OFArray *previous;
}
/**
* \return A new, autoreleased OFXMLParser
*/
+ xmlParser;
|
|
|
|
|
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
OF_XMLPARSER_EXPECT_CLOSE,
OF_XMLPARSER_EXPECT_SPACE_OR_CLOSE,
OF_XMLPARSER_IN_COMMENT_1,
OF_XMLPARSER_IN_COMMENT_2,
OF_XMLPARSER_IN_COMMENT_3,
OF_XMLPARSER_IN_COMMENT_4
} state;
OFMutableString *cache;
OFString *name;
OFString *prefix;
OFString *ns;
OFMutableArray *attrs;
OFString *attr_name;
OFString *attr_prefix;
char delim;
OFMutableArray *previous;
}
/**
* \return A new, autoreleased OFXMLParser
*/
+ xmlParser;
|
︙ | | | ︙ | |
Modified src/OFXMLParser.m
from [a671740547]
to [0e60b78004].
︙ | | | ︙ | |
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#import "OFAutoreleasePool.h"
#import "OFExceptions.h"
#import "OFMacros.h"
int _OFXMLParser_reference;
static OF_INLINE OFString*
transform_string(OFString *cache, OFObject <OFXMLUnescapingDelegate> *handler)
{
/* TODO: Support for xml:space */
[cache removeLeadingAndTrailingWhitespaces];
return [cache stringByXMLUnescapingWithHandler: handler];
}
|
>
|
|
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#import "OFAutoreleasePool.h"
#import "OFExceptions.h"
#import "OFMacros.h"
int _OFXMLParser_reference;
static OF_INLINE OFString*
transform_string(OFMutableString *cache,
OFObject <OFXMLUnescapingDelegate> *handler)
{
/* TODO: Support for xml:space */
[cache removeLeadingAndTrailingWhitespaces];
return [cache stringByXMLUnescapingWithHandler: handler];
}
|
︙ | | | ︙ | |
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
|
return [self stringByXMLUnescapingWithHandler: nil];
}
- stringByXMLUnescapingWithHandler: (OFObject <OFXMLUnescapingDelegate>*)h
{
size_t i, last;
BOOL in_entity;
OFString *ret;
last = 0;
in_entity = NO;
ret = [OFMutableString string];
ret->is_utf8 = is_utf8;
for (i = 0; i < length; i++) {
if (!in_entity && string[i] == '&') {
[ret appendCStringWithoutUTF8Checking: string + last
length: i - last];
last = i + 1;
|
|
|
|
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
|
return [self stringByXMLUnescapingWithHandler: nil];
}
- stringByXMLUnescapingWithHandler: (OFObject <OFXMLUnescapingDelegate>*)h
{
size_t i, last;
BOOL in_entity;
OFMutableString *ret;
last = 0;
in_entity = NO;
ret = [OFMutableString string];
((OFString*)ret)->is_utf8 = is_utf8;
for (i = 0; i < length; i++) {
if (!in_entity && string[i] == '&') {
[ret appendCStringWithoutUTF8Checking: string + last
length: i - last];
last = i + 1;
|
︙ | | | ︙ | |
Modified tests/OFArray.m
from [b076133918]
to [ce8d849765].
︙ | | | ︙ | |
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
nil
};
void
array_tests()
{
OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
OFArray *a[3];
TEST(@"+[array]", (a[0] = [OFMutableArray array]))
TEST(@"+[arrayWithObjects:]",
(a[1] = [OFArray arrayWithObjects: @"Foo", @"Bar", @"Baz", nil]))
TEST(@"+[arrayWithCArray:]", (a[2] = [OFArray arrayWithCArray: c_ary]))
|
|
|
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
nil
};
void
array_tests()
{
OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
OFMutableArray *a[3];
TEST(@"+[array]", (a[0] = [OFMutableArray array]))
TEST(@"+[arrayWithObjects:]",
(a[1] = [OFArray arrayWithObjects: @"Foo", @"Bar", @"Baz", nil]))
TEST(@"+[arrayWithCArray:]", (a[2] = [OFArray arrayWithCArray: c_ary]))
|
︙ | | | ︙ | |
Modified tests/OFDictionary.m
from [42a6228937]
to [531c951e77].
︙ | | | ︙ | |
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
@"value2"
};
void
dictionary_tests()
{
OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
OFDictionary *dict = [OFMutableDictionary dictionary], *dict2;
OFEnumerator *enumerator;
of_enumerator_pair_t pair[3];
OFArray *akeys, *avalues;
[dict setObject: values[0]
forKey: keys[0]];
[dict setObject: values[1]
|
|
|
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
@"value2"
};
void
dictionary_tests()
{
OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
OFMutableDictionary *dict = [OFMutableDictionary dictionary], *dict2;
OFEnumerator *enumerator;
of_enumerator_pair_t pair[3];
OFArray *akeys, *avalues;
[dict setObject: values[0]
forKey: keys[0]];
[dict setObject: values[1]
|
︙ | | | ︙ | |
Modified tests/OFString.m
from [826552dfff]
to [dc66a48561].
︙ | | | ︙ | |
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
}
@end
void
string_tests()
{
OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
OFString *s[3];
OFArray *a;
int i;
EntityHandler *h;
s[0] = [OFMutableString stringWithString: @"täs€"];
s[1] = [OFMutableString string];
s[2] = [[s[0] copy] autorelease];
|
|
|
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
}
@end
void
string_tests()
{
OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
OFMutableString *s[3];
OFArray *a;
int i;
EntityHandler *h;
s[0] = [OFMutableString stringWithString: @"täs€"];
s[1] = [OFMutableString string];
s[2] = [[s[0] copy] autorelease];
|
︙ | | | ︙ | |