browserutilities/recenturlstore/RecentUrlSrc/RecentUrlStore.cpp
branchRCL_3
changeset 44 800203832575
parent 26 cb62a4f66ebe
child 48 79859ed3eea9
equal deleted inserted replaced
42:a1a5d4e727e8 44:800203832575
   242 			domainLength = (domainLength > KDomainSize) ? KDomainSize : domainLength;
   242 			domainLength = (domainLength > KDomainSize) ? KDomainSize : domainLength;
   243 			TInt titleLength = (aTitle.Length() > KTitleSize) ? KTitleSize : aTitle.Length();
   243 			TInt titleLength = (aTitle.Length() > KTitleSize) ? KTitleSize : aTitle.Length();
   244 				
   244 				
   245 			HBufC* domain = aUrl.Mid(domainStart,domainLength).AllocLC();
   245 			HBufC* domain = aUrl.Mid(domainStart,domainLength).AllocLC();
   246 			domain->Des().LowerCase();
   246 			domain->Des().LowerCase();
   247 			HBufC* title = aTitle.Left(titleLength).AllocLC();
   247 			
   248 	
   248 			HBufC* title;
       
   249 			TInt pos = aTitle.Find(_L("'"));
       
   250 			if(pos >= 0)
       
   251                 {
       
   252                 TBuf<KTitleSize> buf;
       
   253                 TChar ch = '\'';
       
   254                 TInt nwLen = InsertEscapeSequence(ch,(TUint16*)buf.Ptr(),aTitle);
       
   255                 title = HBufC::NewLC(nwLen);
       
   256                 TPtr myPtr = title->Des();
       
   257                 myPtr.Copy(buf.Ptr(),nwLen);
       
   258                 }
       
   259 			else
       
   260 			    title = aTitle.Left(titleLength).AllocLC();
       
   261 			
   249 			// delete and re-insert
   262 			// delete and re-insert
   250 			iSQLStatement.Format(KSQLDelete, &aUrl);
   263 			iSQLStatement.Format(KSQLDelete, &aUrl);
   251 			dataBase.Execute(iSQLStatement);
   264 			dataBase.Execute(iSQLStatement);
   252 			iSQLStatement.Format(KSQLInsert, domain, &aUrl, title);
   265 			iSQLStatement.Format(KSQLInsert, domain, &aUrl, title);
   253 			dataBase.Execute(iSQLStatement);
   266 			dataBase.Execute(iSQLStatement);
   254 			
   267 			
   255 			CleanupStack::PopAndDestroy(3, &dataBase );
   268 			CleanupStack::PopAndDestroy(3, &dataBase );
   256 			}
   269 			}
   257 		}
   270 		}
   258 	}
   271 	}
   259 	
   272 
       
   273 //-----------------------------------------------------------------------------
       
   274 // CRecentUrlStore::InsertEscapeSequence
       
   275 // Insert the EscapeSequence.
       
   276 //-----------------------------------------------------------------------------
       
   277 TInt CRecentUrlStore::InsertEscapeSequence(TChar aChar,TUint16* aDestPtr,const TDesC& aString)
       
   278     {
       
   279     TUint16* src_ptr = (TUint16*)aString.Ptr();
       
   280     
       
   281     TInt src_iter = 0;
       
   282     TInt dest_iter = 0;
       
   283     TInt len = aString.Length();
       
   284     
       
   285     while((src_iter <= len) && (dest_iter <= KTitleSize))
       
   286         {
       
   287         *aDestPtr++ = *src_ptr++;
       
   288         src_iter++;
       
   289         dest_iter++;
       
   290         if(*(src_ptr-1)==aChar && dest_iter<=KTitleSize)
       
   291             {
       
   292             *aDestPtr++ = aChar;
       
   293             dest_iter++;
       
   294             }
       
   295         }
       
   296     --src_iter;
       
   297     return (--dest_iter);
       
   298     
       
   299     }
       
   300 
   260 //-----------------------------------------------------------------------------
   301 //-----------------------------------------------------------------------------
   261 // CRecentUrlStore::ClearData
   302 // CRecentUrlStore::ClearData
   262 // Clear the store.
   303 // Clear the store.
   263 //-----------------------------------------------------------------------------
   304 //-----------------------------------------------------------------------------
   264 EXPORT_C void CRecentUrlStore::ClearData ()
   305 EXPORT_C void CRecentUrlStore::ClearData ()