Files
Sylpheed/docs/re/data/ratc-tan-frame-sequence.txt
Sylpheed RE agent f817dd5939 re(ui): the 60 nameless RATC children are frames, not children -- .tan decoded
Closes the reach caveat the `opt ` name fix left behind: 60 of 18 002 RATC
children carry no `opt ` block, and it was not established whether they lack one
or sit past our 128-byte window.

Neither. They are not children. `examples/ratc_optless_children.rs` re-runs
`ratc::parse`'s own guards over the disc and reports which one fired: all 60 are
"tag beyond the window", none is rejected by length, gap or charset, none is
child #0, and all 60 live in six bundles of one archive. Within a bundle the
distances back to the nearest tag are an exact arithmetic progression, step
60 600 -- ten different records finding the SAME tag, because there is only one.

Reading a bundle directly: children 1..10 are equal-size T8aD blocks under a
single `opt ` name, `pb_f15_eg_anm.tan`. `.tan` is a FRAME SEQUENCE. One block
declares the resource; its payload is a run of T8aD frames.

Disc-wide, over all 18 718 `opt ` names in all 33 paks: a RATC bundle names
exactly six kinds of resource -- `.t32` 14 756, `.rat` 3 311, `.prm` 367,
`.tbm` 224, `.sbo` 54, `.tan` 6. Six `.tan`, ten frames each = 60, the entire
population with nothing left over. The negative is closed, not narrowed.

Consequence recorded but deliberately not fixed: `ratc::parse` over-reports
there, listing a `.tan`'s frames as anonymous children. Nothing in the menu
milestone reads a `.tan` -- it occurs only in GP_READY_ROOM, which S1 ruled
out -- so no screen the port draws changes.

Also a METHOD entry for this container OOM-killing `slb_leading_segment_disc`
under default test parallelism (SIGKILL, no assertion; 8/8 pass with
--test-threads=1).
2026-08-29 07:39:09 +00:00

59 lines
2.5 KiB
Plaintext

# The 60 RATC children with no `opt ` block — probe output
```
$ cargo run -p sylpheed-formats --example ratc_optless_children -- $SYLPHEED_DISC/dat/*.pak
RATC children scanned : 18002
with NO accepted `opt ` block: 60
... of which are child #0 : 0
why, by cause:
TagBeyondWindow x60
every occurrence (name is what the FALLBACK scan returned):
GP_READY_ROOM.pak entry 26 child 1 TagBeyondWindow(213)
24 bytes before the magic: 00 00 00 07 00 00 00 28 00 00 00 08 00 00 00 28 00 00 00 09 00 00 00 28
GP_READY_ROOM.pak entry 26 child 2 TagBeyondWindow(60813)
24 bytes before the magic: 0a eb 61 00 08 eb 61 00 06 eb 61 00 05 eb 61 00 03 eb 61 00 01 eb 61 00
... (the remaining 54 rows are the same five bundles' children 1..10;
every distance is 213 + n*60600, i.e. the SAME tag)
```
## Reading bundle 26 directly — the ten are frames of one `.tan`
```
entry 26: 15 children, payload 706609 bytes
0 @0x00000444 T8aD size 1933 opt@-40 name='pbf15_energie_generator2.t32'
1 @0x00000bd1 T8aD size 60600 opt@-213 name='pb_f15_eg_anm.tan'
2 @0x0000f889 T8aD size 60600 opt@-60813 name='pb_f15_eg_anm.tan'
3 @0x0001e541 T8aD size 60600 opt@-121413 name='pb_f15_eg_anm.tan'
4 @0x0002d1f9 T8aD size 60600 opt@-182013 name='pb_f15_eg_anm.tan'
5 @0x0003beb1 T8aD size 60600 opt@-242613 name='pb_f15_eg_anm.tan'
6 @0x0004ab69 T8aD size 60600 opt@-303213 name='pb_f15_eg_anm.tan'
7 @0x00059821 T8aD size 60600 opt@-363813 name='pb_f15_eg_anm.tan'
8 @0x000684d9 T8aD size 60600 opt@-424413 name='pb_f15_eg_anm.tan'
9 @0x00077191 T8aD size 60600 opt@-485013 name='pb_f15_eg_anm.tan'
10 @0x00085e49 T8aD size 60632 opt@-545613 name='pb_f15_eg_anm.tan'
11 @0x00094b21 T8aD size 17523 opt@-32 name='pbf15_pd_inside2.t32'
12 @0x00098f94 T8aD size 75068 opt@-35 name='pbenergie_generator.t32'
13 @0x000ab4d0 T8aD size 4697 opt@-28 name='pbf15_eg_eff.t32'
14 @0x000ac729 RATC size 264 opt@-25 name='pb_s15_eg.rat'
```
## Disc-wide: every `opt ` name, by extension
```
`opt ` blocks disc-wide: 18718
by extension:
.t32 x14756
.rat x3311
.prm x367
.tbm x224
.sbo x54
.tan x6
.tan resources with >=1 child: 6
GP_READY_ROOM.pak pb_f15_eg_anm.tan frames= 10 sizes=[60600, 60632] x6 bundles
```