use strict;
use Cwd;
+use Unicode::Normalize qw();
sub new {
my $type = shift;
return 0;
}
- binmode OUT, ":utf8" if $::locale->is_utf8;
- print(OUT $new_contents);
+ if ($::locale->is_utf8) {
+ binmode OUT, ":utf8";
+ print OUT Unicode::Normalize::normalize('C', $new_contents);
+
+ } else {
+ print OUT $new_contents;
+ }
if ($form->{"format"} =~ /postscript/i) {
return $self->convert_to_postscript();
my $latex = $self->_get_latex_path();
my $old_home = $ENV{HOME};
- $ENV{HOME} = $userspath =~ m|^/| ? $userspath : getcwd() . "/" . $userspath;
+ my $old_openin_any = $ENV{openin_any};
+ $ENV{HOME} = $userspath =~ m|^/| ? $userspath : getcwd();
+ $ENV{openin_any} = "p";
for (my $run = 1; $run <= 2; $run++) {
system("${latex} --interaction=nonstopmode $form->{tmpfile} " .
"> $form->{tmpfile}.err");
if ($?) {
$ENV{HOME} = $old_home;
- $self->{"error"} = $form->cleanup();
- $self->cleanup();
+ $ENV{openin_any} = $old_openin_any;
+ $self->{"error"} = $form->cleanup($latex);
return 0;
}
}
system("dvips $form->{tmpfile} -o -q > /dev/null");
$ENV{HOME} = $old_home;
+ $ENV{openin_any} = $old_openin_any;
if ($?) {
$self->{"error"} = "dvips : $!";
- $self->cleanup();
+ $self->cleanup('dvips');
return 0;
}
$form->{tmpfile} =~ s/dvi$/ps/;
my $latex = $self->_get_latex_path();
my $old_home = $ENV{HOME};
- $ENV{HOME} = $userspath =~ m|^/| ? $userspath : getcwd() . "/" . $userspath;
+ my $old_openin_any = $ENV{openin_any};
+ $ENV{HOME} = $userspath =~ m|^/| ? $userspath : getcwd();
+ $ENV{openin_any} = "p";
for (my $run = 1; $run <= 2; $run++) {
system("${latex} --interaction=nonstopmode $form->{tmpfile} " .
"> $form->{tmpfile}.err");
if ($?) {
- $ENV{HOME} = $old_home;
- $self->{"error"} = $form->cleanup();
- $self->cleanup();
+ $ENV{HOME} = $old_home;
+ $ENV{openin_any} = $old_openin_any;
+ $self->{error} = $form->cleanup($latex);
return 0;
}
}
$ENV{HOME} = $old_home;
+ $ENV{openin_any} = $old_openin_any;
$form->{tmpfile} =~ s/tex$/pdf/;
$self->cleanup();