ObjFW  Diff

Differences From Artifact [a158f1d48a]:

To Artifact [109265f25d]:


20
21
22
23
24
25
26
27

28
29
30
31
32
33
34

35
36
37
38
39
40
41
42


43
44
45
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
112

113
114
115
116
117
118
119

120
121
122
123
124

125
126
127
128
129

130
131
132
133
134

135
136
137
138
139
140
141
142
143

144
145
146
147
148
149
150
151
152
153

154
155
156
157
158
159
160

161
162
163
164
165
166
167
168
169
170
171
172

173
174
175
176
177
178
179
180
181

182
183
184
185
186
187
188
189
190

191
192
193
194
195

196
197
198
199
200

201
202
203
20
21
22
23
24
25
26

27
28
29
30
31
32
33

34
35
36
37
38
39
40


41
42
43
44
45
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
112
113

114
115
116
117
118
119
120

121
122
123
124
125

126
127
128
129
130

131
132
133
134
135

136
137
138
139
140
141
142
143
144

145
146
147
148
149
150
151
152
153
154

155
156
157
158
159
160
161

162
163
164
165
166
167
168
169
170
171
172
173

174
175
176
177
178
179
180
181
182

183
184
185
186
187
188
189
190
191

192
193
194
195
196

197
198
199
200
201

202
203
204
205







-
+






-
+






-
-
+
+








-
-
+
+










-
-
+
+









-
-
+
+











-
+






-
+
+







-
+
+









-
+






-
+




-
+




-
+




-
+








-
+









-
+






-
+











-
+








-
+








-
+




-
+




-
+



#import "OFString.h"

/**
 * \brief A class for storing and modifying strings.
 */
@interface OFMutableString: OFString
/**
 * Sets the OFMutableString to the specified UTF-8 encoded C string.
 * \brief Sets the OFMutableString to the specified UTF-8 encoded C string.
 *
 * \param string A UTF-8 encoded C string to set the OFMutableString to.
 */
- (void)setToCString: (const char*)string;

/**
 * Appends a UTF-8 encoded C string to the OFMutableString.
 * \brief Appends a UTF-8 encoded C string to the OFMutableString.
 *
 * \param string A UTF-8 encoded C string to append
 */
- (void)appendCString: (const char*)string;

/**
 * Appends a UTF-8 encoded C string with the specified length to the
 * OFMutableString.
 * \brief Appends a UTF-8 encoded C string with the specified length to the
 *	  OFMutableString.
 *
 * \param string A UTF-8 encoded C string to append
 * \param length The length of the UTF-8 encoded C string
 */
- (void)appendCString: (const char*)string
	   withLength: (size_t)length;

/**
 * Appends a C string with the specified encoding and length to the
 * OFMutableString.
 * \brief Appends a C string with the specified encoding and length to the
 *	  OFMutableString.
 *
 * \param string A C string to append
 * \param encoding The encoding of the C string
 * \param length The length of the UTF-8 encoded C string
 */
- (void)appendCString: (const char*)string
	 withEncoding: (of_string_encoding_t)encoding
	       length: (size_t)length;

/**
 * Appends a UTF-8 encoded C string to the OFMutableString without checking
 * whether it is valid UTF-8.
 * \brief Appends a UTF-8 encoded C string to the OFMutableString without
 *	  checking whether it is valid UTF-8.
 *
 * Only use this if you are 100% sure the string you append is either ASCII or
 * UTF-8!
 *
 * \param string A UTF-8 encoded C string to append
 */
- (void)appendCStringWithoutUTF8Checking: (const char*)string;

/**
 * Appends a UTF-8 encoded C string with the specified length to the
 * OFMutableString without checking whether it is valid UTF-8.
 * \brief Appends a UTF-8 encoded C string with the specified length to the
 *	  OFMutableString without checking whether it is valid UTF-8.
 *
 * Only use this if you are 100% sure the string you append is either ASCII or
 * UTF-8!
 *
 * \param string A UTF-8 encoded C string to append
 * \param length The length of the UTF-8 encoded C string
 */
- (void)appendCStringWithoutUTF8Checking: (const char*)string
				  length: (size_t)length;

/**
 * Appends another OFString to the OFMutableString.
 * \brief Appends another OFString to the OFMutableString.
 *
 * \param string An OFString to append
 */
- (void)appendString: (OFString*)string;

/**
 * Appends a formatted UTF-8 encoded C string to the OFMutableString.
 * \brief Appends a formatted string to the OFMutableString.
 *
 * See printf for the format syntax.
 *
 * \param format A format string which generates the string to append
 */
- (void)appendFormat: (OFString*)format, ...;

/**
 * Appends a formatted UTF-8 encoded C string to the OFMutableString.
 * \brief Appends a formatted string to the OFMutableString.
 *
 * See printf for the format syntax.
 *
 * \param format A format string which generates the string to append
 * \param arguments The arguments used in the format string
 */
- (void)appendFormat: (OFString*)format
       withArguments: (va_list)arguments;

/**
 * Prepends another OFString to the OFMutableString.
 * \brief Prepends another OFString to the OFMutableString.
 *
 * \param string An OFString to prepend
 */
- (void)prependString: (OFString*)string;

/**
 * Reverse the OFMutableString.
 * \brief Reverses the OFMutableString.
 */
- (void)reverse;

/**
 * Upper the OFMutableString.
 * \brief Converts the OFMutableString to uppercase.
 */
- (void)upper;

/**
 * Lower the OFMutableString.
 * \brief Converts the OFMutableString to lowercase.
 */
- (void)lower;

/**
 * Inserts a string at the specified index.
 * \brief Inserts a string at the specified index.
 *
 * \param string The string to insert
 * \param index The index
 */
- (void)insertString: (OFString*)string
	     atIndex: (size_t)index;

/**
 * Deletes the characters at the specified range.
 * \brief Deletes the characters at the specified range.
 *
 * \param start The index where the deletion should be started
 * \param end The index until which the characters should be deleted.
 *	      This points BEHIND the last character!
 */
- (void)deleteCharactersFromIndex: (size_t)start
			  toIndex: (size_t)end;

/**
 * Deletes the characters at the specified range.
 * \brief Deletes the characters at the specified range.
 *
 * \param range The range of the characters which should be removed
 */
- (void)deleteCharactersInRange: (of_range_t)range;

/**
 * Replaces the characters at the specified range.
 * \brief Replaces the characters at the specified range.
 *
 * \param start The index where the replacement should be started
 * \param end The index until which the characters should be replaced.
 *	      This points BEHIND the last character!
 * \param replacement The string to the replace the characters with
 */
- (void)replaceCharactersFromIndex: (size_t)start
			   toIndex: (size_t)end
			withString: (OFString*)replacement;

/**
 * Deletes the characters at the specified range.
 * \brief Replaces the characters at the specified range.
 *
 * \param range The range of the characters which should be replaced
 * \param replacement The string to the replace the characters with
 */
- (void)replaceCharactersInRange: (of_range_t)range
		      withString: (OFString*)replacement;

/**
 * Deletes all occurrences of a string with another string.
 * \brief Replaces all occurrences of a string with another string.
 *
 * \param string The string to replace
 * \param replacement The string with which it should be replaced
 */
- (void)replaceOccurrencesOfString: (OFString*)string
			withString: (OFString*)replacement;

/**
 * Deletes all whitespaces at the beginning of a string.
 * \brief Deletes all whitespaces at the beginning of the string.
 */
- (void)deleteLeadingWhitespaces;

/**
 * Deletes all whitespaces at the end of a string.
 * \brief Deletes all whitespaces at the end of the string.
 */
- (void)deleteTrailingWhitespaces;

/**
 * Deletes all whitespaces at the beginning and the end of a string.
 * \brief Deletes all whitespaces at the beginning and the end of the string.
 */
- (void)deleteLeadingAndTrailingWhitespaces;
@end