]> git.deb.at Git - pkg/blosxom.git/blobdiff - blosxom.cgi
Avoid "conditional and" for running plugins "filter"
[pkg/blosxom.git] / blosxom.cgi
index c7d8887afb5e42dc2943a3a20085bbd9b9207832..f4666d06e90dc5b73121862d0336f6b495a804e6 100755 (executable)
@@ -281,32 +281,33 @@ $entries =
           # not an index, .file, and is readable
           and $2 ne 'index' and $2 !~ /^\./ and (-r $File::Find::name)
         ) {
+            # read modification time
+            my $mtime = stat($File::Find::name)->mtime or return;
+
 
             # to show or not to show future entries
-            ( 
-              $show_future_entries
-              or stat($File::Find::name)->mtime < time 
-            )
+            return unless ($show_future_entries or $mtime < time);
 
               # add the file and its associated mtime to the list of files
-              and $files{$File::Find::name} = stat($File::Find::name)->mtime
+            $files{$File::Find::name} = $mtime;
 
                 # static rendering bits
-                and (
-                  param('-all') 
-                  or !-f "$static_dir/$1/index." . $static_flavours[0]
-                  or stat("$static_dir/$1/index." . $static_flavours[0])->mtime < stat($File::Find::name)->mtime
-                )
-                  and $indexes{$1} = 1
-                    and $d = join('/', (nice_date($files{$File::Find::name}))[5,2,3])
-  
-                      and $indexes{$d} = $d
-                        and $static_entries and $indexes{ ($1 ? "$1/" : '') . "$2.$file_extension" } = 1
-
-            } 
-            else {
-              !-d $File::Find::name and -r $File::Find::name and $others{$File::Find::name} = stat($File::Find::name)->mtime
-            }
+            my $static_file = "$static_dir/$1/index." . $static_flavours[0];
+            if (param('-all')
+                or !-f $static_file
+                or stat($static_file)->mtime < $mtime)
+             {
+              $indexes{$1} = 1;
+              $d = join('/', (nice_date($mtime))[5,2,3]);
+              $indexes{$d} = $d;
+              $indexes{ ($1 ? "$1/" : '') . "$2.$file_extension" } = 1 if $static_entries;
+              }
+          }
+          # not an entries match
+          elsif (!-d $File::Find::name and -r $File::Find::name)
+          {
+            $others{$File::Find::name} = stat($File::Find::name)->mtime;
+          }
       }, $datadir
     );
 
@@ -316,7 +317,14 @@ $entries =
 # Plugins: Entries
 # Allow for the first encountered plugin::entries subroutine to override the
 # default built-in entries subroutine
-my $tmp; foreach my $plugin ( @plugins ) { $plugins{$plugin} > 0 and $plugin->can('entries') and defined($tmp = $plugin->entries()) and $entries = $tmp and last; }
+foreach my $plugin (@plugins) {
+    if ( $plugins{$plugin} > 0 and $plugin->can('entries') ) {
+        if ( my $tmp = $plugin->entries() ) {
+            $entries = $tmp;
+            last;
+        }
+    }
+}
 
 my ($files, $indexes, $others) = &$entries();
 %indexes = %$indexes;
@@ -382,7 +390,9 @@ sub generate {
   %files = %$files; %others = ref $others ? %$others : ();
 
   # Plugins: Filter
-  foreach my $plugin ( @plugins ) { $plugins{$plugin} > 0 and $plugin->can('filter') and $entries = $plugin->filter(\%files, \%others) }
+  foreach my $plugin ( @plugins ) {
+  if ($plugins{$plugin} > 0 and $plugin->can('filter')){ $entries = $plugin->filter(\%files, \%others); }
+  }
 
   my %f = %files;