X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=libcitadel%2Flib%2Flibcitadel.h;h=366b8a62c8ce977ce0598403a32061f197867c6f;hb=32ba61afbc6f9964bac00c006b0058ef23a3518d;hp=aa1f5a141ce34daf71097d324fb1150bd621006c;hpb=a845b4fa9330e996a5cc62fdc5347ac982e855bf;p=citadel.git diff --git a/libcitadel/lib/libcitadel.h b/libcitadel/lib/libcitadel.h index aa1f5a141..366b8a62c 100644 --- a/libcitadel/lib/libcitadel.h +++ b/libcitadel/lib/libcitadel.h @@ -192,6 +192,7 @@ typedef struct _ConstStr { StrBuf* NewStrBuf(void); StrBuf* NewStrBufDup(const StrBuf *CopyMe); StrBuf* NewStrBufPlain(const char* ptr, int nChars); +void SwapBuffers(StrBuf *A, StrBuf *B); 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); @@ -445,7 +446,6 @@ 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); long stripallbut(char *str, char leftboundary, char rightboundary); @@ -484,7 +484,7 @@ struct vCard { struct vCard *vcard_new(void); -void vcard_add_prop(struct vCard *v, char *propname, char *propvalue); +void vcard_add_prop(struct vCard *v, const char *propname, const char *propvalue); struct vCard *vcard_load(char *vtext); struct vCard *VCardLoad(StrBuf *vbtext); @@ -513,8 +513,9 @@ typedef const char *(*PrintHashContent)(void * Data); typedef int (*CompareFunc)(const void* Item1, const void*Item2); typedef long (*HashFunc)(const char *Str, long Len); typedef void (*TransitionFunc) (void *Item1, void *Item2, int Odd); -typedef void (*PrintHashDataFunc) (const char *Key, void *Item, int Odd); +typedef const char* (*PrintHashDataFunc) (const char *Key, void *Item, int Odd); +long FourHash(const char *key, long length); long Flathash(const char *str, long len); long lFlathash(const char *str, long len); #define IKEY(a) (const char*) &a, sizeof(a) @@ -530,6 +531,7 @@ int GetHash(HashList *Hash, const char *HKey, long HKLen, void **Data); void Put(HashList *Hash, const char *HKey, long HKLen, void *Data, DeleteHashDataFunc DeleteIt); int GetKey(HashList *Hash, char *HKey, long HKLen, void **Data); int GetHashKeys(HashList *Hash, char ***List); +const char *dbg_PrintStrBufPayload(const char *Key, void *Item, int Odd); int dbg_PrintHash(HashList *Hash, PrintHashContent first, PrintHashContent Second); int PrintHash(HashList *Hash, TransitionFunc Trans, PrintHashDataFunc PrintEntry); HashPos *GetNewHashPos(const HashList *Hash, int StepWidth); @@ -675,6 +677,7 @@ extern ConstStr RoomNetCfgStrs[maxRoomNetCfg]; /* a nice consistent place to define how we turn a message id into a thread id hash */ #define ThreadIdHash(Buf) abs(HashLittle(ChrPtr(Buf), StrLength(Buf))) +#define ThreadIdHashOffset(Buf, Offset) abs(HashLittle(ChrPtr(Buf) + Offset, StrLength(Buf)-Offset)) #ifdef __cplusplus extern "C" { @@ -754,6 +757,7 @@ extern "C" { #define QR2_SUBJECTREQ 8 /* Subject strongly recommended */ #define QR2_SMTP_PUBLIC 16 /* Listservice Subscribers may post */ #define QR2_MODERATED 32 /* Listservice aide has to permit posts */ +#define QR2_NOUPLMSG 64 /* If a file is uploaded, no message will be posted. */ #define US_NEEDVALID 1 /* User needs to be validated */ #define US_EXTEDIT 2 /* Always use external editor */