• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdepimlibs-4.10.5 API Reference
  • KDE Home
  • Contact Us
 

KMIME Library

  • kmime
kmime_util.h
1 /* -*- c++ -*-
2  kmime_util.h
3 
4  KMime, the KDE Internet mail/usenet news message library.
5  Copyright (c) 2001 the KMime authors.
6  See file AUTHORS for details
7 
8  This library is free software; you can redistribute it and/or
9  modify it under the terms of the GNU Library General Public
10  License as published by the Free Software Foundation; either
11  version 2 of the License, or (at your option) any later version.
12 
13  This library is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  Library General Public License for more details.
17 
18  You should have received a copy of the GNU Library General Public License
19  along with this library; see the file COPYING.LIB. If not, write to
20  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21  Boston, MA 02110-1301, USA.
22 */
23 #ifndef __KMIME_UTIL_H__
24 #define __KMIME_UTIL_H__
25 
26 #include <QtCore/QString>
27 #include "kmime_export.h"
28 #include "kmime_headers.h"
29 #include "kmime_content.h"
30 
31 namespace KMime {
32 
33 class Message;
34 
40 KMIME_EXPORT extern QByteArray cachedCharset( const QByteArray &name );
41 
47 KMIME_EXPORT extern QByteArray cachedLanguage( const QByteArray &name );
48 
53 KMIME_EXPORT extern bool isUsAscii( const QString &s );
54 
61 KMIME_EXPORT extern QString nameForEncoding( KMime::Headers::contentEncoding enc );
62 
67 KMIME_EXPORT QList<KMime::Headers::contentEncoding> encodingsForData(
68  const QByteArray &data );
69 //@cond PRIVATE
70 extern const uchar specialsMap[16];
71 extern const uchar tSpecialsMap[16];
72 extern const uchar aTextMap[16];
73 extern const uchar tTextMap[16];
74 extern const uchar eTextMap[16];
75 
76 inline bool isOfSet( const uchar map[16], unsigned char ch )
77 {
78  return ( ch < 128 ) && ( map[ ch/8 ] & 0x80 >> ch%8 );
79 }
80 inline bool isSpecial( char ch )
81 {
82  return isOfSet( specialsMap, ch );
83 }
84 inline bool isTSpecial( char ch )
85 {
86  return isOfSet( tSpecialsMap, ch );
87 }
88 inline bool isAText( char ch )
89 {
90  return isOfSet( aTextMap, ch );
91 }
92 inline bool isTText( char ch )
93 {
94  return isOfSet( tTextMap, ch );
95 }
96 inline bool isEText( char ch )
97 {
98  return isOfSet( eTextMap, ch );
99 }
100 //@endcond
101 
111 KMIME_EXPORT extern void setFallbackCharEncoding( const QString& fallbackCharEnc );
112 
121 KMIME_EXPORT extern QString fallbackCharEncoding();
122 
134 KMIME_EXPORT extern void setUseOutlookAttachmentEncoding( bool violateStandard );
135 
139 KMIME_EXPORT extern bool useOutlookAttachmentEncoding();
152 KMIME_EXPORT extern QString decodeRFC2047String(
153  const QByteArray &src, QByteArray &usedCS, const QByteArray &defaultCS = QByteArray(),
154  bool forceCS = false );
155 
162 KMIME_EXPORT extern QString decodeRFC2047String( const QByteArray &src );
163 
181 KMIME_EXPORT extern QByteArray encodeRFC2047String(
182  const QString &src, const QByteArray &charset, bool addressHeader=false,
183  bool allow8bitHeaders=false );
184 
185 
197 KMIME_EXPORT extern QString decodeRFC2231String(
198  const QByteArray &src, QByteArray &usedCS, const QByteArray &defaultCS = QByteArray(),
199  bool forceCS = false );
200 
207 KMIME_EXPORT extern QString decodeRFC2231String( const QByteArray &src );
208 
209 
217 KMIME_EXPORT extern QByteArray encodeRFC2231String( const QString &src, const QByteArray &charset );
218 
227 KMIME_EXPORT extern QByteArray uniqueString();
228 
237 KMIME_EXPORT extern QByteArray multiPartBoundary();
238 
243 KMIME_EXPORT extern QByteArray unfoldHeader( const QByteArray &header );
244 
255 KMIME_EXPORT extern QByteArray extractHeader( const QByteArray &src,
256  const QByteArray &name );
257 
269 KMIME_EXPORT extern QList<QByteArray> extractHeaders( const QByteArray &src,
270  const QByteArray &name );
271 
284 KMIME_EXPORT extern QByteArray CRLFtoLF( const QByteArray &s );
285 
298 KMIME_EXPORT extern QByteArray CRLFtoLF( const char *s );
299 
313 KMIME_EXPORT extern QByteArray LFtoCRLF( const QByteArray &s );
314 
322 //AK_REVIEW: add correctly spelled methods and deprecated the wrongly spelled
323 // TODO: KDE5: BIC: rename to "removeQuotes"
324 KMIME_EXPORT extern void removeQuots( QByteArray &str );
325 
333 //AK_REVIEW: add correctly spelled methods and deprecated the wrongly spelled
334 // TODO: KDE5: BIC: rename to "removeQuotes"
335 KMIME_EXPORT extern void removeQuots( QString &str );
336 
344 KMIME_EXPORT extern void addQuotes( QByteArray &str, bool forceQuotes );
345 
350 KMIME_EXPORT extern void addQuotes( QString &str, bool forceQuotes );
351 
393 KMIME_EXPORT QString balanceBidiState( const QString &input );
394 
401 KMIME_EXPORT QString removeBidiControlChars( const QString &input );
402 
407 KMIME_EXPORT bool hasAttachment( Content* content );
408 
414 KMIME_EXPORT bool isSigned( Message* message );
415 
421 KMIME_EXPORT bool isEncrypted( Message* message );
422 
429 KMIME_EXPORT bool isInvitation( Content* content );
430 
431 } // namespace KMime
432 
433 #endif /* __KMIME_UTIL_H__ */
This file is part of the KDE documentation.
Documentation copyright © 1996-2013 The KDE developers.
Generated on Sat Jul 13 2013 01:25:46 by doxygen 1.8.3.1 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KMIME Library

Skip menu "KMIME Library"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • Related Pages

kdepimlibs-4.10.5 API Reference

Skip menu "kdepimlibs-4.10.5 API Reference"
  • akonadi
  •   contact
  •   kmime
  •   socialutils
  • kabc
  • kalarmcal
  • kblog
  • kcal
  • kcalcore
  • kcalutils
  • kholidays
  • kimap
  • kioslave
  •   imap4
  •   mbox
  •   nntp
  • kldap
  • kmbox
  • kmime
  • kontactinterface
  • kpimidentities
  • kpimtextedit
  • kpimutils
  • kresources
  • ktnef
  • kxmlrpcclient
  • mailtransport
  • microblog
  • qgpgme
  • syndication
  •   atom
  •   rdf
  •   rss2
Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal