X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fwiki.c;h=45dd313e6c70816214ce9a71b906dfdafcdfa2fe;hb=c34c060023c0cec0e74be045818e6489e3c15d47;hp=c6904c2bdca8463cd66d8d9434bf5c34be182480;hpb=a36d637b1dd700588dc66135f3c6ab76b11583da;p=citadel.git diff --git a/webcit/wiki.c b/webcit/wiki.c index c6904c2bd..45dd313e6 100644 --- a/webcit/wiki.c +++ b/webcit/wiki.c @@ -18,23 +18,10 @@ /* * Convert a string to something suitable as a wiki index */ -void str_wiki_index(char *s) +void str_wiki_index(StrBuf *s) { - int i; - - if (s == NULL) return; - - /* First remove all non-alphanumeric characters */ - for (i=0; i 0)) { /* read an older revision */ - serv_printf("WIKI rev|%s|%s|%s", pagename, rev, (do_revert ? "revert" : "fetch") ); + serv_printf("WIKI rev|%s|%s|%s", ChrPtr(pagename), rev, (do_revert ? "revert" : "fetch") ); serv_getln(buf, sizeof buf); if (buf[0] == '2') { msgnum = extract_long(&buf[4], 0); @@ -72,26 +59,15 @@ void display_wiki_page_backend(char *pagename, char *rev, int do_revert) } else { /* read the current revision */ - msgnum = locate_message_by_uid(pagename); + msgnum = locate_message_by_uid(ChrPtr(pagename)); } if (msgnum >= 0L) { read_message(WCC->WBuf, HKEY("view_message"), msgnum, NULL, &Mime, NULL); return; } - - wc_printf("

" - "
" - "" - "
" - ); - wc_printf("
"); - wc_printf(_("There is no page called '%s' here."), pagename); - wc_printf("

"); - wc_printf(_("Select the 'Edit this page' link in the room banner " - "if you would like to create this page.")); - wc_printf("

"); - wc_printf("
\n"); + putbstr("pagename", pagename); + do_template("wiki_empty"); } @@ -100,12 +76,12 @@ void display_wiki_page_backend(char *pagename, char *rev, int do_revert) */ void display_wiki_page(void) { - char pagename[128]; + StrBuf *pagename; char rev[128]; int do_revert = 0; output_headers(1, 1, 1, 0, 0, 0); - safestrncpy(pagename, bstr("page"), sizeof pagename); + pagename = NewStrBufDup(sbstr("page")); str_wiki_index(pagename); safestrncpy(rev, bstr("rev"), sizeof rev); do_revert = atoi(bstr("revert")); @@ -119,14 +95,14 @@ void display_wiki_page(void) */ void tmplput_display_wiki_history(StrBuf *Target, WCTemplputParams *TP) { - char pagename[128]; + StrBuf *pagename; StrBuf *Buf; int row = 0; - safestrncpy(pagename, bstr("page"), sizeof pagename); + pagename = NewStrBufDup(sbstr("page")); str_wiki_index(pagename); - serv_printf("WIKI history|%s", pagename); + serv_printf("WIKI history|%s", ChrPtr(pagename)); Buf = NewStrBuf(); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 1) { @@ -280,8 +256,8 @@ void display_wiki_pagelist(void) int wiki_Cleanup(void **ViewSpecific) { - char pagename[5]; - safestrncpy(pagename, "home", sizeof pagename); + StrBuf *pagename; + pagename = NewStrBufDup(sbstr("page")); display_wiki_page_backend(pagename, "", 0); wDumpContent(1); return 0;