int bbs_reverse = 0;
if (WC->wc_view == VIEW_WIKI) {
- sprintf(buf, "wiki/%s/home", WC->wc_roomname);
+ sprintf(buf, "wiki?room=%s?page=home", WC->wc_roomname);
http_redirect(buf);
return;
}
} else if (!strcasecmp(action, "msgheaders")) {
display_headers(arg1);
} else if (!strcasecmp(action, "wiki")) {
- display_wiki_page(arg1, arg2);
+ display_wiki_page();
} else if (!strcasecmp(action, "display_enter")) {
display_enter();
} else if (!strcasecmp(action, "post")) {
void tabbed_dialog(int num_tabs, char *tabnames[]);
void begin_tab(int tabnum, int num_tabs);
void end_tab(int tabnum, int num_tabs);
-void display_wiki_page(char *roomname, char *pagename);
+void display_wiki_page(void);
void embed_room_banner(char *, int);
/**
* \brief Display a specific page from a wiki room
- *
- * \param roomname The name of the room containing the wiki
- * \param pagename The index of the page being requested
*/
-void display_wiki_page(char *roomname, char *pagename)
+void display_wiki_page(void)
{
- output_headers(1, 1, 1, 0, 0, 0);
+ char roomname[128];
+ char pagename[128];
+
+ safestrncpy(roomname, bstr("room"), sizeof roomname);
+ safestrncpy(pagename, bstr("page"), sizeof pagename);
+ str_wiki_index(pagename);
wprintf("roomname=%s<br>pagename=%s<br>\n", roomname, pagename);
+ if (strcasecmp(roomname, WC->roomname)) {
+ gotoroom(roomname);
+ }
+
+ if (strcasecmp(roomname, WC->roomname)) {
+ /* can't find the room */
+ convenience_page(char *titlebarcolor, char *titlebarmsg, char *messagetext);
+ }
+
+ output_headers(1, 1, 1, 0, 0, 0);
wDumpContent(1);
}