From 7416fb4edc504143cf5888717f30ed78d57511a7 Mon Sep 17 00:00:00 2001 From: pcanterino <> Date: Mon, 27 Oct 2003 10:37:09 +0000 Subject: [PATCH] - Added devedit_reload() to easily reload Dev-Editor with different arguments - Fixed a small output error introduced with revision 1.6 of Command.pm (I'm so stupid...) --- modules/Command.pm | 31 +++++++++---------------------- modules/Tool.pm | 34 ++++++++++++++++++++++++++++++---- 2 files changed, 39 insertions(+), 26 deletions(-) diff --git a/modules/Command.pm b/modules/Command.pm index 751392f..4e64a36 100644 --- a/modules/Command.pm +++ b/modules/Command.pm @@ -14,8 +14,6 @@ use strict; use vars qw(@EXPORT $script); -use CGI qw(redirect); - use File::Access; use File::Copy; @@ -354,9 +352,7 @@ sub exec_mkfile($$) return error("A file or directory called '$new_virtual' already exists.",$dir) if(-e $new_physical); file_create($new_physical) or return error("Could not create file '$new_virtual'.",$dir); - - my $output = redirect("http://$ENV{'HTTP_HOST'}$script?command=show&file=$dir"); - return \$output; + return devedit_reload({command => 'show', file => $dir}); } # exec_mkdir() @@ -379,9 +375,7 @@ sub exec_mkdir($$) return error("A file or directory called '$new_virtual' already exists.",$dir) if(-e $new_physical); mkdir($new_physical) or return error("Could not create directory '$new_virtual'.",$dir); - - my $output = redirect("http://$ENV{'HTTP_HOST'}$script?command=show&file=$dir"); - return \$output; + return devedit_reload({command => 'show', file => $dir}); } # exec_workwithfile() @@ -412,13 +406,13 @@ sub exec_workwithfile($$) $output .= "

Someone else is currently editing this file. So not all features are available.

\n\n" unless($unused); - # Copying of the file as always allowed if we have read access + $output .= "
\n\n"; + + # Copying of the file is always allowed - but we need read access if(-r $physical) { $output .= < -

Copy

@@ -509,9 +503,7 @@ sub exec_copy($$) } copy($physical,$new_physical) or return error("Could not copy '$virtual' to '$new_virtual'",upper_path($virtual)); - - my $output = redirect("http://$ENV{'HTTP_HOST'}$script?command=show&file=$dir"); - return \$output; + return devedit_reload({command => 'show', file => $dir}); } # exec_rename() @@ -541,9 +533,7 @@ sub exec_rename($$) } rename($physical,$new_physical) or return error("Could not move/rename '".encode_entities($virtual)."' to '$new_virtual'.",upper_path($virtual)); - - my $output = redirect("http://$ENV{'HTTP_HOST'}$script?command=show&file=$dir"); - return \$output; + return devedit_reload({command => 'show', file => $dir}); } # exec_remove() @@ -565,9 +555,7 @@ sub exec_remove($$) return error_in_use($virtual) if($data->{'uselist'}->in_use($virtual)); unlink($physical) or return error("Could not delete file '".encode_entities($virtual)."'.",upper_path($virtual)); - - my $output = redirect("http://$ENV{'HTTP_HOST'}$script?command=show&file=".upper_path($virtual)); - return \$output; + return devedit_reload({command => 'show', file => upper_path($virtual)}); } # exec_unlock() @@ -589,8 +577,7 @@ sub exec_unlock($$) $uselist->remove_file($virtual); $uselist->save; - my $output = redirect("http://$ENV{'HTTP_HOST'}$script?command=show&file=".upper_path($virtual)); - return \$output; + return devedit_reload({command => 'show', file => upper_path($virtual)}); } # it's true, baby ;-) diff --git a/modules/Tool.pm b/modules/Tool.pm index 9e89e43..75b9f31 100644 --- a/modules/Tool.pm +++ b/modules/Tool.pm @@ -6,13 +6,14 @@ package Tool; # Some shared sub routines # # Author: Patrick Canterino -# Last modified: 2003-10-03 +# Last modified: 2003-10-27 # use strict; use vars qw(@EXPORT); +use CGI qw(redirect); use Cwd qw(abs_path); use File::Spec; @@ -22,6 +23,7 @@ use base qw(Exporter); @EXPORT = qw(check_path clean_path + devedit_reload file_name upper_path); @@ -98,9 +100,34 @@ sub clean_path($) return $path; } +# devedit_reload() +# +# Create a HTTP redirection header to load Dev-Editor +# with some other parameters +# +# Params: Hash Reference (will be merged to a query string) +# +# Return: HTTP redirection header (Scalar Reference) + +sub devedit_reload($) +{ + my $params = shift; + my @list; + + while(my ($param,$value) = each(%$params)) + { + push(@list,$param."=".$value); + } + + my $query = join("&",@list); + my $header = redirect("http://$ENV{'HTTP_HOST'}$ENV{'SCRIPT_NAME'}?$query"); + + return \$header; +} + # file_name() # -# Returns the last path of a filename +# Returns the last path of a path # # Params: Path # @@ -141,8 +168,7 @@ sub upper_path($) unless($path eq "/") { $path = substr($path,0,-1) if($path =~ m!/$!); - $path = substr($path,0,rindex($path,"/")); - $path = $path."/"; + $path = substr($path,0,rindex($path,"/")+1); } return $path; -- 2.34.1