diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java index e1bff8d17..d53f5d252 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java @@ -1259,6 +1259,9 @@ public final class SWF implements SWFContainerItem, Timelined { List scrs = abc.findScriptPacksByPath(className, allAbcList); for (int j = 0; j < scrs.size(); j++) { ScriptPack scr = scrs.get(j); + if (!scr.isSimple && Configuration.ignoreCLikePackages.get()) { + continue; + } String cnt = ""; if (scrs.size() > 1) { cnt = "script " + (j + 1) + "/" + scrs.size() + " "; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java index a5374b9f7..261e9a7d6 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/configuration/Configuration.java @@ -479,6 +479,10 @@ public class Configuration { @ConfigurationCategory("ui") public static final ConfigurationItem allowOnlyOneInstance = null; + @ConfigurationDefaultBoolean(false) + @ConfigurationCategory("script") + public static final ConfigurationItem ignoreCLikePackages = null; + private enum OSId { WINDOWS, OSX, UNIX diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/script/AS3ScriptExporter.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/script/AS3ScriptExporter.java index 6f8a86c5a..2e714c208 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/script/AS3ScriptExporter.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/exporters/script/AS3ScriptExporter.java @@ -58,6 +58,9 @@ public class AS3ScriptExporter { @Override public Void call() throws Exception { for (ScriptPack item : packs) { + if (!item.isSimple && Configuration.ignoreCLikePackages.get()) { + continue; + } ExportPackTask task = new ExportPackTask(handler, cnt, packs.size(), item.getClassPath(), item, outdir, exportSettings, parallel, evl); ret.add(task.call()); } @@ -73,6 +76,9 @@ public class AS3ScriptExporter { ExecutorService executor = Executors.newFixedThreadPool(Configuration.getParallelThreadCount()); List> futureResults = new ArrayList<>(); for (ScriptPack item : packs) { + if (!item.isSimple && Configuration.ignoreCLikePackages.get()) { + continue; + } Future future = executor.submit(new ExportPackTask(handler, cnt, packs.size(), item.getClassPath(), item, outdir, exportSettings, parallel, evl)); futureResults.add(future); } diff --git a/src/com/jpexs/decompiler/flash/gui/MainPanel.java b/src/com/jpexs/decompiler/flash/gui/MainPanel.java index 6b43093fc..f7e10830a 100644 --- a/src/com/jpexs/decompiler/flash/gui/MainPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/MainPanel.java @@ -1235,7 +1235,11 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se try (FileTextWriter writer = scriptExportSettings.singleFile ? new FileTextWriter(Configuration.getCodeFormatting(), new FileOutputStream(singleFileName)) : null) { scriptExportSettings.singleFileWriter = writer; for (int i = 0; i < as3scripts.size(); i++) { + ScriptPack tls = as3scripts.get(i); + if (!tls.isSimple && Configuration.ignoreCLikePackages.get()) { + continue; + } Main.startWork(translate("work.exporting") + " " + (i + 1) + "/" + as3scripts.size() + " " + tls.getPath() + " ..."); ret.add(tls.export(scriptsFolder, scriptExportSettings, parallel)); } diff --git a/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java b/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java index bfb44ee22..cf2d478ae 100644 --- a/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java @@ -175,6 +175,9 @@ public class ABCPanel extends JPanel implements ItemListener, SearchListener