Feature #4893 » String_call_initialize_v3b.diff
| "b/C:\\Users\\LAZARI~1\\AppData\\Local\\Temp\\strA4D8.c" | ||
|---|---|---|
| 
         return str; 
   | 
||
| 
     } 
   | 
||
| 
     #define FL_CALL_INIT FL_USER18 
   | 
||
| 
     VALUE 
   | 
||
| 
     rb_str_call_initialize_get(VALUE self) 
   | 
||
| 
     { 
   | 
||
| 
         if (FL_TEST(rb_cString, FL_CALL_INIT)) return Qtrue; 
   | 
||
| 
         return Qfalse; 
   | 
||
| 
     } 
   | 
||
| 
     VALUE 
   | 
||
| 
     rb_str_call_initialize_set(VALUE self, VALUE val) 
   | 
||
| 
     { 
   | 
||
| 
     	FL_UNSET(rb_cString, FL_CALL_INIT); 
   | 
||
| 
         if (val == Qtrue) FL_SET(rb_cString, FL_CALL_INIT); 
   | 
||
| 
     | 
||
| 
         return self; 
   | 
||
| 
     } 
   | 
||
| 
     VALUE 
   | 
||
| 
     rb_str_new(const char *ptr, long len) 
   | 
||
| 
     { 
   | 
||
| 
         return str_new(rb_cString, ptr, len); 
   | 
||
| 
         VALUE str; 
   | 
||
| 
         VALUE argv[1]; 
   | 
||
| 
         str = str_new(rb_cString, ptr, len); 
   | 
||
| 
         if (FL_TEST(rb_cString, FL_CALL_INIT)) { 
   | 
||
| 
     	argv[0] = (VALUE)str; 
   | 
||
| 
     	rb_obj_call_init((VALUE)str, 1, argv); 
   | 
||
| 
         } 
   | 
||
| 
         return str; 
   | 
||
| 
     } 
   | 
||
| 
     VALUE 
   | 
||
| ... | ... | |
| 
         rb_cString  = rb_define_class("String", rb_cObject); 
   | 
||
| 
         rb_include_module(rb_cString, rb_mComparable); 
   | 
||
| 
         rb_define_alloc_func(rb_cString, str_alloc); 
   | 
||
| 
         rb_define_singleton_method(rb_cString, "call_initialize", rb_str_call_initialize_get, 0); 
   | 
||
| 
         rb_define_singleton_method(rb_cString, "call_initialize=", rb_str_call_initialize_set, 1); 
   | 
||
| 
         rb_define_singleton_method(rb_cString, "try_convert", rb_str_s_try_convert, 1); 
   | 
||
| 
         rb_define_method(rb_cString, "initialize", rb_str_init, -1); 
   | 
||
| 
         rb_define_method(rb_cString, "initialize_copy", rb_str_replace, 1); 
   | 
||