leptris 1.9.199.1-arm-linux → 1.9.201.0-arm-linux
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 +14 -0
- data/Rakefile +1 -1
- data/lib/leptris/version.rb +1 -1
- data/lib/leptris/xml/pull.rb +12 -2
- data/lib/libleptris.so +0 -0
- 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: 6841a0108841399f01dae30bb346207c18df5135b11cc9b43374ecdceea409bd
|
|
4
|
+
data.tar.gz: 70e9d1da5932b808364f840b12e4be6c7380e82d267538899ab17ce840e6dfdc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6aceebffe370f004b1336db46f86460466fa4806ae3fef4a591368867a4d834717ab6602e20894b79c6f1d572ae6b505afa9410ab531e683a38f0beec97964a2
|
|
7
|
+
data.tar.gz: 24d68049747b967006b1dbf55cc389bc8b5f894d46c0a14aeff284afc14bf4131a65b8be731c99da953c2affdba686cc504f6c988a2139d3b9b66e29fb743fbf
|
data/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,20 @@ All notable changes to Leptris will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.9.201.0] - 2026-09-19
|
|
9
|
+
|
|
10
|
+
### Changed — libleptris 1.9.199 → 1.9.201 (lockstep)
|
|
11
|
+
|
|
12
|
+
- **SAX pull ERROR events carry their text length** (1.9.200) —
|
|
13
|
+
the last event path without it; the binding's pull reader now
|
|
14
|
+
reads text **length-driven** (`text_len`, width-dispatched)
|
|
15
|
+
instead of NUL-terminated, per the engine's event contract.
|
|
16
|
+
Spec-pinned: a pull ERROR event's message arrives intact.
|
|
17
|
+
- `leptris diff --summary/--json` CLI modes (1.9.200) — engine
|
|
18
|
+
surface unchanged (CLI-only); the binding's diff accessors were
|
|
19
|
+
already complete.
|
|
20
|
+
- No public-symbol changes: audit 323/323. 730/0 both modes.
|
|
21
|
+
|
|
8
22
|
## [1.9.199.0] - 2026-09-19
|
|
9
23
|
|
|
10
24
|
### Changed — libleptris 1.9.197 → 1.9.199 (lockstep; 1.9.198/199
|
data/Rakefile
CHANGED
|
@@ -8,7 +8,7 @@ RSpec::Core::RakeTask.new(:spec)
|
|
|
8
8
|
# Pin for `rake compile` and the platform-gem builds. Keep in lockstep
|
|
9
9
|
# with .github/workflows/build.yml (which calls `rake compile`) and the
|
|
10
10
|
# CHANGELOG when libleptris releases.
|
|
11
|
-
LIBLEPTRIS_VERSION = "1.9.
|
|
11
|
+
LIBLEPTRIS_VERSION = "1.9.201"
|
|
12
12
|
# Vendored alongside libleptris for fn:normalize-unicode (TODO
|
|
13
13
|
# .restructure/20): built per platform with a RELOCATABLE @rpath
|
|
14
14
|
# install name, loaded by ffi.rb before libleptris so the
|
data/lib/leptris/version.rb
CHANGED
data/lib/leptris/xml/pull.rb
CHANGED
|
@@ -136,7 +136,13 @@ module Leptris::XML::Pull
|
|
|
136
136
|
# disappears from streaming loops.
|
|
137
137
|
NAME_OFFSET = Leptris::XML::FFI::PullEventStruct.offset_of(:name)
|
|
138
138
|
TEXT_OFFSET = Leptris::XML::FFI::PullEventStruct.offset_of(:text)
|
|
139
|
-
|
|
139
|
+
# Length-driven text reads (1.9.200's ERROR-event text_len fix
|
|
140
|
+
# closed the last zero-length path): NUL-terminated read_string
|
|
141
|
+
# over-reads unterminated content and truncates on embedded
|
|
142
|
+
# NULs.
|
|
143
|
+
TEXT_LEN_OFFSET = Leptris::XML::FFI::PullEventStruct.offset_of(:text_len)
|
|
144
|
+
SIZE_T_64 = FFI.type_size(:size_t) == 8
|
|
145
|
+
private_constant :NAME_OFFSET, :TEXT_OFFSET, :TEXT_LEN_OFFSET, :SIZE_T_64
|
|
140
146
|
|
|
141
147
|
# Advances the cursor and returns the next Event, or nil after the
|
|
142
148
|
# end of the document. Attribute values are captured during
|
|
@@ -149,8 +155,12 @@ module Leptris::XML::Pull
|
|
|
149
155
|
name_ptr = raw.get_pointer(NAME_OFFSET)
|
|
150
156
|
text_ptr = raw.get_pointer(TEXT_OFFSET)
|
|
151
157
|
attrs = type == :start_element ? capture_attrs : nil
|
|
158
|
+
# size_t is pointer-width: dispatch the read once (Pointer has
|
|
159
|
+
# no width-generic accessor) — no per-event struct wrapper.
|
|
160
|
+
text_len = SIZE_T_64 ? raw.get_uint64(TEXT_LEN_OFFSET)
|
|
161
|
+
: raw.get_uint32(TEXT_LEN_OFFSET)
|
|
152
162
|
text = text_ptr.null? ? nil :
|
|
153
|
-
text_ptr.read_string.force_encoding(Encoding::UTF_8)
|
|
163
|
+
text_ptr.read_string(text_len).force_encoding(Encoding::UTF_8)
|
|
154
164
|
text = Leptris::XML::FFI.read_pi_data(text) if type == :pi
|
|
155
165
|
Event.new(
|
|
156
166
|
type,
|
data/lib/libleptris.so
CHANGED
|
Binary file
|