summaryrefslogtreecommitdiffabout
path: root/kabc/vcard
Side-by-side diff
Diffstat (limited to 'kabc/vcard') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/vcard/VCardEntity.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/kabc/vcard/VCardEntity.cpp b/kabc/vcard/VCardEntity.cpp
index b676cc7..2a9e275 100644
--- a/kabc/vcard/VCardEntity.cpp
+++ b/kabc/vcard/VCardEntity.cpp
@@ -103,64 +103,65 @@ VCardEntity::_parse()
}
#else
// this code is up to 17 (!) times faster
int start = 0;
QTime tim;
tim.start();
int i = 11;
int len = strRep_.length();
int num = 0;
while (i < len ) {
while( i < len ) {
int add = 1;
if ( strRep_.at(i) == 'B' ) {
if ( i+add < len && strRep_.at(i+add++) == 'E')
if ( i+add < len && strRep_.at(i+add++) == 'G')
if ( i+add < len && strRep_.at(i+add++) == 'I')
if ( i+add < len && strRep_.at(i+add++) == 'N')
if ( i+add < len && strRep_.at(i+add++) == ':')
if ( i+add < len && strRep_.at(i+add++) == 'V')
if ( i+add < len && strRep_.at(i+add++) == 'C')
if ( i+add < len && strRep_.at(i+add++) == 'A')
if ( i+add < len && strRep_.at(i+add++) == 'R')
if ( i+add < len && strRep_.at(i+add++) == 'D')
+ if ( i+add < len && (strRep_.at(i+add) == '\r' || strRep_.at(i+add) == '\n' ))
break;
}
++i;
}
if ( i <= len ) {
++num;
char* dat = strRep_.data()+start;
VCard * v = new VCard( QCString ( dat,i-start ) );
start = i;
cardList_.append(v);
v->parse();
}
i+= 11;
}
#endif
- //qDebug("***time %d found %d", tim.elapsed(), num);
+ qDebug("***time %d found %d", tim.elapsed(), num);
}
void
VCardEntity::_assemble()
{
VCardListIterator it(cardList_);
for (; it.current(); ++it)
strRep_ += it.current()->asString() + "\r\n"; // One CRLF for luck.
}
VCardList &
VCardEntity::cardList()
{
parse();
return cardList_;
}
void
VCardEntity::setCardList(const VCardList & l)
{
parse();
//US cardList_ = l;
VCardListIterator it(l);