[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