Differences From Artifact [748986426d]:
- File src/OFXMLElement.m — part of check-in [062a052b50] at 2010-04-17 15:46:34 on branch trunk — Don't return self where not necessary, return void or something useful. (user: js, size: 6710) [annotate] [blame] [check-ins using]
To Artifact [d6b729bcd1]:
- File
src/OFXMLElement.m
— part of check-in
[37db8f0fb3]
at
2010-04-17 22:27:17
on branch trunk
— New ivar naming convention.
ivars are now named like this: thisIsAnIVar. If an accessor exists for
the ivar, the ivar is named like the accessor. This is required for
@property to work. (user: js, size: 6773) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
20 21 22 23 24 25 26 | #import "OFArray.h" #import "OFAutoreleasePool.h" #import "OFExceptions.h" int _OFXMLElement_reference; @implementation OFXMLAttribute | | | | | | | | | | | | | | | | | | | | | | | | 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | #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]; |
︙ | ︙ | |||
133 134 135 136 137 138 139 | /* Start of tag */ *str_c = '<'; memcpy(str_c + 1, [name cString], [name cStringLength]); i = [name cStringLength] + 1; /* Attributes */ | | | | 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | /* 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; |
︙ | ︙ | |||
164 165 166 167 168 169 170 | i += [tmp cStringLength]; str_c[i++] = '\''; [pool releaseObjects]; } /* Childen */ | | | | | 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 | 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: |
︙ | ︙ | |||
217 218 219 220 221 222 223 | [self freeMemory: str_c]; } return ret; } - (void)addAttribute: (OFXMLAttribute*)attr { | | | | | | | | 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 | [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) |
︙ | ︙ |