ObjFW  Diff

Differences From Artifact [b274f069db]:

To Artifact [68b2726756]:


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







-
+




-
+








-
+

-
+















-
+





-
+

-
+





-
+







-
+




}

- (size_t)length
{
	return length;
}

- (OFString*)setTo: (const char*)str
- (OFString*)setTo: (OFConstString*)str
{
	char *newstr;
	size_t newlen;
	
	if (str == NULL) {
	if ([str cString] == NULL) {
		[self freeMem: string];

		length = 0;
		string = NULL;

		return self;
	}

	newlen = strlen(str);
	newlen = [str length];
	newstr = [self getMem: newlen + 1];
	memcpy(newstr, str, newlen + 1);
	memcpy(newstr, [str cString], newlen + 1);

	if (string != NULL)
		[self freeMem: string];

	length = newlen;
	string = newstr;

	return self;
}

- (OFString*)clone
{
	return [OFString new: string];
}

- (OFString*)append: (const char*)str
- (OFString*)append: (OFConstString*)str
{
	char   *newstr;
	size_t newlen, strlength;

	if (str == NULL)
		return [self setTo:str];
		return [self setTo: str];

	strlength = strlen(str);
	strlength = [str length];
	newlen = length + strlength;

	newstr = [self resizeMem: string
			  toSize: newlen + 1];

	memcpy(newstr + length, str, strlength + 1);
	memcpy(newstr + length, [str cString], strlength + 1);

	length = newlen;
	string = newstr;

	return self;
}

- (int)compare: (OFString*)str
- (int)compare: (OFConstString*)str
{
	return strcmp(string, [str cString]);
}
@end