From 03f033035f823eb2beb78fbaae39e2676396ea63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Sun, 14 Feb 2021 11:26:29 +0100 Subject: [PATCH] #1260, #1438 AS1/2 direct editing on(xxx), onClipEvent(xxx) handlers --- CHANGELOG.md | 1 + .../decompiler/flash/SWFInputStream.java | 10 +- .../parser/script/ActionScript2Parser.java | 201 +++++++++++++++++- .../flash/importers/AS2ScriptImporter.java | 2 +- .../flash/types/BUTTONCONDACTION.java | 11 +- .../flash/types/CLIPACTIONRECORD.java | 33 ++- .../decompiler/flash/types/CLIPACTIONS.java | 26 ++- .../flash/ActionScript2CompilerTest.java | 2 +- .../flash/ActionScript2DeobfuscatorTest.java | 2 +- .../flash/ActionScript2ParserTest.java | 12 +- .../decompiler/flash/DirectEditingTest.java | 8 +- libsrc/ffdec_lib/testdata/as2/as2.fla | Bin 1088295 -> 1088406 bytes libsrc/ffdec_lib/testdata/as2/as2.swf | Bin 29777 -> 29823 bytes .../console/CommandLineArgumentParser.java | 2 +- .../flash/gui/GenericTagTreePanel.java | 9 + .../flash/gui/action/ActionPanel.java | 15 +- 16 files changed, 295 insertions(+), 39 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 260a83f9a..13f9a3e6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ All notable changes to this project will be documented in this file. ### Added - #1202 Check for modifications outside FFDec and ask user to reload - #1155, #1602 AS3 remove trait button +- #1260, #1438 AS1/2 direct editing on(xxx), onClipEvent(xxx) handlers ### Fixed - #1298 AS1/2 properly decompiled setProperty/getProperty diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWFInputStream.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWFInputStream.java index 72f049332..ca7e26d7d 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWFInputStream.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWFInputStream.java @@ -12,7 +12,8 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library. */ + * License along with this library. + */ package com.jpexs.decompiler.flash; import com.jpexs.decompiler.flash.action.Action; @@ -2079,12 +2080,13 @@ public class SWFInputStream implements AutoCloseable { * @param swf * @param tag * @param name + * @param parentClipActions * @return CLIPACTIONRECORD value * @throws IOException */ - public CLIPACTIONRECORD readCLIPACTIONRECORD(SWF swf, Tag tag, String name) throws IOException { + public CLIPACTIONRECORD readCLIPACTIONRECORD(SWF swf, Tag tag, String name, CLIPACTIONS parentClipActions) throws IOException { newDumpLevel(name, "CLIPACTIONRECORD"); - CLIPACTIONRECORD ret = new CLIPACTIONRECORD(swf, this, tag); + CLIPACTIONRECORD ret = new CLIPACTIONRECORD(swf, this, tag, parentClipActions); endDumpLevel(); if (ret.eventFlags.isClear()) { return null; @@ -2108,7 +2110,7 @@ public class SWFInputStream implements AutoCloseable { ret.allEventFlags = readCLIPEVENTFLAGS("allEventFlags"); CLIPACTIONRECORD cr; ret.clipActionRecords = new ArrayList<>(); - while ((cr = readCLIPACTIONRECORD(swf, tag, "record")) != null) { + while ((cr = readCLIPACTIONRECORD(swf, tag, "record", ret)) != null) { ret.clipActionRecords.add(cr); } endDumpLevel(); diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScript2Parser.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScript2Parser.java index de060b927..0d11d275e 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScript2Parser.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScript2Parser.java @@ -138,6 +138,9 @@ import com.jpexs.decompiler.flash.helpers.StringBuilderTextWriter; import com.jpexs.decompiler.flash.helpers.collections.MyEntry; import com.jpexs.decompiler.flash.tags.DoInitActionTag; import com.jpexs.decompiler.flash.tags.base.ASMSource; +import com.jpexs.decompiler.flash.types.BUTTONCONDACTION; +import com.jpexs.decompiler.flash.types.CLIPACTIONRECORD; +import com.jpexs.decompiler.flash.types.CLIPEVENTFLAGS; import com.jpexs.decompiler.graph.CompilationException; import com.jpexs.decompiler.graph.GraphSourceItem; import com.jpexs.decompiler.graph.GraphTargetItem; @@ -226,10 +229,12 @@ public class ActionScript2Parser { private final int swfVersion; private List swfClasses = new ArrayList<>(); + private final ASMSource targetSource; - public ActionScript2Parser(SWF swf) { + public ActionScript2Parser(SWF swf, ASMSource targetSource) { this.swfVersion = swf.version; parseSwfClasses(swf); + this.targetSource = targetSource; } private long uniqLast = 0; @@ -1841,8 +1846,7 @@ public class ActionScript2Parser { } else if (newvar instanceof VariableActionItem) { ret = new NewObjectActionItem(null, null, newvar, args); } - } - else if (newvar instanceof ToNumberActionItem) { + } else if (newvar instanceof ToNumberActionItem) { List args = new ArrayList<>(); if (((ToNumberActionItem) newvar).value != null) { args.add(((ToNumberActionItem) newvar).value); @@ -1996,6 +2000,172 @@ public class ActionScript2Parser { this.constantPool = constantPool; lexer = new ActionScriptLexer(new StringReader(str)); + BUTTONCONDACTION newButtonCond = new BUTTONCONDACTION(); + + if (targetSource instanceof BUTTONCONDACTION) { + ParsedSymbol symb = lexer.lex(); + if (symb.type != SymbolType.IDENTIFIER || !"on".equals(symb.value)) { + throw new ActionParseException("on keyword expected but " + symb + " found", lexer.yyline()); + } + expectedType(SymbolType.PARENT_OPEN); + symb = lexer.lex(); + boolean condEmpty = true; + while (symb.type == SymbolType.IDENTIFIER) { + condEmpty = false; + switch ((String) symb.value) { + case "press": + newButtonCond.condOverUpToOverDown = true; + break; + case "release": + newButtonCond.condOverDownToOverUp = true; + break; + case "releaseOutside": + newButtonCond.condOutDownToIdle = true; + break; + case "rollOver": + newButtonCond.condIdleToOverUp = true; + break; + case "rollOut": + newButtonCond.condOverUpToIddle = true; + break; + case "dragOut": + newButtonCond.condOverDownToOutDown = true; + break; + case "dragOver": + newButtonCond.condOutDownToOverDown = true; + break; + case "keyPress": + symb = lexer.lex(); + expected(symb, lexer.yyline(), SymbolType.STRING); + Integer key = CLIPACTIONRECORD.stringToKey((String) symb.value); + if (key == null) { + throw new ActionParseException("Invalid key", lexer.yyline()); + } + newButtonCond.condKeyPress = key; + break; + default: + throw new ActionParseException("Unrecognized event type", lexer.yyline()); + } + symb = lexer.lex(); + if (symb.type == SymbolType.PARENT_CLOSE) { + break; + } + expected(symb, lexer.yyline(), SymbolType.COMMA); + symb = lexer.lex(); + } + expected(symb, lexer.yyline(), SymbolType.PARENT_CLOSE); + if (condEmpty) { + throw new ActionParseException("condition must be non empty", lexer.yyline()); + } + expectedType(SymbolType.CURLY_OPEN); + } + + CLIPEVENTFLAGS newClipEventFlags = new CLIPEVENTFLAGS(); + int newClipActionRecordKey = 0; + if (targetSource instanceof CLIPACTIONRECORD) { + ParsedSymbol symb = lexer.lex(); + if (symb.type != SymbolType.IDENTIFIER || (!"on".equals(symb.value) && !"onClipEvent".equals(symb.value))) { + throw new ActionParseException("on or onClipEvent keyword expected but " + symb + " found", lexer.yyline()); + } + expectedType(SymbolType.PARENT_OPEN); + if ("on".equals(symb.value)) { + symb = lexer.lex(); + boolean condEmpty = true; + while (symb.type == SymbolType.IDENTIFIER) { + condEmpty = false; + switch ((String) symb.value) { + case "press": + newClipEventFlags.clipEventPress = true; + break; + case "release": + newClipEventFlags.clipEventRelease = true; + break; + case "releaseOutside": + newClipEventFlags.clipEventReleaseOutside = true; + break; + case "rollOver": + newClipEventFlags.clipEventRollOver = true; + break; + case "rollOut": + newClipEventFlags.clipEventRollOut = true; + break; + case "dragOut": + newClipEventFlags.clipEventDragOut = true; + break; + case "dragOver": + newClipEventFlags.clipEventDragOver = true; + break; + case "initialize": + newClipEventFlags.clipEventInitialize = true; + break; + case "construct": + newClipEventFlags.clipEventConstruct = true; + break; + + case "keyPress": + symb = lexer.lex(); + expected(symb, lexer.yyline(), SymbolType.STRING); + Integer key = CLIPACTIONRECORD.stringToKey((String) symb.value); + if (key == null) { + throw new ActionParseException("Invalid key", lexer.yyline()); + } + newClipActionRecordKey = key; + newClipEventFlags.clipEventKeyPress = true; + break; + default: + throw new ActionParseException("Unrecognized event type", lexer.yyline()); + } + symb = lexer.lex(); + if (symb.type == SymbolType.PARENT_CLOSE) { + break; + } + expected(symb, lexer.yyline(), SymbolType.COMMA); + symb = lexer.lex(); + } + expected(symb, lexer.yyline(), SymbolType.PARENT_CLOSE); + if (condEmpty) { + throw new ActionParseException("condition must be non empty", lexer.yyline()); + } + } else if ("onClipEvent".equals(symb.value)) { + symb = lexer.lex(); + expected(symb, lexer.yyline(), SymbolType.IDENTIFIER); + + switch ((String) symb.value) { + case "keyUp": + newClipEventFlags.clipEventKeyUp = true; + break; + case "keyDown": + newClipEventFlags.clipEventKeyDown = true; + break; + case "mouseUp": + newClipEventFlags.clipEventMouseUp = true; + break; + case "mouseDown": + newClipEventFlags.clipEventMouseDown = true; + break; + case "mouseMove": + newClipEventFlags.clipEventMouseMove = true; + break; + case "unload": + newClipEventFlags.clipEventUnload = true; + break; + case "enterFrame": + newClipEventFlags.clipEventEnterFrame = true; + break; + case "load": + newClipEventFlags.clipEventLoad = true; + break; + case "data": + newClipEventFlags.clipEventData = true; + break; + default: + throw new ActionParseException("Unrecognized clipEvent type", lexer.yyline()); + } + expectedType(SymbolType.PARENT_CLOSE); + } + expectedType(SymbolType.CURLY_OPEN); + } + List vars = new ArrayList<>(); List functions = new ArrayList<>(); retTree.addAll(commands(false, false, 0, vars, functions)); @@ -2034,9 +2204,34 @@ public class ActionScript2Parser { v.setBoxedValue(new GetVariableActionItem(null, null, pushConst(varName))); } } + + if ((targetSource instanceof BUTTONCONDACTION) || (targetSource instanceof CLIPACTIONRECORD)) { + expectedType(SymbolType.CURLY_CLOSE); + } + if (lexer.lex().type != SymbolType.EOF) { throw new ActionParseException("Parsing finished before end of the file", lexer.yyline()); } + if (targetSource instanceof BUTTONCONDACTION) { + BUTTONCONDACTION targetButtonCond = (BUTTONCONDACTION) targetSource; + targetButtonCond.condIdleToOverDown = newButtonCond.condIdleToOverDown; + targetButtonCond.condIdleToOverUp = newButtonCond.condIdleToOverUp; + targetButtonCond.condOutDownToIdle = newButtonCond.condOutDownToIdle; + targetButtonCond.condOutDownToOverDown = newButtonCond.condOutDownToOverDown; + targetButtonCond.condOverDownToIdle = newButtonCond.condOverDownToIdle; + targetButtonCond.condOverDownToOutDown = newButtonCond.condOverDownToOutDown; + targetButtonCond.condOverDownToOverUp = newButtonCond.condOverDownToOverUp; + targetButtonCond.condOverUpToIddle = newButtonCond.condOverUpToIddle; + targetButtonCond.condOverUpToOverDown = newButtonCond.condOverUpToOverDown; + targetButtonCond.condKeyPress = newButtonCond.condKeyPress; + } + + if (targetSource instanceof CLIPACTIONRECORD) { + CLIPACTIONRECORD targetClipActionRecord = (CLIPACTIONRECORD) targetSource; + targetClipActionRecord.eventFlags = newClipEventFlags; + targetClipActionRecord.keyCode = newClipActionRecordKey; + targetClipActionRecord.getParentClipActions().calculateAllEventFlags(); + } return retTree; } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/importers/AS2ScriptImporter.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/importers/AS2ScriptImporter.java index d29b04b05..aeb0e6b3f 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/importers/AS2ScriptImporter.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/importers/AS2ScriptImporter.java @@ -73,7 +73,7 @@ public class AS2ScriptImporter { if (new File(fileName).exists()) { String txt = Helper.readTextFile(fileName); - ActionScript2Parser par = new ActionScript2Parser(asm.getSwf()); + ActionScript2Parser par = new ActionScript2Parser(asm.getSwf(), asm); try { asm.setActions(par.actionsFromString(txt)); } catch (ActionParseException ex) { diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/BUTTONCONDACTION.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/BUTTONCONDACTION.java index 9e33a7539..63bc8547d 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/BUTTONCONDACTION.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/BUTTONCONDACTION.java @@ -12,7 +12,8 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library. */ + * License along with this library. + */ package com.jpexs.decompiler.flash.types; import com.jpexs.decompiler.flash.DisassemblyListener; @@ -169,7 +170,7 @@ public class BUTTONCONDACTION implements ASMSource, Serializable { */ @Override public String toString() { - return "BUTTONCONDACTION"; + return "BUTTONCONDACTION " + getHeader(false); } /** @@ -289,10 +290,10 @@ public class BUTTONCONDACTION implements ASMSource, Serializable { if (condOverUpToIddle) { events.add("rollOut"); } - if (condOverDownToOutDown) { + if (condOverDownToOutDown || condOverDownToIdle) { events.add("dragOut"); } - if (condOutDownToOverDown) { + if (condOutDownToOverDown || condIdleToOverDown) { events.add("dragOver"); } if (condKeyPress > 0) { @@ -337,7 +338,7 @@ public class BUTTONCONDACTION implements ASMSource, Serializable { @Override public String getExportFileName() { - return getHeader(true); + return "BUTTONCONDACTION " + getHeader(true); } @Override diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/CLIPACTIONRECORD.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/CLIPACTIONRECORD.java index f9efbfee9..80b106456 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/CLIPACTIONRECORD.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/CLIPACTIONRECORD.java @@ -12,7 +12,8 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library. */ + * License along with this library. + */ package com.jpexs.decompiler.flash.types; import com.jpexs.decompiler.flash.DisassemblyListener; @@ -44,12 +45,17 @@ import java.util.List; public class CLIPACTIONRECORD implements ASMSource, Serializable { private String scriptName = "-"; + private CLIPACTIONS parentClipActions; @Override public String getScriptName() { return scriptName; } + public CLIPACTIONS getParentClipActions() { + return parentClipActions; + } + public static String keyToString(int key) { if ((key < CLIPACTIONRECORD.KEYNAMES.length) && (key > 0) && (CLIPACTIONRECORD.KEYNAMES[key] != null)) { return CLIPACTIONRECORD.KEYNAMES[key]; @@ -58,6 +64,20 @@ public class CLIPACTIONRECORD implements ASMSource, Serializable { } } + public static Integer stringToKey(String str) { + for (int i = 0; i < KEYNAMES.length; i++) { + if (KEYNAMES[i] != null) { + if (str.equals(KEYNAMES[i])) { + return i; + } + } + } + if (str.length() == 1) { + return (int) str.charAt(0); + } + return null; + } + public static final String[] KEYNAMES = { null, "", @@ -113,7 +133,11 @@ public class CLIPACTIONRECORD implements ASMSource, Serializable { this.scriptName = scriptName; } - public CLIPACTIONRECORD(SWF swf, SWFInputStream sis, Tag tag) throws IOException { + public void setParentClipActions(CLIPACTIONS parentClipActions) { + this.parentClipActions = parentClipActions; + } + + public CLIPACTIONRECORD(SWF swf, SWFInputStream sis, Tag tag, CLIPACTIONS parentClipActions) throws IOException { this.swf = swf; this.tag = tag; eventFlags = sis.readCLIPEVENTFLAGS("eventFlags"); @@ -126,6 +150,7 @@ public class CLIPACTIONRECORD implements ASMSource, Serializable { actionRecordSize--; } actionBytes = sis.readByteRangeEx(actionRecordSize, "actionBytes", DumpInfoSpecialType.ACTION_BYTES, sis.getPos()); + this.parentClipActions = parentClipActions; } @Override @@ -157,7 +182,7 @@ public class CLIPACTIONRECORD implements ASMSource, Serializable { */ @Override public String toString() { - return eventFlags.getHeader(keyCode, false); + return "CLIPACTIONRECORD " + eventFlags.getHeader(keyCode, false); } /** @@ -293,7 +318,7 @@ public class CLIPACTIONRECORD implements ASMSource, Serializable { @Override public String getExportFileName() { - return eventFlags.getHeader(keyCode, true); + return "CLIPACTIONRECORD " + eventFlags.getHeader(keyCode, true); } @Override diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/CLIPACTIONS.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/CLIPACTIONS.java index b07860c3c..f703e3ec9 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/CLIPACTIONS.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/CLIPACTIONS.java @@ -12,14 +12,18 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library. */ + * License along with this library. + */ package com.jpexs.decompiler.flash.types; import com.jpexs.decompiler.flash.types.annotations.Reserved; import com.jpexs.decompiler.flash.types.annotations.SWFType; import java.io.Serializable; +import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; /** * Define event handlers for a sprite character @@ -41,4 +45,24 @@ public class CLIPACTIONS implements Serializable { * Individual event handlers */ public List clipActionRecords = new ArrayList<>(); + + public void calculateAllEventFlags() { + + Field[] fields = allEventFlags.getClass().getDeclaredFields(); + try { + for (Field f : fields) { + if (!f.getName().startsWith("clipEvent")) { + continue; + } + f.set(allEventFlags, false); + for (CLIPACTIONRECORD car : clipActionRecords) { + if (f.getBoolean(car.eventFlags)) { + f.set(allEventFlags, true); + } + } + } + } catch (IllegalArgumentException | IllegalAccessException ex) { + Logger.getLogger(CLIPACTIONS.class.getName()).log(Level.SEVERE, null, ex); + } + } } diff --git a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript2CompilerTest.java b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript2CompilerTest.java index 3d05f90f3..11d22970b 100644 --- a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript2CompilerTest.java +++ b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript2CompilerTest.java @@ -57,7 +57,7 @@ public class ActionScript2CompilerTest extends ActionScript2TestBase { SWF swf = new SWF(); ASMSource asm = new DoActionTag(swf); - ActionScript2Parser par = new ActionScript2Parser(swf); + ActionScript2Parser par = new ActionScript2Parser(swf, asm); try { asm.setActions(par.actionsFromString(sourceAsToCompile)); } catch (ActionParseException | CompilationException ex) { diff --git a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript2DeobfuscatorTest.java b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript2DeobfuscatorTest.java index 43a134e01..17a3c9105 100644 --- a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript2DeobfuscatorTest.java +++ b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript2DeobfuscatorTest.java @@ -55,7 +55,7 @@ public class ActionScript2DeobfuscatorTest extends ActionScript2TestBase { private String recompile(String str) throws ActionParseException, IOException, CompilationException, InterruptedException, TimeoutException { SWF swf = new SWF(); swf.version = SWF.DEFAULT_VERSION; - ActionScript2Parser par = new ActionScript2Parser(swf); + ActionScript2Parser par = new ActionScript2Parser(swf, new DoActionTag(swf)); HighlightedTextWriter writer = new HighlightedTextWriter(new CodeFormatting(), false); List actions = par.actionsFromString(str); byte[] hex = Action.actionsToBytes(actions, true, SWF.DEFAULT_VERSION); diff --git a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript2ParserTest.java b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript2ParserTest.java index 6d53a9428..5478c7659 100644 --- a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript2ParserTest.java +++ b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/ActionScript2ParserTest.java @@ -16,11 +16,21 @@ */ package com.jpexs.decompiler.flash; +import com.jpexs.decompiler.flash.action.Action; +import com.jpexs.decompiler.flash.action.ActionList; +import com.jpexs.decompiler.flash.action.ConstantPoolTooBigException; import com.jpexs.decompiler.flash.action.parser.script.ActionScript2Parser; import com.jpexs.decompiler.flash.action.swf4.ActionPush; import com.jpexs.decompiler.flash.configuration.Configuration; +import com.jpexs.decompiler.flash.exporters.modes.ScriptExportMode; +import com.jpexs.decompiler.flash.helpers.GraphTextWriter; +import com.jpexs.decompiler.flash.tags.DoActionTag; +import com.jpexs.decompiler.flash.tags.Tag; +import com.jpexs.decompiler.flash.tags.base.ASMSource; import com.jpexs.decompiler.graph.CompilationException; +import com.jpexs.helpers.ByteArrayRange; import java.io.IOException; +import java.util.List; import static org.testng.Assert.fail; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -41,7 +51,7 @@ public class ActionScript2ParserTest extends ActionScript2TestBase { try { SWF swf = new SWF(); swf.version = SWF.DEFAULT_VERSION; - ActionScript2Parser par = new ActionScript2Parser(swf); + ActionScript2Parser par = new ActionScript2Parser(swf, new DoActionTag(swf)); par.actionsFromString(script); } catch (IOException | CompilationException | ParseException ex) { fail("Unable to parse: " + script, ex); diff --git a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/DirectEditingTest.java b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/DirectEditingTest.java index d95e723c8..8c3f31a50 100644 --- a/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/DirectEditingTest.java +++ b/libsrc/ffdec_lib/test/com/jpexs/decompiler/flash/DirectEditingTest.java @@ -109,9 +109,9 @@ public class DirectEditingTest extends FileTestBase { HighlightedTextWriter writer = new HighlightedTextWriter(new CodeFormatting(), false); asm.getActionScriptSource(writer, null); String as = writer.toString(); - as = asm.removePrefixAndSuffix(as); + //as = asm.removePrefixAndSuffix(as); - ActionScript2Parser par = new ActionScript2Parser(swf); + ActionScript2Parser par = new ActionScript2Parser(swf, asm); try { asm.setActions(par.actionsFromString(as)); } catch (ActionParseException | CompilationException ex) { @@ -120,7 +120,7 @@ public class DirectEditingTest extends FileTestBase { writer = new HighlightedTextWriter(new CodeFormatting(), false); asm.getActionScriptSource(writer, null); String as2 = writer.toString(); - as2 = asm.removePrefixAndSuffix(as2); + //as2 = asm.removePrefixAndSuffix(as2); try { asm.setActions(par.actionsFromString(as2)); } catch (ActionParseException | CompilationException ex) { @@ -129,7 +129,7 @@ public class DirectEditingTest extends FileTestBase { writer = new HighlightedTextWriter(new CodeFormatting(), false); asm.getActionScriptSource(writer, null); String as3 = writer.toString(); - as3 = asm.removePrefixAndSuffix(as3); + //as3 = asm.removePrefixAndSuffix(as3); if (!as3.equals(as2)) { fail("ActionScript is different: " + asm.getSwf().getShortFileName() + "/" + asm.toString()); } diff --git a/libsrc/ffdec_lib/testdata/as2/as2.fla b/libsrc/ffdec_lib/testdata/as2/as2.fla index f000147eced135c03084bd53ac4f6e8832440b07..e65e072ff44e2b49756dd24632e11c20dc29354d 100644 GIT binary patch delta 18160 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 delta 29709 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 -1) { - if (lastLine - prefLines >= 0) { - decompiledEditor.gotoLine(lastLine - prefLines + 1); - } - } + setDecompiledText(src.getScriptName(), lastDecompiled.text); } else { setDecompiledText(src.getScriptName(), lastDecompiled.text); - if (lastLine > -1) { - decompiledEditor.gotoLine(lastLine + prefLines + 1); - } } } @@ -1071,7 +1060,7 @@ public class ActionPanel extends JPanel implements SearchListener