Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 424d6ead

Von Moritz Bunkus vor fast 14 Jahren hinzugefügt

  • ID 424d6eadbe8a0c863a4f6a4ea5e60a86a309de50
  • Vorgänger af281b3c
  • Nachfolger 5aaa3c62

In Konfiguration angegebene Anwendungen in PATH suchen

Fix für Bug 1690.

Unterschiede anzeigen:

SL/LxOfficeConf.pm
use Config::Std;
use Encode;
my $environment_initialized;
sub read {
my ($class, $file_name) = @_;
......
_decode_recursively(\%local_conf);
_flat_merge(\%::lx_office_conf, \%local_conf);
}
_init_environment();
_determine_application_paths();
}
sub _decode_recursively {
......
}
}
sub _init_environment {
return if $environment_initialized;
my %key_map = ( lib => { name => 'PERL5LIB', append_path => 1 },
path => { name => 'PATH', append_path => 1 },
);
my $cfg = $::lx_office_conf{environment} || {};
while (my ($key, $value) = each %{ $cfg }) {
next unless $value;
my $info = $key_map{$key} || {};
$key = $info->{name} || $key;
if ($info->{append_path}) {
$value = ':' . $value unless $value =~ m/^:/ || !$ENV{$key};
$value = $ENV{$key} . $value;
}
$ENV{$key} = $value;
}
$environment_initialized = 1;
}
sub _determine_application_paths {
my @paths = grep { $_ } split m/:/, $ENV{PATH};
foreach my $key (keys %{ $::lx_office_conf{applications} }) {
my ($program) = split m/\s+/, $::lx_office_conf{applications}->{$key};
next if $program =~ m|/|;
foreach my $path (@paths) {
next unless -f "${path}/${program}";
$::lx_office_conf{applications}->{$key} = "${path}/" . $::lx_office_conf{applications}->{$key};
last;
}
}
}
1;

Auch abrufbar als: Unified diff