[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-pim
Subject:    [Kde-pim] [PATCH] Safe QByteArray->UTF8 conversion
From:       Szombathelyi "György" <gyurco () freemail ! hu>
Date:       2004-02-22 16:11:52
Message-ID: 200402221711.53384.gyurco () freemail ! hu
[Download RAW message or body]

Hello!

I think this patch should be committed to both HEAD and 3.2 branches. It adds 
safety to QByteArray(which may not terminated by '\0') to QString::fromUtf8() 
conversion.

Bye,
György

____________________________________________________________________
Miert fizetsz az internetert? Korlatlan, ingyenes internet hozzaferes a FreeStarttol.
Probald ki most! http://www.freestart.hu

["kaddressbook.diff" (text/x-diff)]

Index: ldapsearchdialog.cpp
===================================================================
RCS file: /home/kde/kdepim/kaddressbook/ldapsearchdialog.cpp,v
retrieving revision 1.13
diff -u -r1.13 ldapsearchdialog.cpp
--- ldapsearchdialog.cpp	12 Feb 2004 00:24:44 -0000	1.13
+++ ldapsearchdialog.cpp	22 Feb 2004 16:07:32 -0000
@@ -36,6 +36,11 @@
 
 #include "ldapsearchdialog.h"
 
+static QString asUtf8( const QByteArray &val )
+{
+  return QString::fromUtf8( val.data(), val.size() );
+}
+
 static QString join( const KABC::LdapAttrValue& lst, const QString& sep )
 {
   QString res;
@@ -44,7 +49,7 @@
     if ( alredy )
       res += sep;
     alredy = TRUE;
-    res += QString::fromUtf8( *it );
+    res += asUtf8( *it );
   }
   return res;
 }
@@ -371,9 +376,9 @@
   ContactListItem* cli = static_cast<ContactListItem*>( \
mResultListView->firstChild() );  while ( cli ) {
     if ( cli->isSelected() ) {
-      QString email = QString::fromUtf8( cli->mAttrs[ "mail" ].first() \
).stripWhiteSpace(); +      QString email = asUtf8( cli->mAttrs[ "mail" ].first() \
).stripWhiteSpace();  if ( !email.isEmpty() ) {
-        QString name = QString::fromUtf8( cli->mAttrs[ "cn" ].first() \
).stripWhiteSpace(); +        QString name = asUtf8( cli->mAttrs[ "cn" ].first() \
).stripWhiteSpace();  if ( name.isEmpty() ) {
           result << email;
         } else {
@@ -405,53 +410,53 @@
       KABC::Addressee addr;
 
       // name
-      addr.setNameFromString( QString::fromUtf8( cli->mAttrs["cn"].first() ) );
+      addr.setNameFromString( asUtf8( cli->mAttrs["cn"].first() ) );
 
       // email
       KABC::LdapAttrValue lst = cli->mAttrs["mail"];
       KABC::LdapAttrValue::ConstIterator it = lst.begin();
       bool pref = true;
       if ( it != lst.end() ) {
-        addr.insertEmail( QString::fromUtf8( *it ), pref );
+        addr.insertEmail( asUtf8( *it ), pref );
         pref = false;
         ++it;
       }
 
-      addr.setOrganization(QString::fromUtf8( cli->mAttrs[ "o" ].first() ) );
+      addr.setOrganization( asUtf8( cli->mAttrs[ "o" ].first() ) );
       if (addr.organization().isEmpty())
-         addr.setOrganization(QString::fromUtf8( cli->mAttrs[ "Company" ].first() ) \
); +         addr.setOrganization( asUtf8( cli->mAttrs[ "Company" ].first() ) );
 
-      addr.insertCustom("KADDRESSBOOK", "X-Department", QString::fromUtf8( \
cli->mAttrs[ "department" ].first() ) ); +      addr.insertCustom("KADDRESSBOOK", \
"X-Department", asUtf8( cli->mAttrs[ "department" ].first() ) );  
       // Address
       KABC::Address workAddr(KABC::Address::Work);
 
-      workAddr.setStreet(QString::fromUtf8( cli->mAttrs[ "street" ].first()) );
-      workAddr.setLocality(QString::fromUtf8( cli->mAttrs[ "l" ].first()) );
-      workAddr.setRegion(QString::fromUtf8( cli->mAttrs[ "st" ].first()));
-      workAddr.setPostalCode(QString::fromUtf8( cli->mAttrs[ "postalCode" ].first()) \
                );
-      workAddr.setCountry(QString::fromUtf8( cli->mAttrs[ "co" ].first()) );
+      workAddr.setStreet( asUtf8( cli->mAttrs[ "street" ].first()) );
+      workAddr.setLocality( asUtf8( cli->mAttrs[ "l" ].first()) );
+      workAddr.setRegion( asUtf8( cli->mAttrs[ "st" ].first()));
+      workAddr.setPostalCode( asUtf8( cli->mAttrs[ "postalCode" ].first()) );
+      workAddr.setCountry( asUtf8( cli->mAttrs[ "co" ].first()) );
 
       addr.insertAddress( workAddr );
 
       // phone
-      KABC::PhoneNumber homeNr = QString::fromUtf8( cli->mAttrs[  "homePhone" \
].first() ); +      KABC::PhoneNumber homeNr = asUtf8( cli->mAttrs[  "homePhone" \
].first() );  homeNr.setType(KABC::PhoneNumber::Home);
       addr.insertPhoneNumber(homeNr);
 
-      KABC::PhoneNumber workNr = QString::fromUtf8( cli->mAttrs[  "telephoneNumber" \
].first() ); +      KABC::PhoneNumber workNr = asUtf8( cli->mAttrs[  \
"telephoneNumber" ].first() );  workNr.setType(KABC::PhoneNumber::Work);
       addr.insertPhoneNumber(workNr);
 
-      KABC::PhoneNumber faxNr = QString::fromUtf8( cli->mAttrs[  \
"facsimileTelephoneNumber" ].first() ); +      KABC::PhoneNumber faxNr = asUtf8( \
cli->mAttrs[  "facsimileTelephoneNumber" ].first() );  \
faxNr.setType(KABC::PhoneNumber::Fax);  addr.insertPhoneNumber(faxNr);
 
-      KABC::PhoneNumber cellNr = QString::fromUtf8( cli->mAttrs[  "mobile" ].first() \
); +      KABC::PhoneNumber cellNr = asUtf8( cli->mAttrs[  "mobile" ].first() );
       cellNr.setType(KABC::PhoneNumber::Cell);
       addr.insertPhoneNumber(cellNr);
 
-      KABC::PhoneNumber pagerNr = QString::fromUtf8( cli->mAttrs[  "pager" ].first() \
); +      KABC::PhoneNumber pagerNr = asUtf8( cli->mAttrs[  "pager" ].first() );
       pagerNr.setType(KABC::PhoneNumber::Pager);
       addr.insertPhoneNumber(pagerNr);
 



_______________________________________________
kde-pim mailing list
kde-pim@mail.kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
kde-pim home page at http://pim.kde.org/

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic