From 65796966b0d817f9854cb8cd250b1a3e10480d37 Mon Sep 17 00:00:00 2001 From: Guilherme Schvarcz Franco Date: Wed, 11 May 2016 19:34:24 +0200 Subject: [PATCH] Fix a bug at uPlayback when working with binary data. --- Tools/Graphical/uPlayBack/MOOSPlayBackV2.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Tools/Graphical/uPlayBack/MOOSPlayBackV2.cpp b/Tools/Graphical/uPlayBack/MOOSPlayBackV2.cpp index ac163d9..aafede6 100644 --- a/Tools/Graphical/uPlayBack/MOOSPlayBackV2.cpp +++ b/Tools/Graphical/uPlayBack/MOOSPlayBackV2.cpp @@ -284,20 +284,23 @@ bool CMOOSPlayBackV2::MessageFromLine(const std::string & sLine, CMOOSMsg &Msg) if(sData.find("") !=std::string::npos) { + + std::string sOpenTag(""), sCloseTag(""); + std::string sBinaryDataInfo = sData.substr(sData.find(sOpenTag)+sOpenTag.size(),sData.find(sCloseTag)-sData.find(sOpenTag)-sOpenTag.size()); //Msg.MarkAsBinary(); - long long nOffset; - if(!MOOSValFromString(nOffset,sData,"Offset")) - return MOOSFail("badly formed MOOS_BINARY indicator - missing \"Offset=xyz\""); std::string sFile; - if(!MOOSValFromString(sFile,sData,"File")) + if(!MOOSValFromString(sFile,sBinaryDataInfo,"File")) return MOOSFail("badly formed MOOS_BINARY indicator - missing \"File=XYZ\""); + double nOffset; + if(!MOOSValFromString(nOffset,sBinaryDataInfo,"Offset")) + return MOOSFail("badly formed MOOS_BINARY indicator - missing \"Offset=xyz\""); + int nBytes; - if(!MOOSValFromString(nBytes,sData,"Bytes")) + if(!MOOSValFromString(nBytes,sBinaryDataInfo,"Bytes")) return MOOSFail("badly formed MOOS_BINARY indicator - missing \"Bytes=xyz\""); - //corner case of binary file changing half way through a log....(Why this might happen //I don't know but catch it anyway.... if(sFile != m_sBinaryFileName && m_BinaryFile.is_open() )