From bf70582cf30ae6f715769c519f451411f5d2a577 Mon Sep 17 00:00:00 2001 From: matz Date: Wed, 23 Feb 2000 05:23:12 +0000 Subject: 2000-02-23 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@624 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- string.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'string.c') diff --git a/string.c b/string.c index e48a1ec53d..1040b7c405 100644 --- a/string.c +++ b/string.c @@ -421,6 +421,7 @@ rb_str_hash(str) register char *p = RSTRING(str)->ptr; register int key = 0; +#if 0 if (ruby_ignorecase) { while (len--) { key = key*65599 + toupper(*p); @@ -433,6 +434,20 @@ rb_str_hash(str) p++; } } +#else + if (ruby_ignorecase) { + while (len--) { + key = key*33 + toupper(*p); + p++; + } + } + else { + while (len--) { + key = key*33 + *p++; + } + } + key = key + (key>>5); +#endif return key; } @@ -1354,6 +1369,7 @@ rb_str_inspect(str) char buf[STRMAX]; char *p, *pend; char *b; + VALUE inspect; p = RSTRING(str)->ptr; pend = p + RSTRING(str)->len; b = buf; @@ -1430,7 +1446,9 @@ rb_str_inspect(str) } } *b++ = '"'; - return rb_str_new(buf, b - buf); + inspect = rb_str_new(buf, b - buf); + OBJ_INFECT(inspect, str); + return inspect; } static VALUE -- cgit v1.2.3