From e70766a5357ddf9e2b39eeca2575b524d2f2a100 Mon Sep 17 00:00:00 2001 From: Dave Conway-Jones Date: Fri, 16 Jun 2017 09:21:53 +0100 Subject: [PATCH] fix split to pass tests... --- nodes/core/logic/17-split.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/nodes/core/logic/17-split.js b/nodes/core/logic/17-split.js index 47c97f8d0..f385bf158 100644 --- a/nodes/core/logic/17-split.js +++ b/nodes/core/logic/17-split.js @@ -78,7 +78,7 @@ module.exports = function(RED) { msg.parts.count = count; var pos = 0; var data = msg.payload; - for (var i=0;i -1) { + while (pos > -1) { count++; end = pos+node.splt.length; pos = msg.payload.indexOf(node.splt,end); @@ -175,7 +175,7 @@ module.exports = function(RED) { var i = 0, p = 0; var data = msg.payload; pos = data.indexOf(node.splt); - while(pos > -1) { + while (pos > -1) { msg.payload = data.slice(p,pos); msg.parts.index = i; node.send(RED.util.cloneMessage(msg)); @@ -252,7 +252,7 @@ module.exports = function(RED) { var bufferLen = 0; if (group.joinChar !== undefined) { var joinBuffer = Buffer.from(group.joinChar); - for (var i=0;i 0) { buffers.push(joinBuffer); bufferLen += joinBuffer.length; @@ -416,7 +416,9 @@ module.exports = function(RED) { } // TODO: currently reuse the last received - add option to pick first received group.msg = msg; - if (group.currentCount >= (group.targetCount || msg.parts.count) || msg.hasOwnProperty('complete')) { + var tcnt = group.targetCount; + if (msg.hasOwnProperty("parts")) { tcnt = group.targetCount || msg.parts.count; } + if (group.currentCount >= tcnt || msg.hasOwnProperty('complete')) { completeSend(partId); } } catch(err) {