diff options
author | Michael Zucci <zucchi@src.gnome.org> | 2000-11-07 20:48:36 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2000-11-07 20:48:36 +0800 |
commit | 6813ebfc61608a8dd9703b2e2be39365711f9f33 (patch) | |
tree | cdb54f68957fa492862813f8598fa79fab3b9ea1 /camel/camel-mime-filter-bestenc.h | |
parent | 18d3c7ec1145a879daff8f396af2eb905924983d (diff) | |
download | gsoc2013-evolution-6813ebfc61608a8dd9703b2e2be39365711f9f33.tar.gz gsoc2013-evolution-6813ebfc61608a8dd9703b2e2be39365711f9f33.tar.zst gsoc2013-evolution-6813ebfc61608a8dd9703b2e2be39365711f9f33.zip |
Oops, forgot to commit. New stream/filter for doing
cool stuff.
svn path=/trunk/; revision=6480
Diffstat (limited to 'camel/camel-mime-filter-bestenc.h')
-rw-r--r-- | camel/camel-mime-filter-bestenc.h | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/camel/camel-mime-filter-bestenc.h b/camel/camel-mime-filter-bestenc.h new file mode 100644 index 0000000000..32eea23afe --- /dev/null +++ b/camel/camel-mime-filter-bestenc.h @@ -0,0 +1,80 @@ +/* + * Copyright (C) 2000 Helix Code Inc. + * + * Authors: Michael Zucchi <notzed@helixcode.com> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public License + * as published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * 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 Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#ifndef _CAMEL_MIME_FILTER_BESTENC_H +#define _CAMEL_MIME_FILTER_BESTENC_H + +#include <camel/camel-mime-filter.h> +#include <camel/camel-mime-part.h> +#include <camel/camel-charset-map.h> + +#define CAMEL_MIME_FILTER_BESTENC(obj) CAMEL_CHECK_CAST (obj, camel_mime_filter_bestenc_get_type (), CamelMimeFilterBestenc) +#define CAMEL_MIME_FILTER_BESTENC_CLASS(klass) CAMEL_CHECK_CLASS_CAST (klass, camel_mime_filter_bestenc_get_type (), CamelMimeFilterBestencClass) +#define IS_CAMEL_MIME_FILTER_BESTENC(obj) CAMEL_CHECK_TYPE (obj, camel_mime_filter_bestenc_get_type ()) + +typedef struct _CamelMimeFilterBestencClass CamelMimeFilterBestencClass; + +enum _CamelBestencRequired { + CAMEL_BESTENC_GET_ENCODING = 1<<0, + CAMEL_BESTENC_GET_CHARSET = 1<<1, + + /* do we treat 'lf' as if it were crlf? */ + CAMEL_BESTENC_LF_IS_CRLF = 1<<8 +}; +typedef enum _CamelBestencRequired CamelBestencRequired; + +enum _CamelBestencEncoding { + CAMEL_BESTENC_7BIT, + CAMEL_BESTENC_8BIT, + CAMEL_BESTENC_BINARY, +}; +typedef enum _CamelBestencEncoding CamelBestencEncoding; + +struct _CamelMimeFilterBestenc { + CamelMimeFilter parent; + + unsigned int flags; /* our creation flags, see above */ + + unsigned int count0; /* count of NUL characters */ + unsigned int count8; /* count of 8 bit characters */ + unsigned int total; /* total characters read */ + + unsigned int lastc; /* the last character read */ + int crlfnoorder; /* if crlf's occured where they shouldn't have */ + + unsigned int countline; /* current count of characters on a given line */ + unsigned int maxline; /* max length of any line */ + + CamelCharset charset; /* used to determine the best charset to use */ +}; + +struct _CamelMimeFilterBestencClass { + CamelMimeFilterClass parent_class; +}; + +guint camel_mime_filter_bestenc_get_type (void); +CamelMimeFilterBestenc *camel_mime_filter_bestenc_new (unsigned int flags); + + +CamelMimePartEncodingType camel_mime_filter_bestenc_get_best_encoding(CamelMimeFilterBestenc *f, CamelBestencEncoding required); +const char * camel_mime_filter_bestenc_get_best_charset(CamelMimeFilterBestenc *f); +void camel_mime_filter_bestenc_set_flags(CamelMimeFilterBestenc *f, unsigned int flags); + +#endif /* ! _CAMEL_MIME_FILTER_BESTENC_H */ |