X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/64946f91982d85bb301cc9241459939c657d0eb9..e6bba3b3b5c7a99a38f5ae489a8fb7353013debc:/IkiWiki/Plugin/attachment.pm

diff --git a/IkiWiki/Plugin/attachment.pm b/IkiWiki/Plugin/attachment.pm
index 8c3ff887a..ee105a170 100644
--- a/IkiWiki/Plugin/attachment.pm
+++ b/IkiWiki/Plugin/attachment.pm
@@ -58,7 +58,7 @@ sub check_canattach ($$;$) {
 			$config{allowed_attachments},
 			file => $file,
 			user => $session->param("name"),
-			ip => $ENV{REMOTE_ADDR},
+			ip => $session->remote_addr(),
 		);
 	}
 
@@ -134,9 +134,12 @@ sub formbuilder (@) {
 			}
 		}
 
+		$filename=IkiWiki::basename($filename);
+		$filename=~s/.*\\+(.+)/$1/; # hello, windows
+
 		$filename=linkpage(IkiWiki::possibly_foolish_untaint(
 				attachment_location($form->field('page')).
-				IkiWiki::basename($filename)));
+				$filename));
 		if (IkiWiki::file_pruned($filename)) {
 			error(gettext("bad attachment filename"));
 		}
@@ -180,9 +183,12 @@ sub formbuilder (@) {
 		if ($config{rcs}) {
 			IkiWiki::rcs_add($filename);
 			IkiWiki::disable_commit_hook();
-			IkiWiki::rcs_commit($filename, gettext("attachment upload"),
-				IkiWiki::rcs_prepedit($filename),
-				$session->param("name"), $ENV{REMOTE_ADDR});
+			IkiWiki::rcs_commit(
+				file => $filename,
+				message => gettext("attachment upload"),
+				token => IkiWiki::rcs_prepedit($filename),
+				session => $session,
+			);
 			IkiWiki::enable_commit_hook();
 			IkiWiki::rcs_update();
 		}
@@ -195,7 +201,14 @@ sub formbuilder (@) {
 		foreach my $f ($q->param("attachment_select")) {
 			$f=Encode::decode_utf8($f);
 			$f=~s/^$page\///;
-			$add.="[[$f]]\n";
+			if (IkiWiki::isinlinableimage($f) &&
+			    UNIVERSAL::can("IkiWiki::Plugin::img", "import")) {
+				$add.='[[!img '.$f.' align="right" size="" alt=""]]';
+			}
+			else {
+				$add.="[[$f]]";
+			}
+			$add.="\n";
 		}
 		$form->field(name => 'editcontent',
 			value => $form->field('editcontent')."\n\n".$add,
@@ -225,8 +238,7 @@ sub attachment_list ($) {
 	my @ret;
 	foreach my $f (values %pagesources) {
 		if (! defined pagetype($f) &&
-		    $f=~m/^\Q$loc\E[^\/]+$/ &&
-		    -e "$config{srcdir}/$f") {
+		    $f=~m/^\Q$loc\E[^\/]+$/) {
 			push @ret, {
 				"field-select" => '<input type="checkbox" name="attachment_select" value="'.$f.'" />',
 				link => htmllink($page, $page, $f, noimageinline => 1),