repo: rxvt-unicode-sixel action: commit revision: path_from: revision_from: 3ca40af9b4ab94e34e06887d2c88a24e8f7e027d: path_to: revision_to:
commit 3ca40af9b4ab94e34e06887d2c88a24e8f7e027d Author: Marc LehmannDate: Fri Dec 26 21:26:37 2014 +0000 *** empty log message *** diff --git a/src/urxvt.pm b/src/urxvt.pm
--- a/src/urxvt.pm
+++ b/src/urxvt.pm
@@ -1136,20 +1136,30 @@ sub scan_extensions {
return if exists $self->{meta};
- my @libdirs = perl_libdirs $self;
+ my @urxvtdirs = perl_libdirs $self;
+ my @cpandirs = grep -d, map "$_/URxvt/Ext", @INC;
-# return if $self->{meta_libdirs} eq join "\x00", @libdirs;#d#
-
-# $self->{meta_libdirs} = join "\x00", @libdirs;#d#
$self->{meta} = \my %meta;
# first gather extensions
- for my $dir (reverse @libdirs) {
+
+ my $gather = sub {
+ my ($dir, $core) = @_;
+
opendir my $fh, $dir
- or next;
+ or return;
+
for my $ext (readdir $fh) {
$ext !~ /^\./
- and open my $fh, "<", "$dir/$ext"
+ or next;
+
+ open my $fh, "<", "$dir/$ext"
+ or next;
+
+ -f $fh
+ or next;
+
+ $ext =~ s/\.uext$// or $core
or next;
my %ext = (dir => $dir);
@@ -1172,7 +1182,10 @@ sub scan_extensions {
$meta{ext}{$ext} = \%ext;
}
- }
+ };
+
+ $gather->($_, 0) for @cpandirs;
+ $gather->($_, 1) for @urxvtdirs;
# and now merge resources
while (my ($k, $v) = each %{ $meta{ext} }) {
-----END OF PAGE-----