Die ursprüngliche Version zieht sich den aufgrufenen Scriptnamen aus $0. Das
funktioniert aber nur in der Symlinkversion. Wenn ein Matchalias auf das Script
gesetzt wird, muss der Scriptname aus %ENV geholt werden. Da das bei FCGI
sowieso schon gemacht wird, das einfach zum Standard erklärt, und dafür das
unrequire vereinfacht.
my $interface = lc(shift || 'cgi');
my ($script_name, $action);
- if ($interface =~ m/^(?:fastcgi|fcgid|fcgi)$/) {
- $script_name = $ENV{SCRIPT_NAME};
- unrequire_bin_mozilla();
+ $script_name = $ENV{SCRIPT_NAME};
- } else {
- $script_name = $0;
- }
+ unrequire_bin_mozilla($interface);
$::cgi = CGI->new('');
$::locale = Locale->new($::language);
}
sub unrequire_bin_mozilla {
+ return unless $_[0] =~ m/^(?:fastcgi|fcgid|fcgi)$/;
+
for (keys %INC) {
next unless m#^bin/mozilla/#;
next if /\bcommon.pl$/;