X-Git-Url: https://git.p6c8.net/devedit.git/blobdiff_plain/83ec581a72a596bbf24c4988a46887aeb269001d..7526dfcc57f8e86a90878078eacaf729072db49a:/modules/Command.pm?ds=inline diff --git a/modules/Command.pm b/modules/Command.pm index c17383b..9e11f16 100644 --- a/modules/Command.pm +++ b/modules/Command.pm @@ -6,7 +6,7 @@ package Command; # Execute Dev-Editor's commands # # Author: Patrick Canterino -# Last modified: 2005-04-10 +# Last modified: 2005-04-15 # use strict; @@ -29,8 +29,6 @@ use HTML::Entities; use Output; use Template; -use Data::Dumper; - my $script = encode_entities($ENV{'SCRIPT_NAME'}); my $users = eval('getpwuid(0)') && eval('getgrgid(0)'); @@ -104,13 +102,11 @@ sub exec_show($$) return error($config->{'errors'}->{'no_dir_access'},$upper_path) unless(-r $physical && -x $physical); my $direntries = dir_read($physical); - return error($config->{'dir_read_fail'},$upper_path,{DIR => encode_entities($virtual)}) unless($direntries); + return error($config->{'errors'}->{'dir_read_fail'},$upper_path,{DIR => encode_entities($virtual)}) unless($direntries); my $files = $direntries->{'files'}; my $dirs = $direntries->{'dirs'}; - my $dir_writeable = -w $physical; - my $dirlist = ''; my $filter1 = $data->{'cgi'}->param('filter') || '*'; # The real wildcard @@ -205,7 +201,7 @@ sub exec_show($$) $tpl->fillin('FILTER_URL',escape($filter2)); $tpl->parse_if_block('empty',$dirlist eq ''); - $tpl->parse_if_block('dir_writeable',$dir_writeable); + $tpl->parse_if_block('dir_writeable',-w $physical); $tpl->parse_if_block('filter',$filter2); $tpl->parse_if_block('gmt',$config->{'use_gmt'}); } @@ -366,9 +362,10 @@ sub exec_endedit($$) my $md5 = new Digest::MD5; $md5->addfile(*FILE); - my $md5_new = $md5->hexdigest; + my $md5file = $md5->hexdigest; + my $md5data = md5_hex($content); - if($md5_new ne $md5sum && not $cgi->param('saveas')) + if($md5file ne $md5sum && $md5data ne $md5file && not $cgi->param('saveas')) { # The file changed meanwhile @@ -381,7 +378,7 @@ sub exec_endedit($$) $tpl->fillin('DIR',$dir); $tpl->fillin('URL',equal_url($config->{'httproot'},$virtual)); $tpl->fillin('SCRIPT',$script); - $tpl->fillin('MD5SUM',$md5_new); + $tpl->fillin('MD5SUM',$md5file); $tpl->fillin('CONTENT',encode_entities($content)); $tpl->parse_if_block('error',1); @@ -393,16 +390,15 @@ sub exec_endedit($$) } else { - # The file was saved successfully! - - seek(FILE,0,0); - truncate(FILE,0); + if($md5data ne $md5file) + { + seek(FILE,0,0); + truncate(FILE,0); - print FILE $content; + print FILE $content; + } $output = devedit_reload({command => 'show', file => $dir}); - - #return error($config->{'errors'}->{'edit_failed'},$dir,{FILE => $virtual}); } close(FILE);