]> code.citadel.org Git - citadel.git/blobdiff - webcit/webcit.h
* migrated SUBST stuff to hash
[citadel.git] / webcit / webcit.h
index 73dba3f86001b56c3a91854fafe81d9f6220e537..bec5aa6c1dd23c40b4a59bdababcac4133382532 100644 (file)
@@ -126,7 +126,7 @@ extern locale_t wc_locales[];
 #define CLIENT_ID              4
 #define CLIENT_VERSION         735             /* This version of WebCit */
 #define MINIMUM_CIT_VERSION    730             /* min required Citadel ver */
-#define        LIBCITADEL_MIN          110             /* min required libcitadel ver */
+#define        LIBCITADEL_MIN          111             /* min required libcitadel ver */
 #define DEFAULT_HOST           "localhost"     /* Default Citadel server */
 #define DEFAULT_PORT           "504"
 #define LB                     (1)             /* Internal escape chars */
@@ -284,13 +284,12 @@ struct roomlisting {
 /**
  * \brief Dynamic content for variable substitution in templates
  */
-struct wcsubst {
-       struct wcsubst *next;       /**< next item in the list */  
+typedef struct _wcsubst {
        int wcs_type;                       /**< which type of ??? */
        char wcs_key[32];                   /**< ??? what?*/
        void *wcs_value;                    /**< ???? what?*/
        void (*wcs_function)(void); /**< funcion hook ???*/
-};
+} wcsubst;
 
 /**
  * \brief Values for wcs_type
@@ -385,7 +384,7 @@ struct wcsession {
        struct message_summary *summ;           /**< array of messages for mailbox summary view */
        int is_wap;                             /**< Client is a WAP gateway */
        HashList *urlstrings;                   /**< variables passed to webcit in a URL */
-       struct wcsubst *vars;                   /**< HTTP variable substitutions for this page */
+       HashList *vars;                         /**< HTTP variable substitutions for this page */
        char this_page[512];                    /**< URL of current page */
        char http_host[512];                    /**< HTTP Host: header */
        HashList *hash_prefs;                   /**< WebCit preferences for this user */
@@ -459,6 +458,7 @@ extern int setup_wizard;
 extern char wizard_filename[];
 extern time_t if_modified_since;
 extern int follow_xff;
+extern HashList *HandlerHash;
 void do_setup_wizard(void);
 
 
@@ -634,9 +634,22 @@ void chat_send(void);
 void http_redirect(char *);
 void clear_substs(struct wcsession *wc);
 void clear_local_substs(void);
-void svprintf(char *keyname, int keytype, const char *format,...);
-void svcallback(char *keyname, void (*fcn_ptr)() );
+
+
+typedef void (*var_callback_fptr)();
+
+
+void SVPut(char *keyname, size_t keylen, int keytype, char *Data);
+#define svput(a, b, c) SVPut(a, sizeof(a) - 1, b, c)
+void svprintf(char *keyname, size_t keylen, int keytype, const char *format,...);
+void SVPRINTF(char *keyname, int keytype, const char *format,...);
+void SVCALLBACK(char *keyname, var_callback_fptr fcn_ptr);
+void SVCallback(char *keyname, size_t keylen,  var_callback_fptr fcn_ptr);
+#define svcallback(a, b) SVCallback(a, sizeof(a) - 1, b)
+
 void do_template(void *templatename);
+
+
 int lingering_close(int fd);
 char *memreadline(char *start, char *buf, int maxlen);
 char *memreadlinelen(char *start, char *buf, int maxlen, int *retlen);
@@ -682,6 +695,7 @@ 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 ajax_update_note(void);
 void do_calendar_view(void);
 void do_tasks_view(void);
 void free_calendar_buffer(void);
@@ -726,6 +740,7 @@ void display_edit_task(void);
 void save_task(void);
 void display_edit_event(void);
 void save_event(void);
+icaltimezone *get_default_icaltimezone(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);