summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2003-04-06 19:03:38 (UTC)
committer llornkcor <llornkcor>2003-04-06 19:03:38 (UTC)
commite6023e382d816195ff209b421f58ed5abfffe0e9 (patch) (unidiff)
tree786e10ac117b17f2eee1bfbaec9a1027a33e969a
parentb284e2c4dcddc4314f94933616d664b08587e29e (diff)
downloadopie-e6023e382d816195ff209b421f58ed5abfffe0e9.zip
opie-e6023e382d816195ff209b421f58ed5abfffe0e9.tar.gz
opie-e6023e382d816195ff209b421f58ed5abfffe0e9.tar.bz2
grumble
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mailit/emailhandler.cpp4
-rw-r--r--noncore/unsupported/mailit/emailhandler.cpp4
2 files changed, 4 insertions, 4 deletions
diff --git a/noncore/net/mailit/emailhandler.cpp b/noncore/net/mailit/emailhandler.cpp
index a086dfc..2144899 100644
--- a/noncore/net/mailit/emailhandler.cpp
+++ b/noncore/net/mailit/emailhandler.cpp
@@ -136,104 +136,104 @@ void EmailHandler::getMailByList(MailList *mailList)
136} 136}
137 137
138void EmailHandler::messageArrived(const QString &message, int id, uint size, bool complete) 138void EmailHandler::messageArrived(const QString &message, int id, uint size, bool complete)
139{ 139{
140 Email mail; 140 Email mail;
141 141
142 mail.rawMail = message; 142 mail.rawMail = message;
143 mail.serverId = id; 143 mail.serverId = id;
144 mail.size = size; 144 mail.size = size;
145 mail.downloaded = complete; 145 mail.downloaded = complete;
146 146
147 emit mailArrived(mail, FALSE); 147 emit mailArrived(mail, FALSE);
148} 148}
149 149
150bool EmailHandler::parse(QString in, QString lineShift, Email *mail) 150bool EmailHandler::parse(QString in, QString lineShift, Email *mail)
151{ 151{
152 QString temp, boundary; 152 QString temp, boundary;
153 int pos; 153 int pos;
154 QString delimiter, header, body, mimeHeader, mimeBody; 154 QString delimiter, header, body, mimeHeader, mimeBody;
155 QString content, contentType, contentAttribute, id, encoding; 155 QString content, contentType, contentAttribute, id, encoding;
156 QString fileName, storedName; 156 QString fileName, storedName;
157 int enclosureId = 0; 157 int enclosureId = 0;
158 158
159 mail->rawMail = in; 159 mail->rawMail = in;
160 mail->received = TRUE; 160 mail->received = TRUE;
161 mail->files.setAutoDelete(TRUE); 161 mail->files.setAutoDelete(TRUE);
162 162
163 temp = lineShift + "." + lineShift; 163 temp = lineShift + "." + lineShift;
164 164
165 if (in.right(temp.length()) != temp) { 165 if (in.right(temp.length()) != temp) {
166 qWarning(in.right(temp.length())); 166 qWarning(in.right(temp.length()));
167 qWarning(" . added at end of email as separator"); 167 qWarning(" . added at end of email as separator");
168 mail->rawMail += temp; 168 mail->rawMail += temp;
169 } 169 }
170 170
171 171
172 delimiter = lineShift + lineShift; // "\n\n" or "\r\n\r\n" 172 delimiter = lineShift + lineShift; // "\n\n" or "\r\n\r\n"
173 pos = in.find(delimiter, 0, FALSE); 173 pos = in.find(delimiter, 0, FALSE);
174 header = in.left(pos); 174 header = in.left(pos);
175 body = in.right(in.length() - pos - delimiter.length()); 175 body = in.right(in.length() - pos - delimiter.length());
176 if ((body.at(body.length()-2) == '.') && (body.at(body.length()-3) == '\n')) 176 if ((body.at(body.length()-2) == '.') && (body.at(body.length()-3) == '\n'))
177 body.truncate(body.length()-2); 177 body.truncate(body.length()-2);
178 178
179 TextParser p(header, lineShift); 179 TextParser p(header, lineShift);
180 180
181 if ((pos = p.find("FROM",':', 0, TRUE)) != -1) { 181 if ((pos = p.find("FROM",':', 0, TRUE)) != -1) {
182 pos++; 182 pos++;
183 if (p.separatorAt(pos) == ' ') { 183 if (p.separatorAt(pos) == ' ') {
184 mail->from = p.getString(&pos, '<'); 184 mail->from = p.getString(&pos, '<', false);
185 mail->from = mail->from.stripWhiteSpace(); 185 mail->from = mail->from.stripWhiteSpace();
186 if ( (mail->from.length() > 2) && (mail->from[0] == '"') ) { 186 if ( (mail->from.length() > 2) && (mail->from[0] == '"') ) {
187 mail->from = mail->from.left(mail->from.length() - 1); 187 mail->from = mail->from.left(mail->from.length() - 1);
188 mail->from = mail->from.right(mail->from.length() - 1); 188 mail->from = mail->from.right(mail->from.length() - 1);
189 } 189 }
190 pos++; 190 pos++;
191 mail->fromMail = p.getString(&pos, '>'); 191 mail->fromMail = p.getString(&pos, '>', false);
192 } else { 192 } else {
193 if ((p.separatorAt(pos) == '<') 193 if ((p.separatorAt(pos) == '<')
194 || (p.separatorAt(pos) == ' ')) //No name.. nasty 194 || (p.separatorAt(pos) == ' ')) //No name.. nasty
195 pos++; 195 pos++;
196 pos++; 196 pos++;
197 mail->fromMail = p.getString(&pos, 'z', TRUE); 197 mail->fromMail = p.getString(&pos, 'z', TRUE);
198 if (mail->fromMail.at(mail->fromMail.length()-1) == '>') 198 if (mail->fromMail.at(mail->fromMail.length()-1) == '>')
199 mail->fromMail.truncate(mail->fromMail.length() - 1); 199 mail->fromMail.truncate(mail->fromMail.length() - 1);
200 mail->from=mail->fromMail; 200 mail->from=mail->fromMail;
201 } 201 }
202 } 202 }
203 if ((pos = p.find("SUBJECT",':', 0, TRUE)) != -1) { 203 if ((pos = p.find("SUBJECT",':', 0, TRUE)) != -1) {
204 pos++; 204 pos++;
205 mail->subject = p.getString(&pos, 'z', TRUE); 205 mail->subject = p.getString(&pos, 'z', TRUE);
206 } 206 }
207 if ((pos = p.find("DATE",':', 0, TRUE)) != -1) { 207 if ((pos = p.find("DATE",':', 0, TRUE)) != -1) {
208 pos++; 208 pos++;
209 mail->date = p.getString(&pos, 'z', true); 209 mail->date = p.getString(&pos, 'z', true);
210 } 210 }
211 if ((pos = p.find("TO",':', 0, TRUE)) != -1) { 211 if ((pos = p.find("TO",':', 0, TRUE)) != -1) {
212 pos++; 212 pos++;
213 mail->recipients.append (p.getString(&pos, 'z', TRUE) ); 213 mail->recipients.append (p.getString(&pos, 'z', TRUE) );
214 } 214 }
215 if ((pos = p.find("MESSAGE",'-', 0, TRUE)) != -1) { 215 if ((pos = p.find("MESSAGE",'-', 0, TRUE)) != -1) {
216 pos++; 216 pos++;
217 if ( (p.wordAt(pos).upper() == "ID") && 217 if ( (p.wordAt(pos).upper() == "ID") &&
218 (p.separatorAt(pos) == ':') ) { 218 (p.separatorAt(pos) == ':') ) {
219 219
220 id = p.getString(&pos, 'z', TRUE); 220 id = p.getString(&pos, 'z', TRUE);
221 mail->id = id; 221 mail->id = id;
222 } 222 }
223 } 223 }
224 224
225 pos = 0; 225 pos = 0;
226 while ( ((pos = p.find("MIME",'-', pos, TRUE)) != -1) ) { 226 while ( ((pos = p.find("MIME",'-', pos, TRUE)) != -1) ) {
227 pos++; 227 pos++;
228 if ( (p.wordAt(pos).upper() == "VERSION") && 228 if ( (p.wordAt(pos).upper() == "VERSION") &&
229 (p.separatorAt(pos) == ':') ) { 229 (p.separatorAt(pos) == ':') ) {
230 pos++; 230 pos++;
231 if (p.getString(&pos, 'z', true) == "1.0") { 231 if (p.getString(&pos, 'z', true) == "1.0") {
232 mail->mimeType = 1; 232 mail->mimeType = 1;
233 } 233 }
234 } 234 }
235 } 235 }
236 236
237 if (mail->mimeType == 1) { 237 if (mail->mimeType == 1) {
238 boundary = ""; 238 boundary = "";
239 if ((pos = p.find("BOUNDARY", '=', 0, TRUE)) != -1) { 239 if ((pos = p.find("BOUNDARY", '=', 0, TRUE)) != -1) {
diff --git a/noncore/unsupported/mailit/emailhandler.cpp b/noncore/unsupported/mailit/emailhandler.cpp
index a086dfc..2144899 100644
--- a/noncore/unsupported/mailit/emailhandler.cpp
+++ b/noncore/unsupported/mailit/emailhandler.cpp
@@ -136,104 +136,104 @@ void EmailHandler::getMailByList(MailList *mailList)
136} 136}
137 137
138void EmailHandler::messageArrived(const QString &message, int id, uint size, bool complete) 138void EmailHandler::messageArrived(const QString &message, int id, uint size, bool complete)
139{ 139{
140 Email mail; 140 Email mail;
141 141
142 mail.rawMail = message; 142 mail.rawMail = message;
143 mail.serverId = id; 143 mail.serverId = id;
144 mail.size = size; 144 mail.size = size;
145 mail.downloaded = complete; 145 mail.downloaded = complete;
146 146
147 emit mailArrived(mail, FALSE); 147 emit mailArrived(mail, FALSE);
148} 148}
149 149
150bool EmailHandler::parse(QString in, QString lineShift, Email *mail) 150bool EmailHandler::parse(QString in, QString lineShift, Email *mail)
151{ 151{
152 QString temp, boundary; 152 QString temp, boundary;
153 int pos; 153 int pos;
154 QString delimiter, header, body, mimeHeader, mimeBody; 154 QString delimiter, header, body, mimeHeader, mimeBody;
155 QString content, contentType, contentAttribute, id, encoding; 155 QString content, contentType, contentAttribute, id, encoding;
156 QString fileName, storedName; 156 QString fileName, storedName;
157 int enclosureId = 0; 157 int enclosureId = 0;
158 158
159 mail->rawMail = in; 159 mail->rawMail = in;
160 mail->received = TRUE; 160 mail->received = TRUE;
161 mail->files.setAutoDelete(TRUE); 161 mail->files.setAutoDelete(TRUE);
162 162
163 temp = lineShift + "." + lineShift; 163 temp = lineShift + "." + lineShift;
164 164
165 if (in.right(temp.length()) != temp) { 165 if (in.right(temp.length()) != temp) {
166 qWarning(in.right(temp.length())); 166 qWarning(in.right(temp.length()));
167 qWarning(" . added at end of email as separator"); 167 qWarning(" . added at end of email as separator");
168 mail->rawMail += temp; 168 mail->rawMail += temp;
169 } 169 }
170 170
171 171
172 delimiter = lineShift + lineShift; // "\n\n" or "\r\n\r\n" 172 delimiter = lineShift + lineShift; // "\n\n" or "\r\n\r\n"
173 pos = in.find(delimiter, 0, FALSE); 173 pos = in.find(delimiter, 0, FALSE);
174 header = in.left(pos); 174 header = in.left(pos);
175 body = in.right(in.length() - pos - delimiter.length()); 175 body = in.right(in.length() - pos - delimiter.length());
176 if ((body.at(body.length()-2) == '.') && (body.at(body.length()-3) == '\n')) 176 if ((body.at(body.length()-2) == '.') && (body.at(body.length()-3) == '\n'))
177 body.truncate(body.length()-2); 177 body.truncate(body.length()-2);
178 178
179 TextParser p(header, lineShift); 179 TextParser p(header, lineShift);
180 180
181 if ((pos = p.find("FROM",':', 0, TRUE)) != -1) { 181 if ((pos = p.find("FROM",':', 0, TRUE)) != -1) {
182 pos++; 182 pos++;
183 if (p.separatorAt(pos) == ' ') { 183 if (p.separatorAt(pos) == ' ') {
184 mail->from = p.getString(&pos, '<'); 184 mail->from = p.getString(&pos, '<', false);
185 mail->from = mail->from.stripWhiteSpace(); 185 mail->from = mail->from.stripWhiteSpace();
186 if ( (mail->from.length() > 2) && (mail->from[0] == '"') ) { 186 if ( (mail->from.length() > 2) && (mail->from[0] == '"') ) {
187 mail->from = mail->from.left(mail->from.length() - 1); 187 mail->from = mail->from.left(mail->from.length() - 1);
188 mail->from = mail->from.right(mail->from.length() - 1); 188 mail->from = mail->from.right(mail->from.length() - 1);
189 } 189 }
190 pos++; 190 pos++;
191 mail->fromMail = p.getString(&pos, '>'); 191 mail->fromMail = p.getString(&pos, '>', false);
192 } else { 192 } else {
193 if ((p.separatorAt(pos) == '<') 193 if ((p.separatorAt(pos) == '<')
194 || (p.separatorAt(pos) == ' ')) //No name.. nasty 194 || (p.separatorAt(pos) == ' ')) //No name.. nasty
195 pos++; 195 pos++;
196 pos++; 196 pos++;
197 mail->fromMail = p.getString(&pos, 'z', TRUE); 197 mail->fromMail = p.getString(&pos, 'z', TRUE);
198 if (mail->fromMail.at(mail->fromMail.length()-1) == '>') 198 if (mail->fromMail.at(mail->fromMail.length()-1) == '>')
199 mail->fromMail.truncate(mail->fromMail.length() - 1); 199 mail->fromMail.truncate(mail->fromMail.length() - 1);
200 mail->from=mail->fromMail; 200 mail->from=mail->fromMail;
201 } 201 }
202 } 202 }
203 if ((pos = p.find("SUBJECT",':', 0, TRUE)) != -1) { 203 if ((pos = p.find("SUBJECT",':', 0, TRUE)) != -1) {
204 pos++; 204 pos++;
205 mail->subject = p.getString(&pos, 'z', TRUE); 205 mail->subject = p.getString(&pos, 'z', TRUE);
206 } 206 }
207 if ((pos = p.find("DATE",':', 0, TRUE)) != -1) { 207 if ((pos = p.find("DATE",':', 0, TRUE)) != -1) {
208 pos++; 208 pos++;
209 mail->date = p.getString(&pos, 'z', true); 209 mail->date = p.getString(&pos, 'z', true);
210 } 210 }
211 if ((pos = p.find("TO",':', 0, TRUE)) != -1) { 211 if ((pos = p.find("TO",':', 0, TRUE)) != -1) {
212 pos++; 212 pos++;
213 mail->recipients.append (p.getString(&pos, 'z', TRUE) ); 213 mail->recipients.append (p.getString(&pos, 'z', TRUE) );
214 } 214 }
215 if ((pos = p.find("MESSAGE",'-', 0, TRUE)) != -1) { 215 if ((pos = p.find("MESSAGE",'-', 0, TRUE)) != -1) {
216 pos++; 216 pos++;
217 if ( (p.wordAt(pos).upper() == "ID") && 217 if ( (p.wordAt(pos).upper() == "ID") &&
218 (p.separatorAt(pos) == ':') ) { 218 (p.separatorAt(pos) == ':') ) {
219 219
220 id = p.getString(&pos, 'z', TRUE); 220 id = p.getString(&pos, 'z', TRUE);
221 mail->id = id; 221 mail->id = id;
222 } 222 }
223 } 223 }
224 224
225 pos = 0; 225 pos = 0;
226 while ( ((pos = p.find("MIME",'-', pos, TRUE)) != -1) ) { 226 while ( ((pos = p.find("MIME",'-', pos, TRUE)) != -1) ) {
227 pos++; 227 pos++;
228 if ( (p.wordAt(pos).upper() == "VERSION") && 228 if ( (p.wordAt(pos).upper() == "VERSION") &&
229 (p.separatorAt(pos) == ':') ) { 229 (p.separatorAt(pos) == ':') ) {
230 pos++; 230 pos++;
231 if (p.getString(&pos, 'z', true) == "1.0") { 231 if (p.getString(&pos, 'z', true) == "1.0") {
232 mail->mimeType = 1; 232 mail->mimeType = 1;
233 } 233 }
234 } 234 }
235 } 235 }
236 236
237 if (mail->mimeType == 1) { 237 if (mail->mimeType == 1) {
238 boundary = ""; 238 boundary = "";
239 if ((pos = p.find("BOUNDARY", '=', 0, TRUE)) != -1) { 239 if ((pos = p.find("BOUNDARY", '=', 0, TRUE)) != -1) {