struct roomlisting *rp;
struct roomlisting *rs;
-
/** Ask the server for a room list */
serv_puts(variety);
serv_getln(buf, sizeof buf);
wprintf(" ");
return;
}
+
while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
++num_rooms;
rp = malloc(sizeof(struct roomlisting));
WC->wc_view = extract_int(&buf[4], 11);
WC->wc_default_view = extract_int(&buf[4], 12);
WC->wc_is_trash = extract_int(&buf[4], 13);
+ WC->room_flags2 = extract_int(&buf[4], 14);
if (WC->is_aide)
WC->is_room_aide = WC->is_aide;
void display_editroom(void)
{
char buf[SIZ];
- char cmd[SIZ];
- char node[SIZ];
- char remote_room[SIZ];
- char recp[SIZ];
+ char cmd[1024];
+ char node[256];
+ char remote_room[128];
+ char recp[1024];
char er_name[128];
char er_password[10];
char er_dirname[15];
char er_roomaide[26];
unsigned er_flags;
+ unsigned er_flags2;
int er_floor;
int i, j;
char *tab;
extract_token(er_dirname, &buf[4], 2, '|', sizeof er_dirname);
er_flags = extract_int(&buf[4], 3);
er_floor = extract_int(&buf[4], 4);
+ er_flags2 = extract_int(&buf[4], 7);
output_headers(1, 1, 1, 0, 0, 0);
wprintf("> ");
wprintf(_("Read-only room"));
+ wprintf("\n<LI><INPUT TYPE=\"checkbox\" NAME=\"collabdel\" VALUE=\"yes\" ");
+ if (er_flags2 & QR2_COLLABDEL)
+ wprintf("CHECKED ");
+ wprintf("> ");
+ wprintf(_("All users allowed to post may also delete messages"));
+
/** directory stuff */
wprintf("\n<LI><INPUT TYPE=\"checkbox\" NAME=\"directory\" VALUE=\"yes\" ");
if (er_flags & QR_DIRECTORY)
char er_roomaide[26];
int er_floor;
unsigned er_flags;
+ int er_listingorder;
+ int er_defaultview;
+ unsigned er_flags2;
int bump;
extract_token(er_password, &buf[4], 1, '|', sizeof er_password);
extract_token(er_dirname, &buf[4], 2, '|', sizeof er_dirname);
er_flags = extract_int(&buf[4], 3);
+ er_listingorder = extract_int(&buf[4], 5);
+ er_defaultview = extract_int(&buf[4], 6);
+ er_flags2 = extract_int(&buf[4], 7);
strcpy(er_roomaide, bstr("er_roomaide"));
if (strlen(er_roomaide) == 0) {
er_flags &= ~QR_READONLY;
}
+ if (!strcmp(bstr("collabdel"), "yes")) {
+ er_flags2 |= QR2_COLLABDEL;
+ } else {
+ er_flags2 &= ~QR2_COLLABDEL;
+ }
+
if (!strcmp(bstr("permanent"), "yes")) {
er_flags |= QR_PERMANENT;
} else {
er_floor = atoi(bstr("er_floor"));
- sprintf(buf, "SETR %s|%s|%s|%u|%d|%d",
- er_name, er_password, er_dirname, er_flags, bump, er_floor);
+ sprintf(buf, "SETR %s|%s|%s|%u|%d|%d|%d|%d|%u",
+ er_name, er_password, er_dirname, er_flags, bump, er_floor,
+ er_listingorder, er_defaultview, er_flags2);
serv_puts(buf);
serv_getln(buf, sizeof buf);
if (buf[0] != '2') {
#define SLEEPING 180 /* TCP connection timeout */
#define WEBCIT_TIMEOUT 900 /* WebCit session timeout */
#define PORT_NUM 2000 /* port number to listen on */
-#define SERVER "WebCit v7.06" /* who's in da house */
+#define SERVER "WebCit v7.07" /* who's in da house */
#define DEVELOPER_ID 0
#define CLIENT_ID 4
-#define CLIENT_VERSION 706 /* This version of WebCit */
-#define MINIMUM_CIT_VERSION 705 /* min required Citadel ver. */
+#define CLIENT_VERSION 707 /* This version of WebCit */
+#define MINIMUM_CIT_VERSION 707 /* min required Citadel ver. */
#define DEFAULT_HOST "localhost" /* Default Citadel server */
#define DEFAULT_PORT "504"
#define LB (1) /* Internal escape chars */
*/
#define QR2_SYSTEM 1 /**< System room; hide by default */
#define QR2_SELFLIST 2 /**< Self-service mailing list mgmt */
+#define QR2_COLLABDEL 4 /**< Anyone who can post can also delete*/
/**
* user/room access
int serv_sock; /**< Client socket to Citadel server */
int chat_sock; /**< Client socket to Citadel server - for chat */
unsigned room_flags; /**< flags associated with the current room */
+ unsigned room_flags2; /**< flags associated with the current room */
int wc_view; /**< view for the current room */
int wc_default_view; /**< default view for the current room */
int wc_is_trash; /**< nonzero == current room is a Trash folder */