diff options
author | bubnikv <bubnikv@gmail.com> | 2017-08-03 18:31:31 +0300 |
---|---|---|
committer | bubnikv <bubnikv@gmail.com> | 2017-08-03 18:31:31 +0300 |
commit | 138501872426ae1fc7023478dd1deba96d936ecf (patch) | |
tree | 74825b7caf247a6761d1cb0705edd16297e700ca /utils | |
parent | 31085fb1d70510e3d73c64c0b7fc7a394b6e6f72 (diff) |
Unicode handling:
Removed the Perl dependencies on Encode, Encode::Locale and Unicode::Normalize.
Added dependency on boost::locale.
Added encode_path, decode_path, normalize_utf8 functions to Slic3r.xs
Slic3r.xs has been made mostly utf8 safe by using the boost::nowide library,
thanks to @alexrj for the idea.
Simplified the encode_path / decode_path stuff:
wxWidgets are unicode already, so there is no need to decode_path() from it.
Perl / win32 interfacing is non-unicode, so decode_path() is executed
on ARGV just at the beginning of the perl scripts.
Diffstat (limited to 'utils')
-rwxr-xr-x | utils/amf-to-stl.pl | 7 | ||||
-rw-r--r-- | utils/dump-stl.pl | 4 | ||||
-rwxr-xr-x | utils/split_stl.pl | 4 | ||||
-rwxr-xr-x | utils/stl-to-amf.pl | 4 |
4 files changed, 11 insertions, 8 deletions
diff --git a/utils/amf-to-stl.pl b/utils/amf-to-stl.pl index f49af94eb..2648ba25d 100755 --- a/utils/amf-to-stl.pl +++ b/utils/amf-to-stl.pl @@ -14,6 +14,9 @@ use Getopt::Long qw(:config no_auto_abbrev); use Slic3r; $|++; +# Convert all parameters from the local code page to utf8 on Windows. +@ARGV = map Slic3r::decode_path($_), @ARGV if $^O eq 'MSWin32'; + my %opt = (); { my %options = ( @@ -25,12 +28,12 @@ my %opt = (); } { - my $model = Slic3r::Model->load_amf(Slic3r::encode_path($ARGV[0])); + my $model = Slic3r::Model->load_amf($ARGV[0]); my $output_file = $ARGV[0]; $output_file =~ s/\.[aA][mM][fF](?:\.[xX][mM][lL])?$/\.stl/; printf "Writing to %s\n", basename($output_file); - $model->store_stl(Slic3r::encode_path($output_file), binary => !$opt{ascii}); + $model->store_stl($output_file, binary => !$opt{ascii}); } diff --git a/utils/dump-stl.pl b/utils/dump-stl.pl index 12746feab..0f459ffb1 100644 --- a/utils/dump-stl.pl +++ b/utils/dump-stl.pl @@ -18,7 +18,7 @@ $|++; $ARGV[0] or usage(1); if (-e $ARGV[0]) { - my $model = Slic3r::Model->load_stl(Slic3r::encode_path($ARGV[0]), basename($ARGV[0])); + my $model = Slic3r::Model->load_stl($ARGV[0], basename($ARGV[0])); $model->objects->[0]->add_instance(offset => Slic3r::Pointf->new(0,0)); my $mesh = $model->mesh; $mesh->repair; @@ -27,7 +27,7 @@ if (-e $ARGV[0]) { exit 0; } elsif ((my $model = Slic3r::Test::model($ARGV[0]))) { $ARGV[1] or die "Missing writeable destination as second argument\n"; - $model->store_stl(Slic3r::encode_path($ARGV[1]), 1); + $model->store_stl($ARGV[1], 1); printf "Model $ARGV[0] written to $ARGV[1]\n"; exit 0; } else { diff --git a/utils/split_stl.pl b/utils/split_stl.pl index ac890fc3e..fffc57665 100755 --- a/utils/split_stl.pl +++ b/utils/split_stl.pl @@ -25,7 +25,7 @@ my %opt = (); } { - my $model = Slic3r::Model->load_stl(Slic3r::encode_path($ARGV[0]), basename($ARGV[0])); + my $model = Slic3r::Model->load_stl($ARGV[0], basename($ARGV[0])); my $basename = $ARGV[0]; $basename =~ s/\.[sS][tT][lL]$//; @@ -43,7 +43,7 @@ my %opt = (); my $output_file = sprintf '%s_%02d.stl', $basename, ++$part_count; printf "Writing to %s\n", basename($output_file); - $new_model->store_stl(Slic3r::encode_path($output_file), !$opt{ascii}); + $new_model->store_stl($output_file, !$opt{ascii}); } } diff --git a/utils/stl-to-amf.pl b/utils/stl-to-amf.pl index d32e799aa..f0d537b04 100755 --- a/utils/stl-to-amf.pl +++ b/utils/stl-to-amf.pl @@ -25,7 +25,7 @@ my %opt = (); } { - my @models = map Slic3r::Model->load_stl(Slic3r::encode_path($_), basename($_)), @ARGV; + my @models = map Slic3r::Model->load_stl($_, basename($_)), @ARGV; my $output_file = $ARGV[0]; $output_file =~ s/\.[sS][tT][lL]$/.amf.xml/; @@ -53,7 +53,7 @@ my %opt = (); } printf "Writing to %s\n", basename($output_file); - $new_model->store_amf(Slic3r::encode_path($output_file)); + $new_model->store_amf($output_file); } |