… | |
… | |
481 | my $htype = shift; |
481 | my $htype = shift; |
482 | |
482 | |
483 | if ($htype == 0) { # INIT |
483 | if ($htype == 0) { # INIT |
484 | my @dirs = ((split /:/, $TERM->resource ("perl_lib")), "$LIBDIR/perl"); |
484 | my @dirs = ((split /:/, $TERM->resource ("perl_lib")), "$LIBDIR/perl"); |
485 | |
485 | |
|
|
486 | my %want_ext; |
|
|
487 | |
486 | my @ext = (map { split /,/, $TERM->resource ("perl_ext_$_") } 1, 2); |
488 | for (map { split /,/, $TERM->resource ("perl_ext_$_") } 1, 2) { |
487 | |
|
|
488 | while (@ext) { |
|
|
489 | my $ext = shift @ext; |
|
|
490 | if ($ext eq "default") { |
489 | if ($_ eq "default") { |
491 | unshift @ext, qw(selection); |
490 | $want_ext{$_}++ for qw(selection option-popup); |
|
|
491 | } elsif (/^-(.*)$/) { |
|
|
492 | delete $want_ext{$1}; |
492 | } else { |
493 | } else { |
|
|
494 | $want_ext{$_}++; |
|
|
495 | } |
|
|
496 | } |
|
|
497 | |
|
|
498 | for my $ext (keys %want_ext) { |
493 | my @files = grep -f $_, map "$_/$ext", @dirs; |
499 | my @files = grep -f $_, map "$_/$ext", @dirs; |
494 | |
500 | |
495 | if (@files) { |
501 | if (@files) { |
496 | register_package extension_package $files[0]; |
502 | register_package extension_package $files[0]; |
497 | } else { |
503 | } else { |
498 | warn "perl extension '$ext' not found in perl library search path\n"; |
504 | warn "perl extension '$ext' not found in perl library search path\n"; |
499 | } |
|
|
500 | } |
505 | } |
501 | } |
506 | } |
502 | } |
507 | } |
503 | |
508 | |
504 | $retval = undef; |
509 | $retval = undef; |