]> sipb.mit.edu Git - ikiwiki.git/blobdiff - ikiwiki
fix subpage creation
[ikiwiki.git] / ikiwiki
diff --git a/ikiwiki b/ikiwiki
index 14c50a9afa3bb05ecdba44d307ccc3d740b10671..d1a31eb551fe2afdab4c7ccbd9388190097f3200 100755 (executable)
--- a/ikiwiki
+++ b/ikiwiki
@@ -489,7 +489,7 @@ sub rcs_commit ($$$) { #{{{
                # else since rcs_prepedit was called.
                my ($oldrev)=$rcstoken=~/^([0-9]+)$/; # untaint
                my $rev=svn_info("Revision", "$config{srcdir}/$file");
-               if ($rev != $oldrev) {
+               if (defined $rev && defined $oldrev && $rev != $oldrev) {
                        # Merge their changes into the file that we've
                        # changed.
                        chdir($config{srcdir}); # svn merge wants to be here
@@ -501,7 +501,7 @@ sub rcs_commit ($$$) { #{{{
 
                if (system("svn", "commit", "--quiet", "-m",
                           possibly_foolish_untaint($message),
-                          "$config{srcdir}/$file") != 0) {
+                          "$config{srcdir}") != 0) {
                        my $conflict=readfile("$config{srcdir}/$file");
                        if (system("svn", "revert", "--quiet", "$config{srcdir}/$file") != 0) {
                                warn("svn revert failed\n");
@@ -567,7 +567,7 @@ sub rcs_recentchanges ($) { #{{{
                                $user=$2;
                                $when=concise(ago(time - str2time($3)));
                        }
-                       elsif ($state eq 'header' && /^\s+[A-Z]\s+\Q$svn_base\E\/(.+)$/) {
+                       elsif ($state eq 'header' && /^\s+[A-Z]\s+\Q$svn_base\E\/([^ ]+)(?:$|\s)/) {
                                push @pages, { link => htmllink("", pagename($1), 1) }
                                        if length $1;
                        }
@@ -1089,6 +1089,8 @@ sub cgi_editpage ($$) { #{{{
                cols => 80);
        $form->tmpl_param("can_commit", $config{svn});
        $form->tmpl_param("indexlink", indexlink());
+       $form->tmpl_param("helponformattinglink",
+               htmllink("", "HelpOnFormatting", 1));
        if (! $form->submitted) {
                $form->field(name => "rcsinfo", value => rcs_prepedit($file),
                        force => 1);
@@ -1129,9 +1131,16 @@ sub cgi_editpage ($$) { #{{{
                        else {
                                my $dir=$from."/";
                                $dir=~s![^/]+/$!!;
+                               
+                               if ($page eq 'discussion') {
+                                       $best_loc="$from/$page";
+                               }
+                               else {
+                                       $best_loc=$dir.$page;
+                               }
+                               
                                push @page_locs, $dir.$page;
                                push @page_locs, "$from/$page";
-                               $best_loc="$from/$page";
                                while (length $dir) {
                                        $dir=~s![^/]+/$!!;
                                        push @page_locs, $dir.$page;
@@ -1279,8 +1288,8 @@ sub setup () { # {{{
 } #}}}
 
 # main {{{
-lockwiki();
 setup() if $config{setup};
+lockwiki();
 if ($config{wrapper}) {
        gen_wrapper(%config);
        exit;