X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fwebcit.h;h=2265e9bd7f8708617fce291af7c25e3819a4d1e3;hb=cf934431c7c8c1091b38c0b374f6a3b9293841ca;hp=418c541fd3111e85813a55cbdc34e392e4555234;hpb=6611bbc73ee576e50e8751fc4cbfab24960d2fee;p=citadel.git diff --git a/webcit/webcit.h b/webcit/webcit.h index 418c541fd..2265e9bd7 100644 --- a/webcit/webcit.h +++ b/webcit/webcit.h @@ -51,7 +51,9 @@ #ifdef ENABLE_NLS #include #include +#ifdef HAVE_USELOCALE extern locale_t wc_locales[]; +#endif #define _(string) gettext(string) #else #define _(string) (string) @@ -100,7 +102,7 @@ extern locale_t wc_locales[]; #undef PACKAGE_BUGREPORT #include "sysdep.h" - +////////#include "hash.h" #ifdef HAVE_OPENSSL /* Work around RedHat's b0rken OpenSSL includes */ @@ -122,8 +124,9 @@ extern locale_t wc_locales[]; #define PORT_NUM 2000 /* port number to listen on */ #define DEVELOPER_ID 0 #define CLIENT_ID 4 -#define CLIENT_VERSION 723 /* This version of WebCit */ -#define MINIMUM_CIT_VERSION 723 /* min required Citadel ver. */ +#define CLIENT_VERSION 734 /* This version of WebCit */ +#define MINIMUM_CIT_VERSION 730 /* min required Citadel ver */ +#define LIBCITADEL_MIN 109 /* min required libcitadel ver */ #define DEFAULT_HOST "localhost" /* Default Citadel server */ #define DEFAULT_PORT "504" #define LB (1) /* Internal escape chars */ @@ -139,6 +142,13 @@ extern locale_t wc_locales[]; #define DEFAULT_MAXMSGS 20 +#ifdef LIBCITADEL_VERSION_NUMBER +#if LIBCITADEL_VERSION_NUMBER < LIBCITADEL_MIN +#error libcitadel is too old. Please upgrade it before continuing. +#endif +#endif + + /* * Room flags (from Citadel) * @@ -239,6 +249,7 @@ struct serv_info { int serv_newuser_disabled; /* Has the server disabled self-service new user creation? */ char serv_default_cal_zone[128];/* Default timezone for unspecified calendar items */ int serv_supports_sieve; /* Does the server support Sieve mail filtering? */ + int serv_fulltext_enabled; /* Does the server have the full text index enabled? */ }; @@ -375,15 +386,14 @@ struct wcsession { struct wcsubst *vars; /**< HTTP variable substitutions for this page */ char this_page[512]; /**< URL of current page */ char http_host[512]; /**< HTTP Host: header */ - char *preferences; /**< WebCit preferences for this user */ -#ifdef WEBCIT_WITH_CALENDAR_SERVICE - /** \brief ical???? */ + HashList *hash_prefs; /**< WebCit preferences for this user */ struct disp_cal { icalcomponent *cal; /**< cal items for display */ long cal_msgnum; /**< cal msgids for display */ + char *from; /**< owner of this component */ + int unread; /**< already seen by the user? */ } *disp_cal; int num_cal; /**< number of calendar items for display */ -#endif struct wc_attachment *first_attachment; /**< linked list of attachments for 'enter message' */ char last_chat_user[256]; /**< ??? todo */ char ImportantMessage[SIZ]; /**< ??? todo */ @@ -477,7 +487,7 @@ void ungoto(void); void get_serv_info(char *, char *); int uds_connectsock(char *); int tcp_connectsock(char *, char *); -void serv_getln(char *strbuf, int bufsize); +int serv_getln(char *strbuf, int bufsize); void serv_puts(char *string); void who(void); void who_inner_div(void); @@ -502,6 +512,7 @@ void output_headers( int do_httpheaders, int cache); void wprintf(const char *format,...); void output_static(char *what); +void display_mime_icon(void); void print_menu_box(char* Title, char *Class, int nLines, ...); long stresc(char *target, long tSize, char *strbuf, int nbsp, int nolinebreaks); void escputs(char *strbuf); @@ -624,7 +635,6 @@ void get_preference(char *key, char *value, size_t value_len); void set_preference(char *key, char *value, int save_to_server); void knrooms(void); int is_msg_in_mset(char *mset, long msgnum); -char *safestrncpy(char *dest, const char *src, size_t n); void display_addressbook(long msgnum, char alpha); void offer_start_page(void); void convenience_page(char *titlebarcolor, char *titlebarmsg, char *messagetext); @@ -640,9 +650,9 @@ void summary(void); void summary_inner_div(void); ssize_t write(int fd, const void *buf, size_t count); void cal_process_attachment(char *part_source, long msgnum, char *cal_partnum); -void display_calendar(long msgnum); -void display_task(long msgnum); -void display_note(long msgnum); +void display_calendar(long msgnum, int unread); +void display_task(long msgnum, int unread); +void display_note(long msgnum, int unread); void updatenote(void); void do_calendar_view(void); void do_tasks_view(void); @@ -676,12 +686,14 @@ void begin_ajax_response(void); void end_ajax_response(void); void initialize_viewdefs(void); void initialize_axdefs(void); +void burn_folder_cache(time_t age); void list_all_rooms_by_floor(char *viewpref); void display_room_directory(void); +void display_picture(void); +void display_pictureview(void); void download_file(char *); void upload_file(void); -#ifdef WEBCIT_WITH_CALENDAR_SERVICE void display_edit_task(void); void save_task(void); void display_edit_event(void); @@ -689,8 +701,8 @@ void save_event(void); void display_icaltimetype_as_webform(struct icaltimetype *, char *); void icaltime_from_webform(struct icaltimetype *result, char *prefix); void icaltime_from_webform_dateonly(struct icaltimetype *result, char *prefix); -void display_edit_individual_event(icalcomponent *supplied_vtodo, long msgnum); -void save_individual_event(icalcomponent *supplied_vtodo, long msgnum); +void display_edit_individual_event(icalcomponent *supplied_vtodo, long msgnum, char *from, int unread); +void save_individual_event(icalcomponent *supplied_vtodo, long msgnum, char *from, int unread); void respond_to_request(void); void handle_rsvp(void); void ical_dezonify(icalcomponent *cal); @@ -704,7 +716,6 @@ int ical_ctdl_is_overlap( struct icaltimetype t2start, struct icaltimetype t2end ); -#endif #ifdef ENABLE_NLS void initialize_locales(void); @@ -717,7 +728,7 @@ char *read_server_text(void); int goto_config_room(void); long locate_user_vcard(char *username, long usernum); void sleeeeeeeeeep(int); -void http_transmit_thing(char *thing, size_t length, char *content_type, +void http_transmit_thing(char *thing, size_t length, const char *content_type, int is_static); void unescape_input(char *buf); void do_iconbar(void); @@ -733,6 +744,7 @@ void offer_languages(void); void set_selected_language(char *); void go_selected_language(void); void stop_selected_language(void); +void preset_locale(void); void httplang_to_locale(char *LocaleString); void tabbed_dialog(int num_tabs, char *tabnames[]); void begin_tab(int tabnum, int num_tabs); @@ -743,6 +755,7 @@ int get_time_format_cached (void); int xtoi(char *in, size_t len); void webcit_fmt_date(char *buf, time_t thetime, int brief); + #ifdef HAVE_ICONV iconv_t ctdl_iconv_open(const char *tocode, const char *fromcode); #endif @@ -772,9 +785,7 @@ int ZEXPORT compress_gzip(Bytef * dest, size_t * destLen, const Bytef * source, uLong sourceLen, int level); #endif -#ifdef HAVE_ICONV void utf8ify_rfc822_string(char *buf); -#endif void begin_burst(void); void end_burst(void);