diff -uNrp didiwiki.orig/src/wiki.c didiwiki/src/wiki.c
--- didiwiki.orig/src/wiki.c 2004-09-03 10:11:42.000000000 +0800
+++ didiwiki/src/wiki.c 2004-09-03 10:12:59.000000000 +0800
@@ -601,6 +601,30 @@
}
void
+wiki_show_preview_page(HttpResponse *res, char *wikitext, char *page)
+{
+ char *html_clean_wikitext = NULL;
+
+ http_response_printf_alloc_buffer(res, strlen(wikitext)*2);
+
+ wiki_show_header(res, "Preview", TRUE);
+
+ html_clean_wikitext = util_htmlize(wikitext, strlen(wikitext));
+
+ wiki_print_data_as_html(res, html_clean_wikitext);
+
+ http_response_printf(res, "
\n");
+ http_response_printf(res, EDITFORM, page, wikitext);
+
+ wiki_show_footer(res);
+
+ http_response_send(res);
+
+ exit(0);
+
+}
+
+void
wiki_show_edit_page(HttpResponse *res, char *wikitext, char *page)
{
wiki_show_header(res, page, FALSE);
@@ -839,7 +863,10 @@
/* TODO: dont blindly write wikitext data to disk */
if ( (wikitext = http_request_param_get(req, "wikitext")) != NULL)
{
- file_write(page, wikitext);
+ if (http_request_param_get(req, "Save") != NULL)
+ file_write(page, wikitext);
+ else if (http_request_param_get(req, "Preview") != NULL)
+ wiki_show_preview_page(res, wikitext, page);
}
if (access(page, R_OK) == 0) /* page exists */
--- didiwiki.orig/src/wikitext.h 2004-08-17 16:28:48.000000000 +0800
+++ didiwiki/src/wikitext.h 2004-09-03 10:12:59.000000000 +0800
@@ -54,8 +24,8 @@
#define EDITFORM \
\
"\n"