[macruby-changes] [3551] MacRuby/branches/icu/string.c

source_changes at macosforge.org source_changes at macosforge.org
Tue Feb 16 01:33:22 PST 2010


Revision: 3551
          http://trac.macosforge.org/projects/ruby/changeset/3551
Author:   lsansonetti at apple.com
Date:     2010-02-16 01:33:19 -0800 (Tue, 16 Feb 2010)
Log Message:
-----------
more MRI functions

Modified Paths:
--------------
    MacRuby/branches/icu/string.c

Modified: MacRuby/branches/icu/string.c
===================================================================
--- MacRuby/branches/icu/string.c	2010-02-16 04:11:01 UTC (rev 3550)
+++ MacRuby/branches/icu/string.c	2010-02-16 09:33:19 UTC (rev 3551)
@@ -24,6 +24,8 @@
 VALUE rb_cNSMutableString;
 VALUE rb_cRubyString;
 
+VALUE rb_fs;
+
 static void
 str_update_flags_utf16(string_t *self)
 {
@@ -1275,12 +1277,6 @@
 }
 
 static VALUE
-mr_str_not_equal(VALUE self, SEL sel, VALUE compared_to)
-{
-    return RTEST(mr_str_equal(self, sel, compared_to)) ? Qfalse : Qtrue;
-}
-
-static VALUE
 mr_str_include(VALUE self, SEL sel, VALUE searched)
 {
     return str_include_string(RSTR(self), str_need_string(searched))
@@ -1348,7 +1344,6 @@
     rb_objc_define_method(rb_cRubyString, "<<", mr_str_concat, 1);
     rb_objc_define_method(rb_cRubyString, "concat", mr_str_concat, 1);
     rb_objc_define_method(rb_cRubyString, "==", mr_str_equal, 1);
-    rb_objc_define_method(rb_cRubyString, "!=", mr_str_not_equal, 1);
     rb_objc_define_method(rb_cRubyString, "include?", mr_str_include, 1);
     rb_objc_define_method(rb_cRubyString, "to_s", mr_str_to_s, 0);
     rb_objc_define_method(rb_cRubyString, "to_str", mr_str_to_s, 0);
@@ -1363,6 +1358,10 @@
     // purpose
     rb_objc_define_method(rb_cRubyString, "stored_in_uchars?",
 	    mr_str_is_stored_in_uchars, 0);
+
+    rb_fs = Qnil;
+    rb_define_variable("$;", &rb_fs);
+    rb_define_variable("$-F", &rb_fs);
 }
 
 // MRI C-API compatibility.
@@ -1482,6 +1481,12 @@
 }
 
 VALUE
+rb_str_to_str(VALUE str)
+{
+    return rb_convert_type(str, T_STRING, "String", "to_str");
+}
+
+VALUE
 rb_obj_as_string(VALUE obj)
 {
     if (TYPE(obj) == T_STRING || TYPE(obj) == T_SYMBOL) {
@@ -1566,6 +1571,12 @@
 }
 
 VALUE
+rb_str_buf_cat_ascii(VALUE str, const char *cstr)
+{
+    return rb_str_buf_cat2(str, cstr);
+}
+
+VALUE
 rb_str_buf_append(VALUE str, VALUE str2)
 {
     if (IS_RSTR(str)) {
@@ -1605,3 +1616,30 @@
 {
     abort(); // TODO
 }
+
+VALUE
+rb_str_equal(VALUE str, VALUE str2)
+{
+    if (IS_RSTR(str)) {
+	return mr_str_equal(str, 0, str2);
+    }
+    return CFEqual((CFStringRef)str, (CFStringRef)str2) ? Qtrue : Qfalse;
+}
+
+VALUE
+rb_str_dup(VALUE str)
+{
+    if (IS_RSTR(str)) {
+	return (VALUE)str_dup(str);
+    }
+    abort(); // TODO
+}
+
+int
+rb_memhash(const void *ptr, long len)
+{
+    CFDataRef data = CFDataCreate(NULL, (const UInt8 *)ptr, len);
+    int code = CFHash(data);
+    CFRelease((CFTypeRef)data);
+    return code;
+}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20100216/7ac19f71/attachment.html>


More information about the macruby-changes mailing list