GMimeFilterBest

GMimeFilterBest — Determine the best charset/encoding to use for a stream

Functions

Types and Values

Description

A GMimeFilter which is meant to determine the best charset and/or transfer encoding suitable for the stream which is filtered through it.

Functions

g_mime_filter_best_new ()

GMimeFilter *
g_mime_filter_best_new (GMimeFilterBestFlags flags);

Creates a new GMimeFilterBest filter. flags are used to determine which information to keep statistics of. If the GMIME_FILTER_BEST_CHARSET bit is set, the filter will be able to compute the best charset for encoding the stream of data filtered. If the GMIME_FILTER_BEST_ENCODING bit is set, the filter will be able to compute the best Content-Transfer-Encoding for use with the stream being filtered.

Note: In order for the g_mime_filter_best_charset() function to work, the stream being filtered MUST already be encoded in UTF-8.

Parameters

flags

filter flags

 

Returns

a new best filter with flags flags .


g_mime_filter_best_charset ()

const char *
g_mime_filter_best_charset (GMimeFilterBest *best);

Calculates the best charset for encoding the content filtered through the best filter.

Parameters

best

a GMimeFilterBest

 

Returns

the name of the charset most suitable for encoding the content that has been passed through the filter or NULL if the filter was not configured to detect this.


g_mime_filter_best_encoding ()

GMimeContentEncoding
g_mime_filter_best_encoding (GMimeFilterBest *best,
                             GMimeEncodingConstraint constraint);

Calculates the most efficient Content-Transfer-Encoding for the content filtered through best that fits within the encoding constraint .

Parameters

best

a GMimeFilterBest

 

constraint

a GMimeEncodingConstraint

 

Returns

the best encoding for the content filtered by best .

Types and Values

struct GMimeFilterBest

struct GMimeFilterBest {
	GMimeFilter parent_object;
	
	GMimeFilterBestFlags flags;
	
	/* for best charset detection */
	GMimeCharset charset;
	
	/* for best encoding detection */
	unsigned int count0;      /* count of null bytes */
	unsigned int count8;      /* count of 8bit bytes */
	unsigned int total;       /* total octets */
	
	unsigned int maxline;     /* longest line length */
	unsigned int linelen;     /* current line length */
	
	unsigned char frombuf[6];
	unsigned int fromlen : 4;
	unsigned int hadfrom : 1;
	
	unsigned int startline : 1;
	unsigned int midline : 1;
};

A filter for calculating the best encoding and/or charset to encode the data passed through it.

Members

GMimeFilter parent_object;

parent GMimeFilter

 

GMimeFilterBestFlags flags;

GMimeFilterBestFlags

 

GMimeCharset charset;

GMimeCharset state

 

unsigned int count0;

count of nul-bytes passed through the filter

 

unsigned int count8;

count of 8bit bytes passed through the filter

 

unsigned int total;

total number of bytes passed through the filter

 

unsigned int maxline;

the length of the longest line passed through the filter

 

unsigned int linelen;

current line length

 

unsigned char frombuf[6];

buffer for checking From_ lines

 

unsigned int fromlen : 4;

length of bytes in frombuf

 

unsigned int hadfrom : 1;

TRUE if any line started with "From "

 

unsigned int startline : 1;

start line state

 

unsigned int midline : 1;

mid-line state

 

enum GMimeFilterBestFlags

Bit flags to enable charset and/or encoding scanning to make educated guesses as to what the best charset and/or encodings to use for the content passed through the filter.

Members

GMIME_FILTER_BEST_CHARSET

Enable best-charset detection.

 

GMIME_FILTER_BEST_ENCODING

Enable best-encoding detection.

 

See Also

GMimeFilter