From 2e086b3263f33d3d42ddbcb451e9995c466929cd Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 14 Jun 2011 15:47:47 -0400 Subject: [PATCH] remove trailing slash from attachment_holding_dir If it's passed a filename, it should return the filename inside the holding dir. If passed a page, the directory sans slash. All code adds the slash. --- IkiWiki/Plugin/attachment.pm | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/IkiWiki/Plugin/attachment.pm b/IkiWiki/Plugin/attachment.pm index f8a3a68c6..4bd08bf7b 100644 --- a/IkiWiki/Plugin/attachment.pm +++ b/IkiWiki/Plugin/attachment.pm @@ -153,18 +153,19 @@ sub formbuilder (@) { $form->tmpl_param("attachment_list" => [attachment_list($form->field('page'))]); } -sub attachment_holding_dir { +sub attachment_holding_location { my $page=attachment_location(shift); - return $config{wikistatedir}."/attachments/". + my $dir=$config{wikistatedir}."/attachments/". IkiWiki::possibly_foolish_untaint(linkpage($page)); + $dir=~s/\/$//; + return $dir; } sub is_held_attachment { my $attachment=shift; - my $f=attachment_holding_dir($attachment); - $f=~s/\/$//; + my $f=attachment_holding_location($attachment); if (-f $f) { return $f } @@ -214,7 +215,7 @@ sub attachment_store { # Move the attachment into holding directory. # Try to use a fast rename; fall back to copying. - my $dest=attachment_holding_dir($form->field('page')); + my $dest=attachment_holding_location($form->field('page')); IkiWiki::prep_writefile($filename, $dest); unlink($dest."/".$filename); if (rename($tempfile, $dest."/".$filename)) { @@ -248,7 +249,7 @@ sub attachments_save { # Move attachments out of holding directory. my @attachments; - my $dir=attachment_holding_dir($form->field('page')); + my $dir=attachment_holding_location($form->field('page')); foreach my $filename (glob("$dir/*")) { next unless -f $filename; my $dest=$config{srcdir}."/". @@ -317,7 +318,7 @@ sub attachment_list ($) { } # attachments in holding directory - my $dir=attachment_holding_dir($page); + my $dir=attachment_holding_location($page); my $heldmsg=gettext("this attachment is not yet saved"); foreach my $file (glob("$dir/*")) { next unless -f $file; -- 2.26.2