From 139aeb86ff0e9e99c8e8ca598880983c333cb9ce Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Tue, 4 Apr 2017 19:57:11 +0200 Subject: [PATCH] Workaround for wxPerl not loading shared libraries when package is in a non-ASCII paths. #3763 --- lib/Slic3r/GUI.pm | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/Slic3r/GUI.pm b/lib/Slic3r/GUI.pm index d90c56c34b..ce94d08823 100644 --- a/lib/Slic3r/GUI.pm +++ b/lib/Slic3r/GUI.pm @@ -3,6 +3,19 @@ use strict; use warnings; use utf8; +use Wx 0.9901 qw(:bitmap :dialog :icon :id :misc :systemsettings :toplevelwindow + :filedialog :font); + +BEGIN { + # Wrap the Wx::_load_plugin() function which doesn't work with non-ASCII paths + no warnings 'redefine'; + my $orig = *Wx::_load_plugin{CODE}; + *Wx::_load_plugin = sub { + $_[0] = Slic3r::decode_path($_[0]); + $orig->(@_); + }; +} + use File::Basename qw(basename); use FindBin; use List::Util qw(first any); @@ -41,8 +54,6 @@ use Slic3r::GUI::SLAPrintOptions; our $have_OpenGL = eval "use Slic3r::GUI::3DScene; 1"; our $have_LWP = eval "use LWP::UserAgent; 1"; -use Wx 0.9901 qw(:bitmap :dialog :icon :id :misc :systemsettings :toplevelwindow - :filedialog :font); use Wx::Event qw(EVT_IDLE EVT_COMMAND); use base 'Wx::App';