KMIME Library
23#include "kmime_parsers.h"
25#include <QtCore/QRegExp>
26#include <QtCore/QByteArray>
28using namespace KMime::Parser;
33MultiPart::MultiPart(
const QByteArray &
src,
const QByteArray &boundary )
39bool MultiPart::parse()
41 QByteArray
b =
"--" + b_oundary,
part;
49 s_rc[
pos1-1] ==
'\n' ) {
57 if ( s_rc[
pos1] ==
'-' && s_rc[
pos1+1] ==
'-' ) {
62 p_reamble = s_rc.left(
pos1 -
blen - 1 );
69 if ( (
pos1 = s_rc.indexOf(
'\n',
pos1 ) ) > -1 ) {
74 if ( (
pos2 = s_rc.indexOf(
b,
pos2 ) ) == -1 ||
75 s_rc[
pos2-1] ==
'\n' ) {
83 p_arts.append(
part );
88 p_arts.append(
part );
90 if ( s_rc[
pos2] ==
'-' && s_rc[
pos2+1] ==
'-' ) {
93 if ( (
pos1 = s_rc.indexOf(
'\n',
pos1 ) ) > -1 ) {
95 e_pilouge = s_rc.mid(
pos1 + 1, s_rc.length() -
pos1 - 1 );
106 return !p_arts.isEmpty();
111NonMimeParser::NonMimeParser(
const QByteArray &
src ) :
112 s_rc(
src ), p_artNr( -1 ), t_otalNr( -1 )
121 QByteArray
tmp, mimeType;
128 if (
tmp ==
"JPG" ||
tmp ==
"JPEG" ) {
129 mimeType =
"image/jpeg";
130 }
else if (
tmp ==
"GIF" ) {
131 mimeType =
"image/gif";
132 }
else if (
tmp ==
"PNG" ) {
133 mimeType =
"image/png";
134 }
else if (
tmp ==
"TIFF" ||
tmp ==
"TIF" ) {
135 mimeType =
"image/tiff";
136 }
else if (
tmp ==
"XPM" ) {
137 mimeType =
"image/x-xpixmap";
138 }
else if (
tmp ==
"XBM" ) {
139 mimeType =
"image/x-xbitmap";
140 }
else if (
tmp ==
"BMP" ) {
141 mimeType =
"image/bmp";
142 }
else if (
tmp ==
"TXT" ||
148 mimeType =
"text/plain";
149 }
else if (
tmp ==
"HTML" ||
tmp ==
"HTM" ) {
150 mimeType =
"text/html";
152 mimeType =
"application/octet-stream";
155 mimeType =
"application/octet-stream";
158 mimeType =
"application/octet-stream";
166UUEncoded::UUEncoded(
const QByteArray &
src,
const QByteArray &subject ) :
170bool UUEncoded::parse()
206 if ( s_rc[
idx] ==
'\n' ) {
227 len =
rx.matchedLength();
231 p_artNr =
tmp.left(
pos ).toInt();
232 t_otalNr =
tmp.right(
tmp.length() -
pos - 1 ).toInt();
271 t_ext.append( s_rc.right( s_rc.length() -
currentPos ) );
273 return ( ( b_ins.count() > 0 ) || isPartial() );
278YENCEncoded::YENCEncoded(
const QByteArray &
src ) :
283bool YENCEncoded::yencMeta( QByteArray &
src,
const QByteArray &name,
int *
value )
286 QByteArray
sought=name +
'=';
306 if (
c>=
'0' &&
c<=
'9' ) {
315bool YENCEncoded::parse()
376 if ( !yencMeta(
meta,
"part", &p_artNr ) ) {
385 if ( !yencMeta(
meta,
"total", &t_otalNr ) ) {
386 t_otalNr = p_artNr + 1;
398 int len = s_rc.length();
405 int ch = s_rc.at(
pos );
415 else if (
ch ==
'\n' ) {
422 ch = s_rc.at(
pos + 1 );
497 t_ext.append( s_rc.right( s_rc.length() -
currentPos ) );
499 return b_ins.count()>0;
The KAutoDeleteHash class is a convenience QHash subclass that provides automatic deletion of the val...
Helper-class: abstract base class of all parsers for non-mime binary data (uuencoded,...
static QByteArray guessMimeType(const QByteArray &fileName)
try to guess the mimetype from the file-extension
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Wed Jan 24 2024 00:00:00 by
doxygen 1.10.0 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.