Wow, great work! That can’t have been easy to track down…
This sounds similar to this issue that @bjeurissen encountered a while back. The added problem there was that this was internal to Qt, which meant we couldn’t modify the code – there was nothing we could do other than modify the locale, in pretty much the same way as you suggest.
However, in this instance, we do have control of the relevant code. @rsmith, I suggest we change the problematic line from what it is now:
sscanf (data.c_str(), "%f %f %f %f", &values, &values, &values, &values);
to something that relies on our own string converters, which somehow ignore the locale, like:
auto list = split (data);
for (int n = 0; n < 4; ++n)
values[n] = to<float>(list[n]);
What do you think? There might be other places in the code to modify similarly…
Also worth moving this discussion off to GitHub at this point.