23#ifndef __KMIME_UTIL_H__
24#define __KMIME_UTIL_H__
26#include <QtCore/QString>
27#include "kmime_export.h"
40KMIME_EXPORT
extern QByteArray cachedCharset(
const QByteArray &name );
47KMIME_EXPORT
extern QByteArray cachedLanguage(
const QByteArray &name );
53KMIME_EXPORT
extern bool isUsAscii(
const QString &s );
69KMIME_EXPORT QList<KMime::Headers::contentEncoding> encodingsForData(
70 const QByteArray &data );
72extern const uchar specialsMap[16];
73extern const uchar tSpecialsMap[16];
74extern const uchar aTextMap[16];
75extern const uchar tTextMap[16];
76extern const uchar eTextMap[16];
78inline bool isOfSet(
const uchar map[16],
unsigned char ch )
80 return ( ch < 128 ) && ( map[ ch/8 ] & 0x80 >> ch%8 );
82inline bool isSpecial(
char ch )
84 return isOfSet( specialsMap, ch );
86inline bool isTSpecial(
char ch )
88 return isOfSet( tSpecialsMap, ch );
90inline bool isAText(
char ch )
92 return isOfSet( aTextMap, ch );
94inline bool isTText(
char ch )
96 return isOfSet( tTextMap, ch );
98inline bool isEText(
char ch )
100 return isOfSet( eTextMap, ch );
113KMIME_EXPORT
extern void setFallbackCharEncoding(
const QString& fallbackCharEnc );
123KMIME_EXPORT
extern QString fallbackCharEncoding();
136KMIME_EXPORT
extern void setUseOutlookAttachmentEncoding(
bool violateStandard );
141KMIME_EXPORT
extern bool useOutlookAttachmentEncoding();
154KMIME_EXPORT
extern QString decodeRFC2047String(
155 const QByteArray &src, QByteArray &usedCS,
const QByteArray &defaultCS = QByteArray(),
156 bool forceCS =
false );
164KMIME_EXPORT
extern QString decodeRFC2047String(
const QByteArray &src );
183KMIME_EXPORT
extern QByteArray encodeRFC2047String(
184 const QString &src,
const QByteArray &charset,
bool addressHeader=
false,
185 bool allow8bitHeaders=
false );
199KMIME_EXPORT
extern QString decodeRFC2231String(
200 const QByteArray &src, QByteArray &usedCS,
const QByteArray &defaultCS = QByteArray(),
201 bool forceCS =
false );
209KMIME_EXPORT
extern QString decodeRFC2231String(
const QByteArray &src );
219KMIME_EXPORT
extern QByteArray encodeRFC2231String(
const QString &src,
const QByteArray &charset );
229KMIME_EXPORT
extern QByteArray uniqueString();
239KMIME_EXPORT
extern QByteArray multiPartBoundary();
245KMIME_EXPORT
extern QByteArray unfoldHeader(
const QByteArray &header );
257KMIME_EXPORT
extern QByteArray extractHeader(
const QByteArray &src,
258 const QByteArray &name );
271KMIME_EXPORT
extern QList<QByteArray> extractHeaders(
const QByteArray &src,
272 const QByteArray &name );
286KMIME_EXPORT
extern QByteArray CRLFtoLF(
const QByteArray &s );
300KMIME_EXPORT
extern QByteArray CRLFtoLF(
const char *s );
315KMIME_EXPORT
extern QByteArray LFtoCRLF(
const QByteArray &s );
326KMIME_EXPORT
extern void removeQuots( QByteArray &str );
337KMIME_EXPORT
extern void removeQuots( QString &str );
346KMIME_EXPORT
extern void addQuotes( QByteArray &str,
bool forceQuotes );
354KMIME_EXPORT
extern void addQuotes( QString &str,
bool forceQuotes );
397KMIME_EXPORT QString balanceBidiState(
const QString &input );
407KMIME_EXPORT QString removeBidiControlChars(
const QString &input );
414KMIME_EXPORT
bool hasAttachment( Content* content );
422KMIME_EXPORT
bool hasInvitation( Content* content );
430KMIME_EXPORT
bool isSigned( Message* message );
438KMIME_EXPORT
bool isEncrypted( Message* message );
446KMIME_EXPORT
bool isInvitation( Content* content );
This file is part of the API for handling MIME data and defines the Content class.