ObjFW  Diff

Differences From Artifact [62af83b584]:

To Artifact [3425587555]:


168
169
170
171
172
173
174
175

176
177
178
179
180
181
182
168
169
170
171
172
173
174

175
176
177
178
179
180
181
182







-
+







			if (++index > length)
				return OF_NOT_FOUND;

	return index;
}

@implementation OFString_UTF8
- init
- (instancetype)init
{
	self = [super init];

	@try {
		_s = &_storage;

		_s->cString = [self allocMemoryWithSize: 1];
222
223
224
225
226
227
228
229
230
231



232
233
234
235
236
237
238
222
223
224
225
226
227
228



229
230
231
232
233
234
235
236
237
238







-
-
-
+
+
+







		[self release];
		@throw e;
	}

	return self;
}

- initWithCString: (const char *)cString
	 encoding: (of_string_encoding_t)encoding
	   length: (size_t)cStringLength
- (instancetype)initWithCString: (const char *)cString
		       encoding: (of_string_encoding_t)encoding
			 length: (size_t)cStringLength
{
	self = [super init];

	@try {
		const char16_t *table;
		size_t tableOffset, j;

386
387
388
389
390
391
392
393
394


395
396
397
398
399
400
401
386
387
388
389
390
391
392


393
394
395
396
397
398
399
400
401







-
-
+
+







		[self release];
		@throw e;
	}

	return self;
}

- initWithUTF8StringNoCopy: (char *)UTF8String
	      freeWhenDone: (bool)freeWhenDone
- (instancetype)initWithUTF8StringNoCopy: (char *)UTF8String
			    freeWhenDone: (bool)freeWhenDone
{
	self = [super init];

	@try {
		size_t UTF8StringLength = strlen(UTF8String);

		if (UTF8StringLength >= 3 &&
424
425
426
427
428
429
430
431

432
433
434
435
436
437
438
424
425
426
427
428
429
430

431
432
433
434
435
436
437
438







-
+







		[self release];
		@throw e;
	}

	return self;
}

- initWithString: (OFString *)string
- (instancetype)initWithString: (OFString *)string
{
	self = [super init];

	@try {
		_s = &_storage;

		_s->cStringLength = [string UTF8StringLength];
451
452
453
454
455
456
457
458
459


460
461
462
463
464
465
466
451
452
453
454
455
456
457


458
459
460
461
462
463
464
465
466







-
-
+
+







		[self release];
		@throw e;
	}

	return self;
}

- initWithCharacters: (const of_unichar_t *)characters
	      length: (size_t)length
- (instancetype)initWithCharacters: (const of_unichar_t *)characters
			    length: (size_t)length
{
	self = [super init];

	@try {
		size_t j;

		_s = &_storage;
495
496
497
498
499
500
501
502
503
504



505
506
507
508
509
510
511
495
496
497
498
499
500
501



502
503
504
505
506
507
508
509
510
511







-
-
-
+
+
+







		[self release];
		@throw e;
	}

	return self;
}

- initWithUTF16String: (const char16_t *)string
	       length: (size_t)length
	    byteOrder: (of_byte_order_t)byteOrder
- (instancetype)initWithUTF16String: (const char16_t *)string
			     length: (size_t)length
			  byteOrder: (of_byte_order_t)byteOrder
{
	self = [super init];

	@try {
		size_t j;
		bool swap = false;

580
581
582
583
584
585
586
587
588
589



590
591
592
593
594
595
596
580
581
582
583
584
585
586



587
588
589
590
591
592
593
594
595
596







-
-
-
+
+
+







		[self release];
		@throw e;
	}

	return self;
}

- initWithUTF32String: (const char32_t *)characters
	       length: (size_t)length
	    byteOrder: (of_byte_order_t)byteOrder
- (instancetype)initWithUTF32String: (const char32_t *)characters
			     length: (size_t)length
			  byteOrder: (of_byte_order_t)byteOrder
{
	self = [super init];

	@try {
		size_t j;
		bool swap = false;

647
648
649
650
651
652
653
654
655


656
657
658
659
660
661
662
647
648
649
650
651
652
653


654
655
656
657
658
659
660
661
662







-
-
+
+







		[self release];
		@throw e;
	}

	return self;
}

- initWithFormat: (OFConstantString *)format
       arguments: (va_list)arguments
- (instancetype)initWithFormat: (OFConstantString *)format
		     arguments: (va_list)arguments
{
	self = [super init];

	@try {
		char *tmp;
		int cStringLength;