]> code.citadel.org Git - citadel.git/blobdiff - libcitadel/lib/libcitadel.h
work on sixel support
[citadel.git] / libcitadel / lib / libcitadel.h
index 8aace1cf7666a0b9ffc149ed7118686c5ca98b66..9601f0dc10e65242c125e7ecf6fe974b5cc7eb60 100644 (file)
@@ -19,7 +19,7 @@
 #include <sys/types.h>
 #include <netinet/in.h>
 
-#define LIBCITADEL_VERSION_NUMBER 970
+#define LIBCITADEL_VERSION_NUMBER 1000
 
 /*
  * Here's a bunch of stupid magic to make the MIME parser portable.
@@ -252,6 +252,7 @@ int StrBufReplaceToken(StrBuf *Buf, long where, long HowLong, const char *Repl,
 int StrBufExtract_tokenFromStr(StrBuf *dest, const char *Source, long SourceLen, int parmnum, char separator);
 int StrBufExtract_token(StrBuf *dest, const StrBuf *Source, int parmnum, char separator);
 int StrBufSub(StrBuf *dest, const StrBuf *Source, unsigned long Offset, size_t nChars);
+int StrBufReplaceAllOccurrences(StrBuf *Buf, const char *fromstr, const char *tostr);
 
 unsigned long StrBufExtract_unsigned_long(const StrBuf* Source, int parmnum, char separator);
 long StrBufExtract_long(const StrBuf* Source, int parmnum, char separator);
@@ -320,7 +321,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, 
@@ -402,7 +403,7 @@ enum {
        BASE64_NO_LINEBREAKS = 0,
        BASE64_YES_LINEBREAKS = 1
 };
-size_t CtdlDecodeBase64(char *dest, const char *source, size_t length);
+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);
@@ -430,10 +431,15 @@ 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 string_trimlen(char *, int *);
-char *html_to_ascii(const char *inputmsg, int msglen, int screenwidth, int ansi);
 void LoadEntityList(char *FileName);
 void utf8ify_rfc822_string(char *buf);
+int u8_wc_toutf8(char *dest, u_int32_t ch);
+void h2a_embed_image(StrBuf *out, char *url, int display_protocol);
+
+// flags for html_to_ascii
+#define H2A_ANSI       0x01            // it is acceptable to display ANSI graphics on this terminal
+#define H2A_SIXEL      0x02            // sixel graphics are supported (not yet fully implemented)
+char *html_to_ascii(const char *inputmsg, int msglen, int screenwidth, unsigned int flags);
 
 
 typedef struct {
@@ -576,6 +582,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);
 
 
 
@@ -692,7 +699,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