* Added support for "transient goto" which allows entry into a private and/or
[citadel.git] / citadel / room_ops.h
1 /* $Id$ */
2 int is_known (struct quickroom *roombuf, int roomnum,
3               struct usersupp *userbuf);
4 int has_newmsgs (struct quickroom *roombuf, int roomnum,
5                  struct usersupp *userbuf);
6 int is_zapped (struct quickroom *roombuf, int roomnum,
7                struct usersupp *userbuf);
8 int getroom(struct quickroom *qrbuf, char *room_name);
9 void b_putroom(struct quickroom *qrbuf, char *room_name);
10 void putroom(struct quickroom *);
11 void b_deleteroom(char *);
12 int lgetroom(struct quickroom *qrbuf, char *room_name);
13 void lputroom(struct quickroom *qrbuf);
14 void getfloor (struct floor *flbuf, int floor_num);
15 struct floor *cgetfloor(int floor_num);
16 void lgetfloor (struct floor *flbuf, int floor_num);
17 void putfloor (struct floor *flbuf, int floor_num);
18 void lputfloor (struct floor *flbuf, int floor_num);
19 int sort_msglist (long int *listptrs, int oldcount);
20 void cmd_lrms (char *argbuf);
21 void cmd_lkra (char *argbuf);
22 void cmd_lkrn (char *argbuf);
23 void cmd_lkro (char *argbuf);
24 void cmd_lzrm (char *argbuf);
25 void usergoto (char *where, int display_result, int transiently,
26                         int *msgs, int *new);
27 void cmd_goto (char *gargs);
28 void cmd_whok (void);
29 void cmd_rdir (void);
30 void cmd_getr (void);
31 void cmd_setr (char *args);
32 void cmd_geta (void);
33 void cmd_seta (char *new_ra);
34 void cmd_rinf (void);
35 void cmd_kill (char *argbuf);
36 unsigned create_room(char *new_room_name,
37                         int new_room_type,
38                         char *new_room_pass,
39                         int new_room_floor,
40                         int really_create,
41                         int avoid_access);
42 void cmd_cre8 (char *args);
43 void cmd_einf (char *ok);
44 void cmd_lflr (void);
45 void cmd_cflr (char *argbuf);
46 void cmd_kflr (char *argbuf);
47 void cmd_eflr (char *argbuf);
48 void ForEachRoom(void (*CallBack)(struct quickroom *EachRoom, void *out_data),
49         void *in_data);
50 void assoc_file_name(char *buf, size_t n,
51                      struct quickroom *qrbuf, const char *prefix);
52 void delete_room(struct quickroom *qrbuf);
53 void list_roomname(struct quickroom *qrbuf);
54 int is_noneditable(struct quickroom *qrbuf);
55 int CtdlRoomAccess(struct quickroom *roombuf, struct usersupp *userbuf);
56 int CtdlDoIHavePermissionToDeleteThisRoom(struct quickroom *qr);
57
58 int CtdlRenameRoom(char *old_name, char *new_name, int new_floor);
59 /*
60  * Possible return values for CtdlRenameRoom()
61  */
62 enum {
63         crr_ok,                         /* success */
64         crr_room_not_found,             /* room not found */
65         crr_already_exists,             /* new name already exists */
66         crr_noneditable,                /* cannot edit this room */
67         crr_invalid_floor,              /* target floor does not exist */
68         crr_access_denied               /* not allowed to edit this room */
69 };