*
* This program is open source software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License version 3.
*
* This program is open source software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License version 3.
#define TRACE syslog(LOG_DEBUG, "\033[3%dmCHECKPOINT: %s:%d\033[0m", ((__LINE__%6)+1), __FILE__, __LINE__)
#define TRACE syslog(LOG_DEBUG, "\033[3%dmCHECKPOINT: %s:%d\033[0m", ((__LINE__%6)+1), __FILE__, __LINE__)
#define SLEEPING 180 /* TCP connection timeout */
#define WEBCIT_TIMEOUT 900 /* WebCit session timeout */
#define PORT_NUM 2000 /* port number to listen on */
#define DEVELOPER_ID 0
#define CLIENT_ID 4
#define SLEEPING 180 /* TCP connection timeout */
#define WEBCIT_TIMEOUT 900 /* WebCit session timeout */
#define PORT_NUM 2000 /* port number to listen on */
#define DEVELOPER_ID 0
#define CLIENT_ID 4
-#define CLIENT_VERSION 813 /* This version of WebCit */
-#define MINIMUM_CIT_VERSION 813 /* Minimum required version of Citadel server */
-#define LIBCITADEL_MIN 813 /* Minimum required version of libcitadel */
+#define CLIENT_VERSION 829 /* This version of WebCit */
+#define MINIMUM_CIT_VERSION 829 /* Minimum required version of Citadel server */
+#define LIBCITADEL_MIN 821 /* Minimum required version of libcitadel */
#define DEFAULT_HOST "localhost" /* Default Citadel server */
#define DEFAULT_PORT "504"
#define TARGET "webcit01" /* Window target for inline URL's */
#define DEFAULT_HOST "localhost" /* Default Citadel server */
#define DEFAULT_PORT "504"
#define TARGET "webcit01" /* Window target for inline URL's */
-void webcit_fmt_date(char *buf, size_t siz, time_t thetime, int Format);
+long webcit_fmt_date(char *buf, size_t siz, time_t thetime, int Format);
StrBuf *wc_password; /* Password of current user */
StrBuf *httpauth_pass; /* only for GroupDAV sessions */
int axlevel; /* this user's access level */
StrBuf *wc_password; /* Password of current user */
StrBuf *httpauth_pass; /* only for GroupDAV sessions */
int axlevel; /* this user's access level */
int connected; /* nonzero == we are connected to Citadel */
int logged_in; /* nonzero == we are logged in */
int need_regi; /* This user needs to register. */
int connected; /* nonzero == we are connected to Citadel */
int logged_in; /* nonzero == we are logged in */
int need_regi; /* This user needs to register. */
ssize_t write(int fd, const void *buf, size_t count);
void cal_process_attachment(wc_mime_attachment *Mime);
ssize_t write(int fd, const void *buf, size_t count);
void cal_process_attachment(wc_mime_attachment *Mime);
long locate_user_vcard_in_this_room(message_summary **VCMsg,
wc_mime_attachment **VCAtt);
void http_transmit_thing(const char *content_type, int is_static);
long locate_user_vcard_in_this_room(message_summary **VCMsg,
wc_mime_attachment **VCAtt);
void http_transmit_thing(const char *content_type, int is_static);
long unescape_input(char *buf);
void check_thread_pool_size(void);
void StrEndTab(StrBuf *Target, int tabnum, int num_tabs);
long unescape_input(char *buf);
void check_thread_pool_size(void);
void StrEndTab(StrBuf *Target, int tabnum, int num_tabs);
long *msgs; /* Array of msgnums for messages we are displaying */
int num_msgs; /* Number of msgnums stored in 'msgs' */
int alloc_msgs; /* Currently allocated size of array */
long *msgs; /* Array of msgnums for messages we are displaying */
int num_msgs; /* Number of msgnums stored in 'msgs' */
int alloc_msgs; /* Currently allocated size of array */
struct bltr blogview_learn_thread_references(long msgnum);
void tmplput_blog_permalink(StrBuf *Target, WCTemplputParams *TP);
void display_summary_page(void);
struct bltr blogview_learn_thread_references(long msgnum);
void tmplput_blog_permalink(StrBuf *Target, WCTemplputParams *TP);
void display_summary_page(void);