#include <pthread.h>
#include <signal.h>
#include "webcit.h"
+#include "webserver.h"
char buf[SIZ];
long msgnum = 0L;
+ lprintf(9, "entering load_preferences()\n");
+
serv_printf("GOTO My Citadel Config");
serv_gets(buf);
if (buf[0] != '2') return;
/* Go back to the room we're supposed to be in */
serv_printf("GOTO %s", WC->wc_roomname);
serv_gets(buf);
+ lprintf(9, "exiting load_preferences()\n");
}
void save_preferences(void) {
char buf[SIZ];
long msgnum = 0L;
+ lprintf(9, "entering save_preferences()\n");
serv_printf("GOTO My Citadel Config");
serv_gets(buf);
if (buf[0] != '2') { /* try to create the config room if not there */
/* Go back to the room we're supposed to be in */
serv_printf("GOTO %s", WC->wc_roomname);
serv_gets(buf);
+ lprintf(9, "exiting save_preferences()\n");
}
void get_preference(char *key, char *value) {
char buf[SIZ];
char thiskey[SIZ];
+ lprintf(9, "entering get_preference(%s)\n", key);
strcpy(value, "");
num_prefs = num_tokens(WC->preferences, '\n');
extract_token(value, buf, 1, '|');
}
}
+ lprintf(9, "exiting get_preference() = %s\n", value);
}
void set_preference(char *key, char *value) {
char thiskey[SIZ];
char *newprefs = NULL;
+ lprintf(9, "entering set_preference(%s, %s)\n", key, value);
num_prefs = num_tokens(WC->preferences, '\n');
for (i=0; i<num_prefs; ++i) {
extract_token(buf, WC->preferences, i, '\n');
- extract_token(thiskey, buf, 0, '|');
- if (strcasecmp(thiskey, key)) {
- if (newprefs == NULL) newprefs = strdup("");
- else {
+ if (num_tokens(buf, '|') == 2) {
+ extract_token(thiskey, buf, 0, '|');
+ if (strcasecmp(thiskey, key)) {
+ if (newprefs == NULL) newprefs = strdup("");
newprefs = realloc(newprefs,
- strlen(newprefs) + SIZ );
+ strlen(newprefs) + SIZ );
+ strcat(newprefs, buf);
+ strcat(newprefs, "\n");
}
- strcat(newprefs, buf);
- strcat(newprefs, "\n");
}
}
if (newprefs == NULL) newprefs = strdup("");
- else {
- newprefs = realloc(newprefs,
- strlen(newprefs) + SIZ );
- }
+ newprefs = realloc(newprefs, strlen(newprefs) + SIZ);
sprintf(&newprefs[strlen(newprefs)], "%s|%s\n", key, value);
+ free(WC->preferences);
+ WC->preferences = newprefs;
+
save_preferences();
+ lprintf(9, "exiting set_preference()\n");
}
int floor;
int nests = 0;
- wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=000077><TR><TD>"
- "<FONT SIZE=+1 COLOR=\"FFFFFF\""
- "<B>Folder list</B>\n"
- "</TD></TR></TABLE><BR>\n"
- );
-
/* Start with the mailboxes */
max_folders = 1;
alloc_folders = 1;
void knrooms() {
char listviewpref[SIZ];
+ output_headers(3);
load_floorlist();
- output_headers(1);
/* Determine whether the user is trying to change views */
- strcpy(listviewpref, "rooms");
if (bstr("view") != NULL) {
- set_preference("roomlistview", bstr("view"));
+ if (strlen(bstr("view")) > 0) {
+ set_preference("roomlistview", bstr("view"));
+ }
}
get_preference("roomlistview", listviewpref);
- if (!strcasecmp(listviewpref, "folders")) {
+ if (strcasecmp(listviewpref, "folders")) {
strcpy(listviewpref, "rooms");
}
+ /* title bar */
+ wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=000077><TR><TD>"
+ "<FONT SIZE=+1 COLOR=\"FFFFFF\"<B>"
+ );
+ if (!strcasecmp(listviewpref, "rooms")) {
+ wprintf("Room list");
+ }
+ if (!strcasecmp(listviewpref, "folders")) {
+ wprintf("Folder list");
+ }
+ wprintf("</B></TD>\n");
+
+
/* offer the ability to switch views */
- wprintf("<FORM NAME=\"roomlistomatic\">\n"
+ wprintf("<TD><FORM NAME=\"roomlistomatic\">\n"
"<SELECT NAME=\"newview\" SIZE=\"1\" "
"OnChange=\"location.href=roomlistomatic.newview.options"
"[selectedIndex].value\">\n");
( !strcasecmp(listviewpref, "folders") ? "SELECTED" : "" )
);
- wprintf("</SELECT></FORM>\n");
+ wprintf("</SELECT></FORM></TD>\n"
+ "</TR></TABLE><BR>\n");
/* Display the room list in the user's preferred format */
if (!strcasecmp(listviewpref, "folders")) {