@@ -184,4 +184,52 @@ int String_$_length_$_(IDENT_MPTR_RAW * s_)
184
184
{
185
185
String * s = s_ -> obj ;
186
186
return s -> length ;
187
+ }
188
+
189
+ IDENT_MPTR_RAW * String_$_lower_$_ (IDENT_MPTR_RAW * right_ , IDENT_MPTR_RAW * $_mptr_in )
190
+ {
191
+ debugPrintf ("String_$_lower %s -> %s\n" ,right_ -> debugName , $_mptr_in -> debugName );
192
+ _$_mptr __attribute__ ((__cleanup__ (_$_cleanup ))) $_mptr_temp ;
193
+ IDENT_MPTR_INITIALIZE_RAW (& $_mptr_temp , xstr ($_mptr_temp ));
194
+ IDENT_MPTR_RAW * s_ = String_$_String_$_ (& $_mptr_temp );
195
+ String * s = s_ -> obj ;
196
+ String * right = right_ -> obj ;
197
+
198
+ s -> buffer = malloc (right -> length + 1 );
199
+
200
+
201
+ for (int i = 0 ; right -> buffer [i ]; i ++ ){
202
+ s -> buffer [i ] = tolower (right -> buffer [i ]);
203
+ }
204
+
205
+ s -> length = right -> length ;
206
+ s -> buffer [s -> length ] = 0 ;
207
+ s -> isStaticBuffer = false;
208
+
209
+ _$_mptr_prepare (& $_mptr_temp ,$_mptr_in );
210
+ return $_mptr_in ;
211
+ }
212
+
213
+ IDENT_MPTR_RAW * String_$_upper_$_ (IDENT_MPTR_RAW * right_ , IDENT_MPTR_RAW * $_mptr_in )
214
+ {
215
+ debugPrintf ("String_$_lower %s -> %s\n" ,right_ -> debugName , $_mptr_in -> debugName );
216
+ _$_mptr __attribute__ ((__cleanup__ (_$_cleanup ))) $_mptr_temp ;
217
+ IDENT_MPTR_INITIALIZE_RAW (& $_mptr_temp , xstr ($_mptr_temp ));
218
+ IDENT_MPTR_RAW * s_ = String_$_String_$_ (& $_mptr_temp );
219
+ String * s = s_ -> obj ;
220
+ String * right = right_ -> obj ;
221
+
222
+ s -> buffer = malloc (right -> length + 1 );
223
+
224
+
225
+ for (int i = 0 ; right -> buffer [i ]; i ++ ){
226
+ s -> buffer [i ] = toupper (right -> buffer [i ]);
227
+ }
228
+
229
+ s -> length = right -> length ;
230
+ s -> buffer [s -> length ] = 0 ;
231
+ s -> isStaticBuffer = false;
232
+
233
+ _$_mptr_prepare (& $_mptr_temp ,$_mptr_in );
234
+ return $_mptr_in ;
187
235
}
0 commit comments