# HG changeset patch # User Soren Hauberg # Date 1278236690 -7200 # Node ID d27bd2f74137666d2a0762feb133a1853c437f04 # Parent a4b8364e04c77f6b75c467135e691d5493c398a5 src/DLD_FUNCTIONS/__magick_read__.cc: restore locale after GraphicsMagick initialisation diff --git a/src/ChangeLog b/src/ChangeLog --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2010-07-04 Soren Hauberg + * DLD_FUNCTIONS/__magick_read__.cc: restore locale after + GraphicsMagick initialisation. + 2010-06-30 Jaroslav Hajek * ov-range.cc (octave_range::save_ascii): Save length rather than diff --git a/src/DLD-FUNCTIONS/__magick_read__.cc b/src/DLD-FUNCTIONS/__magick_read__.cc --- a/src/DLD-FUNCTIONS/__magick_read__.cc +++ b/src/DLD-FUNCTIONS/__magick_read__.cc @@ -39,6 +39,7 @@ #ifdef HAVE_MAGICK #include +#include octave_value_list read_indexed_images (std::vector& imvec, @@ -388,10 +389,17 @@ if (! initialized) { + // Save the locale as GraphicsMagick might change this (depending on version) + const char *static_locale = setlocale (LC_ALL, NULL); + const std::string locale (static_locale); + std::string program_name = octave_env::get_program_invocation_name (); Magick::InitializeMagick (program_name.c_str ()); + // Restore locale from before GraphicsMagick initialisation + setlocale (LC_ALL, locale.c_str ()); + initialized = true; }