[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