368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
|
368
369
370
371
372
373
374
375
376
377
378
379
380
381
|
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
|
@try {
[self appendUTF8String: UTF8String length: UTF8StringLength];
} @finally {
free(UTF8String);
}
}
- (void)prependString: (OFString *)string
{
[self insertString: string atIndex: 0];
}
- (void)reverse
{
size_t i, j, length = self.length;
for (i = 0, j = length - 1; i < length / 2; i++, j--) {
OFUnichar tmp = [self characterAtIndex: j];
[self setCharacter: [self characterAtIndex: i] atIndex: j];
[self setCharacter: tmp atIndex: i];
}
}
#ifdef OF_HAVE_UNICODE_TABLES
- (void)uppercase
{
[self of_convertWithWordStartTable: OFUnicodeUppercaseTable
wordMiddleTable: OFUnicodeUppercaseTable
wordStartTableSize: OFUnicodeUppercaseTableSize
wordMiddleTableSize: OFUnicodeUppercaseTableSize];
|