[macruby-changes] [5010] MacRuby/trunk
source_changes at macosforge.org
source_changes at macosforge.org
Fri Dec 10 04:01:01 PST 2010
Revision: 5010
http://trac.macosforge.org/projects/ruby/changeset/5010
Author: watson1978 at gmail.com
Date: 2010-12-10 04:00:56 -0800 (Fri, 10 Dec 2010)
Log Message:
-----------
String#lines will yield the paragraph when passed ''. Fixed a #865.
Modified Paths:
--------------
MacRuby/trunk/spec/frozen/tags/macruby/core/string/each_line_tags.txt
MacRuby/trunk/spec/frozen/tags/macruby/core/string/lines_tags.txt
MacRuby/trunk/string.c
Modified: MacRuby/trunk/spec/frozen/tags/macruby/core/string/each_line_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/macruby/core/string/each_line_tags.txt 2010-12-10 01:26:45 UTC (rev 5009)
+++ MacRuby/trunk/spec/frozen/tags/macruby/core/string/each_line_tags.txt 2010-12-10 12:00:56 UTC (rev 5010)
@@ -1,3 +1,2 @@
-fails:String#each_line yields paragraphs (broken by 2 or more successive newlines) when passed ''
fails:String#each_line yields subclass instances for subclasses
fails:String#each_line does not care if the string is modified while substituting
Modified: MacRuby/trunk/spec/frozen/tags/macruby/core/string/lines_tags.txt
===================================================================
--- MacRuby/trunk/spec/frozen/tags/macruby/core/string/lines_tags.txt 2010-12-10 01:26:45 UTC (rev 5009)
+++ MacRuby/trunk/spec/frozen/tags/macruby/core/string/lines_tags.txt 2010-12-10 12:00:56 UTC (rev 5010)
@@ -1,3 +1,2 @@
-fails:String#lines yields paragraphs (broken by 2 or more successive newlines) when passed ''
fails:String#lines yields subclass instances for subclasses
fails:String#lines does not care if the string is modified while substituting
Modified: MacRuby/trunk/string.c
===================================================================
--- MacRuby/trunk/string.c 2010-12-10 01:26:45 UTC (rev 5009)
+++ MacRuby/trunk/string.c 2010-12-10 12:00:56 UTC (rev 5010)
@@ -4596,8 +4596,10 @@
StringValue(rs);
rb_str_t *rs_str = str_need_string(rs);
+ bool paragraph = false;
if (rs_str->length_in_bytes == 0) {
- rs_str = str_need_string(rb_default_rs);
+ rs_str = RSTR(rb_str_new("\n\n", 2));
+ paragraph = true;
}
const long len = str_length(RSTR(str), true);
@@ -4605,8 +4607,18 @@
long pos = 0;
do {
- const long off = str_index_for_string(RSTR(str), rs_str, pos, -1,
+ long off = str_index_for_string(RSTR(str), rs_str, pos, -1,
false, true);
+ if(paragraph && off > 0) {
+ int i;
+ for(i = off + 1; i < len; i++) {
+ UChar c = str_get_uchar(RSTR(str), i, true);
+ if (c != '\n') {
+ break;
+ }
+ }
+ off = i - 1;
+ }
long substr_len = 0;
if (off < 0) {
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20101210/99ee780b/attachment-0001.html>
More information about the macruby-changes
mailing list