︙ | | | ︙ | |
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
|
table = middleTable;
tableSize = middleTableSize;
}
if (c >> 8 < tableSize && table[c >> 8][c & 0xFF])
[self setCharacter: table[c >> 8][c & 0xFF] atIndex: i];
isStart = of_ascii_isspace(c);
}
objc_autoreleasePoolPop(pool);
}
#else
static void
convert(OFMutableString *self, char (*startFunction)(char),
|
|
|
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
|
table = middleTable;
tableSize = middleTableSize;
}
if (c >> 8 < tableSize && table[c >> 8][c & 0xFF])
[self setCharacter: table[c >> 8][c & 0xFF] atIndex: i];
isStart = OFASCIIIsSpace(c);
}
objc_autoreleasePoolPop(pool);
}
#else
static void
convert(OFMutableString *self, char (*startFunction)(char),
|
︙ | | | ︙ | |
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
|
char (*function)(char) =
(isStart ? startFunction : middleFunction);
OFUnichar c = characters[i];
if (c <= 0x7F)
[self setCharacter: (int)function(c) atIndex: i];
isStart = of_ascii_isspace(c);
}
objc_autoreleasePoolPop(pool);
}
#endif
- (void)setCharacter: (OFUnichar)character atIndex: (size_t)idx
|
|
|
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
|
char (*function)(char) =
(isStart ? startFunction : middleFunction);
OFUnichar c = characters[i];
if (c <= 0x7F)
[self setCharacter: (int)function(c) atIndex: i];
isStart = OFASCIIIsSpace(c);
}
objc_autoreleasePoolPop(pool);
}
#endif
- (void)setCharacter: (OFUnichar)character atIndex: (size_t)idx
|
︙ | | | ︙ | |
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
|
wordMiddleTable: of_unicode_lowercase_table
wordStartTableSize: OF_UNICODE_TITLECASE_TABLE_SIZE
wordMiddleTableSize: OF_UNICODE_LOWERCASE_TABLE_SIZE];
}
#else
- (void)uppercase
{
convert(self, of_ascii_toupper, of_ascii_toupper);
}
- (void)lowercase
{
convert(self, of_ascii_tolower, of_ascii_tolower);
}
- (void)capitalize
{
convert(self, of_ascii_toupper, of_ascii_tolower);
}
#endif
- (void)insertString: (OFString *)string atIndex: (size_t)idx
{
[self replaceCharactersInRange: OFRangeMake(idx, 0) withString: string];
}
|
|
|
|
|
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
|
wordMiddleTable: of_unicode_lowercase_table
wordStartTableSize: OF_UNICODE_TITLECASE_TABLE_SIZE
wordMiddleTableSize: OF_UNICODE_LOWERCASE_TABLE_SIZE];
}
#else
- (void)uppercase
{
convert(self, OFASCIIToUpper, OFASCIIToUpper);
}
- (void)lowercase
{
convert(self, OFASCIIToLower, OFASCIIToLower);
}
- (void)capitalize
{
convert(self, OFASCIIToUpper, OFASCIIToLower);
}
#endif
- (void)insertString: (OFString *)string atIndex: (size_t)idx
{
[self replaceCharactersInRange: OFRangeMake(idx, 0) withString: string];
}
|
︙ | | | ︙ | |
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
|
void *pool = objc_autoreleasePoolPush();
const OFUnichar *characters = self.characters;
size_t i, length = self.length;
for (i = 0; i < length; i++) {
OFUnichar c = characters[i];
if (!of_ascii_isspace(c))
break;
}
objc_autoreleasePoolPop(pool);
[self deleteCharactersInRange: OFRangeMake(0, i)];
}
|
|
|
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
|
void *pool = objc_autoreleasePoolPush();
const OFUnichar *characters = self.characters;
size_t i, length = self.length;
for (i = 0; i < length; i++) {
OFUnichar c = characters[i];
if (!OFASCIIIsSpace(c))
break;
}
objc_autoreleasePoolPop(pool);
[self deleteCharactersInRange: OFRangeMake(0, i)];
}
|
︙ | | | ︙ | |
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
|
return;
pool = objc_autoreleasePoolPush();
characters = self.characters;
d = 0;
for (p = characters + length - 1; p >= characters; p--) {
if (!of_ascii_isspace(*p))
break;
d++;
}
objc_autoreleasePoolPop(pool);
|
|
|
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
|
return;
pool = objc_autoreleasePoolPush();
characters = self.characters;
d = 0;
for (p = characters + length - 1; p >= characters; p--) {
if (!OFASCIIIsSpace(*p))
break;
d++;
}
objc_autoreleasePoolPop(pool);
|
︙ | | | ︙ | |