From f5531dfa74a470cf722e63ff49be9c0a2e5b418d Mon Sep 17 00:00:00 2001 From: Enrico Joerns Date: Tue, 5 Aug 2014 17:25:38 +0200 Subject: [PATCH] [cooja] ContikiMoteType: Fix mapfile variable size parsing For some longer variable names the lines are wrapped after the name to display size information vertical aligned. --- .../cooja/contikimote/ContikiMoteType.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/tools/cooja/java/org/contikios/cooja/contikimote/ContikiMoteType.java b/tools/cooja/java/org/contikios/cooja/contikimote/ContikiMoteType.java index 96bbaf27c..46d94ddf9 100644 --- a/tools/cooja/java/org/contikios/cooja/contikimote/ContikiMoteType.java +++ b/tools/cooja/java/org/contikios/cooja/contikimote/ContikiMoteType.java @@ -660,8 +660,17 @@ public class ContikiMoteType implements MoteType { Cooja.getExternalToolsSetting("MAPFILE_VAR_SIZE_1") + varName + Cooja.getExternalToolsSetting("MAPFILE_VAR_SIZE_2")); - for (String line : mapFileData) { - Matcher matcher = pattern.matcher(line); + for (int idx = 0; idx < mapFileData.length; idx++) { + String parseString = mapFileData[idx]; + Matcher matcher = pattern.matcher(parseString); + if (matcher.find()) { + return Integer.decode(matcher.group(1)); + } + // second approach with lines joined + if (idx < mapFileData.length - 1) { + parseString += mapFileData[idx + 1]; + } + matcher = pattern.matcher(parseString); if (matcher.find()) { return Integer.decode(matcher.group(1)); }