mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-06-12 06:34:55 +00:00
changelog with links [ci skip]
This commit is contained in:
344
CHANGELOG.md
344
CHANGELOG.md
@@ -3,44 +3,44 @@ All notable changes to this project will be documented in this file.
|
||||
|
||||
## [14.1.0] - 2021-03-05
|
||||
### Added
|
||||
- #1561 Font editing - import ascent, descent, leading, kerning
|
||||
- [#1561] Font editing - import ascent, descent, leading, kerning
|
||||
- Font editing - font name, ascent, descent, leading
|
||||
- PlaceObject tags matrix editation - FreeTransform tool (move, resize, rotate, shear)
|
||||
|
||||
### Fixed
|
||||
- #1623 Right side marker (gray line) in P-code
|
||||
- #1622 Slow scrolling (search results, advanced settings and others)
|
||||
- #1626 AS3 decompilation - unpopped obfuscated function
|
||||
- #1624 Saving last searches saves only first results
|
||||
- #1627 Previously decompiled scripts not cached
|
||||
- [#1623] Right side marker (gray line) in P-code
|
||||
- [#1622] Slow scrolling (search results, advanced settings and others)
|
||||
- [#1626] AS3 decompilation - unpopped obfuscated function
|
||||
- [#1624] Saving last searches saves only first results
|
||||
- [#1627] Previously decompiled scripts not cached
|
||||
- SWF is not garbage collected on close in some situations
|
||||
- AS1/2 script search does not show all results
|
||||
- #1633 AS3 decompilation - return in for..in clause
|
||||
- [#1633] AS3 decompilation - return in for..in clause
|
||||
- AS3 p-code/AS hilighting when outside trait
|
||||
- AS3 p-code/AS hilighting after p-code save
|
||||
- Decompilation - Goto handling
|
||||
- Not selecting proper script after restoring session
|
||||
- #1603 empty script after search selection
|
||||
- [#1603] empty script after search selection
|
||||
- Generic tag tree exception on save
|
||||
- Copying to clipboard does not support transparency
|
||||
- #1634 AS3 slot/const editor loses focus on edit button press
|
||||
- #1636 Exception after search - traitslist with not properly set abc, other ui exception
|
||||
- [#1634] AS3 slot/const editor loses focus on edit button press
|
||||
- [#1636] Exception after search - traitslist with not properly set abc, other ui exception
|
||||
- Flash viewer- cyclic DefineSprite usage
|
||||
- #1570 Incorrect shape rendering when edge is reversed
|
||||
- #1643 Separate AS1/2 and AS3 editor hilighting
|
||||
- [#1570] Incorrect shape rendering when edge is reversed
|
||||
- [#1643] Separate AS1/2 and AS3 editor hilighting
|
||||
- AS3 direct editation - slot/const default values
|
||||
- #1328 AS1/2/3 direct editation - empty commands (just semicolon)
|
||||
- #1310 AS1/2/3 direct editation - modulo operator precedence
|
||||
- [#1328] AS1/2/3 direct editation - empty commands (just semicolon)
|
||||
- [#1310] AS1/2/3 direct editation - modulo operator precedence
|
||||
- AS3 - escaping star import
|
||||
- #1298 AS1 colon syntax handling
|
||||
- #1298 AS1 direct editation of add,eq,ne and such operations
|
||||
- #1260 AS1/2 direct editation - is/as/:: are not reserved operators
|
||||
- [#1298] AS1 colon syntax handling
|
||||
- [#1298] AS1 direct editation of add,eq,ne and such operations
|
||||
- [#1260] AS1/2 direct editation - is/as/:: are not reserved operators
|
||||
- Goto declaration - exception when exists QName with 0 namespace index
|
||||
- #1179 FLA Export - button sounds
|
||||
- [#1179] FLA Export - button sounds
|
||||
- FLA export - sound effects - fade in / out / left to right / right to left
|
||||
|
||||
### Removed
|
||||
- #1631 ActiveX Flash component download in windows installer
|
||||
- [#1631] ActiveX Flash component download in windows installer
|
||||
|
||||
### Changed
|
||||
- Spaces around ternar operators, parenthesis on ternar inside ternat
|
||||
@@ -50,66 +50,66 @@ All notable changes to this project will be documented in this file.
|
||||
- AS3 goto definition on imports
|
||||
|
||||
### Fixed
|
||||
- #1336 AS3 direct editation - Regexp / character escaping
|
||||
- #1615 Turning off Checking for modifications disables SWF loading
|
||||
- #1100, #1123, #1516 AS1/2/3 direct editation - comma operator
|
||||
- #1618 Export to PDF selectable text escaping and text size
|
||||
- #1101 AS3 direct editation - handling imported vars
|
||||
- #1169 AS1/2 direct editation - getmember after new operator
|
||||
- #1338, #1480 AS3 direct editation - Vector in combination with activation
|
||||
- [#1336] AS3 direct editation - Regexp / character escaping
|
||||
- [#1615] Turning off Checking for modifications disables SWF loading
|
||||
- [#1100], [#1123], [#1516] AS1/2/3 direct editation - comma operator
|
||||
- [#1618] Export to PDF selectable text escaping and text size
|
||||
- [#1101] AS3 direct editation - handling imported vars
|
||||
- [#1169] AS1/2 direct editation - getmember after new operator
|
||||
- [#1338], [#1480] AS3 direct editation - Vector in combination with activation
|
||||
- AS3 decompilation - do not show setslot on activation when has same name as method parameter
|
||||
- #1450 AS3 direct editation - handling types from same package
|
||||
- [#1450] AS3 direct editation - handling types from same package
|
||||
- AS3 goto definition for types in another ABC tag
|
||||
- AS3 goto definition for obfuscated names
|
||||
- AS3 direct editation - compilation of top level classes
|
||||
- #1494 AS1/2 Direct editation - GetURL not properly saved caused by case
|
||||
- [#1494] AS1/2 Direct editation - GetURL not properly saved caused by case
|
||||
- AS1/2 Direct editation - functions case sensitivity
|
||||
|
||||
### Changed
|
||||
- #1616 Close SWF menuitem is last in the context menu
|
||||
- #1620 Search results - Using list component instead of tree when searching in single SWF
|
||||
- [#1616] Close SWF menuitem is last in the context menu
|
||||
- [#1620] Search results - Using list component instead of tree when searching in single SWF
|
||||
|
||||
## [14.0.0] - 2021-02-24
|
||||
### 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
|
||||
- #1366, #1409, #1429, #1573, #1598 AS1/2/3 Add script/class (context menu on scripts folder)
|
||||
- [#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
|
||||
- [#1366], [#1409], [#1429], [#1573], [#1598] AS1/2/3 Add script/class (context menu on scripts folder)
|
||||
- Removing BUTTONCONDACTION, CLIPACTIONRECORD
|
||||
- Removing whole AS1/2 script folders (frame, DefineSprite, packages)
|
||||
- Removing AS3 scripts and whole packages
|
||||
- Japanese translation
|
||||
- #428, #583, #1373 Exporting PDFs with selectable text
|
||||
- [#428], [#583], [#1373] Exporting PDFs with selectable text
|
||||
- Goto address dialog in Hex view (Ctrl+G or via context menu)
|
||||
- AS3 P-code editation checking all referenced labels exist
|
||||
- #1595 History of script search results per SWF
|
||||
- [#1595] History of script search results per SWF
|
||||
- Ignore case and RegExp options displayed on search results dialog
|
||||
- #1611 Warning about initializers has do not show again checkbox
|
||||
- [#1611] Warning about initializers has do not show again checkbox
|
||||
- Scoped script text search and search across multiple SWFs
|
||||
- #1601 Option to hide AS3 docs panel and traitslist/constants panel
|
||||
- [#1601] Option to hide AS3 docs panel and traitslist/constants panel
|
||||
|
||||
### Fixed
|
||||
- #1298 AS1/2 properly decompiled setProperty/getProperty
|
||||
- [#1298] AS1/2 properly decompiled setProperty/getProperty
|
||||
- AS1/2 Direct editation mark line on error
|
||||
- Collapsing tag tree on SWF reload
|
||||
- #1339 AS1/2 direct editation - targetPath as an expression
|
||||
- #1467 AS1/2 direct editation - allow new Number call
|
||||
- #1489 AS1/2 direct editation - reversed negations
|
||||
- #1489 AS1/2 direct editation - for in loop
|
||||
- #1490, #1493 AS1/2 direct editation - cast op
|
||||
- [#1339] AS1/2 direct editation - targetPath as an expression
|
||||
- [#1467] AS1/2 direct editation - allow new Number call
|
||||
- [#1489] AS1/2 direct editation - reversed negations
|
||||
- [#1489] AS1/2 direct editation - for in loop
|
||||
- [#1490], [#1493] AS1/2 direct editation - cast op
|
||||
- AS1/2 cast op decompilation
|
||||
- Only last DoInitAction tag displayed
|
||||
- #1606 Run/Debug SWF that is embedded (has no file associated)
|
||||
- #1270, #1336 AS3 direct editation - unnecessary coerce in setproperty
|
||||
- [#1606] Run/Debug SWF that is embedded (has no file associated)
|
||||
- [#1270], [#1336] AS3 direct editation - unnecessary coerce in setproperty
|
||||
- AS3 direct editation - unary minus (negate) compiled as 0 - value
|
||||
- AS3 direct editation - using finally clause for continue and break
|
||||
- AS3 direct editation - popscope in catch on continue and break
|
||||
- #1159, #1608 Regexp syntax hilight when not a regexp (only division) again
|
||||
- [#1159], [#1608] Regexp syntax hilight when not a regexp (only division) again
|
||||
- Graphviz Graph not showing AS3 exception end
|
||||
- #1609 First frame missing in frame to PDF export
|
||||
- [#1609] First frame missing in frame to PDF export
|
||||
- AS3 with statement decompilation
|
||||
- #1610 AS3 unnecessary adding namespaces
|
||||
- #1610 AS3 P-code editation - true/false/undefined/null has value_index same as value_kind
|
||||
- [#1610] AS3 unnecessary adding namespaces
|
||||
- [#1610] AS3 P-code editation - true/false/undefined/null has value_index same as value_kind
|
||||
- Ribbon stealing focus when pressing Alt (for example in editors)
|
||||
- Focused byte barely visible in hex view
|
||||
- AS3 P-code editation - only first try offset was saved when multiple try with same label
|
||||
@@ -117,28 +117,28 @@ All notable changes to this project will be documented in this file.
|
||||
- AS3 decompilation: increment/decrement on properties
|
||||
- AS1/2 Goto search result not properly selecting line (delay)
|
||||
- ActiveX exceptions when FlashPlayer disabled in classic GUI
|
||||
- #1569 AS3 direct editation - incorrect slot names handling (IndexOutOfBounds)
|
||||
- #1153, #1347, #1400, #1552, #1553 Images export for some nonstandard JPEGs
|
||||
- [#1569] AS3 direct editation - incorrect slot names handling (IndexOutOfBounds)
|
||||
- [#1153], [#1347], [#1400], [#1552], [#1553] Images export for some nonstandard JPEGs
|
||||
|
||||
### Changed
|
||||
- #1565, #1407, #1350 On BinaryData SWF save, parent SWF is saved
|
||||
- [#1565], [#1407], [#1350] On BinaryData SWF save, parent SWF is saved
|
||||
- Mouseover / focused bytes in hexview displayed with border
|
||||
instead of background color change to improve readability
|
||||
- #692 Search results dialog Goto button does not close dialog
|
||||
- [#692] Search results dialog Goto button does not close dialog
|
||||
|
||||
## [13.0.3] - 2021-02-12
|
||||
### Added
|
||||
- #1594 Option to disable AS3 P-code indentation, label on separate line
|
||||
- #1594 Option to use old style of getlocalx, setlocalx with underscore in AS3 P-code
|
||||
- #1597 Option to use old style lookupswitch in AS3 P-code
|
||||
- [#1594] Option to disable AS3 P-code indentation, label on separate line
|
||||
- [#1594] Option to use old style of getlocalx, setlocalx with underscore in AS3 P-code
|
||||
- [#1597] Option to use old style lookupswitch in AS3 P-code
|
||||
|
||||
### Fixed
|
||||
- #1114 Script search results dialogs closing on swf close
|
||||
- #1159 Regexp syntax hilight when not a regexp (only division)
|
||||
- #1227 AS3 avoid recursion (stackoverflow) caused by newfunction instruction
|
||||
- #1360 Precedence of increment/decrement operations
|
||||
- #1407 NullPointer on Save as in BinaryData SWF subtree
|
||||
- #1596 Infinite loop when sorting traits according to dependencies
|
||||
- [#1114] Script search results dialogs closing on swf close
|
||||
- [#1159] Regexp syntax hilight when not a regexp (only division)
|
||||
- [#1227] AS3 avoid recursion (stackoverflow) caused by newfunction instruction
|
||||
- [#1360] Precedence of increment/decrement operations
|
||||
- [#1407] NullPointer on Save as in BinaryData SWF subtree
|
||||
- [#1596] Infinite loop when sorting traits according to dependencies
|
||||
- Cannot properly cancel script searching
|
||||
|
||||
## [13.0.2] - 2021-02-10
|
||||
@@ -147,11 +147,11 @@ All notable changes to this project will be documented in this file.
|
||||
|
||||
### Fixed
|
||||
- AS1/2 script export to single file maintains script order
|
||||
- #1088 ECMA Number to string conversion
|
||||
- [#1088] ECMA Number to string conversion
|
||||
- AS3 getslot/setslot in certain situations
|
||||
- #1185 AS3 Incorrect imports in obfuscated files
|
||||
- #1186 Missing import when item is fully qualified
|
||||
- #1188 AS3 reorder traits if one slot/const references another
|
||||
- [#1185] AS3 Incorrect imports in obfuscated files
|
||||
- [#1186] Missing import when item is fully qualified
|
||||
- [#1188] AS3 reorder traits if one slot/const references another
|
||||
|
||||
## [13.0.1] - 2021-02-09
|
||||
### Fixed
|
||||
@@ -164,7 +164,7 @@ All notable changes to this project will be documented in this file.
|
||||
### Added
|
||||
- Graphviz graphs colorized
|
||||
- AS3: Show try graph heads in Graphviz distinguished
|
||||
- #341, #1379 AS3: Support for scripts not using kill instruction
|
||||
- [#341], [#1379] AS3: Support for scripts not using kill instruction
|
||||
- AS3 method trait p-code indentation, (optional) instruction name padding
|
||||
- AS3 editation of method body traits (slot/const only)
|
||||
|
||||
@@ -181,7 +181,7 @@ All notable changes to this project will be documented in this file.
|
||||
- AS3: return in finally
|
||||
- AS3 docs not correctly displayed under p-code when metadata present
|
||||
- Improper initialization of ActiveX component when Flash not available causing FFDec not start
|
||||
- #1206 Switch with multiple default clauses
|
||||
- [#1206] Switch with multiple default clauses
|
||||
- ASC2 §§push of function calls before returning from a method
|
||||
- Support for ASC2 and swftools try..catch..finally block
|
||||
- Dot parent operator not detected in some cases
|
||||
@@ -190,12 +190,12 @@ All notable changes to this project will be documented in this file.
|
||||
- AS3 deobfuscator of registers parsing of exception targets
|
||||
- AS3 code with exception start/end not matching instruction boundary
|
||||
- AS3 deobfuscator in some cases
|
||||
- #349 AS3 - better handling of declarations
|
||||
- #735 AS3 - index out of bounds in deobfuscator
|
||||
- [#349] AS3 - better handling of declarations
|
||||
- [#735] AS3 - index out of bounds in deobfuscator
|
||||
- AS3 deobfuscator on &&, || operators
|
||||
- Merged continues in try..catch
|
||||
- AS3 method display in GUI when method name is null
|
||||
- #1195 this keyword in functions outside class
|
||||
- [#1195] this keyword in functions outside class
|
||||
- AS3 p-code parser adding ;trait comment to last instruction
|
||||
|
||||
### Changed
|
||||
@@ -245,9 +245,9 @@ All notable changes to this project will be documented in this file.
|
||||
- Correct line matching in debugger of AS3 after using deobfuscation
|
||||
- Concurrent access while in debugger
|
||||
- Correct body index for script initializer in P-code debugging
|
||||
- #1550 TTF export - correctly handle duplicate unicode codes
|
||||
- #1548 correctly handle empty generated file names
|
||||
- #1379 AS3 - better handling local registers postincrement/decrement
|
||||
- [#1550] TTF export - correctly handle duplicate unicode codes
|
||||
- [#1548] correctly handle empty generated file names
|
||||
- [#1379] AS3 - better handling local registers postincrement/decrement
|
||||
- Better unresolved if handling
|
||||
- Escaping in P-code Graphviz exporter (Problems with graphs containing backslash strings)
|
||||
|
||||
@@ -257,16 +257,16 @@ All notable changes to this project will be documented in this file.
|
||||
- Updated turkish translation
|
||||
|
||||
### Fixed
|
||||
- #1500 Maximum SWF version constant increased, which is used by the memory search and also in the header editor
|
||||
- #1457 AS3 switch without lookupswitch ins detection
|
||||
- #1457 pushing on stack before exit item (return/throw)
|
||||
- #1503 NullPointer Exception on commandline FLA export
|
||||
- [#1500] Maximum SWF version constant increased, which is used by the memory search and also in the header editor
|
||||
- [#1457] AS3 switch without lookupswitch ins detection
|
||||
- [#1457] pushing on stack before exit item (return/throw)
|
||||
- [#1503] NullPointer Exception on commandline FLA export
|
||||
- AS3 direct editation - invalid generation of lookupswitch
|
||||
- AS3 direct editation - fix access to protected members with super
|
||||
- #1529 commandline selection of tag ids now applies to sprites and buttons
|
||||
- [#1529] commandline selection of tag ids now applies to sprites and buttons
|
||||
|
||||
### Changed
|
||||
- #1378 Transparent background on PNG/GIF sprite export
|
||||
- [#1378] Transparent background on PNG/GIF sprite export
|
||||
- SWF background on shape BMP export
|
||||
|
||||
## [11.2.0] - 2018-09-08
|
||||
@@ -295,8 +295,8 @@ All notable changes to this project will be documented in this file.
|
||||
- DefineBits (with JPEGTables) tag export
|
||||
- No disabling autoOpenLoadedSWFs checkbox when ActiveX player not available (User can use Run button)
|
||||
- Displaying contents of local variables (AS3) while debugging
|
||||
- #1415 freezing on manually closing Flash player debug session
|
||||
- #1484 AS import error printout on commandline (NullPointer)
|
||||
- [#1415] freezing on manually closing Flash player debug session
|
||||
- [#1484] AS import error printout on commandline (NullPointer)
|
||||
|
||||
## [11.1.0] - 2018-05-24
|
||||
### Added
|
||||
@@ -1953,7 +1953,18 @@ All notable changes to this project will be documented in this file.
|
||||
### Added
|
||||
- Initial public release
|
||||
|
||||
[Unreleased]: https://github.com/jindrapetrik/jpexs-decompiler/compare/version11.0.0...dev
|
||||
[14.1.0]: https://github.com/jindrapetrik/jpexs-decompiler/compare/version14.0.1...version14.1.0
|
||||
[14.0.1]: https://github.com/jindrapetrik/jpexs-decompiler/compare/version14.0.0...version14.0.1
|
||||
[14.0.0]: https://github.com/jindrapetrik/jpexs-decompiler/compare/version13.0.3...version14.0.0
|
||||
[13.0.3]: https://github.com/jindrapetrik/jpexs-decompiler/compare/version13.0.2...version13.0.3
|
||||
[13.0.2]: https://github.com/jindrapetrik/jpexs-decompiler/compare/version13.0.1...version13.0.2
|
||||
[13.0.1]: https://github.com/jindrapetrik/jpexs-decompiler/compare/version13.0.0...version13.0.1
|
||||
[13.0.0]: https://github.com/jindrapetrik/jpexs-decompiler/compare/version12.0.1...version13.0.0
|
||||
[12.0.1]: https://github.com/jindrapetrik/jpexs-decompiler/compare/version12.0.0...version12.0.1
|
||||
[12.0.0]: https://github.com/jindrapetrik/jpexs-decompiler/compare/version11.3.0...version12.0.0
|
||||
[11.3.0]: https://github.com/jindrapetrik/jpexs-decompiler/compare/version11.2.0...version11.3.0
|
||||
[11.2.0]: https://github.com/jindrapetrik/jpexs-decompiler/compare/version11.1.0...version11.2.0
|
||||
[11.1.0]: https://github.com/jindrapetrik/jpexs-decompiler/compare/version11.0.0...version11.1.0
|
||||
[11.0.0]: https://github.com/jindrapetrik/jpexs-decompiler/compare/version10.0.0...version11.0.0
|
||||
[10.0.0]: https://github.com/jindrapetrik/jpexs-decompiler/compare/version9.0.0...version10.0.0
|
||||
[9.0.0]: https://github.com/jindrapetrik/jpexs-decompiler/compare/version8.0.1...version9.0.0
|
||||
@@ -2050,6 +2061,133 @@ All notable changes to this project will be documented in this file.
|
||||
[alpha 9]: https://github.com/jindrapetrik/jpexs-decompiler/compare/alpha8...alpha9
|
||||
[alpha 8]: https://github.com/jindrapetrik/jpexs-decompiler/compare/alpha7...alpha8
|
||||
[alpha 7]: https://github.com/jindrapetrik/jpexs-decompiler/releases/tag/alpha7
|
||||
[#1561]: https://www.free-decompiler.com/flash/issues/1561
|
||||
[#1623]: https://www.free-decompiler.com/flash/issues/1623
|
||||
[#1622]: https://www.free-decompiler.com/flash/issues/1622
|
||||
[#1626]: https://www.free-decompiler.com/flash/issues/1626
|
||||
[#1624]: https://www.free-decompiler.com/flash/issues/1624
|
||||
[#1627]: https://www.free-decompiler.com/flash/issues/1627
|
||||
[#1633]: https://www.free-decompiler.com/flash/issues/1633
|
||||
[#1603]: https://www.free-decompiler.com/flash/issues/1603
|
||||
[#1634]: https://www.free-decompiler.com/flash/issues/1634
|
||||
[#1636]: https://www.free-decompiler.com/flash/issues/1636
|
||||
[#1570]: https://www.free-decompiler.com/flash/issues/1570
|
||||
[#1643]: https://www.free-decompiler.com/flash/issues/1643
|
||||
[#1328]: https://www.free-decompiler.com/flash/issues/1328
|
||||
[#1310]: https://www.free-decompiler.com/flash/issues/1310
|
||||
[#1298]: https://www.free-decompiler.com/flash/issues/1298
|
||||
[#1260]: https://www.free-decompiler.com/flash/issues/1260
|
||||
[#1179]: https://www.free-decompiler.com/flash/issues/1179
|
||||
[#1631]: https://www.free-decompiler.com/flash/issues/1631
|
||||
[#1336]: https://www.free-decompiler.com/flash/issues/1336
|
||||
[#1615]: https://www.free-decompiler.com/flash/issues/1615
|
||||
[#1100]: https://www.free-decompiler.com/flash/issues/1100
|
||||
[#1123]: https://www.free-decompiler.com/flash/issues/1123
|
||||
[#1516]: https://www.free-decompiler.com/flash/issues/1516
|
||||
[#1618]: https://www.free-decompiler.com/flash/issues/1618
|
||||
[#1101]: https://www.free-decompiler.com/flash/issues/1101
|
||||
[#1169]: https://www.free-decompiler.com/flash/issues/1169
|
||||
[#1338]: https://www.free-decompiler.com/flash/issues/1338
|
||||
[#1480]: https://www.free-decompiler.com/flash/issues/1480
|
||||
[#1450]: https://www.free-decompiler.com/flash/issues/1450
|
||||
[#1494]: https://www.free-decompiler.com/flash/issues/1494
|
||||
[#1616]: https://www.free-decompiler.com/flash/issues/1616
|
||||
[#1620]: https://www.free-decompiler.com/flash/issues/1620
|
||||
[#1202]: https://www.free-decompiler.com/flash/issues/1202
|
||||
[#1155]: https://www.free-decompiler.com/flash/issues/1155
|
||||
[#1602]: https://www.free-decompiler.com/flash/issues/1602
|
||||
[#1438]: https://www.free-decompiler.com/flash/issues/1438
|
||||
[#1366]: https://www.free-decompiler.com/flash/issues/1366
|
||||
[#1409]: https://www.free-decompiler.com/flash/issues/1409
|
||||
[#1429]: https://www.free-decompiler.com/flash/issues/1429
|
||||
[#1573]: https://www.free-decompiler.com/flash/issues/1573
|
||||
[#1598]: https://www.free-decompiler.com/flash/issues/1598
|
||||
[#428]: https://www.free-decompiler.com/flash/issues/428
|
||||
[#583]: https://www.free-decompiler.com/flash/issues/583
|
||||
[#1373]: https://www.free-decompiler.com/flash/issues/1373
|
||||
[#1595]: https://www.free-decompiler.com/flash/issues/1595
|
||||
[#1611]: https://www.free-decompiler.com/flash/issues/1611
|
||||
[#1601]: https://www.free-decompiler.com/flash/issues/1601
|
||||
[#1339]: https://www.free-decompiler.com/flash/issues/1339
|
||||
[#1467]: https://www.free-decompiler.com/flash/issues/1467
|
||||
[#1489]: https://www.free-decompiler.com/flash/issues/1489
|
||||
[#1490]: https://www.free-decompiler.com/flash/issues/1490
|
||||
[#1493]: https://www.free-decompiler.com/flash/issues/1493
|
||||
[#1606]: https://www.free-decompiler.com/flash/issues/1606
|
||||
[#1270]: https://www.free-decompiler.com/flash/issues/1270
|
||||
[#1159]: https://www.free-decompiler.com/flash/issues/1159
|
||||
[#1608]: https://www.free-decompiler.com/flash/issues/1608
|
||||
[#1609]: https://www.free-decompiler.com/flash/issues/1609
|
||||
[#1610]: https://www.free-decompiler.com/flash/issues/1610
|
||||
[#1569]: https://www.free-decompiler.com/flash/issues/1569
|
||||
[#1153]: https://www.free-decompiler.com/flash/issues/1153
|
||||
[#1347]: https://www.free-decompiler.com/flash/issues/1347
|
||||
[#1400]: https://www.free-decompiler.com/flash/issues/1400
|
||||
[#1552]: https://www.free-decompiler.com/flash/issues/1552
|
||||
[#1553]: https://www.free-decompiler.com/flash/issues/1553
|
||||
[#1565]: https://www.free-decompiler.com/flash/issues/1565
|
||||
[#1407]: https://www.free-decompiler.com/flash/issues/1407
|
||||
[#1350]: https://www.free-decompiler.com/flash/issues/1350
|
||||
[#692]: https://www.free-decompiler.com/flash/issues/692
|
||||
[#1594]: https://www.free-decompiler.com/flash/issues/1594
|
||||
[#1597]: https://www.free-decompiler.com/flash/issues/1597
|
||||
[#1114]: https://www.free-decompiler.com/flash/issues/1114
|
||||
[#1227]: https://www.free-decompiler.com/flash/issues/1227
|
||||
[#1360]: https://www.free-decompiler.com/flash/issues/1360
|
||||
[#1596]: https://www.free-decompiler.com/flash/issues/1596
|
||||
[#1088]: https://www.free-decompiler.com/flash/issues/1088
|
||||
[#1185]: https://www.free-decompiler.com/flash/issues/1185
|
||||
[#1186]: https://www.free-decompiler.com/flash/issues/1186
|
||||
[#1188]: https://www.free-decompiler.com/flash/issues/1188
|
||||
[#341]: https://www.free-decompiler.com/flash/issues/341
|
||||
[#1379]: https://www.free-decompiler.com/flash/issues/1379
|
||||
[#1206]: https://www.free-decompiler.com/flash/issues/1206
|
||||
[#349]: https://www.free-decompiler.com/flash/issues/349
|
||||
[#735]: https://www.free-decompiler.com/flash/issues/735
|
||||
[#1195]: https://www.free-decompiler.com/flash/issues/1195
|
||||
[#1550]: https://www.free-decompiler.com/flash/issues/1550
|
||||
[#1548]: https://www.free-decompiler.com/flash/issues/1548
|
||||
[#1500]: https://www.free-decompiler.com/flash/issues/1500
|
||||
[#1457]: https://www.free-decompiler.com/flash/issues/1457
|
||||
[#1503]: https://www.free-decompiler.com/flash/issues/1503
|
||||
[#1529]: https://www.free-decompiler.com/flash/issues/1529
|
||||
[#1378]: https://www.free-decompiler.com/flash/issues/1378
|
||||
[#1415]: https://www.free-decompiler.com/flash/issues/1415
|
||||
[#1484]: https://www.free-decompiler.com/flash/issues/1484
|
||||
[#1449]: https://www.free-decompiler.com/flash/issues/1449
|
||||
[#1456]: https://www.free-decompiler.com/flash/issues/1456
|
||||
[#1240]: https://www.free-decompiler.com/flash/issues/1240
|
||||
[#1308]: https://www.free-decompiler.com/flash/issues/1308
|
||||
[#1333]: https://www.free-decompiler.com/flash/issues/1333
|
||||
[#1365]: https://www.free-decompiler.com/flash/issues/1365
|
||||
[#1369]: https://www.free-decompiler.com/flash/issues/1369
|
||||
[#1327]: https://www.free-decompiler.com/flash/issues/1327
|
||||
[#1343]: https://www.free-decompiler.com/flash/issues/1343
|
||||
[#1348]: https://www.free-decompiler.com/flash/issues/1348
|
||||
[#1354]: https://www.free-decompiler.com/flash/issues/1354
|
||||
[#1367]: https://www.free-decompiler.com/flash/issues/1367
|
||||
[#1401]: https://www.free-decompiler.com/flash/issues/1401
|
||||
[#1402]: https://www.free-decompiler.com/flash/issues/1402
|
||||
[#1430]: https://www.free-decompiler.com/flash/issues/1430
|
||||
[#1254]: https://www.free-decompiler.com/flash/issues/1254
|
||||
[#907]: https://www.free-decompiler.com/flash/issues/907
|
||||
[#1311]: https://www.free-decompiler.com/flash/issues/1311
|
||||
[#1313]: https://www.free-decompiler.com/flash/issues/1313
|
||||
[#1189]: https://www.free-decompiler.com/flash/issues/1189
|
||||
[#1274]: https://www.free-decompiler.com/flash/issues/1274
|
||||
[#1275]: https://www.free-decompiler.com/flash/issues/1275
|
||||
[#1278]: https://www.free-decompiler.com/flash/issues/1278
|
||||
[#1281]: https://www.free-decompiler.com/flash/issues/1281
|
||||
[#1289]: https://www.free-decompiler.com/flash/issues/1289
|
||||
[#1283]: https://www.free-decompiler.com/flash/issues/1283
|
||||
[#1294]: https://www.free-decompiler.com/flash/issues/1294
|
||||
[#1302]: https://www.free-decompiler.com/flash/issues/1302
|
||||
[#1309]: https://www.free-decompiler.com/flash/issues/1309
|
||||
[#1312]: https://www.free-decompiler.com/flash/issues/1312
|
||||
[#1303]: https://www.free-decompiler.com/flash/issues/1303
|
||||
[#1314]: https://www.free-decompiler.com/flash/issues/1314
|
||||
[#1320]: https://www.free-decompiler.com/flash/issues/1320
|
||||
[#1323]: https://www.free-decompiler.com/flash/issues/1323
|
||||
[#1156]: https://www.free-decompiler.com/flash/issues/1156
|
||||
[#1171]: https://www.free-decompiler.com/flash/issues/1171
|
||||
[#1170]: https://www.free-decompiler.com/flash/issues/1170
|
||||
@@ -2233,7 +2371,6 @@ All notable changes to this project will be documented in this file.
|
||||
[#709]: https://www.free-decompiler.com/flash/issues/709
|
||||
[#732]: https://www.free-decompiler.com/flash/issues/732
|
||||
[#730]: https://www.free-decompiler.com/flash/issues/730
|
||||
[#735]: https://www.free-decompiler.com/flash/issues/735
|
||||
[#722]: https://www.free-decompiler.com/flash/issues/722
|
||||
[#725]: https://www.free-decompiler.com/flash/issues/725
|
||||
[#715]: https://www.free-decompiler.com/flash/issues/715
|
||||
@@ -2294,14 +2431,12 @@ All notable changes to this project will be documented in this file.
|
||||
[#593]: https://www.free-decompiler.com/flash/issues/593
|
||||
[#594]: https://www.free-decompiler.com/flash/issues/594
|
||||
[#579]: https://www.free-decompiler.com/flash/issues/579
|
||||
[#428]: https://www.free-decompiler.com/flash/issues/428
|
||||
[#337]: https://www.free-decompiler.com/flash/issues/337
|
||||
[#584]: https://www.free-decompiler.com/flash/issues/584
|
||||
[#576]: https://www.free-decompiler.com/flash/issues/576
|
||||
[#250]: https://www.free-decompiler.com/flash/issues/250
|
||||
[#580]: https://www.free-decompiler.com/flash/issues/580
|
||||
[#510]: https://www.free-decompiler.com/flash/issues/510
|
||||
[#583]: https://www.free-decompiler.com/flash/issues/583
|
||||
[#586]: https://www.free-decompiler.com/flash/issues/586
|
||||
[#574]: https://www.free-decompiler.com/flash/issues/574
|
||||
[#570]: https://www.free-decompiler.com/flash/issues/570
|
||||
@@ -2627,39 +2762,4 @@ All notable changes to this project will be documented in this file.
|
||||
[#35]: https://www.free-decompiler.com/flash/issues/35
|
||||
[#32]: https://www.free-decompiler.com/flash/issues/32
|
||||
[#31]: https://www.free-decompiler.com/flash/issues/31
|
||||
[#1240]: https://www.free-decompiler.com/flash/issues/1240
|
||||
[#1308]: https://www.free-decompiler.com/flash/issues/1308
|
||||
[#1333]: https://www.free-decompiler.com/flash/issues/1333
|
||||
[#1365]: https://www.free-decompiler.com/flash/issues/1365
|
||||
[#1369]: https://www.free-decompiler.com/flash/issues/1369
|
||||
[#1327]: https://www.free-decompiler.com/flash/issues/1327
|
||||
[#1343]: https://www.free-decompiler.com/flash/issues/1343
|
||||
[#1348]: https://www.free-decompiler.com/flash/issues/1348
|
||||
[#1354]: https://www.free-decompiler.com/flash/issues/1354
|
||||
[#1367]: https://www.free-decompiler.com/flash/issues/1367
|
||||
[#1401]: https://www.free-decompiler.com/flash/issues/1401
|
||||
[#1402]: https://www.free-decompiler.com/flash/issues/1402
|
||||
[#1430]: https://www.free-decompiler.com/flash/issues/1430
|
||||
[#1254]: https://www.free-decompiler.com/flash/issues/1254
|
||||
[#907]: https://www.free-decompiler.com/flash/issues/907
|
||||
[#1311]: https://www.free-decompiler.com/flash/issues/1311
|
||||
[#1313]: https://www.free-decompiler.com/flash/issues/1313
|
||||
[#1308]: https://www.free-decompiler.com/flash/issues/1308
|
||||
[#1189]: https://www.free-decompiler.com/flash/issues/1189
|
||||
[#1274]: https://www.free-decompiler.com/flash/issues/1274
|
||||
[#1275]: https://www.free-decompiler.com/flash/issues/1275
|
||||
[#1278]: https://www.free-decompiler.com/flash/issues/1278
|
||||
[#1281]: https://www.free-decompiler.com/flash/issues/1281
|
||||
[#1254]: https://www.free-decompiler.com/flash/issues/1254
|
||||
[#1289]: https://www.free-decompiler.com/flash/issues/1289
|
||||
[#1283]: https://www.free-decompiler.com/flash/issues/1283
|
||||
[#1294]: https://www.free-decompiler.com/flash/issues/1294
|
||||
[#1302]: https://www.free-decompiler.com/flash/issues/1302
|
||||
[#1309]: https://www.free-decompiler.com/flash/issues/1309
|
||||
[#1312]: https://www.free-decompiler.com/flash/issues/1312
|
||||
[#1303]: https://www.free-decompiler.com/flash/issues/1303
|
||||
[#1314]: https://www.free-decompiler.com/flash/issues/1314
|
||||
[#1320]: https://www.free-decompiler.com/flash/issues/1320
|
||||
[#1323]: https://www.free-decompiler.com/flash/issues/1323
|
||||
[#27]: https://www.free-decompiler.com/flash/issues/27
|
||||
[#1449]: https://www.free-decompiler.com/flash/issues/1449
|
||||
|
||||
92
src/com/jpexs/decompiler/flash/gui/ChangelogUpdater.java
Normal file
92
src/com/jpexs/decompiler/flash/gui/ChangelogUpdater.java
Normal file
@@ -0,0 +1,92 @@
|
||||
/*
|
||||
* Copyright (C) 2021 JPEXS
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.jpexs.decompiler.flash.gui;
|
||||
|
||||
import com.jpexs.helpers.Helper;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author JPEXS
|
||||
*/
|
||||
public class ChangelogUpdater {
|
||||
|
||||
private static final String GITHUB_ADDRESS = "https://github.com/jindrapetrik/jpexs-decompiler/";
|
||||
private static final String ISSUE_TRACKER_ADDRESS = "https://www.free-decompiler.com/flash/issues/";
|
||||
|
||||
public static void main(String[] args) throws UnsupportedEncodingException {
|
||||
String changeLog = Helper.readTextFile("CHANGELOG.md");
|
||||
changeLog = changeLog.replaceAll("\\[[^\\]]+\\]: [^\\r\\n]+\\r\\n", "");
|
||||
|
||||
changeLog = changeLog.replaceAll("\\[#([0-9]+)\\]", "#$1");
|
||||
|
||||
changeLog = changeLog.replaceAll("#([0-9]+)", "[#$1]");
|
||||
|
||||
Pattern issuePattern = Pattern.compile("\\[#([0-9]+)\\]");
|
||||
|
||||
Matcher issueMatcher = issuePattern.matcher(changeLog);
|
||||
Set<Integer> issues = new LinkedHashSet<>();
|
||||
while (issueMatcher.find()) {
|
||||
issues.add(Integer.parseInt(issueMatcher.group(1)));
|
||||
}
|
||||
|
||||
Pattern headerPattern = Pattern.compile("## \\[([^\\]]+)\\]");
|
||||
|
||||
Matcher headerMatcher = headerPattern.matcher(changeLog);
|
||||
List<String> versionNames = new ArrayList<>();
|
||||
List<String> tagNames = new ArrayList<>();
|
||||
while (headerMatcher.find()) {
|
||||
String versionName = headerMatcher.group(1);
|
||||
Pattern updatePattern = Pattern.compile("([0-9]+\\.[0-9]+\\.[0-9]+) update ([0-9]+)");
|
||||
Matcher updateMatcher = updatePattern.matcher(versionName);
|
||||
String tagName;
|
||||
if (versionName.matches("[0-9]+\\.[0-9]+\\.[0-9]+")) {
|
||||
tagName = "version" + versionName;
|
||||
} else if (updateMatcher.matches()) {
|
||||
tagName = "version" + updateMatcher.group(1) + "u" + updateMatcher.group(2);
|
||||
} else {
|
||||
tagName = versionName.replace(" ", "");
|
||||
}
|
||||
versionNames.add(versionName);
|
||||
tagNames.add(tagName);
|
||||
}
|
||||
|
||||
for (int i = 0; i < versionNames.size(); i++) {
|
||||
String versionName = versionNames.get(i);
|
||||
String tagName = tagNames.get(i);
|
||||
String nextTagName = i == versionNames.size() - 1 ? null : tagNames.get(i + 1);
|
||||
|
||||
if (nextTagName == null) {
|
||||
changeLog += "[" + versionName + "]: " + GITHUB_ADDRESS + "releases/tag/" + tagName + "\r\n";
|
||||
} else {
|
||||
changeLog += "[" + versionName + "]: " + GITHUB_ADDRESS + "compare/" + nextTagName + "..." + tagName + "\r\n";
|
||||
}
|
||||
}
|
||||
|
||||
for (int issue : issues) {
|
||||
changeLog += "[#" + issue + "]: " + ISSUE_TRACKER_ADDRESS + issue + "\r\n";
|
||||
}
|
||||
|
||||
Helper.writeFile("CHANGELOG.md", changeLog.getBytes("UTF-8"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user