Pin the named-but-unassigned StrokeConfig scalars to byte offsets
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- cpp, typescript
- Área
- reverse-engineering
Línea de trabajo
Start with Part 1.4 of plans/vector-format-spec.md and use its extraction recipe to inspect the flutter_note_lib.dll binary. Trace logTrails field accesses in a disassembler, using the named log strings as anchors, and compare them with the StrokeConfig parse path in SnProcess/SnFileProcess/sndatafile.cpp. Done means the six named scalars are mapped to offsets in the StrokeConfig table.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Split out from #69 (Part 1.4 of plans/vector-format-spec.md).
logTrails in flutter_note_lib.dll gives Ratta's own name for every field in the stroke record, but it prints the fixed-size scalars in an order that is not the struct order (they appear reversed in .rdata, and the log function is free to print in any order anyway). So we gained the names without gaining the offsets.
Named but unplaced
flagSpecial, preNum, fontWidth, flagPenUp, trailNum, walcomEmrType
Slots they have to fill
From the StrokeConfig table, the offsets that read constant across every fixture and are still labelled unk_*:
| Offset | Current label | Observed |
|---|---|---|
| 16 | unk_1 |
0 everywhere |
| 24 | unk_2 |
always u32::MAX |
| 32 | unk_3 |
0 everywhere |
| 36 | unk_4 |
0 everywhere |
| 40 | unk_5 |
always 5000 |
| 124 | unk_6 |
26 everywhere |
One placement is already strongly suggested: fontWidth at 16, sitting immediately before the confirmed font_height at 20.
Why it matters
Mostly as an enabler for #70 (erase-vs-select discriminator) and #72 (m_trailStatus codes) — these scalars are the main remaining candidates for carrying the erase/select distinction. On their own they're low-stakes; nothing in the current renderer needs them.
Approach
Values are constant across our whole fixture set, so differential fixtures alone won't separate them — this likely needs the binary. logTrails reads the struct in memory, so following its field accesses in a disassembler gives the offsets directly, and the log strings are ready-made anchors. SnProcess/SnFileProcess/sndatafile.cpp is the parse side.
Extraction recipe is in Part 1.4 of the spec (Inno Setup installer, plain LZMA1 payload, works on Linux).
- Lenguaje dominante
- TypeScript
- Estrellas
- 42
- Forks
- 9
- Merge medio
- 30 min
- PR fusionados (30 d)
- 2
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de philips/supernote-typescript
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
philips/supernote-typescript#122 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 68/100
philips/supernote-typescript#105 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
philips/supernote-typescript#100 ·
Los mantenedores suelen responder en 1 día
-
Add automated visual diff for vectorInk PDF outputPosiblemente ocupada @philips-clanker la tomó hace 68 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
philips/supernote-typescript#99 ·
Los mantenedores suelen responder en 1 día
-
Characterize the stroke-record tail (unk_17, unk_22, Section3/Section4) and its four length variantsAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
philips/supernote-typescript#74 ·
Los mantenedores suelen responder en 1 día
Todos los issues de philips/supernote-typescript
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
grafana/profiles-drilldown#1212 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
grafana/traces-drilldown#980 ·
Los mantenedores suelen responder en 1 día
-
Manager flashes an empty "errorOccurred" dialog while redirecting a logged-out user to loginAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
openremote/openremote#3487 · 1 comentario ·
-
triage:needs-human
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
garrytan/gbrain#7635 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
coollabsio/jean#867 ·
Los mantenedores suelen responder en 1 día