From caca8c1503188a4378666fd843f678c981600396 Mon Sep 17 00:00:00 2001 From: Colin Fuller Date: Thu, 6 Dec 2012 16:27:55 -0800 Subject: [PATCH] fix MicromanagerReader ignoring metadata within and after nested elements using curly braces inside FrameKey elements --- .../src/loci/formats/in/MicromanagerReader.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/components/scifio/src/loci/formats/in/MicromanagerReader.java b/components/scifio/src/loci/formats/in/MicromanagerReader.java index bab7685..318d702 100644 --- a/components/scifio/src/loci/formats/in/MicromanagerReader.java +++ b/components/scifio/src/loci/formats/in/MicromanagerReader.java @@ -564,8 +564,21 @@ public class MicromanagerReader extends FormatReader { token = st.nextToken().trim(); String key = "", value = ""; boolean valueArray = false; + int nestedCount = 0; + + while (!token.startsWith("}") || nestedCount > 0) { + + if (token.trim().endsWith("{")) { + nestedCount++; + token = st.nextToken().trim(); + continue; + } + else if (token.trim().startsWith("}")) { + nestedCount--; + token = st.nextToken().trim(); + continue; + } - while (!token.startsWith("}")) { if (valueArray) { if (token.trim().equals("],")) { valueArray = false; -- 1.7.9.5