]> code.citadel.org Git - citadel.git/blobdiff - libcitadel/lib/libcitadel.h
* Temporarily disabled the 'Drafts' functions. I like the idea, but it doesn't work...
[citadel.git] / libcitadel / lib / libcitadel.h
index eb3a5e362c256368eb76be1d7c14cec5bb7bbf52..bae0441c3a5ca3101cae01ee8a069a7779aa8be4 100644 (file)
@@ -71,6 +71,7 @@ enum LogLevel {
 
 char *libcitadel_version_string(void);
 int libcitadel_version_number(void);
+void StartLibCitadel(size_t basesize);
 void ShutDownLibCitadel(void);
 
 /*
@@ -216,17 +217,21 @@ typedef struct _ConstStr {
        const char *Key;
        long len;
 }ConstStr;
-
+#define CKEY(a) (a).Key, (a).len
 
 StrBuf* NewStrBuf(void);
 StrBuf* NewStrBufDup(const StrBuf *CopyMe);
 StrBuf* NewStrBufPlain(const char* ptr, int nChars);
+long StrBufShrinkToFit(StrBuf *Buf, int Force);
+void ReAdjustEmptyBuf(StrBuf *Buf, long ThreshHold, long NewSize);
+
 int StrBufPlain(StrBuf *Buf, const char* ptr, int nChars);
 StrBuf* _NewConstStrBuf(const char* StringConstant, size_t SizeOfStrConstant);
 #define NewConstStrBuf(a) _NewConstStrBuf(a, sizeof(a))
 void FreeStrBuf (StrBuf **FreeMe);
 void HFreeStrBuf (void *VFreeMe);
 int FlushStrBuf(StrBuf *buf);
+int FLUSHStrBuf(StrBuf *buf); /* expensive but doesn't leave content behind for others to find in case of errors */
 
 const char *ChrPtr(const StrBuf *Str);
 int StrLength(const StrBuf *Str);
@@ -290,6 +295,7 @@ void StrBufCutAt(StrBuf *Buf, int AfternChars, const char *At);
 void StrBufTrim(StrBuf *Buf);
 void StrBufUpCase(StrBuf *Buf);
 void StrBufLowerCase(StrBuf *Buf);
+void StrBufStripSlashes(StrBuf *Dir, int RemoveTrailingSlash);
 void StrBufEUid_unescapize(StrBuf *target, const StrBuf *source);
 void StrBufEUid_escapize(StrBuf *target, const StrBuf *source);
 
@@ -300,6 +306,7 @@ void StrBufConvert(StrBuf *ConvertBuf, StrBuf *TmpBuf, void *pic);
 void ctdl_iconv_open(const char *tocode, const char *fromcode, void *pic);
 void StrBuf_RFC822_to_Utf8(StrBuf *Target, const StrBuf *DecodeMe, const StrBuf* DefaultCharset, StrBuf *FoundCharset);
 int StrBufDecodeBase64(StrBuf *Buf);
+int StrBufDecodeHex(StrBuf *Buf);
 int StrBufRFC2047encode(StrBuf **target, const StrBuf *source);
 int StrBufSanitizeAscii(StrBuf *Buf, const char Mute);
 #define LB                     (1)             /* Internal escape chars */
@@ -328,11 +335,6 @@ const char *GetIconFilename(char *MimeType, size_t len);
 
 /* tools */
 
-int Ctdl_IsUtf8SequenceStart(char Char);
-int Ctdl_GetUtf8SequenceLength(char Char);
-int Ctdl_Utf8StrLen(char *str);
-char *Ctdl_Utf8StrCut(char *str, int maxlen);
-
 
 int safestrncpy(char *dest, const char *src, size_t n);
 int num_tokens (const char *source, char tok);
@@ -346,6 +348,7 @@ size_t CtdlEncodeBase64(char *dest, const char *source, size_t sourcelen, int li
 int CtdlDecodeBase64(char *dest, const char *source, size_t length);
 unsigned int decode_hex(char *Source);
 int CtdlDecodeQuotedPrintable(char *decoded, char *encoded, int sourcelen);
+void StripSlashes(char *Dir, int TrailingSlash);
 size_t striplt(char *);
 int haschar(const char *st, int ch);
 void remove_token(char *source, int parmnum, char separator);