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