]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/rename.pm
don't special case preview
[git.ikiwiki.info.git] / IkiWiki / Plugin / rename.pm
index 62267151629d195e26255a9637286aaa6f9fd583..6c131487a3527c46c00b1ce57ca0a15936f04f49 100644 (file)
@@ -29,7 +29,7 @@ sub check_canrename ($$$$$$) { #{{{
        my $q=shift;
        my $session=shift;
 
-       my $attachment=! defined IkiWiki::pagetype($pagesources{$src});
+       my $attachment=! defined pagetype($pagesources{$src});
 
        # Must be a known source file.
        if (! exists $pagesources{$src}) {
@@ -98,7 +98,7 @@ sub rename_form ($$$) { #{{{
        error($@) if $@;
        my $f = CGI::FormBuilder->new(
                name => "rename",
-               title => sprintf(gettext("rename %s"), IkiWiki::pagetitle($page)),
+               title => sprintf(gettext("rename %s"), pagetitle($page)),
                header => 0,
                charset => "utf-8",
                method => 'POST',
@@ -111,7 +111,7 @@ sub rename_form ($$$) { #{{{
        
        $f->field(name => "do", type => "hidden", value => "rename", force => 1);
        $f->field(name => "page", type => "hidden", value => $page, force => 1);
-       $f->field(name => "new_name", value => IkiWiki::pagetitle($page), size => 60);
+       $f->field(name => "new_name", value => pagetitle($page), size => 60);
        if (!$q->param("attachment")) {
                # insert the standard extensions
                my @page_types;
@@ -165,11 +165,10 @@ sub rename_start ($$$$) { #{{{
        $session->param(postrename => scalar $q->Vars);
        IkiWiki::cgi_savesession($session);
        
-       my ($f, $buttons)=rename_form($q, $session, $page);
        if (defined $attachment) {
-               $f->field(name => "attachment", value => $attachment, force => 1);
+               $q->param(-name => "attachment", -value => $attachment);
        }
-       
+       my ($f, $buttons)=rename_form($q, $session, $page);
        IkiWiki::showform($f, $buttons, $session, $q);
        exit 0;
 } #}}}
@@ -268,7 +267,7 @@ sub sessioncgi ($$) { #{{{
                        # performed in check_canrename later.
                        my $src=$q->param("page");
                        my $srcfile=IkiWiki::possibly_foolish_untaint($pagesources{$src});
-                       my $dest=IkiWiki::possibly_foolish_untaint(IkiWiki::titlepage($q->param("new_name")));
+                       my $dest=IkiWiki::possibly_foolish_untaint(titlepage($q->param("new_name")));
                        my $destfile=$dest;
                        if (! $q->param("attachment")) {
                                my $type=$q->param('type');
@@ -280,7 +279,7 @@ sub sessioncgi ($$) { #{{{
                                        $type=$ext;
                                }
                                
-                               $destfile.=".".$type;
+                               $destfile=newpagefile($dest, $type);
                        }
                        push @torename, {
                                src => $src,
@@ -293,17 +292,21 @@ sub sessioncgi ($$) { #{{{
                        # See if any subpages need to be renamed.
                        if ($q->param("subpages") && $src ne $dest) {
                                foreach my $p (keys %pagesources) {
-                                       if ($pagesources{$p}=~m/^\Q$src\E\//) {
-                                               my $d=$pagesources{$p};
-                                               $d=~s/^\Q$src\E\//$dest\//;
-                                               push @torename, {
-                                                       src => $p,
-                                                       srcfile => $pagesources{$p},
-                                                       dest => pagename($d),
-                                                       destfile => $d,
-                                                       required => 0,
-                                               };
-                                       }
+                                       next unless $pagesources{$p}=~m/^\Q$src\E\//;
+                                       # If indexpages is enabled, the
+                                       # srcfile should not be confused
+                                       # with a subpage.
+                                       next if $pagesources{$p} eq $srcfile;
+
+                                       my $d=$pagesources{$p};
+                                       $d=~s/^\Q$src\E\//$dest\//;
+                                       push @torename, {
+                                               src => $p,
+                                               srcfile => $pagesources{$p},
+                                               dest => pagename($d),
+                                               destfile => $d,
+                                               required => 0,
+                                       };
                                }
                        }