osdep: add locale-invariant printf wrappers
Since nobody can agree on adding `printf_l` to the standard, we have to do this using OS-dependent mechanisms. On glibc, the best hack-around is to use `uselocale` to set the thread-specific locale. This requires some roundabout locale initialization, but works. For other platforms (e.g. BSD and Win32), there are saner methods of accomplishing this, which is why it's inside osdep/.
Showing with 166 additions and 55 deletions