/*
- * $Id$
- *
+ * Header file for libcitadel
*/
#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.
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,
* 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')
StrBuf* NewStrBufPlain(const char* ptr, int nChars);
long StrBufShrinkToFit(StrBuf *Buf, int Force);
void ReAdjustEmptyBuf(StrBuf *Buf, long ThreshHold, long NewSize);
+void NewStrBufDupAppendFlush(StrBuf **CreateRelpaceMe, StrBuf *CopyFlushMe, const char *NoMe, int KeepOriginal);
int StrBufPlain(StrBuf *Buf, const char* ptr, int nChars);
StrBuf* _NewConstStrBuf(const char* StringConstant, size_t SizeOfStrConstant);
void StrBufCutRight(StrBuf *Buf, int nChars);
void StrBufCutAt(StrBuf *Buf, int AfternChars, const char *At);
void StrBufTrim(StrBuf *Buf);
+void StrBufSpaceToBlank(StrBuf *Buf);
void StrBufStripAllBut(StrBuf *Buf, char leftboundary, char rightboundary);
void StrBufUpCase(StrBuf *Buf);
void StrBufLowerCase(StrBuf *Buf);
int StrBufDecodeBase64(StrBuf *Buf);
int StrBufDecodeHex(StrBuf *Buf);
int StrBufRFC2047encode(StrBuf **target, const StrBuf *source);
+StrBuf *StrBufSanitizeEmailRecipientVector(const StrBuf *Recp,
+ StrBuf *UserName,
+ StrBuf *EmailAddress,
+ StrBuf *EncBuf);
int StrBufSanitizeAscii(StrBuf *Buf, const char Mute);
#define LB (1) /* Internal escape chars */
#define RB (2)
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);
+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);
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);
int GetCount(HashList *Hash);
const void *GetSearchPayload(const void *HashVoid);
void SortByPayload(HashList *Hash, CompareFunc SortBy);
-void generic_free_handler(void *ptr);
void reference_free_handler(void *ptr);
int HashLittle(const void *key, size_t length);
void convert_spaces_to_underscores(char *str);
+int CheckEncode(const char *pch, long len, const char *pche);
/*
* Convert 4 bytes char into an Integer.