From b5e7223d1a0293760ad61098a387b1dc764643db Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Fri, 30 Oct 2009 18:44:17 +0000 Subject: [PATCH] * Completed the WebCit UI functions to view a historical version of a wiki page. --- webcit/wiki.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/webcit/wiki.c b/webcit/wiki.c index f0287eb06..3ed3a4003 100644 --- a/webcit/wiki.c +++ b/webcit/wiki.c @@ -38,6 +38,7 @@ void display_wiki_page_backend(const StrBuf *roomname, char *pagename, char *rev { const StrBuf *Mime; long msgnum = (-1L); + char buf[256]; str_wiki_index(pagename); @@ -65,8 +66,21 @@ void display_wiki_page_backend(const StrBuf *roomname, char *pagename, char *rev strcpy(pagename, "home"); } - /* Found it! Now read it. FIXME this is where we have to add the ability to read an old rev */ - msgnum = locate_message_by_uid(pagename); + /* Found it! Now read it. */ + + if ((rev != NULL) && (strlen(rev) > 0)) { + /* read an older revision */ + serv_printf("WIKI rev|%s|%s|fetch", pagename, rev); + serv_getln(buf, sizeof buf); + if (buf[0] == '2') { + msgnum = extract_long(&buf[4], 0); + } + } + else { + /* read the current revision? */ + msgnum = locate_message_by_uid(pagename); + } + if (msgnum >= 0L) { read_message(WC->WBuf, HKEY("view_message"), msgnum, NULL, &Mime); return; @@ -239,5 +253,6 @@ InitModule_WIKI WebcitAddUrlHandler(HKEY("wiki"), "", 0, display_wiki_page, 0); WebcitAddUrlHandler(HKEY("wiki_history"), "", 0, display_wiki_history, 0); + /* WebcitAddUrlHandler(HKEY("wiki_revert"), "", 0, wiki_revert, 0); FIXME implement this */ RegisterNamespace("WIKI:DISPLAYHISTORY", 0, 0, tmplput_display_wiki_history, NULL, CTX_NONE); } -- 2.30.2