X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Froom_ops.h;h=588747c7464731449cd2b53d7e848beacd008c03;hb=27d35cf620da260472336afd096787cf5e5558d3;hp=a1305cb45a5a292e5fe39b4d4a89a9a868c763ee;hpb=85c3824abc108ced366bbaba03e0c3581c8108e7;p=citadel.git diff --git a/citadel/room_ops.h b/citadel/room_ops.h index a1305cb45..588747c74 100644 --- a/citadel/room_ops.h +++ b/citadel/room_ops.h @@ -1,29 +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); -void AddMessageToRoom(struct quickroom *whichroom, long newmsgid); -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); @@ -36,15 +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 list_roomname(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 */ +};