evilution 0.16.0 → 0.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/lib/evilution/ast/source_surgeon.rb +3 -3
- data/lib/evilution/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '009f01f1d0ff623a8dc2730f05d23f5564118f0996e1d207d1c898a719579632'
|
|
4
|
+
data.tar.gz: 89481ac5c9d0b8b344d14d2acbd320382abb5d0fa4fe3de2fea8a715154e9e0e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9de110591c9c23a86d20d521aa3002c7aa1743898ae7e4364f5c3ddfc7060a6907153cb050582bb2a3a7f07804f50f1bce1801e7e70df9ca892906065be0c9be
|
|
7
|
+
data.tar.gz: d658b860c63f7226ae274db15c5abd417b41208043ed113fb0f484f335f377642999fadd2fd33190d24313d98498b75b3df3d2124a0620dc4859a73f3b5a97cb
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.16.1] - 2026-03-30
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- **Critical: SourceSurgeon crashes on multi-byte UTF-8 source files** — `SourceSurgeon.apply` used `String#[]=` with Prism byte offsets, but Ruby interprets indices as character offsets for UTF-8 strings, causing `IndexError` on files containing non-ASCII characters (Cyrillic, CJK, emoji). Fixed by operating on ASCII-8BIT binary encoding before restoring original encoding (#434)
|
|
8
|
+
|
|
3
9
|
## [0.16.0] - 2026-03-29
|
|
4
10
|
|
|
5
11
|
### Added
|
|
@@ -4,8 +4,8 @@ require_relative "../ast"
|
|
|
4
4
|
|
|
5
5
|
module Evilution::AST::SourceSurgeon
|
|
6
6
|
def self.apply(source, offset:, length:, replacement:)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
binary = source.b
|
|
8
|
+
binary[offset, length] = replacement.b
|
|
9
|
+
binary.force_encoding(source.encoding)
|
|
10
10
|
end
|
|
11
11
|
end
|
data/lib/evilution/version.rb
CHANGED