Release version 958 generated by do-release.sh
[citadel.git] / libcitadel / lib / libcitadel.h
index fe9cbd7003ab200575a5e1a9ae54c587a3cde81b..5f50539c275b7629eca53cb6c0627e80765996e4 100644 (file)
@@ -1,15 +1,10 @@
 /*
  * Header file for libcitadel
  *
- * Copyright (c) 1987-2019 by the citadel.org team
+ * Copyright (c) 1987-2022 by the citadel.org team
  *
- * This program is open source software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+// This program is open source software.  Use, duplication, or disclosure
+// is subject to the terms of the GNU General Public License, version 3.
  */
 
 /* protect against double includes */
@@ -26,7 +21,7 @@
 #include <sys/types.h>
 #include <netinet/in.h>
 
-#define LIBCITADEL_VERSION_NUMBER      926
+#define LIBCITADEL_VERSION_NUMBER 958
 
 /*
  * Here's a bunch of stupid magic to make the MIME parser portable.
@@ -97,7 +92,6 @@ typedef enum _room_views {
        VIEW_DRAFTS             = 9,    /* Drafts view */
        VIEW_BLOG               = 10,   /* Blog view */
        VIEW_QUEUE              = 11,   /* SMTP/... QUEUE rooms */
-       VIEW_WIKIMD             = 12,   /* Markdown Wiki view */
        VIEW_MAX,
        VIEW_JSON_LIST,
 } ROOM_VIEWS;
@@ -120,7 +114,6 @@ extern const char *StrBufNOTNULL;
 
 char *libcitadel_version_string(void);
 int libcitadel_version_number(void);
-void StartLibCitadel(size_t basesize);
 void ShutDownLibCitadel(void);
 
 /*
@@ -313,8 +306,8 @@ void StrBuf_RFC822_2_Utf8(StrBuf *Target,
 void StrBuf_RFC822_to_Utf8(StrBuf *Target, const StrBuf *DecodeMe, const StrBuf* DefaultCharset, StrBuf *FoundCharset);
 
 typedef enum __eStreamType {
-       eBase64Encode,
-       eBase64Decode,
+       //eBase64Encode,
+       //eBase64Decode,
        eZLibEncode,
        eZLibDecode,
        eEmtyCodec
@@ -407,7 +400,11 @@ long extract_long (const char *source, int parmnum);
 unsigned long extract_unsigned_long(const char *source, int parmnum);
 void CtdlInitBase64Table(void);
 size_t CtdlEncodeBase64(char *dest, const char *source, size_t sourcelen, int linebreaks);
-int CtdlDecodeBase64(char *dest, const char *source, size_t length);
+enum {
+       BASE64_NO_LINEBREAKS = 0,
+       BASE64_YES_LINEBREAKS = 1
+};
+size_t 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);
@@ -438,6 +435,7 @@ int pattern2(char *search, char *patn);
 void stripltlen(char *, int *);
 char *html_to_ascii(const char *inputmsg, int msglen, int screenwidth);
 void LoadEntityList(char *FileName);
+void utf8ify_rfc822_string(char *buf);
 
 
 typedef struct {
@@ -453,6 +451,7 @@ void array_append(Array *arr, void *new_element);
 void *array_get_element_at(Array *arr, int index);
 int array_len(Array *arr);
 void array_sort(Array *arr, int (*compar)(const void *, const void *));
+void array_delete_element_at(Array *arr, int index);
 
 
 /* vCard stuff */
@@ -673,8 +672,9 @@ extern "C" {
 #define CFG_SMTP_FROM_NOFILTER 1
 #define CFG_SMTP_FROM_CORRECT 2
 #define CFG_SMTP_FROM_REJECT 3
+
 /*
- * MIME types used in Citadel for configuration stuff
+ * object types used in Citadel for configuration stuff (some of these are obsolete)
  */
 #define SPOOLMIME      "application/x-citadel-delivery-list"
 #define        INTERNETCFG     "application/x-citadel-internet-config"
@@ -683,6 +683,7 @@ extern "C" {
 #define FILTERLIST     "application/x-citadel-filter-list"
 #define SIEVECONFIG    "application/x-citadel-sieve-config"
 #define XMPPMORTUARY   "application/x-citadel-xmpp-mortuary"
+#define GLOBAL_ALIASES "global_alias_table"
 
 #define FILE_MAILALIAS       "__MAIL_ALIAS__"