Release version 998 generated by do-release.sh
[citadel.git] / libcitadel / lib / libcitadel.h
index 81db9cedbbfef0c8b715c2980d3d4b838de20452..6cda389aef46d9b44d4a3de994e33dfd9ac8073e 100644 (file)
@@ -1,18 +1,11 @@
-/*
- * Header file for libcitadel
- *
- * Copyright (c) 1987-2021 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.
- */
-
-/* protect against double includes */
+// Header file for libcitadel
+//
+// Copyright (c) 1987-2022 by the citadel.org team
+//
+// 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
 #ifndef LIBCITADEL_H
 #define LIBCITADEL_H
 
@@ -26,7 +19,7 @@
 #include <sys/types.h>
 #include <netinet/in.h>
 
-#define LIBCITADEL_VERSION_NUMBER 951
+#define LIBCITADEL_VERSION_NUMBER 998
 
 /*
  * Here's a bunch of stupid magic to make the MIME parser portable.
@@ -327,7 +320,7 @@ int StrBufDecodeBase64(StrBuf *Buf);
 void StrBufDecodeQP(StrBuf *Buf);
 int StrBufDecodeBase64To(const StrBuf *BufIn, StrBuf *BufOut);
 int StrBufDecodeHex(StrBuf *Buf);
-StrBuf *StrBufRFC2047encodeMessage(const StrBuf *EncodeMe);
+StrBuf *StrBufQuotedPrintableEncode(const StrBuf *EncodeMe);
 int StrBufRFC2047encode(StrBuf **target, const StrBuf *source);
 StrBuf *StrBufSanitizeEmailRecipientVector(const StrBuf *Recp, 
                                           StrBuf *UserName, 
@@ -405,11 +398,15 @@ 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);
-size_t 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 source_len);
 unsigned int decode_hex(char *Source);
 int CtdlDecodeQuotedPrintable(char *decoded, char *encoded, int sourcelen);
 void StripSlashes(char *Dir, int TrailingSlash);
-size_t striplt(char *);
+size_t string_trim(char *);
 int haschar(const char *st, int ch);
 void remove_token(char *source, int parmnum, char separator);
 int is_msg_in_sequence_set(const char *mset, long msgnum);
@@ -433,9 +430,9 @@ void CtdlMakeTempFileName(char *name, int len);
 char *rfc2047encode(const char *line, long length);
 int is_msg_in_mset(const char *mset, long msgnum);
 int pattern2(char *search, char *patn);
-void stripltlen(char *, int *);
-char *html_to_ascii(const char *inputmsg, int msglen, int screenwidth);
+char *html_to_ascii(const char *inputmsg, int msglen, int screenwidth, int ansi);
 void LoadEntityList(char *FileName);
+void utf8ify_rfc822_string(char *buf);
 
 
 typedef struct {
@@ -578,6 +575,7 @@ struct vnote *vnote_new_from_str(char *s);
 void vnote_free(struct vnote *v);
 char *vnote_serialize(struct vnote *v);
 void vnote_serialize_output_field(char *append_to, char *field, char *label);
+char b64unalphabet(char ch);
 
 
 
@@ -694,7 +692,7 @@ extern "C" {
 #define ERROR                  500
 #define BINARY_FOLLOWS         600
 #define SEND_BINARY            700
-#define START_CHAT_MODE                800
+#define SEND_THEN_RECV         800
 
 #define INTERNAL_ERROR         10
 #define TOO_BIG                        11