my $default_pagetype=".mdwn";
my $cgi=0;
my $url="";
+my $cgiurl="";
my $svn=1;
sub usage {
$path=~s/\.\.\/$/index.html/;
$pagelink="<a href=\"$path\">$wikiname</a>/ $pagelink";
+ my @actions;
+ if (length $cgiurl) {
+ push @actions, "<a href=\"$cgiurl?do=edit&page=$page\">Edit</a>";
+ push @actions, "<a href=\"$cgiurl?do=recentchanges\">RecentChanges</a>";
+ }
+
$content="<html>\n<head><title>$title</title></head>\n<body>\n".
"<h1>$pagelink</h1>\n".
+ "@actions\n<hr>\n".
$content.
"</body>\n</html>\n";
if (! -x $this) {
error("$this doesn't seem to be executable");
}
-
- my $call=qq{"$this", "$this", "$srcdir", "$destdir", "--wikiname=$wikiname"};
- $call.=', "--verbose"' if $verbose;
- $call.=', "--rebuild"' if $rebuild;
- $call.=', "--nosvn"' if !$svn;
- $call.=', "--cgi"' if $cgi;
- $call.=', "--url='.$url.'"' if $url;
+
+ my @params=($srcdir, $destdir, "--wikiname=$wikiname");
+ push @params, "--verbose" if $verbose;
+ push @params, "--rebuild" if $rebuild;
+ push @params, "--nosvn" if !$svn;
+ push @params, "--cgi" if $cgi;
+ push @params, "--url=$url" if $url;
+ push @params, "--cgiurl=$url" if $cgiurl;
+ my $params=join(" ", @params);
+ my $call='';
+ foreach my $p ($this, $this, @params) {
+ $call.=qq{"$p", };
+ }
+ $call.="NULL";
my @envsave;
push @envsave, qw{REMOTE_ADDR QUERY_STRING REQUEST_METHOD REQUEST_URI
my $envsave="";
foreach my $var (@envsave) {
$envsave.=<<"EOF"
- if ((s=getenv("$var")))
- asprintf(&newenviron[i++], "%s=%s", "$var", s);
+ if ((s=getenv("$var")))
+ asprintf(&newenviron[i++], "%s=%s", "$var", s);
EOF
}
extern char **environ;
-int main (void) {
+int main (int argc, char **argv) {
/* Sanitize environment. */
char *s;
char *newenviron[$#envsave+3];
int i=0;
- $envsave;
+$envsave
newenviron[i++]="HOME=$ENV{HOME}";
newenviron[i]=NULL;
environ=newenviron;
- execl($call, NULL);
+ if (argc == 2 && strcmp(argv[1], "--params") == 0) {
+ printf("$params\\n");
+ exit(0);
+ }
+
+ execl($call);
perror("failed to run $this");
exit(1);
}
"svn!" => \$svn,
"cgi" => \$cgi,
"url=s" => \$url,
+ "cgiurl=s" => \$cgiurl,
) || usage();
}
usage() unless @ARGV == 2;