summaryrefslogtreecommitdiff
path: root/noncore/net/mail/libmailwrapper
authoralwin <alwin>2004-03-11 15:57:38 (UTC)
committer alwin <alwin>2004-03-11 15:57:38 (UTC)
commit8ef5f33241db5e717daf6732d4db881918b0a46b (patch) (unidiff)
tree928d52d17bf28fa60f1a891f4671599e5344892b /noncore/net/mail/libmailwrapper
parent4a54ba05ce4ff36bf90264e239c531e879fa47c0 (diff)
downloadopie-8ef5f33241db5e717daf6732d4db881918b0a46b.zip
opie-8ef5f33241db5e717daf6732d4db881918b0a46b.tar.gz
opie-8ef5f33241db5e717daf6732d4db881918b0a46b.tar.bz2
workaround of a libetpan bug :(
Diffstat (limited to 'noncore/net/mail/libmailwrapper') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/libmailwrapper/abstractmail.cpp24
1 files changed, 12 insertions, 12 deletions
diff --git a/noncore/net/mail/libmailwrapper/abstractmail.cpp b/noncore/net/mail/libmailwrapper/abstractmail.cpp
index d71d35c..ac6f380 100644
--- a/noncore/net/mail/libmailwrapper/abstractmail.cpp
+++ b/noncore/net/mail/libmailwrapper/abstractmail.cpp
@@ -38,110 +38,110 @@ AbstractMail* AbstractMail::getWrapper(Account*a)
38 case MAILLIB::A_IMAP: 38 case MAILLIB::A_IMAP:
39 return new IMAPwrapper((IMAPaccount*)a); 39 return new IMAPwrapper((IMAPaccount*)a);
40 break; 40 break;
41 case MAILLIB::A_POP3: 41 case MAILLIB::A_POP3:
42 return new POP3wrapper((POP3account*)a); 42 return new POP3wrapper((POP3account*)a);
43 break; 43 break;
44 case MAILLIB::A_NNTP: 44 case MAILLIB::A_NNTP:
45 return new NNTPwrapper((NNTPaccount*)a); 45 return new NNTPwrapper((NNTPaccount*)a);
46 break; 46 break;
47 default: 47 default:
48 return 0; 48 return 0;
49 } 49 }
50} 50}
51 51
52encodedString* AbstractMail::decode_String(const encodedString*text,const QString&enc) 52encodedString* AbstractMail::decode_String(const encodedString*text,const QString&enc)
53{ 53{
54 qDebug("Decode string start"); 54 qDebug("Decode string start");
55 char*result_text; 55 char*result_text;
56 size_t index = 0; 56 size_t index = 0;
57 /* reset for recursive use! */ 57 /* reset for recursive use! */
58 size_t target_length = 0; 58 size_t target_length = 0;
59 result_text = 0; 59 result_text = 0;
60 int mimetype = MAILMIME_MECHANISM_7BIT; 60 int mimetype = MAILMIME_MECHANISM_7BIT;
61 if (enc.lower()=="quoted-printable") { 61 if (enc.lower()=="quoted-printable") {
62 mimetype = MAILMIME_MECHANISM_QUOTED_PRINTABLE; 62 mimetype = MAILMIME_MECHANISM_QUOTED_PRINTABLE;
63 } else if (enc.lower()=="base64") { 63 } else if (enc.lower()=="base64") {
64 mimetype = MAILMIME_MECHANISM_BASE64; 64 mimetype = MAILMIME_MECHANISM_BASE64;
65 } else if (enc.lower()=="8bit") { 65 } else if (enc.lower()=="8bit") {
66 mimetype = MAILMIME_MECHANISM_8BIT; 66 mimetype = MAILMIME_MECHANISM_8BIT;
67 } else if (enc.lower()=="binary") { 67 } else if (enc.lower()=="binary") {
68 mimetype = MAILMIME_MECHANISM_BINARY; 68 mimetype = MAILMIME_MECHANISM_BINARY;
69 } 69 }
70 70
71 int err = mailmime_part_parse(text->Content(),text->Length(),&index,mimetype, 71 int err = mailmime_part_parse(text->Content(),text->Length(),&index,mimetype,
72 &result_text,&target_length); 72 &result_text,&target_length);
73 73
74 encodedString* result = new encodedString(); 74 encodedString* result = new encodedString();
75 if (err == MAILIMF_NO_ERROR) { 75 if (err == MAILIMF_NO_ERROR) {
76 result->setContent(result_text,target_length); 76 result->setContent(result_text,target_length);
77 } 77 }
78 qDebug("Decode string finished"); 78 qDebug("Decode string finished");
79 return result; 79 return result;
80} 80}
81 81
82QString AbstractMail::convert_String(const char*text) 82QString AbstractMail::convert_String(const char*text)
83{ 83{
84 size_t index = 0; 84 size_t index = 0;
85 char*res = 0; 85 char*res = 0;
86 int err = MAILIMF_NO_ERROR;
86 87
87 /* attention - doesn't work with arm systems! */ 88 QString result(text);
88 int err = mailmime_encoded_phrase_parse("iso-8859-1", 89
89 text, strlen(text),&index, "iso-8859-1",&res); 90 /* due a bug in libetpan it isn't usable this moment */
90 if (err != MAILIMF_NO_ERROR) { 91/* int err = mailmime_encoded_phrase_parse("iso-8859-1",
91 if (res) free(res); 92 text, strlen(text),&index, "iso-8859-1",&res);*/
92 return QString(text); 93 //qDebug("Input: %s",text);
93 } 94 if (err == MAILIMF_NO_ERROR && res && strlen(res)) {
94 if (res) { 95// result = QString(res);
95 QString result(res); 96// qDebug("Res: %s, length: %i",res,strlen(res));
96 free(res);
97 return result;
98 } 97 }
99 return QString(text); 98 if (res) free(res);
99 return result;
100} 100}
101 101
102/* cp & paste from launcher */ 102/* cp & paste from launcher */
103QString AbstractMail::gen_attachment_id() 103QString AbstractMail::gen_attachment_id()
104{ 104{
105 QFile file( "/proc/sys/kernel/random/uuid" ); 105 QFile file( "/proc/sys/kernel/random/uuid" );
106 if (!file.open(IO_ReadOnly ) ) 106 if (!file.open(IO_ReadOnly ) )
107 return QString::null; 107 return QString::null;
108 108
109 QTextStream stream(&file); 109 QTextStream stream(&file);
110 110
111 return "{" + stream.read().stripWhiteSpace() + "}"; 111 return "{" + stream.read().stripWhiteSpace() + "}";
112} 112}
113 113
114int AbstractMail::createMbox(const QString&,const Folder*,const QString& delemiter,bool) 114int AbstractMail::createMbox(const QString&,const Folder*,const QString& delemiter,bool)
115{ 115{
116 return 0; 116 return 0;
117} 117}
118 118
119QString AbstractMail::defaultLocalfolder() 119QString AbstractMail::defaultLocalfolder()
120{ 120{
121 QString f = getenv( "HOME" ); 121 QString f = getenv( "HOME" );
122 f += "/Applications/opiemail/localmail"; 122 f += "/Applications/opiemail/localmail";
123 return f; 123 return f;
124} 124}
125 125
126QString AbstractMail::draftFolder() 126QString AbstractMail::draftFolder()
127{ 127{
128 return QString("Drafts"); 128 return QString("Drafts");
129} 129}
130 130
131/* temporary - will be removed when implemented in all classes */ 131/* temporary - will be removed when implemented in all classes */
132void AbstractMail::deleteMails(const QString &,QList<RecMail> &) 132void AbstractMail::deleteMails(const QString &,QList<RecMail> &)
133{ 133{
134} 134}
135 135
136void AbstractMail::mvcpAllMails(Folder*fromFolder,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) 136void AbstractMail::mvcpAllMails(Folder*fromFolder,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit)
137{ 137{
138 QList<RecMail> t; 138 QList<RecMail> t;
139 listMessages(fromFolder->getName(),t); 139 listMessages(fromFolder->getName(),t);
140 encodedString*st = 0; 140 encodedString*st = 0;
141 while (t.count()>0) { 141 while (t.count()>0) {
142 RecMail*r = t.at(0); 142 RecMail*r = t.at(0);
143 st = fetchRawBody(*r); 143 st = fetchRawBody(*r);
144 if (st) { 144 if (st) {
145 targetWrapper->storeMessage(st->Content(),st->Length(),targetFolder); 145 targetWrapper->storeMessage(st->Content(),st->Length(),targetFolder);
146 delete st; 146 delete st;
147 } 147 }