GUILE 1.8 presumably does not make use of the LC_CTYPE information and
just does its input/output/string processing in 8bit chunks. For the
sake of getting comparable results at first when working on GUILE 2.0,
we switch off character set recognition here.
At a later point of time, integration with the character processing of
GUILEĀ 2.0 may be attempted but since this is an entirely new can of
worms with its own performance pitfalls, we put this aside for now.
+#include "lily-guile.hh"
#include <cassert>
#include <clocale>
#include <cassert>
#include <clocale>
Disable localisation of float values. */
setlocale (LC_NUMERIC, "C");
Disable localisation of float values. */
setlocale (LC_NUMERIC, "C");
+#if GUILEV2
+ // In order not to have this porting aid backfire to GUILE1 usage,
+ // this is only compiled in the GUILEV2 version. It should
+ // eventually be replaced with proper multibyte communication with
+ // GUILE2, but in the mean time it seems that this is the least
+ // invasive path to get comparable results between the
+ // not-really-multibyte-supporting GUILE1 and GUILE2
+
+ /* Disable character sets */
+ setlocale (LC_CTYPE, "C");
+ /* But our text domain is in UTF-8 */
+ bind_textdomain_codeset ("lilypond", "UTF-8");
+#endif
+
string localedir = LOCALEDIR;
if (char const *env = getenv ("LILYPOND_LOCALEDIR"))
localedir = env;
string localedir = LOCALEDIR;
if (char const *env = getenv ("LILYPOND_LOCALEDIR"))
localedir = env;