Index: historyimport.cpp =================================================================== --- historyimport.cpp (revision 969250) +++ historyimport.cpp (working copy) @@ -429,14 +429,15 @@ void HistoryImport::parsePidginTxt(QFile &file, struct Log *log, QDate date) { - QByteArray line; + QString line; QTime time; QDateTime dateTime; QString messageText, nick; bool incoming = false; // =false to make the compiler not complain + QTextStream txtStream(&file); - while (!file.atEnd()) { - line = file.readLine(); + while (!txtStream.atEnd()) { + line = txtStream.readLine(); if (line[0] == '(') { if (!messageText.isEmpty()) { @@ -469,12 +470,11 @@ return; messageText = line.mid(nickEnd + 1); - } - else if (line[0] == ' ') { + } else if (line[0] != 'C') { // an already started message is continued in this line int start = QRegExp("\\S").indexIn(line); messageText.append('\n' + line.mid(start)); - } + } } if (!messageText.isEmpty()) { struct Message message; @@ -489,71 +489,38 @@ void HistoryImport::parsePidginXml(QFile &file, struct Log * log, QDate date) { - bool incoming = false, inMessage = false, textComes = false; - QString messageText, status; + QString line; QTime time; QDateTime dateTime; + QString messageText, nick; + bool incoming = false; // =false to make the compiler not complain + QTextStream txtStream(&file); - // unfortunately pidgin doesn't write <... /> for the tag - QByteArray data = file.readAll(); - if (data.contains("", data.indexOf("
"); + QRegExp incomingRegExp(""); + QRegExp messageRegExp("","\n"); + struct Message message; message.incoming = incoming; message.text = messageText; message.timestamp = dateTime; log->messages.append(message); - messageText.clear(); - textComes = false; - inMessage = false; - } - + } } - if (reader.hasError()) { - // we ignore error 4: premature end of document - if (reader.error() != 4) { - int i, pos = 0; - for (i=1;i