MantisBT - LibSVGTiny
View Issue Details
0002599LibSVGTiny[All Projects] Generalpublic2018-05-11 06:362026-10-05 23:02
ReporterFelix S. 
Assigned ToVincent Sanders 
PrioritynormalSeverityminorReproducibilityalways
StatusresolvedResolutionfixed 
PlatformOSOS Version
Fixed in CI build #
Reported in CI build #
Summary0002599: libsvgtiny uses sscanf() to parse decimal fractions in path data, which is locale-dependent
Descriptionlibsvgtiny uses the C standard library function sscanf() to parse decimal fractions into floating-point values. Unfortunately, the exact format accepted by this function is locale-dependent. This makes parsing fail in locales where the decimal point character is different from '.'.

Given that sscanf() does not offer a portable way to enforce locale-independent parsing, libsvgtiny should probably implement its own fraction-parsing function from scratch.
Steps To Reproduce0. Ensure that the de_DE.UTF-8 locale (or any other locale with decimal point ',') is available on your system.
1. In libsvgtiny's test/data/ directory, launch `LC_NUMERIC=de_DE.UTF-8 netsurf-fb file://`pwd`/tiger.svg` from the shell (replacing de_DE.UTF-8 with the respective locale if necessary).
2. Observe numerous 'parse failed at ...' messages in the console.
3. In the same directory, launch `LC_NUMERIC=C netsurf-fb file://`pwd`/tiger.svg`.
4. Observe no failure messages.
TagsNo tags attached.
Attached Files

Notes
(0001889)
Michael Drake   
2019-02-17 10:30   
Thanks for the report. You're right. This will require quite a rewrite of libsvgtiny's parsing code. We'll try to get around to it some time, but we're all busy with other things at the moment.

If anyone's interested in helping please get in touch.
(0002522)
John-Mark Bell   
2026-10-05 23:02   
svgtiny's parser was rewritten in 2024 -- it is now locale-agnostic.

Issue History
2018-05-11 06:36Felix S.New Issue
2019-02-16 18:27Vincent SandersAssigned To => Michael Drake
2019-02-16 18:27Vincent SandersStatusnew => confirmed
2019-02-17 10:30Michael DrakeNote Added: 0001889
2026-10-05 23:02John-Mark BellAssigned ToMichael Drake => Vincent Sanders
2026-10-05 23:02John-Mark BellStatusconfirmed => resolved
2026-10-05 23:02John-Mark BellResolutionopen => fixed
2026-10-05 23:02John-Mark BellNote Added: 0002522