All components in git master to version 7.89 in order to avoid confusion with stable
[citadel.git] / libcitadel / lib / libcitadel.h
index 92ab07f3ee096d78c23ed59b9e5a8c90867c395d..029145f1237df4b4ee83384661b0ccad6d1d2d3e 100644 (file)
@@ -1,6 +1,5 @@
 /*
- * $Id$
- *
+ * Header file for libcitadel
  */
 
 
@@ -15,7 +14,7 @@
 #include <time.h>
 #include <stdlib.h>
 #include <stdarg.h>
-#define LIBCITADEL_VERSION_NUMBER      780
+#define LIBCITADEL_VERSION_NUMBER      789
 
 /*
  * Here's a bunch of stupid magic to make the MIME parser portable.
@@ -68,6 +67,18 @@ enum RoomNetCfg {
        maxRoomNetCfg
 };
 
+enum GNET_POP3_PARTS { /* pop3client splits into these columns: */
+       GNET_POP3_HOST = 1,
+       GNET_POP3_USER = 2,
+       GNET_POP3_PASS = 4,
+       GNET_POP3_DONT_DELETE_REMOTE = 4,
+       GNET_POP3_INTERVAL = 5
+};
+
+enum GNET_PUSH_SHARE { /* ignet_push_share splits into these columns: */
+       GNET_IGNET_NODE = 1,
+       GNET_IGNET_ROOM = 2
+};
 
 typedef enum __GPEXWhichPolicy {
        roompolicy,
@@ -81,17 +92,20 @@ typedef enum __GPEXWhichPolicy {
  * View definitions.
  * Note that not all views are implemented in all clients.
  */
-#define        VIEW_BBS                0       /* Bulletin board view */
-#define VIEW_MAILBOX           1       /* Mailbox summary */
-#define VIEW_ADDRESSBOOK       2       /* Address book view */
-#define VIEW_CALENDAR          3       /* Calendar view */
-#define VIEW_TASKS             4       /* Tasks view */
-#define VIEW_NOTES             5       /* Notes view */
-#define        VIEW_WIKI               6       /* Wiki view */
-#define VIEW_CALBRIEF          7       /* Brief Calendar view */
-#define VIEW_JOURNAL           8       /* Journal view */
-#define VIEW_BLOG              9       /* Blog view (not yet implemented) */
-
+typedef enum _room_views {
+       VIEW_BBS                = 0,    /* Bulletin board view */
+       VIEW_MAILBOX            = 1,    /* Mailbox summary */
+       VIEW_ADDRESSBOOK        = 2,    /* Address book view */
+       VIEW_CALENDAR           = 3,    /* Calendar view */
+       VIEW_TASKS              = 4,    /* Tasks view */
+       VIEW_NOTES              = 5,    /* Notes view */
+       VIEW_WIKI               = 6,    /* Wiki view */
+       VIEW_CALBRIEF           = 7,    /* Brief Calendar view */
+       VIEW_JOURNAL            = 8,    /* Journal view */
+       VIEW_DRAFTS             = 9,    /* Drafts view */
+       VIEW_BLOG               = 10,   /* Blog view */
+       VIEW_MAX
+} ROOM_VIEWS;
 
 #ifndef IsEmptyStr
 #define IsEmptyStr(a) ((a)[0] == '\0')
@@ -319,8 +333,10 @@ int haschar(const char *st, int ch);
 void remove_token(char *source, int parmnum, char separator);
 void fmt_date(char *buf, size_t n, time_t thetime, int seconds);
 int is_msg_in_sequence_set(const char *mset, long msgnum);
-const char *memreadline(const char *start, char *buf, int maxlen);
-const char *memreadlinelen(const char *start, char *buf, int maxlen, int *retlen);
+char *memreadline(char *start, char *buf, int maxlen);
+char *memreadlinelen(char *start, char *buf, int maxlen, int *retlen);
+const char *cmemreadline(const char *start, char *buf, int maxlen);
+const char *cmemreadlinelen(const char *start, char *buf, int maxlen, int *retlen);
 #define IsEmptyStr(a) ((a)[0] == '\0')
 #define num_parms(source)              num_tokens(source,(char)'|')
 int stripout(char *str, char leftboundary, char rightboundary);
@@ -330,8 +346,10 @@ void urlesc(char *outbuf, size_t oblen, char *strbuf);
 char *CtdlTempFileName(char *prefix1, int prefix2);
 FILE *CtdlTempFile(void);
 void generate_uuid(char *buf);
-const char *bmstrcasestr(const char *text, const char *pattern);
-const char *bmstrcasestr_len(const char *text, size_t textlen, const char *pattern, size_t patlen);
+char *bmstrcasestr(char *text, const char *pattern);
+char *bmstrcasestr_len(char *text, size_t textlen, const char *pattern, size_t patlen);
+const char *cbmstrcasestr(const char *text, const char *pattern);
+const char *cbmstrcasestr_len(const char *text, size_t textlen, const char *pattern, size_t patlen);
 void CtdlMakeTempFileName(char *name, int len);
 char *rfc2047encode(char *line, long length);
 int is_msg_in_mset(const char *mset, long msgnum);