==(p1)
public
Equality—If obj is not a String,
returns false. Otherwise, returns true if str <=>
obj returns zero.
Show source
VALUE
rb_str_equal(VALUE str1, VALUE str2)
{
int len;
if (str1 == str2) return Qtrue;
if (TYPE(str2) != T_STRING) {
if (!rb_respond_to(str2, rb_intern("to_str"))) {
return Qfalse;
}
return rb_equal(str2, str1);
}
if (!rb_str_comparable(str1, str2)) return Qfalse;
if (RSTRING_LEN(str1) == (len = RSTRING_LEN(str2)) &&
memcmp(RSTRING_PTR(str1), RSTRING_PTR(str2), len) == 0) {
return Qtrue;
}
return Qfalse;
}