0) { // codecoverpreloadswf is first one var s:String = stringMap[0]; stringMap = [s]; lineMap = [{}]; } else { stringMap = []; lineMap = [{}]; } } public function newString(file_name:String):void { stringMap.push(file_name); lineMap.push({}); //trace(file_name); } private var s:String = ""; public function debugline(string_ids:String, linenums:String):void { var ids:Array = string_ids.split(" "); var lines:Array = linenums.split(" "); var n:int = ids.length; for (var i:int = 0; i < n; i++) { ++count; if (stringMap[ids[i]] == undefined) s += ids[i] + ':' + rightJustify(lines[i]) + "\n"; else if (lineMap[ids[i]][lines[i]] == undefined) { lineMap[ids[i]][lines[i]] = 1; s += '"' + stringMap[ids[i]] + '":' + rightJustify(lines[i]) + "\n"; } } } private var padding:String = " "; private function rightJustify(num:String):String { var i:int = 8 - num.length; var pad:String = padding.substr(0, i); return pad + num; } private function updateStuff():void { if (count > 0) { fs.writeUTFBytes(s); s = ""; numlines.text = count.toString(); } } protected function closeHandler(event:Event):void { mmFile.nativePath = mmPath.text; if (!mmFile.exists) { Alert.show("mm.cfg not found", "Error"); return; } swfFile.nativePath = swfPath.text; if (!swfFile.exists) { Alert.show("CodeCoveragePreloadSWF.swf not found", "Error"); return; } var fs:FileStream = new FileStream(); fs.open(mmFile, FileMode.UPDATE); var text:String = fs.readUTFBytes(fs.bytesAvailable); var lineSep:String = "\r\n"; if (text.indexOf(lineSep) == -1) { lineSep = "\r"; if (text.indexOf(lineSep) == -1) { lineSep = "\n"; } } var lines:Array = text.split(lineSep); var n:int = lines.length; for (var i:int = 0; i < n; i++) { if (lines[i].indexOf(PRELOAD_SWF) != -1) { lines.splice(i, 1); i--; n--; } } if (lines[n - 1].length > 0) lines.push(""); text = lines.join(lineSep); fs.position = 0; fs.truncate(); fs.writeUTFBytes(text); fs.close(); } ]]>