Saving run text that contains a lone (unpaired) surrogate throws in TsString normalization
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 30/100
Línea de trabajo
Start with TsString.get_NormalizedForm and follow EnumerateSegmentLimits to the char.ConvertToUtf32 call described in the issue. Review the existing TsStringSerializer.GetXmlSafeText handling from #410 and the linked pull request #414. Add a regression test for the provided unpaired-surrogate repro and confirm serialization completes with the chosen normalization and write behavior.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
A run whose text contains an unpaired UTF-16 surrogate cannot be saved: TsString.get_NormalizedForm throws (via EnumerateSegmentLimits → char.ConvertToUtf32) before the serializer runs. Pasted or imported text can carry such characters.
Found while working on #410, which strips unpaired surrogates from string properties (TsStringSerializer.GetXmlSafeText) but cannot reach this path.
Repro: create a TsString with text "a\uD800b" and serialize it with TsStringSerializer.
Suggested fix: make normalization tolerate unpaired surrogates (pass them through or replace with U+FFFD) and strip them on write as #410 does for string properties; add a test.
🤖 Generated with Claude Code
- Lenguaje dominante
- C#
- Estrellas
- 3
- Forks
- 15
- Métricas de merge de PR
- Sin PR fusionados en 30 d
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 sillsdev/liblcm
-
Dificultad 4/5 3-5 días Aptitud para principiantes 54/100
-
Text props: an unknown writing-system handle is saved as ws="", which no reader can loadPosiblemente ocupada @johnml1135 la tomó hace 1 día. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 25/100
-
Text property XML: writer emits properties and values its own reader rejects (record fails to load)Posiblemente ocupada @johnml1135 la tomó hace 1 día. Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 68/100
-
DeepWiki-found bugsAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
Todos los issues de sillsdev/liblcm
Issues similares
-
needs-triage
Dificultad 1/5 1-3 horas Aptitud para principiantes 76/100
Azure/azure-sdk-for-net#64658 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
dotnet/aspnetcore#70370 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
NethermindEth/nethermind#15684 ·
Los mantenedores suelen responder en 1 día
-
area/ai-assistant squad/flyt
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
Altinn/altinn-studio#21798 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
SubtitleEdit/subtitleedit#16699 ·
Los mantenedores suelen responder en 1 día