* Renamed "struct user" to "struct ctdluser"
[citadel.git] / citadel / room_ops.h
index 6caffbb33ba7f158b114fd26a63340d4e3ac59dc..588747c7464731449cd2b53d7e848beacd008c03 100644 (file)
@@ -1,28 +1,30 @@
-int is_known (struct quickroom *roombuf, int roomnum,
-             struct usersupp *userbuf);
-int has_newmsgs (struct quickroom *roombuf, int roomnum,
-                struct usersupp *userbuf);
-int is_zapped (struct quickroom *roombuf, int roomnum,
-              struct usersupp *userbuf);
-int getroom(struct quickroom *qrbuf, char *room_name);
-void putroom(struct quickroom *qrbuf, char *room_name);
-int lgetroom(struct quickroom *qrbuf, char *room_name);
-void lputroom(struct quickroom *qrbuf, char *room_name);
+/* $Id$ */
+int is_known (struct ctdlroom *roombuf, int roomnum,
+             struct ctdluser *userbuf);
+int has_newmsgs (struct ctdlroom *roombuf, int roomnum,
+                struct ctdluser *userbuf);
+int is_zapped (struct ctdlroom *roombuf, int roomnum,
+              struct ctdluser *userbuf);
+int getroom(struct ctdlroom *qrbuf, char *room_name);
+void b_putroom(struct ctdlroom *qrbuf, char *room_name);
+void putroom(struct ctdlroom *);
+void b_deleteroom(char *);
+int lgetroom(struct ctdlroom *qrbuf, char *room_name);
+void lputroom(struct ctdlroom *qrbuf);
 void getfloor (struct floor *flbuf, int floor_num);
+struct floor *cgetfloor(int floor_num);
 void lgetfloor (struct floor *flbuf, int floor_num);
 void putfloor (struct floor *flbuf, int floor_num);
 void lputfloor (struct floor *flbuf, int floor_num);
-void get_msglist (struct quickroom *whichroom);
-void put_msglist (struct quickroom *whichroom);
-long int MessageFromList (int whichpos);
-void SetMessageInList (int whichpos, long int newmsgnum);
 int sort_msglist (long int *listptrs, int oldcount);
 void cmd_lrms (char *argbuf);
 void cmd_lkra (char *argbuf);
 void cmd_lkrn (char *argbuf);
 void cmd_lkro (char *argbuf);
 void cmd_lzrm (char *argbuf);
-void usergoto (char *where, int display_result);
+void cmd_lprm (char *argbuf);
+void usergoto (char *where, int display_result, int transiently,
+                       int *msgs, int *new);
 void cmd_goto (char *gargs);
 void cmd_whok (void);
 void cmd_rdir (void);
@@ -35,14 +37,34 @@ void cmd_kill (char *argbuf);
 unsigned create_room(char *new_room_name,
                        int new_room_type,
                        char *new_room_pass,
-                       int new_room_floor);
+                       int new_room_floor,
+                       int really_create,
+                       int avoid_access);
 void cmd_cre8 (char *args);
 void cmd_einf (char *ok);
 void cmd_lflr (void);
 void cmd_cflr (char *argbuf);
 void cmd_kflr (char *argbuf);
 void cmd_eflr (char *argbuf);
-void ForEachRoom(void (*CallBack)(struct quickroom *EachRoom));
-void assoc_file_name(char *buf, struct quickroom *qrbuf, char *prefix);
-void delete_room(struct quickroom *qrbuf);
-void GetExpirePolicy(struct ExpirePolicy *epbuf, struct quickroom *qrbuf);
+void ForEachRoom(void (*CallBack)(struct ctdlroom *EachRoom, void *out_data),
+       void *in_data);
+void assoc_file_name(char *buf, size_t n,
+                    struct ctdlroom *qrbuf, const char *prefix);
+void delete_room(struct ctdlroom *qrbuf);
+void list_roomname(struct ctdlroom *qrbuf, int ra);
+int is_noneditable(struct ctdlroom *qrbuf);
+int CtdlRoomAccess(struct ctdlroom *roombuf, struct ctdluser *userbuf);
+int CtdlDoIHavePermissionToDeleteThisRoom(struct ctdlroom *qr);
+
+int CtdlRenameRoom(char *old_name, char *new_name, int new_floor);
+/*
+ * Possible return values for CtdlRenameRoom()
+ */
+enum {
+       crr_ok,                         /* success */
+       crr_room_not_found,             /* room not found */
+       crr_already_exists,             /* new name already exists */
+       crr_noneditable,                /* cannot edit this room */
+       crr_invalid_floor,              /* target floor does not exist */
+       crr_access_denied               /* not allowed to edit this room */
+};