X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fupstream%2Fblosxom.git;a=blobdiff_plain;f=blosxom.cgi;h=9b5fe21a53779a7aee9e65a4fd1daa2bb6924821;hp=3b915c5644a33ded46a3ddad5752c535cf0252b3;hb=6e4d2a693de64c92111ca3227b37c9dab4301d8c;hpb=343580fa063c235453fdfe5d19beb8ad03eb6e80 diff --git a/blosxom.cgi b/blosxom.cgi index 3b915c5..9b5fe21 100755 --- a/blosxom.cgi +++ b/blosxom.cgi @@ -51,7 +51,8 @@ $show_future_entries = 0; # (if empty blosxom will load all plugins in $plugin_path directories) $plugin_list = ""; -# Where are my plugins kept? (list of directories, separated by ':') +# Where are my plugins kept? +# List of directories, separated by ';' on windows, ':' everywhere else $plugin_path = ""; # Where should my plugins keep their state information? @@ -136,7 +137,7 @@ $url =~ s!/$!!; $datadir =~ s!/$!!; $plugin_dir =~ s!/$!!; $static_dir =~ s!/$!!; # Fix depth to take into account datadir's path -$depth and $depth += ($datadir =~ tr[/][]) - 1; +$depth += ($datadir =~ tr[/][]) - 1 if $depth; # Global variable to be used in head/foot.{flavour} templates $path_info = ''; @@ -156,7 +157,7 @@ $flavour = ''; if ( $path_info[$#path_info] =~ /(.+)\.(.+)$/ ) { $flavour = $2; - $1 ne 'index' and $path_info .= "/$1.$2"; + $path_info .= "/$1.$2" if $1 ne 'index'; pop @path_info; } else { $flavour = param('flav') || $default_flavour; @@ -197,7 +198,8 @@ while () { } # Plugins: Start -my @plugin_dirs = split /:/, ($plugin_path || $plugin_dir); +my $path_sep = $^O eq 'MSWin32' ? ';' : ':'; +my @plugin_dirs = split /$path_sep/, ($plugin_path || $plugin_dir); my @plugin_list = (); my %plugin_hash = (); @@ -239,7 +241,7 @@ foreach my $plugin ( @plugin_list ) { else { eval { require $plugin }; } - $@ and warn "error finding or loading blosxom plugin $plugin_name - skipping\n" and next; + $@ and warn "$@ error finding or loading blosxom plugin $plugin_name - skipping\n" and next; $plugin_name->start() and ( $plugins{$plugin_name} = $on_off ) and push @plugins, $plugin_name; } shift @INC foreach @plugin_dirs; @@ -322,8 +324,8 @@ if (!$ENV{GATEWAY_INTERFACE} and param('-password') and $static_password and par foreach ( ('', split /\//, $path) ) { $p .= "/$_"; $p =~ s!^/!!; - $done{$p}++ and next; - (-d "$static_dir/$p" or $p =~ /\.$file_extension$/) or mkdir "$static_dir/$p", 0755; + next if $done{$p}++; + mkdir "$static_dir/$p", 0755 unless (-d "$static_dir/$p" or $p =~ /\.$file_extension$/); foreach $flavour ( @static_flavours ) { my $content_type = (&$template($p,'content_type',$flavour)); $content_type =~ s!\n.*!!s; @@ -377,7 +379,16 @@ sub generate { # Plugins: Skip # Allow plugins to decide if we can cut short story generation - my $skip; foreach my $plugin ( @plugins ) { $plugins{$plugin} > 0 and $plugin->can('skip') and defined($tmp = $plugin->skip()) and $skip = $tmp and last; } + my $skip; + foreach my $plugin (@plugins) { + if ( $plugins{$plugin} > 0 and $plugin->can('skip') ) { + if ( my $tmp = $plugin->skip() ) { + $skip = $tmp; + last; + } + } + } + # Define default interpolation subroutine $interpolate =