ObjFW  Diff

Differences From Artifact [2c3f1dcc50]:

To Artifact [37a957d0d8]:


12
13
14
15
16
17
18
19
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
12
13
14
15
16
17
18


19
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







-
-
+
+


-
-
+
+

-
-
+
+




-
-
+
+

-
+



-
-
+
+


-
-
+
+




-
-
+
+

-
-
+
+




-
-
+
+


-
-
-
+
+
+





-
-
+
+

-
+



-
-
+
+




-
+



-
-
+
+




-
-
+
+




-
-
+
+

-
+



-
-
+
+



-
-
+
+



-
-
+
+



-
-
+
+

-
+





-
-
+
+

-
-
+
+




-
-
+
+

-
+



-
-
+
+

-
-
+
+




-
-
+
+

-
-
+
+




-
-
+
+


-
-
-
+
+
+

-
+






-
-
+
+



-
-
+
+



-
-
+
+



-
-
+
+



 * Public License, either version 2 or 3, which can be found in the file
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#import "OFString.h"

/**
 * \brief A class for storing and modifying strings.
/*!
 * @brief A class for storing and modifying strings.
 */
@interface OFMutableString: OFString
/**
 * \brief Sets the character at the specified index.
/*!
 * @brief Sets the character at the specified index.
 *
 * \param character The character to set
 * \param index The index where to set the character
 * @param character The character to set
 * @param index The index where to set the character
 */
- (void)setCharacter: (of_unichar_t)character
	     atIndex: (size_t)index;

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

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

/**
 * \brief Appends a C string with the specified encoding to the OFMutableString.
/*!
 * @brief Appends a C string with the specified encoding to the OFMutableString.
 *
 * \param cString A C string to append
 * \param encoding The encoding of the C string
 * @param cString A C string to append
 * @param encoding The encoding of the C string
 */
- (void)appendCString: (const char*)cString
	     encoding: (of_string_encoding_t)encoding;

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

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

/**
 * \brief Appends a formatted string to the OFMutableString.
/*!
 * @brief Appends a formatted string to the OFMutableString.
 *
 * See printf for the format syntax. As an addition, %@ is available as format
 * specifier for objects.
 *
 * \param format A format string which generates the string to append
 * @param format A format string which generates the string to append
 */
- (void)appendFormat: (OFConstantString*)format, ...;

/**
 * \brief Appends a formatted string to the OFMutableString.
/*!
 * @brief Appends a formatted string to the OFMutableString.
 *
 * See printf for the format syntax. As an addition, %@ is available as format
 * specifier for objects.
 *
 * \param format A format string which generates the string to append
 * \param arguments The arguments used in the format string
 * @param format A format string which generates the string to append
 * @param arguments The arguments used in the format string
 */
- (void)appendFormat: (OFConstantString*)format
	   arguments: (va_list)arguments;

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

/**
 * \brief Reverses the string.
/*!
 * @brief Reverses the string.
 */
- (void)reverse;

/**
 * \brief Converts the string to uppercase.
/*!
 * @brief Converts the string to uppercase.
 */
- (void)uppercase;

/**
 * \brief Converts the string to lowercase.
/*!
 * @brief Converts the string to lowercase.
 */
- (void)lowercase;

/**
 * \brief Capitalizes the string.
/*!
 * @brief Capitalizes the string.
 *
 * \note This only considers spaces, tabs and newlines to be word delimiters!
 * @note This only considers spaces, tabs and newlines to be word delimiters!
 *	 Also note that this might change in the future to all word delimiters
 *	 specified by Unicode!
 */
- (void)capitalize;

/**
 * \brief 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
 * @param string The string to insert
 * @param index The index
 */
- (void)insertString: (OFString*)string
	     atIndex: (size_t)index;

/**
 * \brief 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
 * @param range The range of the characters which should be removed
 */
- (void)deleteCharactersInRange: (of_range_t)range;

/**
 * \brief Replaces 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
 * @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;

/**
 * \brief Replaces 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
 * @param string The string to replace
 * @param replacement The string with which it should be replaced
 */
- (void)replaceOccurrencesOfString: (OFString*)string
			withString: (OFString*)replacement;

/**
 * \brief Replaces all occurrences of a string in the specified range with
/*!
 * @brief Replaces all occurrences of a string in the specified range with
 *	  another string.
 *
 * \param string The string to replace
 * \param replacement The string with which it should be replaced
 * \param options Options modifying search behaviour
 * @param string The string to replace
 * @param replacement The string with which it should be replaced
 * @param options Options modifying search behaviour
 *		  Possible values: None yet
 * \param range The range in which the string should be replaced
 * @param range The range in which the string should be replaced
 */
- (void)replaceOccurrencesOfString: (OFString*)string
			withString: (OFString*)replacement
			   options: (int)options
			     range: (of_range_t)range;

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

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

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

/**
 * \brief Converts the mutable string to an immutable string.
/*!
 * @brief Converts the mutable string to an immutable string.
 */
- (void)makeImmutable;
@end