leptris 1.9.273.0 → 1.9.273.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 +13 -0
- data/lib/leptris/version.rb +1 -1
- data/lib/leptris/xml/ffi.rb +9 -0
- data/lib/leptris/xml/parse_options.rb +29 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 47fcca29c1cb0aacea1ff5027999e599246075f64cc810075df396e1d4e38e42
|
|
4
|
+
data.tar.gz: df9e0dc01a033ac4bc77664871ea3d68d93659dfc4711f4ea6bff4a26296a767
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 124be7f3520d656fe7a943addb4dc8761ab42d5ba7f7b2ce704303c9eca0acc736399ab99bbdb47ff5d1405f01799511355b1f8c561245fcab8eda35f341036e
|
|
7
|
+
data.tar.gz: 716f23a6af6e287a9f9949a2458fca1cef71c24d56057efb79ebefae3e3bf26182c846c6c7b5a90362334c03c91da981945fe85b1c207d6c8e55687cd56e5fd5
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
## [1.9.273.1] - 2026-09-30
|
|
2
|
+
|
|
3
|
+
### Added
|
|
4
|
+
|
|
5
|
+
- `ParseOptions.skip_dup_detection` /
|
|
6
|
+
`ParseOptions.skip_source_positions` (libleptris 1.9.272, Lane-18
|
|
7
|
+
round 18 Door A): the two opt-out gates for fixed bookkeeping
|
|
8
|
+
costs. Skipping dup detection admits duplicate attributes
|
|
9
|
+
silently (first wins for queries, no recover diag); skipping
|
|
10
|
+
source positions degrades element source columns (lines still
|
|
11
|
+
resolve from the buffer). Defaults are byte-identical — a zero
|
|
12
|
+
flag word parses exactly as before (spec pins the round-trip).
|
|
13
|
+
|
|
1
14
|
# Changelog
|
|
2
15
|
|
|
3
16
|
All notable changes to Leptris will be documented in this file.
|
data/lib/leptris/version.rb
CHANGED
data/lib/leptris/xml/ffi.rb
CHANGED
|
@@ -380,6 +380,13 @@ module Leptris
|
|
|
380
380
|
[:leptris_plan_result], :size_t
|
|
381
381
|
attach_function :leptris_plan_value_count,
|
|
382
382
|
[:leptris_plan_result], :size_t
|
|
383
|
+
# Children snapshot (libleptris 1.9.271, #1436 Door B): one
|
|
384
|
+
# two-call crossing returns every child's name, type tag, and
|
|
385
|
+
# borrowed handle. First call with NULL buffers returns the
|
|
386
|
+
# names-blob capacity required; the retry fills everything.
|
|
387
|
+
attach_function :leptris_plan_value_children_snapshot,
|
|
388
|
+
[:leptris_plan_result, :pointer, :size_t, :pointer, :pointer,
|
|
389
|
+
:pointer], :size_t
|
|
383
390
|
attach_function :leptris_plan_value_at,
|
|
384
391
|
[:leptris_plan_result, :size_t], :leptris_plan_result
|
|
385
392
|
attach_function :leptris_plan_value_attribute,
|
|
@@ -1351,6 +1358,8 @@ attach_function :leptris_parse_string,
|
|
|
1351
1358
|
# #1094: &name; references stay unexpanded first-class nodes
|
|
1352
1359
|
# when this flag parses (character references still expand).
|
|
1353
1360
|
LEPTRIS_PARSE_KEEP_ENTITY_REFS = 4
|
|
1361
|
+
LEPTRIS_PARSE_SKIP_DUP_DETECTION = 8
|
|
1362
|
+
LEPTRIS_PARSE_SKIP_SOURCE_POSITIONS = 16
|
|
1354
1363
|
NODE_DOCTYPE = 5
|
|
1355
1364
|
NODE_ATTRIBUTE = 6
|
|
1356
1365
|
|
|
@@ -24,6 +24,19 @@ class Leptris::XML::ParseOptions
|
|
|
24
24
|
# verbatim.
|
|
25
25
|
KEEP_ENTITY_REFS = Leptris::XML::FFI::LEPTRIS_PARSE_KEEP_ENTITY_REFS
|
|
26
26
|
|
|
27
|
+
# Skip duplicate-attribute detection at parse time (libleptris
|
|
28
|
+
# 1.9.272, Lane-18 round 18 Door A): duplicate attributes are
|
|
29
|
+
# admitted silently — first wins for queries, no recover diag.
|
|
30
|
+
# For sources that cannot carry duplicates. Off by default.
|
|
31
|
+
SKIP_DUP_DETECTION = Leptris::XML::FFI::LEPTRIS_PARSE_SKIP_DUP_DETECTION
|
|
32
|
+
|
|
33
|
+
# Skip source-position bookkeeping (libleptris 1.9.272, Door A):
|
|
34
|
+
# element source columns degrade to zeros (line still resolves
|
|
35
|
+
# from the buffer). For consumers that never read positions.
|
|
36
|
+
# Off by default.
|
|
37
|
+
SKIP_SOURCE_POSITIONS =
|
|
38
|
+
Leptris::XML::FFI::LEPTRIS_PARSE_SKIP_SOURCE_POSITIONS
|
|
39
|
+
|
|
27
40
|
attr_reader :flags
|
|
28
41
|
|
|
29
42
|
# Recover (libleptris 1.9.0, #547): a parse failure returns an
|
|
@@ -59,6 +72,14 @@ class Leptris::XML::ParseOptions
|
|
|
59
72
|
new(DTDATTR)
|
|
60
73
|
end
|
|
61
74
|
|
|
75
|
+
def self.skip_dup_detection
|
|
76
|
+
new(SKIP_DUP_DETECTION)
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def self.skip_source_positions
|
|
80
|
+
new(SKIP_SOURCE_POSITIONS)
|
|
81
|
+
end
|
|
82
|
+
|
|
62
83
|
def dtdattr?
|
|
63
84
|
@flags & DTDATTR != 0
|
|
64
85
|
end
|
|
@@ -67,6 +88,14 @@ class Leptris::XML::ParseOptions
|
|
|
67
88
|
@flags & KEEP_ENTITY_REFS != 0
|
|
68
89
|
end
|
|
69
90
|
|
|
91
|
+
def skip_dup_detection?
|
|
92
|
+
@flags & SKIP_DUP_DETECTION != 0
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def skip_source_positions?
|
|
96
|
+
@flags & SKIP_SOURCE_POSITIONS != 0
|
|
97
|
+
end
|
|
98
|
+
|
|
70
99
|
def dtdattr=(value)
|
|
71
100
|
if value then @flags |= DTDATTR else @flags &= ~DTDATTR end
|
|
72
101
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: leptris
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.9.273.
|
|
4
|
+
version: 1.9.273.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-09-
|
|
11
|
+
date: 2026-09-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: ffi
|