[macruby-changes] [146] MacRuby/trunk/string.c

source_changes at macosforge.org source_changes at macosforge.org
Thu Apr 17 01:08:29 PDT 2008


Revision: 146
          http://trac.macosforge.org/projects/ruby/changeset/146
Author:   lsansonetti at apple.com
Date:     2008-04-17 01:08:28 -0700 (Thu, 17 Apr 2008)

Log Message:
-----------
fixing #ljust, #rjust, #rindex, #[] (with fixnum arg)

Modified Paths:
--------------
    MacRuby/trunk/string.c

Modified: MacRuby/trunk/string.c
===================================================================
--- MacRuby/trunk/string.c	2008-04-17 07:18:14 UTC (rev 145)
+++ MacRuby/trunk/string.c	2008-04-17 08:08:28 UTC (rev 146)
@@ -1446,6 +1446,11 @@
 rb_str_subseq(VALUE str, long beg, long len)
 {
 #if WITH_OBJC
+    long n = CFStringGetLength((CFStringRef)str);
+    if (beg < 0)
+	beg += n;
+    if (beg + len > n || beg < 0)
+	return Qnil;
     return (VALUE)CFStringCreateWithSubstring(NULL, (CFStringRef)str, 
 	CFRangeMake(beg, len));
 #else
@@ -2533,7 +2538,7 @@
     CFRange r;
     return (CFStringFindWithOptions((CFStringRef)str, 
 		(CFStringRef)sub,
-		CFRangeMake(0, pos),
+		CFRangeMake(0, pos+1),
 		kCFCompareBackwards,
 		&r))
 	? r.location : -1;
@@ -3057,7 +3062,7 @@
 
       num_index:
 	str = rb_str_substr(str, idx, 1);
-	if (!NIL_P(str) && RSTRING_LEN(str) == 0) return Qnil;
+	if (!NIL_P(str) && RSTRING_CLEN(str) == 0) return Qnil;
 	return str;
 
       case T_REGEXP:
@@ -6802,10 +6807,10 @@
 	rb_str_justify0(str, pad, floor(width / 2.0), padwidth, 0);
     }
     else if (jflag == 'l') {
-	rb_str_justify0(str, pad, width, padwidth, 0);
+	rb_str_justify0(str, pad, width, padwidth, n);
     }
     else if (jflag == 'r') {
-	rb_str_justify0(str, pad, width, padwidth, n);
+	rb_str_justify0(str, pad, width, padwidth, 0);
     }
     else {
 	rb_bug("invalid jflag");

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macruby-changes/attachments/20080417/8aa159ab/attachment.html


More information about the macruby-changes mailing list