changelog with links [ci skip]

This commit is contained in:
Jindra Petřík
2021-03-05 22:26:10 +01:00
parent 03aa834db3
commit f4b5ea58a1
2 changed files with 314 additions and 122 deletions

View File

@@ -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

View 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"));
}
}