Simplify default entries sub, removing hanging $1/$2 refs.
[matthijs/upstream/blosxom.git] / blosxom.cgi
index dca7e01e75476342c15b5110993249d62c695b47..f6473743edd2d5e229b24526b00583902e3c3fa4 100755 (executable)
@@ -553,20 +553,15 @@ $entries = sub {
     my $param_all = param('-all');
     find(
         sub {
-            my $d;
             my $curr_depth = $File::Find::dir =~ tr[/][];
             return if $depth and $curr_depth > $depth;
+            return if !-r $File::Find::name;
 
-            if (
-
-                # a match
-                $File::Find::name
-                =~ m!^$datadir/(?:(.*)/)?(.+)\.$file_extension$!
-
-                # not an index, .file, and is readable
-                and $2 ne 'index' and $2 !~ /^\./ and ( -r $File::Find::name )
-                )
+            # if a $file_extension file and not a .file or an index
+            if ( m/^([^.].*)\.$file_extension$/
+                and $1 ne 'index' )
             {
+                my $basename_noext = $1;
 
                 # read modification time
                 my $mtime = stat($File::Find::name)->mtime or return;
@@ -578,22 +573,23 @@ $entries = sub {
                 $files{$File::Find::name} = $mtime;
 
                 # static rendering bits
+                (my $dirname = $File::Find::dir) =~ s!^$datadir/?!!;
                 my $static_file
-                    = "$static_dir/$1/index." . $static_flavours[0];
+                    = "$static_dir/${dirname}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{$dirname} = 1;
+                    my $d = join( '/', ( nice_date($mtime) )[ 5, 2, 3 ] );
                     $indexes{$d} = $d;
-                    $indexes{ ( $1 ? "$1/" : '' ) . "$2.$file_extension" } = 1
+                    $indexes{"$dirname$basename_noext.$file_extension"} = 1
                         if $static_entries;
                 }
             }
 
             # not an entries match
-            elsif ( !-d $File::Find::name and -r $File::Find::name ) {
+            elsif ( !-d $File::Find::name ) {
                 $others{$File::Find::name} = stat($File::Find::name)->mtime;
             }
         },
@@ -619,11 +615,7 @@ my ( $files, $indexes, $others ) = &$entries();
 %indexes = %$indexes;
 
 # Static
-if (    !$ENV{GATEWAY_INTERFACE}
-    and param('-password')
-    and $static_password
-    and param('-password') eq $static_password )
-{
+if ( $static_or_dynamic eq 'static' ) {
 
     param('-quiet') or print "Blosxom is generating static index pages...\n";