]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/CGI.pm
web commit by JoshTriplett: Fix typo.
[ikiwiki.git] / IkiWiki / CGI.pm
index cd6ddc0345350c79566dfbad5235b235ad4b0cac..aeccd31accd006968019df1b0e23e34135f0c07a 100644 (file)
@@ -286,9 +286,10 @@ sub cgi_prefs ($$) { #{{{
        }
 } #}}}
 
-sub cgi_editpage ($$) { #{{{
+sub cgi_editpage ($$;$) { #{{{
        my $q=shift;
        my $session=shift;
+       my $blogpost=shift;
 
        my @fields=qw(do rcsinfo subpage from page type editcontent comments
                      newfile);
@@ -322,6 +323,9 @@ sub cgi_editpage ($$) { #{{{
        # characters.
        my ($page)=$form->field('page');
        $page=titlepage(possibly_foolish_untaint($page));
+       if ($blogpost) {
+               $page=~s/(\/)/"__".ord($1)."__"/eg;
+       }
        if (! defined $page || ! length $page || file_pruned($page, $config{srcdir}) || $page=~/^\//) {
                error("bad page name");
        }
@@ -396,12 +400,11 @@ sub cgi_editpage ($$) { #{{{
                                value => $content, force => 1);
                $form->field(name => "comments",
                                value => $comments, force => 1);
-               $config{rss}=$config{atom}=0; # avoid preview writing a feed!
                $form->tmpl_param("page_preview",
                        htmlize($page, $type,
                        linkify($page, "",
                        preprocess($page, $page,
-                       filter($page, $content)))));
+                       filter($page, $content), 0, 1))));
        }
        else {
                $form->tmpl_param("page_preview", "");
@@ -467,8 +470,8 @@ sub cgi_editpage ($$) { #{{{
                        
                        $form->tmpl_param("page_select", 1);
                        $form->field(name => "page", type => 'select',
-                               options => { map { $_ => pagetitle($_, 1) } @editable_locs },
-                               value => $best_loc);
+                               options => [ map { pagetitle($_, 1) } @editable_locs ],
+                               value => pagetitle($best_loc, 1));
                        $form->field(name => "type", type => 'select',
                                options => \@page_types);
                        $form->title(sprintf(gettext("creating %s"), pagetitle($page)));
@@ -682,8 +685,7 @@ sub cgi (;$$) { #{{{
                cgi_editpage($q, $session);
        }
        elsif ($do eq 'blog') {
-               my $page=titlepage(decode_utf8($q->param('title')));
-               $page=~s/(\/)/"__".ord($1)."__"/eg; # escape slashes too
+               my $page=decode_utf8($q->param('title'));
                # if the page already exists, munge it to be unique
                my $from=$q->param('from');
                my $add="";
@@ -692,9 +694,9 @@ sub cgi (;$$) { #{{{
                        $add++;
                }
                $q->param('page', $page.$add);
-               # now run same as create
+               # now run same as create, except escape slashes too
                $q->param('do', 'create');
-               cgi_editpage($q, $session);
+               cgi_editpage($q, $session, 1);
        }
        elsif ($do eq 'postsignin') {
                error(gettext("login failed, perhaps you need to turn on cookies?"));