X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fupstream%2Fblosxom.git;a=blobdiff_plain;f=blosxom.cgi;h=f6473743edd2d5e229b24526b00583902e3c3fa4;hp=2c0054797a4cd61b85083cbfda9491cd259e5bba;hb=1d9899f2726e343ccc813414d0d369e7360638ba;hpb=20572387b9318dc467ea2c3ac703993ce2537ed4 diff --git a/blosxom.cgi b/blosxom.cgi index 2c00547..f647374 100755 --- a/blosxom.cgi +++ b/blosxom.cgi @@ -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; } },