#define PORT_NUM 2000 /* port number to listen on */
#define DEVELOPER_ID 0
#define CLIENT_ID 4
-#define CLIENT_VERSION 762 /* This version of WebCit */
+#define CLIENT_VERSION 764 /* This version of WebCit */
#define MINIMUM_CIT_VERSION 761 /* min required Citadel ver */
-#define LIBCITADEL_MIN 761 /* min required libcitadel ver */
+#define LIBCITADEL_MIN 763 /* min required libcitadel ver */
#define DEFAULT_HOST "localhost" /* Default Citadel server */
#define DEFAULT_PORT "504"
#define TARGET "webcit01" /* Target for inline URL's */
#define UA_GOTOALLOWED 4
#define UA_HASNEWMSGS 8
#define UA_ZAPPED 16
+#define UA_POSTALLOWED 32
+#define UA_ADMINALLOWED 64
+#define UA_DELETEALLOWED 128
/*
} ServInfo;
-
-/*
- * \brief This struct holds a list of rooms for \\\<G\\\>oto operations.
- */
-struct march {
- struct march *next; /* pointer to next in linked list */
- char march_name[128]; /* name of room */
- int march_floor; /* floor number of room */
- int march_order; /* sequence in which we are to visit this room */
-};
-
-/* *
- * \brief This struct holds a list of rooms for client display.
- * It is a binary tree.
- */
-struct roomlisting {
- struct roomlisting *lnext; /* pointer to 'left' tree node */
- struct roomlisting *rnext; /* pointer to 'right' tree node */
- char rlname[128]; /* name of room */
- unsigned rlflags; /* room flags */
- int rlfloor; /* the floor it resides on */
- int rlorder; /* room listing order */
-};
-
-
-
-
-
-
-
-/**
- * \brief Data structure for roomlist-to-folderlist conversion
- */
-struct folder {
- int floor; /* which floor is it on */
- char room[SIZ]; /* which roomname ??? */
- char name[SIZ]; /* which is its own name??? */
- int hasnewmsgs; /* are there unread messages inside */
- int is_mailbox; /* is it a mailbox? */
- int selectable; /* can we select it ??? */
- int view; /* whats its default view? inbox/calendar.... */
- int num_rooms; /* If this is a floor, how many rooms does it have */
-};
-
typedef struct _disp_cal {
icalcomponent *cal; /* cal items for display */
long cal_msgnum; /* cal msgids for display */
#define COOKIEUNNEEDED (1<<6)
#define ISSTATIC (1<<7)
#define FORCE_SESSIONCLOSE (1<<8)
-
+#define PARSE_REST_URL (1<<0)
typedef void (*WebcitHandlerFunc)(void);
typedef struct _WebcitHandler{
StrBuf *trailing_javascript; /**< extra javascript to be appended to page */
char ImportantMessage[SIZ]; /**< ??? todo */
StrBuf *ImportantMsg;
+ HashList *Directory; /**< Parts of the directory URL in snippets */
/* accounting */
StrBuf *wc_username; /**< login name of current user */
int remember_new_mail; /**< last count of new mail messages */
/* Roomiew control */
+ HashList *Floors; /**< floors our citserver has... */
HashList *summ; /**< list of messages for mailbox summary view */
/** Perhaps these should be within a struct instead */
long startmsg; /**< message number to start at */
char last_chat_user[256]; /**< ??? todo */
/* Iconbar controls */
- struct folder *cache_fold; /**< cache the iconbar room list */
+ struct __ofolder *cache_fold; /**< cache the iconbar room list */
int cache_max_folders; /**< ??? todo */
int cache_num_floors; /**< ??? todo */
time_t cache_timestamp; /**< ??? todo */
void pullquote_fmout(void);
void wDumpContent(int);
-int Flathash(const char *str, long len);
-
-
-
void UrlescPutStrBuf(const StrBuf *strbuf);
void hprintf(const char *format,...)__attribute__((__format__(__printf__,1,2)));
void output_static(const char* What);
-void print_menu_box(char* Title, char *Class, int nLines, ...);
long stresc(char *target, long tSize, char *strbuf, int nbsp, int nolinebreaks);
void escputs(const char *strbuf);
void url(char *buf, size_t bufsize);
void do_edit_vcard(long msgnum, char *partnum,
message_summary *VCMsg,
wc_mime_attachment *VCAtt,
- char *return_to,
+ const char *return_to,
const char *force_room);
void select_user_to_edit(const char *preselect);
void client_write_ssl(const StrBuf *Buf);
#endif
-void utf8ify_rfc822_string(char *buf);
+void utf8ify_rfc822_string(char **buf);
void begin_burst(void);
long end_burst(void);