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" \ -"\n" \ -"

\n" \ +"
\n" \ +"

\n" \ "
\n"