+
+ if ($form->submitted eq "Insert Links") {
+ my $page=quotemeta(Encode::decode_utf8(scalar $q->param("page")));
+ my $add="";
+ foreach my $f (@{$q->param_fetch("attachment_select")}) {
+ $f=Encode::decode_utf8($f);
+ $f=~s/^$page\///;
+ if (IkiWiki::isinlinableimage($f) &&
+ IkiWiki::Plugin::img->can("import")) {
+ $add.='[[!img '.$f.' align="right" size="" alt=""]]';
+ }
+ else {
+ $add.="[[$f]]";
+ }
+ $add.="\n";
+ }
+ my $content = $form->field('editcontent');
+ $form->field(name => 'editcontent',
+ value => $content."\n\n".$add,
+ force => 1) if length $add;
+ }
+
+ # Generate the attachment list only after having added any new
+ # attachments.
+ $form->tmpl_param("attachment_list" => [attachment_list(scalar $form->field('page'))]);
+}
+
+sub attachment_holding_location {
+ my $page=attachment_location(shift);
+
+ 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_location($attachment);
+ if (-f $f) {
+ return $f