From c34c060023c0cec0e74be045818e6489e3c15d47 Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Fri, 1 Jan 2016 14:58:55 +0100 Subject: [PATCH] Templatize. --- webcit/msg_renderers.c | 6 ++-- webcit/static/t/wiki/empty.html | 10 ++++++ webcit/webcit.h | 2 +- webcit/wiki.c | 58 ++++++++++----------------------- 4 files changed, 31 insertions(+), 45 deletions(-) create mode 100644 webcit/static/t/wiki/empty.html diff --git a/webcit/msg_renderers.c b/webcit/msg_renderers.c index 15abfddf5..d65d0d13b 100644 --- a/webcit/msg_renderers.c +++ b/webcit/msg_renderers.c @@ -1016,11 +1016,11 @@ void tmplput_EDIT_WIKI_BODY(StrBuf *Target, WCTemplputParams *TP) * to do it again. */ if (!havebstr("attach_button")) { - char *wikipage = strdup(bstr("page")); + StrBuf *wikipage = NewStrBufDup(sbstr("page")); putbstr("format", NewStrBufPlain(HKEY("plain"))); str_wiki_index(wikipage); - msgnum = locate_message_by_uid(wikipage); - free(wikipage); + msgnum = locate_message_by_uid(ChrPtr(wikipage)); + FreeStrBuf(&wikipage); if (msgnum >= 0L) { Buf = NewStrBuf(); read_message(Buf, HKEY("view_message_wikiedit"), msgnum, NULL, &Mime, TP); diff --git a/webcit/static/t/wiki/empty.html b/webcit/static/t/wiki/empty.html new file mode 100644 index 000000000..7ba761d80 --- /dev/null +++ b/webcit/static/t/wiki/empty.html @@ -0,0 +1,10 @@ +

+
+ + +
+


+ +

+
diff --git a/webcit/webcit.h b/webcit/webcit.h index 21dab601e..1509bf25c 100644 --- a/webcit/webcit.h +++ b/webcit/webcit.h @@ -683,7 +683,7 @@ void end_tab(int tabnum, int num_tabs); int get_time_format_cached (void); void display_wiki_pagelist(void); -void str_wiki_index(char *); +void str_wiki_index(StrBuf *); HashList *GetRoomListHashLKRA(StrBuf *Target, WCTemplputParams *TP); 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; -- 2.30.2