ObjFW  Diff

Differences From Artifact [62af83b584]:

To Artifact [3425587555]:


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
{
	self = [super init];

	@try {
		_s = &_storage;

		_s->cString = [self allocMemoryWithSize: 1];







|







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
- (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
		[self release];
		@throw e;
	}

	return self;
}

- 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;








|
|
|







222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
		[self release];
		@throw e;
	}

	return self;
}

- (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
		[self release];
		@throw e;
	}

	return self;
}

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

	@try {
		size_t UTF8StringLength = strlen(UTF8String);

		if (UTF8StringLength >= 3 &&







|
|







386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
		[self release];
		@throw e;
	}

	return self;
}

- (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
		[self release];
		@throw e;
	}

	return self;
}

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

	@try {
		_s = &_storage;

		_s->cStringLength = [string UTF8StringLength];







|







424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
		[self release];
		@throw e;
	}

	return self;
}

- (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
		[self release];
		@throw e;
	}

	return self;
}

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

	@try {
		size_t j;

		_s = &_storage;







|
|







451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
		[self release];
		@throw e;
	}

	return self;
}

- (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
		[self release];
		@throw e;
	}

	return self;
}

- 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;








|
|
|







495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
		[self release];
		@throw e;
	}

	return self;
}

- (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
		[self release];
		@throw e;
	}

	return self;
}

- 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;








|
|
|







580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
		[self release];
		@throw e;
	}

	return self;
}

- (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
		[self release];
		@throw e;
	}

	return self;
}

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

	@try {
		char *tmp;
		int cStringLength;








|
|







647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
		[self release];
		@throw e;
	}

	return self;
}

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

	@try {
		char *tmp;
		int cStringLength;