diff options
Diffstat (limited to 'libtdepim/qutf7codec.h')
-rw-r--r-- | libtdepim/qutf7codec.h | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/libtdepim/qutf7codec.h b/libtdepim/qutf7codec.h new file mode 100644 index 000000000..4057d276c --- /dev/null +++ b/libtdepim/qutf7codec.h @@ -0,0 +1,96 @@ +/* + qutf7codec.h + + A TQTextCodec for UTF-7 (rfc2152). + Copyright (c) 2001 Marc Mutz <mutz@kde.org> + See file COPYING for details + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License, version 2.0, + as published by the Free Software Foundation. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, US + + As a special exception, permission is granted to use this plugin + with any version of TQt by TrollTech AS, Norway. In this case, the + use of this plugin doesn't cause the resulting executable to be + covered by the GNU General Public License. + This exception does not however tqinvalidate any other reasons why the + executable file might be covered by the GNU General Public License. +*/ + +#ifndef TQUTF7CODEC_H +#define TQUTF7CODEC_H + +#include "tqtextcodec.h" + +#include <tdepimmacros.h> + +#ifndef TQT_NO_TEXTCODEC + +/** @short A TQTextCodec for the UTF-7 transformation of Unicode. + + This is a TQTextCodec for the UTF-7 transformation of Unicode, + described in RFC2152. + + Use it as you would use any other TQTextCodec. Only if you use the + encoder directly (via makeEncoder), you should bear in mind + that if your application needs the encoder to return to ASCII mode + (like it's the case for RFC2047 mail header encoded words), you + have to tell the encoder by requesting the encoding of a @em null + TQString. + + @author Marc Mutz <mutz@kde.org> */ + +class KDE_EXPORT TQUtf7Codec : public TQTextCodec { + bool encOpt, encLwsp; +public: + TQUtf7Codec() : TQTextCodec() {} + + int mibEnum() const; + const char* name() const; + const char* mimeName() const; + + TQTextDecoder* makeDecoder() const; + TQTextEncoder* makeEncoder() const; + + bool canEncode( TQChar ) const; + bool canEncode( const TQString& ) const; + + int heuristicContentMatch( const char* chars, int len ) const; +}; + +/** This is a version of @ref TQUtf7Codec, which should only be used in + MIME transfer. It differs from @ref TQUtf7Codec only in that the + encoder escapes additional characters (the RFC2152 "optional + direct set"), which might not be allowed in RFC822/RFC2047 header + fields. + + You should only use this codec for @em encoding, since it's output + is pure UTF-7 and can equally well be decoded by @ref TQUtf7Codec's + decoder. + + To distinguish between the two variants, this class has MIB enum + -1012 (the nagative of UTF-7) and the somewhat awkward name + "X-QT-UTF-7-STRICT". The MIME preferred charset name is still + "UTF-7", though. + + @short A variant of @ref TQUtf7Codec, which protectes certain + characters in MIME transport + @author Marc Mutz <mutz@kde.org> */ +class KDE_EXPORT TQStrictUtf7Codec : public TQUtf7Codec { +public: + TQStrictUtf7Codec() : TQUtf7Codec() {} + + const char* name() const; + int mibEnum() const; + + TQTextEncoder* makeEncoder() const; +}; + +#endif // TQT_NO_TEXTCODEC + +#endif // TQUTF7CODEC_H |