Merge branch 'debian'
[hcoop/debian/courier-authlib.git] / rfc822 / encodeautodetect.c
diff --git a/rfc822/encodeautodetect.c b/rfc822/encodeautodetect.c
deleted file mode 100644 (file)
index 25261c5..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
-** Copyright 2003-2009 Double Precision, Inc.  See COPYING for
-** distribution information.
-*/
-
-/*
-** $Id: encodeautodetect.c,v 1.2 2009/11/08 18:14:47 mrsam Exp $
-*/
-#include       "encode.h"
-#include       <string.h>
-#include       <stdlib.h>
-#include       "../unicode/unicode.h"
-
-static const char *libmail_encode_autodetect(const char *charset, 
-                                            int (*func)(void *), void *arg)
-{
-       const char *encoding="7bit";
-       int     l=0;
-       int     longline=0;
-       int c;
-       const struct unicode_info *ci = unicode_find(charset);
-
-       while ((c = (*func)(arg)) != EOF)
-       {
-               unsigned char ch= (unsigned char)c;
-
-               if (ch >= 0x80)
-               {
-
-                       if (!charset || !*charset)
-                               encoding="8bit";
-                       else if (ci && ci->flags & UNICODE_BODY_QUOPRI)
-                               encoding="quoted-printable";
-                       else if (!ci || ci->flags & UNICODE_BODY_BASE64)
-                               encoding="base64";
-                       else
-                               encoding="8bit";
-               }
-
-               if (ch < 0x20 &&
-                   ch != '\t' && ch != '\r' && ch != '\n')
-               {
-                       if (!charset || !*charset)
-                               ;
-                       else if (ci && ci->flags & UNICODE_BODY_QUOPRI)
-                               encoding="quoted-printable";
-                       else if (!ci || ci->flags & UNICODE_BODY_BASE64)
-                               encoding="base64";
-                }
-
-               if (ch == 0)
-                       return "base64";
-
-               if (ch == '\n') l=0;
-               else if (++l > 990)
-               {
-                       longline=1;
-                       if (ci && ci->flags & UNICODE_BODY_QUOPRI)
-                               encoding="quoted-printable";
-               }
-
-       }
-
-       if (longline)
-       {
-               if (ci && ci->flags & UNICODE_BODY_QUOPRI)
-                       encoding="quoted-printable";
-               else
-                       encoding="base64";
-       }
-       return encoding;
-}
-
-struct file_info {
-       FILE *fp;
-       off_t pos;
-       off_t end;
-};
-
-static int read_file(void *arg)
-{
-int c;
-struct file_info *fi = (struct file_info *)arg;
-       if (fi->end >= 0 && fi->pos > fi->end)
-               return EOF;
-       c = getc(fi->fp);
-       fi->pos++;
-       return c;
-}
-
-static int read_string(void * arg)
-{
-int c;
-unsigned char **strp = (unsigned char **)arg;
-       if (**strp == 0)
-               return EOF;
-       c = (int)**strp;
-       (*strp)++;
-       return c;
-}
-
-const char *libmail_encode_autodetect_fp(FILE *fp, int okQp)
-{
-       if (okQp)
-               return libmail_encode_autodetect_fppos(fp, "ISO-8859-1", 0, -1);
-       else
-               return libmail_encode_autodetect_fppos(fp, NULL, 0, -1);
-}
-
-const char *libmail_encode_autodetect_fppos(FILE *fp, const char *charset,
-                                           off_t start_pos, off_t end_pos)
-{
-struct file_info fi;
-off_t orig_pos = ftell(fp);
-off_t pos = orig_pos;
-const char *rc;
-
-       if (start_pos >= 0)
-       {
-               if (fseek(fp, start_pos, SEEK_SET) == (off_t)-1)
-                       return NULL;
-               else
-                       pos = start_pos;
-       }
-
-       fi.fp = fp;
-       fi.pos = pos;
-       fi.end = end_pos;
-       rc = libmail_encode_autodetect(charset, &read_file, &fi);
-  
-       if (fseek(fp, orig_pos, SEEK_SET) == (off_t)-1)
-               return NULL;
-       return rc;
-}
-
-const char *libmail_encode_autodetect_str(const char *str, const char *charset)
-{
-       return libmail_encode_autodetect(charset, &read_string, &str);
-}