repo: rxvt-unicode-sixel
action: commit
revision: 
path_from: 
revision_from: 3ca40af9b4ab94e34e06887d2c88a24e8f7e027d:
path_to: 
revision_to: 
git.thebackupbox.net
rxvt-unicode-sixel
git clone git://git.thebackupbox.net/rxvt-unicode-sixel
commit 3ca40af9b4ab94e34e06887d2c88a24e8f7e027d
Author: Marc Lehmann 
Date:   Fri Dec 26 21:26:37 2014 +0000

    *** empty log message ***

diff --git a/src/urxvt.pm b/src/urxvt.pm
index 3990d879752de406c36adf32b40db75f2cc5cf08..
index ..673ae0f9661bd71a49e5615ed33e7c4055818486 100644
--- 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-----