http://www.mediawiki.org/wiki/Special:Code/MediaWiki/96060

Revision: 96060
Author:   tparscal
Date:     2011-09-01 23:04:25 +0000 (Thu, 01 Sep 2011)
Log Message:
-----------
Prepared for merge with select tests

Modified Paths:
--------------
    trunk/parsers/wikidom/lib/synth/bases/es.ContentSeries.js

Modified: trunk/parsers/wikidom/lib/synth/bases/es.ContentSeries.js
===================================================================
--- trunk/parsers/wikidom/lib/synth/bases/es.ContentSeries.js   2011-09-01 
22:58:21 UTC (rev 96059)
+++ trunk/parsers/wikidom/lib/synth/bases/es.ContentSeries.js   2011-09-01 
23:04:25 UTC (rev 96060)
@@ -53,7 +53,7 @@
 
 es.ContentSeries.prototype.select = function( start, end ) {
        // Support es.Range object as first argument
-       if ( typeof start.from !== undefined && typeof start.to !== undefined ) 
{
+       if ( typeof start.from === 'number' && typeof start.to === 'number') {
                start.normalize();
                end = start.end;
                start = start.start;
@@ -61,21 +61,31 @@
        var items = [];
        if ( this.length ) {
                var i = 0,
-                       legnth = this.length,
+                       length = this.length,
                        left = 0,
                        right,
                        inside = false;
                while ( i < length ) {
-                       right = left + this[i].getLength();
+                       right = left + this[i].getLength() + 1;
                        if ( inside ) {
-                               items.push( this[i] );
+                               items.push( {
+                                       'item': this[i],
+                                       'from': 0,
+                                       'to': Math.min( right - left - 1, end - 
left )
+                               } );
                                if ( end >= left && end < right ) {
                                        break;
                                }
                        } else if ( start >= left && start < right ) {
                                inside = true;
-                               
-                               items.push( this[i] );
+                               items.push( {
+                                       'item': this[i],
+                                       'from': Math.max( left, start ),
+                                       'to': Math.min( right - 1, end )
+                               } );
+                               if ( right >= end ) {
+                                       break;
+                               }
                        }
                        left = right;
                        i++;


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to