-char *viewdefs[VIEW_MAX]; /* the different kinds of available views */
-
-ROOM_VIEWS exchangeable_views[VIEW_MAX][VIEW_MAX] = { /* the different kinds of available views for a view */
-{VIEW_BBS, VIEW_MAILBOX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX },
-{VIEW_BBS, VIEW_MAILBOX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX },
-{VIEW_MAX, VIEW_MAX, VIEW_ADDRESSBOOK, VIEW_CALENDAR, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX },
-{VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_CALENDAR, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX /*VIEW_CALBRIEF*/, VIEW_MAX, VIEW_MAX },
-{VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_TASKS, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, },
-{VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_NOTES, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, },
-{VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_WIKI, VIEW_MAX, VIEW_MAX, VIEW_MAX},
-{VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_CALENDAR, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX/*VIEW_CALBRIEF*/, VIEW_MAX, VIEW_MAX},
-{VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_JOURNAL, VIEW_MAX },
-{VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_DRAFTS, VIEW_MAX },
-{VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_MAX, VIEW_BLOG },
- };
-/* the brief calendar view is disabled: VIEW_CALBRIEF */
-
-ROOM_VIEWS allowed_default_views[VIEW_MAX] = {
- 1, /* VIEW_BBS Bulletin board */
- 1, /* VIEW_MAILBOX Mailbox summary */
- 1, /* VIEW_ADDRESSBOOK Address book */
- 1, /* VIEW_CALENDAR Calendar by month or day */
- 1, /* VIEW_TASKS Task list */
- 1, /* VIEW_NOTES Sticky notes */
- 1, /* VIEW_WIKI Wiki */
- 0, /* VIEW_CALBRIEF Calendar list of events */
- 0, /* VIEW_JOURNAL Journal */
- 0, /* VIEW_DRAFTS Drafts */
- 1 /* VIEW_BLOG Blog */
+char *viewdefs[VIEW_MAX];
+
+/*
+ * This table defines which views may be selected as the
+ * default view for a room at the time of its creation.
+ */
+int allowed_default_views[VIEW_MAX] = {
+ 1, /* VIEW_BBS Bulletin board */
+ 1, /* VIEW_MAILBOX Mailbox summary */
+ 1, /* VIEW_ADDRESSBOOK Address book */
+ 1, /* VIEW_CALENDAR Calendar */
+ 1, /* VIEW_TASKS Tasks */
+ 1, /* VIEW_NOTES Notes */
+ 1, /* VIEW_WIKI Wiki */
+ 0, /* VIEW_CALBRIEF Brief Calendar */
+ 0, /* VIEW_JOURNAL Journal */
+ 0, /* VIEW_DRAFTS Drafts */
+ 1, /* VIEW_BLOG Blog */
+ 0 /* VIEW_QUEUE Mail Queue */
+};
+
+/*
+ * Given the default view for a room, this table defines
+ * which alternate views may be selected by the user.
+ */
+ROOM_VIEWS exchangeable_views[VIEW_MAX][VIEW_MAX] = {
+ { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, /* bulletin board */
+ { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, /* mailbox summary */
+ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* address book */
+ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, /* calendar */
+ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }, /* tasks */
+ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, /* notes */
+ { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }, /* wiki */
+ { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0 }, /* brief calendar */
+ { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 }, /* journal */
+ { 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 }, /* drafts */
+ { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, /* blog */