rev 3375 - trunk/packages/kdelibs/debian/patches

Christopher Martin chrsmrtn at costa.debian.org
Tue Mar 28 18:30:36 UTC 2006


Author: chrsmrtn
Date: 2006-03-28 18:30:32 +0000 (Tue, 28 Mar 2006)
New Revision: 3375

Added:
   trunk/packages/kdelibs/debian/patches/01_kdelibs_branch_r523640.diff
Removed:
   trunk/packages/kdelibs/debian/patches/01_kdelibs_branch_r502693.diff
   trunk/packages/kdelibs/debian/patches/01_kdelibs_branch_r506549.diff
   trunk/packages/kdelibs/debian/patches/01_kdelibs_branch_r515119.diff
   trunk/packages/kdelibs/debian/patches/01_kdelibs_branch_r517245.diff
Log:
Remove old kdelibs patches, and add new branch pull.


Deleted: trunk/packages/kdelibs/debian/patches/01_kdelibs_branch_r502693.diff

Deleted: trunk/packages/kdelibs/debian/patches/01_kdelibs_branch_r506549.diff

Deleted: trunk/packages/kdelibs/debian/patches/01_kdelibs_branch_r515119.diff

Deleted: trunk/packages/kdelibs/debian/patches/01_kdelibs_branch_r517245.diff

Added: trunk/packages/kdelibs/debian/patches/01_kdelibs_branch_r523640.diff
===================================================================
--- trunk/packages/kdelibs/debian/patches/01_kdelibs_branch_r523640.diff	2006-03-28 18:21:49 UTC (rev 3374)
+++ trunk/packages/kdelibs/debian/patches/01_kdelibs_branch_r523640.diff	2006-03-28 18:30:32 UTC (rev 3375)
@@ -0,0 +1,1190 @@
+#DPATCHLEVEL=0
+--- kate/plugins/kdatatool/ktexteditor_kdatatool.desktop	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ kate/plugins/kdatatool/ktexteditor_kdatatool.desktop	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -83,7 +83,7 @@
+ Comment[cy]=Alluogi offer data fel theawrws a cywirydd sillafu (os maent wedi'u gosod)
+ Comment[da]=Aktivér dataværktøjer som begrebsordbog og stavekontrol (hvis installeret)
+ Comment[de]=Aktivierung von Dienstprogrammen wie Thesaurus und Rechtschreibprüfung (falls installiert)
+-Comment[el]=Ενεργοποίηση εργαλειών δεδομένων όπως ο θησαυρός λέξεων και ο ορθογραφικός έλεγχος (εάν είναι εγκατεστημένα)
++Comment[el]=Ενεργοποίηση εργαλειών δεδομένων όπως ο θησαυρός λέξεων και ο ορθογραφικός έλεγχος (αν είναι εγκατεστημένα)
+ Comment[eo]=Enŝaltu datumiloj kiel "thesaurus" kaj literumado (se instalita)
+ Comment[es]=Activa herramientas como el thesaurus y el corrector ortográfico (si instalados)
+ Comment[et]=Andmete tööriistad, näiteks thesaurus ja õigekirja kontroll
+--- kate/plugins/insertfile/ktexteditor_insertfile.desktop	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ kate/plugins/insertfile/ktexteditor_insertfile.desktop	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -20,7 +20,7 @@
+ Name[fa]=متصل‌کننده‌ی پرونده‌ی ورود KTextEditor
+ Name[fi]=KTextEditorin 'Lisää tiedosto'-laajennus
+ Name[fr]=Module externe du fichier d'insertion de KTextEditor
+-Name[fy]=KTextEditor-plugin foar it ynfoegjen fan triemen
++Name[fy]=KTextEditor-plugin foar it ynfoegjen fan triemmen
+ Name[ga]=Breiseán KTextEditor chun comhad a ionsá
+ Name[gl]=Plugin de Inserzón de Arquivo de KTextEditor
+ Name[he]=תוסף הוספת קובץ ל־KTextEditor
+--- mimetypes/all.desktop	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ mimetypes/all.desktop	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -24,7 +24,7 @@
+ Comment[fa]=تمام پرونده‌ها و پوشه‌ها
+ Comment[fi]=Kaikki tiedostot ja kansiot
+ Comment[fr]=Tous les fichiers et dossiers
+-Comment[fy]=Alle Triemen en Mappen
++Comment[fy]=Alle Triemmen en Mappen
+ Comment[ga]=Gach Comhad agus Comhadlann
+ Comment[gl]=Todos os Arquivos e Cartafois
+ Comment[he]=כל הקבצים והתיקיות
+--- mimetypes/image/x-djvu-2.desktop	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ mimetypes/image/x-djvu-2.desktop	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -7,6 +7,7 @@
+ Comment=DjVu Document
+ Comment[af]=DjVu Dokument
+ Comment[bg]=Документ DjVu
++Comment[br]=Teul DjVu
+ Comment[ca]=Document DjVu
+ Comment[cs]=DjVu dokument
+ Comment[da]=DjVU-dokument
+--- mimetypes/image/x-djvu.desktop	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ mimetypes/image/x-djvu.desktop	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -7,6 +7,7 @@
+ Comment=DjVu Document
+ Comment[af]=DjVu Dokument
+ Comment[bg]=Документ DjVu
++Comment[br]=Teul DjVu
+ Comment[ca]=Document DjVu
+ Comment[cs]=DjVu dokument
+ Comment[da]=DjVU-dokument
+--- mimetypes/image/x-raw.desktop	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ mimetypes/image/x-raw.desktop	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -6,6 +6,7 @@
+ Patterns=*.raw;*.RAW;*.dcr;*.DCR;*.dng;*.DNG;*.crw;*.CRW;*.cr2,*.CR2;*.nef;*.NEF;*.mrw;*.MRW;
+ Comment=RAW Camera Image
+ Comment[ca]=Fitxer de càmera RAW
++Comment[cs]=RAW soubor z fotoaparátu
+ Comment[da]=Ubehandlet kamerabillede
+ Comment[de]=Kamera-Bild im RAW-Format
+ Comment[el]=RAW εικόνα κάμερας
+@@ -27,6 +28,7 @@
+ Comment[pt]=Imagem RAW da Máquina Fotográfica
+ Comment[pt_BR]=Imagem RAW da Máquina Fotográfica
+ Comment[ro]=Imagine foto brută
++Comment[sl]=Slika RAW s fotoaparata
+ Comment[sr]=Сирова слика са камере
+ Comment[sr at Latn]=Sirova slika sa kamere
+ Comment[sv]=Obehandlad kamerafil
+--- mimetypes/allfiles.desktop	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ mimetypes/allfiles.desktop	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -24,7 +24,7 @@
+ Comment[fa]=تمام پرونده‌ها
+ Comment[fi]=Kaikki tiedostot
+ Comment[fr]=Tous les fichiers
+-Comment[fy]=Alle triemen
++Comment[fy]=Alle triemmen
+ Comment[ga]=Gach Comhad
+ Comment[gl]=Todos os Arquivos
+ Comment[he]=כל הקבצים
+--- mimetypes/application/mbox.desktop	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ mimetypes/application/mbox.desktop	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -4,6 +4,7 @@
+ MimeType=application/mbox
+ Patterns=
+ Comment=MBOX Mail Folder
++Comment[br]=Renkell postel MBOX
+ Comment[ca]=Carpeta de correu MBOX
+ Comment[cs]=Složka pošty MBOX
+ Comment[da]=MBOX mappe til e-mail
+--- mimetypes/text/x-diff.desktop	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ mimetypes/text/x-diff.desktop	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -22,7 +22,7 @@
+ Comment[fa]=اختلاف‌های میان پرونده‌ها
+ Comment[fi]=Tiedostojen väliset erot
+ Comment[fr]=Différences entre fichiers
+-Comment[fy]=Ferskil tusken triemen
++Comment[fy]=Ferskil tusken triemmen
+ Comment[ga]=Difríochtaí idir chomhaid
+ Comment[gl]=Diferéncias Entre Arquivos
+ Comment[he]=הבדלים בין קבצים
+--- mimetypes/text/x-bibtex.desktop	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ mimetypes/text/x-bibtex.desktop	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -7,6 +7,7 @@
+ Comment[be]=Бібліяграфічныя дадзеныя (Bibtex)
+ Comment[bg]=Библиографични данни (Bibtex)
+ Comment[bn]=গ্রন্থতালিকা (বিবটেক)
++Comment[br]=Levrlennadur roadoù (Bibtex)
+ Comment[bs]=Bibliografski podaci (Bibtex)
+ Comment[ca]=Dades bibliogràfiques (Bibtex)
+ Comment[cs]=Bibliografická data (bibtex)
+--- mimetypes/text/x-katefilelist.desktop	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ mimetypes/text/x-katefilelist.desktop	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -20,7 +20,7 @@
+ Comment[fa]=سیاهه‌ی پرونده (برای متصل‌کننده‌ی بارکننده‌ی سیاهه‌ی پرونده‌ی Kate)
+ Comment[fi]=Tiedostolista (Kate-tiedostolistalisäosalle)
+ Comment[fr]=Liste de fichiers (pour le chargeur de listes de fichiers de Kate)
+-Comment[fy]=Triemenlist (foar de Kate-triemenplugin)
++Comment[fy]=Triemmenlist (foar de Kate-triemmenplugin)
+ Comment[gl]=Lista de Arquivos (para o Plugin Carregador de Lista de Arquivos de Kate)
+ Comment[he]=רשימת קבצים (עבור תוסף טעינת רשימות הקבצים של Kate)
+ Comment[hi]=फ़ाइल सूची(के-एटीई फ़ाइल लिस्ट लोडर प्लगिन के लिए)
+--- kioslave/http/http.cc	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ kioslave/http/http.cc	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -2712,6 +2712,7 @@
+ 
+   QString dispositionType; // In case we get a Content-Disposition type
+   QString dispositionFilename; // In case we get a Content-Disposition filename
++
+   QString mediaValue;
+   QString mediaAttribute;
+ 
+@@ -3279,6 +3280,11 @@
+                       << dispositionFilename<< endl;
+       }
+     }
++    else if(strncasecmp(buf, "Content-Language:", 17) == 0) {
++      QString language = QString::fromLatin1(trimLead(buf+17)).stripWhiteSpace();
++      if (!language.isEmpty())
++        setMetaData("content-language", language);
++    }
+     else if (strncasecmp(buf, "Proxy-Connection:", 17) == 0)
+     {
+       if (strncasecmp(trimLead(buf + 17), "Close", 5) == 0)
+--- kimgio/psd.kimgio	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ kimgio/psd.kimgio	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -24,6 +24,7 @@
+ Name[ja]=Adobe Photoshop 画像
+ Name[km]= រូបភាព​របស់ Adobe Photoshop
+ Name[lb]=Adobe-Photoshop-Bild
++Name[ms]=Imej Adobe Photoshop
+ Name[nb]=Adobe Photoshop-bilde
+ Name[nds]=Adobe-Photoshop-Bild
+ Name[nl]=Adobe Photoshop-afbeelding
+--- kio/kio/ktar.cpp	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ kio/kio/ktar.cpp	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -301,10 +301,10 @@
+             delete filterDev;
+             return false;
+         }
+-        Q_LONG len;
+-        while ( !filterDev->atEnd() ) {
++        Q_LONG len = -1;
++        while ( !filterDev->atEnd() && len != 0) {
+             len = filterDev->readBlock(buffer.data(),buffer.size());
+-            if ( len <= 0 ) { // corrupted archive
++            if ( len < 0 ) { // corrupted archive
+                 delete filterDev;
+                 return false;
+             }
+--- kio/kio/krun.cpp	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ kio/kio/krun.cpp	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -660,8 +660,17 @@
+   if ( mx1.expandMacrosShellQuote( exec ) && !mx1.hasUrls ) {
+     Q_ASSERT( supportedProtocols.isEmpty() ); // huh? If you support protocols you need %u or %U...
+   } else {
+-    if ( supportedProtocols.isEmpty() ) // compat: assume KIO if not set
+-      supportedProtocols.append( "KIO" );
++    if ( supportedProtocols.isEmpty() )
++    {
++      // compat mode: assume KIO if not set and it's a KDE app
++      QStringList categories = _service.property("Categories").toStringList();
++      if ( categories.find("KDE") != categories.end() )
++         supportedProtocols.append( "KIO" );
++      else { // if no KDE app, be a bit over-generic
++         supportedProtocols.append( "http");
++         supportedProtocols.append( "ftp");
++      }
++    }
+   }
+   kdDebug(7010) << "supportedProtocols:" << supportedProtocols << endl;
+ 
+--- kio/kio/job.cpp	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ kio/kio/job.cpp	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -2786,7 +2786,7 @@
+     {
+         m_conflictError = job->error();
+         if ( (m_conflictError == ERR_DIR_ALREADY_EXIST)
+-             || (m_conflictError == ERR_FILE_ALREADY_EXIST) )
++             || (m_conflictError == ERR_FILE_ALREADY_EXIST) ) // can't happen?
+         {
+             KURL oldURL = ((SimpleJob*)job)->url();
+             // Should we skip automatically ?
+@@ -3050,7 +3050,8 @@
+             m_conflictError = job->error(); // save for later
+             // Existing dest ?
+             if ( ( m_conflictError == ERR_FILE_ALREADY_EXIST )
+-                 || ( m_conflictError == ERR_DIR_ALREADY_EXIST ) )
++                 || ( m_conflictError == ERR_DIR_ALREADY_EXIST )
++                 || ( m_conflictError == ERR_IDENTICAL_FILES ) )
+             {
+                 subjobs.remove( job );
+                 assert ( subjobs.isEmpty() );
+@@ -3132,7 +3133,8 @@
+         m_reportTimer->stop();
+ 
+     if ( ( m_conflictError == ERR_FILE_ALREADY_EXIST )
+-      || ( m_conflictError == ERR_DIR_ALREADY_EXIST ) )
++         || ( m_conflictError == ERR_DIR_ALREADY_EXIST )
++         || ( m_conflictError == ERR_IDENTICAL_FILES ) )
+     {
+         // Its modification time:
+         time_t destmtime = (time_t)-1;
+@@ -3161,6 +3163,7 @@
+         // Offer overwrite only if the existing thing is a file
+         // If src==dest, use "overwrite-itself"
+         RenameDlg_Mode mode;
++        bool isDir = true;
+ 
+         if( m_conflictError == ERR_DIR_ALREADY_EXIST )
+             mode = (RenameDlg_Mode) 0;
+@@ -3172,6 +3175,7 @@
+                 mode = M_OVERWRITE_ITSELF;
+             else
+                 mode = M_OVERWRITE;
++            isDir = false;
+         }
+ 
+ 	if ( m_bSingleFileCopy )
+@@ -3179,7 +3183,7 @@
+ 	else
+             mode = (RenameDlg_Mode) ( mode | M_MULTI | M_SKIP );
+ 
+-        res = Observer::self()->open_RenameDlg( this, m_conflictError == ERR_FILE_ALREADY_EXIST ?
++        res = Observer::self()->open_RenameDlg( this, !isDir ?
+                                 i18n("File Already Exists") : i18n("Already Exists as Folder"),
+                                 (*it).uSource.url(),
+                                 (*it).uDest.url(),
+@@ -3602,7 +3606,9 @@
+         // In that case it's the _same_ dir, we don't want to copy+del (data loss!)
+         if ( m_currentSrcURL.isLocalFile() && m_currentSrcURL.url(-1) != dest.url(-1) &&
+              m_currentSrcURL.url(-1).lower() == dest.url(-1).lower() &&
+-             ( err == ERR_FILE_ALREADY_EXIST || err == ERR_DIR_ALREADY_EXIST ) )
++             ( err == ERR_FILE_ALREADY_EXIST ||
++               err == ERR_DIR_ALREADY_EXIST ||
++               err == ERR_IDENTICAL_FILES ) )
+         {
+             kdDebug(7007) << "Couldn't rename directly, dest already exists. Detected special case of lower/uppercase renaming in same dir, try with 2 rename calls" << endl;
+             QCString _src( QFile::encodeName(m_currentSrcURL.path()) );
+@@ -3643,7 +3649,9 @@
+         Q_ASSERT( m_currentSrcURL == *m_currentStatSrc );
+ 
+         // Existing dest?
+-        if ( ( err == ERR_DIR_ALREADY_EXIST || err == ERR_FILE_ALREADY_EXIST )
++        if ( ( err == ERR_DIR_ALREADY_EXIST ||
++               err == ERR_FILE_ALREADY_EXIST ||
++               err == ERR_IDENTICAL_FILES )
+              && isInteractive() )
+         {
+             if (m_reportTimer)
+@@ -3693,7 +3701,7 @@
+ 
+                 RenameDlg_Result r = Observer::self()->open_RenameDlg(
+                     this,
+-                    err == ERR_FILE_ALREADY_EXIST ? i18n("File Already Exists") : i18n("Already Exists as Folder"),
++                    err != ERR_DIR_ALREADY_EXIST ? i18n("File Already Exists") : i18n("Already Exists as Folder"),
+                     m_currentSrcURL.url(),
+                     dest.url(),
+                     mode, newPath,
+--- kabc/plugins/file/resourcefile.cpp	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ kabc/plugins/file/resourcefile.cpp	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -2,6 +2,7 @@
+     This file is part of libkabc.
+ 
+     Copyright (c) 2001,2003 Cornelius Schumacher <schumacher at kde.org>
++    Copyright (c) 2006 Tom Abers <tomalbers at kde.nl>
+ 
+     This library is free software; you can redistribute it and/or
+     modify it under the terms of the GNU Library General Public
+@@ -37,6 +38,9 @@
+ #include <ksavefile.h>
+ #include <kstandarddirs.h>
+ #include <ktempfile.h>
++#include <kurl.h>
++#include <jobclasses.h>
++#include <kio/netaccess.h>
+ 
+ #include "formatfactory.h"
+ #include "resourcefileconfig.h"
+@@ -189,9 +193,31 @@
+ 
+     if ( file.size() == 0 ) {
+       file.close();
++      kdDebug() << "File size is zero. Evaluating backups" << endl;
++      for (int i=0; i!=20; i++)
++      {
++        QFile backup( mFileName + "__" + QString::number(i) );
++        kdDebug() << "Evaluating" << backup.name() << " size: " << backup.size() << endl;
++        if ( backup.size() != 0 )
++        {
++          kdDebug() << "Restoring backup " << i << endl;
++          KURL src, dest;
++          src.setPath( mFileName + "__" + QString::number(i) );
++          dest.setPath( mFileName );
++          
++          KIO::DeleteJob* job = KIO::del( dest, false, false ); 
++          KIO::NetAccess::synchronousRun( job, 0);
++          
++          KIO::CopyJob* job2 = KIO::copy( src, dest, false ); 
++          KIO::NetAccess::synchronousRun( job2, 0);
++
++          backup.close();
++          return true; 
++        }
++        backup.close();
++      }
+       return true;
+     }
+-
+     bool ok = mFormat->checkFormat( &file );
+     file.close();
+ 
+@@ -307,8 +333,28 @@
+     return false;
+   }
+ 
+-  // create backup file
+-  QString extension = "_" + QString::number( QDate::currentDate().dayOfWeek() );
++  // Only do the logrotate dance when the __0 file is not 0 bytes.
++  QFile file( mFileName + "__0" );
++  if ( file.size() != 0 ) {
++    KURL last;
++    last.setPath( mFileName + "__20" );
++    kdDebug() << "deleting " << last << endl;
++    KIO::DeleteJob* job = KIO::del( last, false, false ); 
++    KIO::NetAccess::synchronousRun( job, 0);
++
++    for (int i=19; i>=0; i--)
++    {
++      KURL src, dest;
++      src.setPath( mFileName + "__" + QString::number(i) );
++      dest.setPath( mFileName + "__" + QString::number(i+1) );
++      kdDebug() << "moving " << src << " -> " << dest << endl;
++      KIO::SimpleJob* job = KIO::rename( src, dest, false ); 
++      KIO::NetAccess::synchronousRun( job, 0);
++    }
++  } else
++    kdDebug() << "Not starting logrotate __0 is 0 bytes." << endl;
++  
++  QString extension = "__0";
+   (void) KSaveFile::backupFile( mFileName, QString::null /*directory*/,
+                                 extension );
+ 
+--- kdecore/eventsrc	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ kdecore/eventsrc	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -619,7 +619,7 @@
+ Name[fi]=Ei voitu avata tiedostoa
+ Name[fo]=Kann ikki opna fíla
+ Name[fr]=Impossible d'ouvrir un fichier
+-Name[fy]=Kin it triem net iepenje
++Name[fy]=Kin de triem net iepenje
+ Name[ga]=Ní Féidir an Comhad a Oscailt
+ Name[gl]=Non se pode abrir a arquivo
+ Name[he]=אין אפשרות לפתוח קובץ
+--- khtml/khtml_part.cpp	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ khtml/khtml_part.cpp	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -1595,7 +1595,6 @@
+ 
+     d->m_pageServices = d->m_job->queryMetaData("PageServices");
+     d->m_pageReferrer = d->m_job->queryMetaData("referrer");
+-
+     d->m_bSecurityInQuestion = false;
+     d->m_ssl_in_use = (d->m_job->queryMetaData("ssl_in_use") == "TRUE");
+ 
+@@ -1638,6 +1637,7 @@
+     if ( !qData.isEmpty() && !d->m_haveEncoding ) // only use information if the user didn't override the settings
+        d->m_encoding = qData;
+ 
++
+     // Support for http-refresh
+     qData = d->m_job->queryMetaData("http-refresh");
+     if( !qData.isEmpty())
+@@ -1651,6 +1651,11 @@
+       d->m_doc->setBaseURL(KURL( d->m_doc->completeURL(baseURL) ));
+     */
+ 
++    // Support for Content-Language
++    QString language = d->m_job->queryMetaData("content-language");
++    if (!language.isEmpty())
++        d->m_doc->setContentLanguage(language);
++
+     if ( !m_url.isLocalFile() ) {
+         // Support for http last-modified
+         d->m_lastModified = d->m_job->queryMetaData("modified");
+@@ -3966,10 +3971,10 @@
+     return true;
+   }
+ 
+-  //If we're asked to open up an anchor in the current URL, in current window, 
+-  //merely gotoanchor, and do not reload the new page. Note that this does 
++  //If we're asked to open up an anchor in the current URL, in current window,
++  //merely gotoanchor, and do not reload the new page. Note that this does
+   //not apply if the URL is the same page, but without a ref
+-  if (cURL.hasRef() && (!hasTarget || target == "_self")) 
++  if (cURL.hasRef() && (!hasTarget || target == "_self"))
+   {
+     KURL curUrl = this->url();
+     if (urlcmp(cURL.url(), curUrl.url(),
+@@ -3977,7 +3982,7 @@
+               true))  // don't care if the ref changes!
+     {
+       m_url = cURL;
+-      emit d->m_extension->openURLNotify();      
++      emit d->m_extension->openURLNotify();
+       if ( !gotoAnchor( m_url.encodedHtmlRef()) )
+         gotoAnchor( m_url.htmlRef() );
+       emit d->m_extension->setLocationBarURL( m_url.prettyURL() );
+--- khtml/html/htmltokenizer.cpp	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ khtml/html/htmltokenizer.cpp	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -7,7 +7,8 @@
+               (C) 1999 Lars Knoll (knoll at kde.org)
+               (C) 1999 Antti Koivisto (koivisto at kde.org)
+               (C) 2001-2003 Dirk Mueller (mueller at kde.org)
+-              (C) 2002 Apple Computer, Inc.
++              (C) 2004 Apple Computer, Inc.
++              (C) 2006 Germain Garand (germain at ebooksfrance.org)
+ 
+     This library is free software; you can redistribute it and/or
+     modify it under the terms of the GNU Library General Public
+@@ -90,38 +91,36 @@
+ #define fixUpChar(x) \
+             switch ((x).unicode()) \
+             { \
+-            /* ALL of these should be changed to Unicode SOON */ \
+             case 0x80: (x) = 0x20ac; break; \
+-            case 0x82: (x) = ',';    break; \
++            case 0x82: (x) = 0x201a;    break; \
+             case 0x83: (x) = 0x0192; break; \
+-            case 0x84: (x) = '"';    break; \
++            case 0x84: (x) = 0x201e;    break; \
+             case 0x85: (x) = 0x2026; break; \
+             case 0x86: (x) = 0x2020; break; \
+             case 0x87: (x) = 0x2021; break; \
+             case 0x88: (x) = 0x02C6; break; \
+             case 0x89: (x) = 0x2030; break; \
+             case 0x8A: (x) = 0x0160; break; \
+-            case 0x8b: (x) = '<';    break; \
++            case 0x8b: (x) = 0x2039;    break; \
+             case 0x8C: (x) = 0x0152; break; \
+             case 0x8E: (x) = 0x017D; break; \
+-            case 0x91: (x) = '\'';   break; \
+-            case 0x92: (x) = '\'';   break; \
+-            case 0x93: (x) = '"';    break; \
+-            case 0x94: (x) = '"';    break; \
+-            case 0x95: (x) = '*';    break; \
+-            case 0x96: (x) = '-';    break; \
+-            case 0x97: (x) = '-';    break; \
+-            case 0x98: (x) = '~';    break; \
++            case 0x91: (x) = 0x2018;   break; \
++            case 0x92: (x) = 0x2019;   break; \
++            case 0x93: (x) = 0x201C;    break; \
++            case 0x94: (x) = 0X201D;    break; \
++            case 0x95: (x) = 0x2022;    break; \
++            case 0x96: (x) = 0x2013;    break; \
++            case 0x97: (x) = 0x2014;    break; \
++            case 0x98: (x) = 0x02DC;    break; \
+             case 0x99: (x) = 0x2122; break; \
+             case 0x9A: (x) = 0x0161; break; \
+-            case 0x9b: (x) = '>';    break; \
++            case 0x9b: (x) = 0x203A;    break; \
+             case 0x9C: (x) = 0x0153; break; \
+             case 0x9E: (x) = 0x017E; break; \
+             case 0x9F: (x) = 0x0178; break; \
+             default: break; \
+             }
+ #endif
+-
+ // ----------------------------------------------------------------------------
+ 
+ HTMLTokenizer::HTMLTokenizer(DOM::DocumentPtr *_doc, KHTMLView *_view)
+@@ -387,27 +386,30 @@
+     currToken.tid = ID_SCRIPT + ID_CLOSE_TAG;
+     processToken();
+ 
+-    TokenizerString prependingSrc;
++    // Scripts following a frameset element should not be executed or even loaded in the case of extern scripts.
++    bool followingFrameset = (parser->doc()->body() && parser->doc()->body()->id() == ID_FRAMESET);
++    bool deferredScript = false;
+ 
+-    if ( !parser->skipMode() ) {
++    if ( !parser->skipMode() && !followingFrameset) {
+         CachedScript* cs = 0;
+ 
+         // forget what we just got, load from src url instead
+         if ( !currentScriptSrc.isEmpty() &&
+-             (cs = parser->doc()->docLoader()->requestScript(currentScriptSrc, scriptSrcCharset) ))
++             (cs = parser->doc()->docLoader()->requestScript(currentScriptSrc, scriptSrcCharset) )) {
+             cachedScript.enqueue(cs);
++        }
+ 
+         if (cs) {
+-            pendingSrc.prepend(src);
++            pendingQueue.push(src);
++            uint scriptCount = cachedScript.count();
+             setSrc(TokenizerString());
+             scriptCodeSize = scriptCodeResync = 0;
+             cs->ref(this);
++            if (cachedScript.count() == scriptCount)
++                deferredScript = true;
+         }
+         else if (currentScriptSrc.isEmpty() && view && javascript ) {
+-            if ( !m_executingScript )
+-                pendingSrc.prepend(src);
+-            else
+-                prependingSrc = src;
++            pendingQueue.push(src);
+             setSrc(TokenizerString());
+             scriptCodeSize = scriptCodeResync = 0;
+             scriptExecution( exScript, QString::null, tagStartLineno /*scriptStartLineno*/ );
+@@ -417,12 +419,17 @@
+     script = false;
+     scriptCodeSize = scriptCodeResync = 0;
+ 
++    if (parser->skipMode() || followingFrameset)
++        return;
++
+     if ( !m_executingScript && cachedScript.isEmpty() ) {
+-        // kdDebug( 6036 ) << "adding pending Output to parsed string" << endl;
+-        src.append(pendingSrc);
+-        pendingSrc.clear();
+-    } else if ( !prependingSrc.isEmpty() )
+-        write( prependingSrc, false );
++        src.append(pendingQueue.pop());
++    } else if ( cachedScript.isEmpty() ) {
++        write( pendingQueue.pop(), false );
++    } else if ( !deferredScript && pendingQueue.count() > 1) {
++       TokenizerString t = pendingQueue.pop();
++       pendingQueue.top().prepend( t );
++    }
+ }
+ 
+ void HTMLTokenizer::scriptExecution( const QString& str, const QString& scriptURL,
+@@ -1294,10 +1301,14 @@
+     if ( !buffer )
+         return;
+ 
+-    if ( ( m_executingScript && appendData ) ||
+-         ( !m_executingScript && cachedScript.count() ) ) {
++    if ( ( m_executingScript && appendData ) || cachedScript.count() ) {
+         // don't parse; we will do this later
+-        pendingSrc.append(str);
++        if (pendingQueue.isEmpty())
++            pendingQueue.push(str);
++        else if (appendData)
++            pendingQueue.bottom().append(str);
++        else
++            pendingQueue.top().append(str);
+         return;
+     }
+ 
+@@ -1705,9 +1716,9 @@
+     assert(!cachedScript.isEmpty());
+     bool done = false;
+     while (!done && cachedScript.head()->isLoaded()) {
+-#ifdef TOKEN_DEBUG
++
+         kdDebug( 6036 ) << "Finished loading an external script" << endl;
+-#endif
++
+         CachedScript* cs = cachedScript.dequeue();
+         DOMString scriptSource = cs->script();
+ #ifdef TOKEN_DEBUG
+@@ -1725,12 +1736,15 @@
+         done = cachedScript.isEmpty();
+ 
+         // 'script' is true when we are called synchronously from
+-        // parseScript(). In that case parseScript() will take care
++        // scriptHandler(). In that case scriptHandler() will take care
+         // of 'scriptOutput'.
+         if ( !script ) {
+-            TokenizerString rest = pendingSrc;
+-            pendingSrc.clear();
+-            write(rest, false);
++            if (!done && pendingQueue.count() > 1) {
++               TokenizerString t = pendingQueue.pop();
++               pendingQueue.top().prepend( t );
++            } else if (done) {
++                write(pendingQueue.pop(), false);
++            }
+             // we might be deleted at this point, do not
+             // access any members.
+         }
+--- khtml/html/htmltokenizer.h	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ khtml/html/htmltokenizer.h	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -317,7 +317,7 @@
+     QString scriptSrcCharset;
+     bool javascript;
+     // the HTML code we will parse after the external script we are waiting for has loaded
+-    TokenizerString pendingSrc;
++    TokenizerQueue pendingQueue;
+     // true if we are executing a script while parsing a document. This causes the parsing of
+     // the output of the script to be postponed until after the script has finished executing
+     int m_executingScript;
+--- khtml/rendering/render_object.cpp	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ khtml/rendering/render_object.cpp	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -2109,19 +2109,21 @@
+                 n = n->previousSibling();
+             }
+             if (sibling->isReset())
++            {
+                 if (last != sibling)
+                     sibling->insertAfter(i, last);
+                 else
+                     sibling->insertAfter(i, 0);
+-            else
++            }
++            else if (last->parent())
+                 last->parent()->insertAfter(i, last);
+         }
+-        else {
++        else if (parent()) {
+             // Nothing found among siblings, let our parent search
+             last = parent()->getCounter(counter, false);
+             if (last->isReset())
+                 last->insertAfter(i, 0);
+-            else
++            else if (last->parent())
+                 last->parent()->insertAfter(i, last);
+         }
+     }
+--- khtml/rendering/render_block.cpp	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ khtml/rendering/render_block.cpp	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -176,6 +176,11 @@
+         firstLetter->setIsAnonymous( true );
+         firstLetterContainer->addChild(firstLetter, firstLetterContainer->firstChild());
+ 
++        // if this object is the result of a :begin, then the text may have not been
++        // generated yet if it is a counter
++        if (textObj->recalcMinMax())
++            textObj->recalcMinMaxWidths();
++
+         // The original string is going to be either a generated content string or a DOM node's
+         // string.  We want the original string before it got transformed in case first-letter has
+         // no text-transform or a different text-transform applied to it.
+@@ -187,11 +192,13 @@
+             oldText->ref();
+             unsigned int length = 0;
+             while ( length < oldText->l &&
+-                    ( (oldText->s+length)->isSpace() || (oldText->s+length)->isPunct() ) )
++                    ( (oldText->s+length)->isSpace() || (oldText->s+length)->isPunct()) )
+                 length++;
+             if ( length < oldText->l && 
+                     !( (oldText->s+length)->isSpace() || (oldText->s+length)->isPunct() ))
+                 length++;
++            while ( length < oldText->l && (oldText->s+length)->isMark() )
++                length++;
+             RenderTextFragment* remainingText =
+                 new (renderArena()) RenderTextFragment(textObj->node(), oldText, length, oldText->l-length);
+             remainingText->setIsAnonymous( textObj->isAnonymous() );
+@@ -2244,8 +2251,10 @@
+ 
+     int offset = m_y;
+     if (parentHasFloats)
++    {
+         addOverHangingFloats( static_cast<RenderBlock *>( parent() ),
+                               parent()->borderLeft() + parent()->paddingLeft(), offset, false );
++    }
+ 
+     int xoffset = 0;
+     if (prev) {
+@@ -2275,10 +2284,24 @@
+     // Prevent floats from being added to the canvas by the root element, e.g., <html>.
+     if ( !flow->m_floatingObjects || (child && flow->isRoot()) )
+         return;
++        
++    // if I am clear of my floats, don't add them
++    // the CSS spec also mentions that child floats
++    // are not cleared.
++    if (!child && style()->clear() == CBOTH)
++    {
++        return;
++    }
+ 
+     QPtrListIterator<FloatingObject> it(*flow->m_floatingObjects);
+     FloatingObject *r;
+     for ( ; (r = it.current()); ++it ) {
++    
++        if (!child && r->type == FloatingObject::FloatLeft && style()->clear() == CLEFT )
++            continue;
++        if (!child && r->type == FloatingObject::FloatRight && style()->clear() == CRIGHT )
++            continue;
++            
+         if ( ( !child && r->endY > offset ) ||
+              ( child && flow->yPos() + r->endY > height() ) ) {
+             if (child && !r->crossedLayer) {
+--- khtml/ChangeLog	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ khtml/ChangeLog	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -1,3 +1,12 @@
++2006-03-25  Germain Garand  <germain at ebooksfrance.org>
++
++        Scope: fix handling of nested/external scripts in the tokenizer (#91701) 
++
++        * misc/stringit.h (TokenizerQueue): a LIFO stack of TokenizerStrings
++        * html/htmltokenizer.{h,cpp} (scriptHandler/write/notifyFinished): use a TokenizerQueue to store
++        postponed fragments while executing/loading scripts.
++        (fixUpChar): unrelated - fill in missing unicode replacements.
++
+ 2006-03-20  Dirk Mueller <mueller at kde.org>
+ 
+ 	* misc/loader.cpp: fix pixmap leak in tiled_pixmap()
+@@ -2,20 +11,27 @@
+ 
++2006-03-20  Allan Sandfeld Jensen <kde at carewolf.com>
++
++        Improve the CSS :lang() selector to match clarified specification
++
++        * khtml_part.cpp: parse HTTP content-language
++        * xml/dom_docimpl.cpp: parse HTTP-EQUIV content-language
++        * css/cssstyleselector.cpp: match :lang() against parents and ultimately the document
++
+ 2006-03-07  Germain Garand  <germain at ebooksfrance.org>
+ 
+         Scope: relayout/repaint/widget masks fixes. Refine stacking context exploration. Optimise.
+ 
+-        * khtmlview.cpp (reset/timerEvent): remove obsolete code checking validity of visible widgets list.
+-        (drawContents): use widget geometry rather than the RenderWidget's rect (fixes widget borders not being updated)
++        * khtmlview.cpp (drawContents): use widget geometry rather than the RenderWidget's rect (fixes widget borders not being updated)
+         Check if widget is in the dirty rect before doing any work.
+ 
+         * rendering/render_block.cpp (layoutBlockChildren): I meant !child->isPositioned() here, not isPositioned(). No need to
+-        dirty positioned children as this is handled by the containing block chain through layoutPositionedObjects 
++        dirty positioned children as this is handled by the containing block chain through layoutPositionedObjects
+         (layoutPositionedObjects): always relayout fixed objects.
+ 
+         * rendering/render_canvas.cpp (layout): check canvas dimensions and call layoutBlock directly with relayoutChildren boolean.
+-        
+-        * rendering/render_layer.{h,cpp} (paintedRegion): constrain our shape to the visibleRect. Use convertToLayerCoords to get a correct 
+-        visibleFlowRegion (updateWidgetMasks): don't forget to update the mask if it reverts to none at all. 
+ 
+-        * rendering/render_object.{h,cpp} (containingBlock): for relpos inlines, return the nearest block (skipping to next containingBlock gives 
++        * rendering/render_layer.{h,cpp} (paintedRegion): constrain our shape to the visibleRect. Use convertToLayerCoords to get a correct
++        visibleFlowRegion (updateWidgetMasks): don't forget to update the mask if it reverts to none at all.
++
++        * rendering/render_object.{h,cpp} (containingBlock): for relpos inlines, return the nearest block (skipping to next containingBlock gives
+         stalled layout flags problems - #121653). (updateWidgetMasks): mask the content box, not the border box.
+@@ -31,7 +47,7 @@
+ 	* link not accessable with negative text-indent (#96275)
+ 	* Wrong :hover effect with negative text-indent (#90510)
+ 	* text not selectable if it has a negative text-indent
+-	
++
+ 2006-03-05  Charles Samuels  <charles at kde.org>
+         * javascript timeouts that cross a midnight boundary shall not occur early
+ 
+@@ -39,7 +55,7 @@
+ 
+         get iframes, objects and some other overlaid widgets to obey their stacking context (#31121)
+ 
+-        * khtmlview.cpp: mask widgets more precisely (i.e. allow layers to paint over overlaid widgets, 
++        * khtmlview.cpp: mask widgets more precisely (i.e. allow layers to paint over overlaid widgets,
+         when they ought to).
+ 
+         * rendering/render_canvas.{cpp,h}: update widget masks after pos child layout/positioning;
+@@ -49,7 +65,7 @@
+         childs. We'll apply that mask later to widgets that are under our aegis.
+ 
+         * rendering/render_object.{cpp,h} (visibleFlowRegion): helper for calculation of broad region we want to mask in flows.
+-        (updateWidgetMasks): walk our children looking for widgets suitable to masking. Apply our enclosingLayer's mask, 
++        (updateWidgetMasks): walk our children looking for widgets suitable to masking. Apply our enclosingLayer's mask,
+         transformis transformandi.
+ 
+         * rendering/render_replaced.cpp: overlaid widgets must advertise their existence to the enclosing layer.
+@@ -64,22 +80,22 @@
+         * css/css_ruleimpl.cpp (selectorText): handle of multiple, comma-separated selectors
+ 
+ 2006-02-28  Germain Garand  <germain at ebooksfrance.org>
+-         
++
+         Common-case style selection optimisation inspired from WebCore.
+ 
+         * css/css_base.cpp/.h: add 'Class' to possible matching modes
+         * css/cssstyleselector.cpp: treat 'Class' extra, not anymore as an ordinary List.
+-        * css/parser.cpp/y: use 'Class' matching mode 
++        * css/parser.cpp/y: use 'Class' matching mode
+         * html/html_elementimpl.cpp: when parsing ATTR_CLASS, set a boolean to remember if it is or not a class list.
+         * xml/dom_elementimpl.{cpp,h}: add m_hasClassList boolean + setter/getter
+ 
+ 2006-02-28  Germain Garand  <germain at ebooksfrance.org>
+ 
+         * rendering/render_object.cpp (dirtyFormattingContext): be more efficient with inlineflow objects.
+-        * rendering/render_block.cpp (layoutBlockChildren): be more efficient with regard to positioned objects relayout. 
+-        Merge WC margin-collapse regression fix (WC/#3508). 
++        * rendering/render_block.cpp (layoutBlockChildren): be more efficient with regard to positioned objects relayout.
++        Merge WC margin-collapse regression fix (WC/#3508).
+         (layoutPositionedObjects) Objects with staticX() need a relayout too.
+-        * rendering/render_canvas.cpp (layout): no need to relayout positioned objects here. This would mark entire branches of the tree 
++        * rendering/render_canvas.cpp (layout): no need to relayout positioned objects here. This would mark entire branches of the tree
+         as needing a layout, thus stalling update requests in those branches (#116626)
+ 
+ 2006-01-14  Allan Sandfeld Jensen <kde at carewolf.com>
+--- khtml/css/cssstyleselector.h	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ khtml/css/cssstyleselector.h	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -126,7 +126,7 @@
+         KDE_EXPORT static void clear();
+         static void reparseConfiguration();
+ 
+-	static void loadDefaultStyle(const KHTMLSettings *s = 0);
++	static void loadDefaultStyle(const KHTMLSettings *s, DOM::DocumentImpl *doc);
+ 
+ 	RenderStyle *styleForElement(DOM::ElementImpl *e);
+ 
+@@ -184,7 +184,7 @@
+ public:
+ 
+     private:
+-        void init(const KHTMLSettings* settings);
++        void init(const KHTMLSettings* settings, DOM::DocumentImpl* doc);
+ 
+         void mapBackgroundAttachment(BackgroundLayer* layer, DOM::CSSValueImpl* value);
+         void mapBackgroundImage(BackgroundLayer* layer, DOM::CSSValueImpl* value);
+--- khtml/css/cssstyleselector.cpp	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ khtml/css/cssstyleselector.cpp	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -191,7 +191,7 @@
+ {
+     KHTMLView* view = doc->view();
+ 
+-    init(view ? view->part()->settings() : 0);
++    init(view ? view->part()->settings() : 0, doc);
+ 
+     strictParsing = _strictParsing;
+     m_medium = view ? view->mediaType() : QString("all");
+@@ -249,7 +249,7 @@
+ 
+ CSSStyleSelector::CSSStyleSelector( CSSStyleSheetImpl *sheet )
+ {
+-    init(0L);
++    init(0L, 0L);
+ 
+     KHTMLView *view = sheet->doc()->view();
+     m_medium = view ? view->mediaType() : "screen";
+@@ -258,7 +258,7 @@
+     authorStyle->append( sheet, m_medium );
+ }
+ 
+-void CSSStyleSelector::init(const KHTMLSettings* _settings)
++void CSSStyleSelector::init(const KHTMLSettings* _settings, DocumentImpl* doc)
+ {
+     element = 0;
+     settings = _settings;
+@@ -267,7 +267,7 @@
+     pseudoProps = (CSSOrderedProperty **)malloc(128*sizeof(CSSOrderedProperty *));
+     propsToApplySize = 128;
+     pseudoPropsSize = 128;
+-    if(!s_defaultStyle) loadDefaultStyle(settings);
++    if(!s_defaultStyle) loadDefaultStyle(settings, doc);
+ 
+     defaultStyle = s_defaultStyle;
+     defaultPrintStyle = s_defaultPrintStyle;
+@@ -291,7 +291,7 @@
+     authorStyle->append( sheet, m_medium );
+ }
+ 
+-void CSSStyleSelector::loadDefaultStyle(const KHTMLSettings *s)
++void CSSStyleSelector::loadDefaultStyle(const KHTMLSettings *s, DocumentImpl *doc)
+ {
+     if(s_defaultStyle) return;
+ 
+@@ -310,7 +310,7 @@
+ 	    style += s->settingsToCSS();
+ 	DOMString str(style);
+ 
+-	s_defaultSheet = new DOM::CSSStyleSheetImpl((DOM::CSSStyleSheetImpl * ) 0);
++	s_defaultSheet = new DOM::CSSStyleSheetImpl(doc);
+ 	s_defaultSheet->parseString( str );
+ 
+ 	// Collect only strict-mode rules.
+@@ -333,7 +333,7 @@
+ 	QString style = QString::fromLatin1( file.data() );
+ 	DOMString str(style);
+ 
+-	s_quirksSheet = new DOM::CSSStyleSheetImpl((DOM::CSSStyleSheetImpl * ) 0);
++	s_quirksSheet = new DOM::CSSStyleSheetImpl(doc);
+ 	s_quirksSheet->parseString( str );
+ 
+ 	// Collect only quirks-mode rules.
+@@ -1076,7 +1076,7 @@
+                     return false;
+                return true;
+             }
+-            // no break    
++            // no break
+         case CSSSelector::List:
+         {
+             if (sel->match != CSSSelector::Class) {
+@@ -1408,7 +1408,20 @@
+             break;
+         case CSSSelector::PseudoLang: {
+             DOMString value = e->getAttribute(ATTR_LANG);
+-            if (value.isNull()) return false;
++            // The LANG attribute is inherited like a property
++            NodeImpl *n = e->parent();;
++            while (n && value.isEmpty()) {
++                if (n->isElementNode()) {
++                    // ### check xml:lang attribute in XML and XHTML documents
++                    value = static_cast<ElementImpl*>(n)->getAttribute(ATTR_LANG);
++                } else
++                if (n->isDocumentNode()) {
++                    value = static_cast<DocumentImpl*>(n)->contentLanguage();
++                }
++                n = n->parent();
++            }
++            if (value.isEmpty()) return false;
++
+             QString langAttr = value.string();
+             QString langSel = sel->string_arg.string();
+ 
+--- khtml/css/css_stylesheetimpl.cpp	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ khtml/css/css_stylesheetimpl.cpp	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -216,10 +216,13 @@
+ 
+     m_namespaces = new CSSNamespace(prefix, uri, m_namespaces);
+ 
+-    if (prefix.isEmpty())
++    if (prefix.isEmpty()) {
++        Q_ASSERT(m_doc != 0);
++
+         // Set the default namespace on the parser so that selectors that omit namespace info will
+         // be able to pick it up easily.
+         p->defaultNamespace = m_doc->getId(NodeImpl::NamespaceId, uri.implementation(), false, false, &exceptioncode);
++    }
+ }
+ 
+ void CSSStyleSheetImpl::determineNamespace(Q_UINT32& id, const DOM::DOMString& prefix)
+@@ -236,9 +239,12 @@
+     else {
+         int exceptioncode = 0;
+         CSSNamespace* ns = m_namespaces->namespaceForPrefix(prefix);
+-        if (ns)
++        if (ns) {
++            Q_ASSERT(m_doc != 0);
++
+             // Look up the id for this namespace URI.
+             id = makeId(m_doc->getId(NodeImpl::NamespaceId, ns->uri().implementation(), false, false, &exceptioncode), localNamePart(id));
++        }
+     }
+ }
+ 
+--- khtml/misc/stringit.h	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ khtml/misc/stringit.h	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -113,6 +113,11 @@
+     TokenizerString() : m_currentChar(0), m_lines(0), m_composite(false) {}
+     TokenizerString(const QChar *str, int length) : m_currentString(str, length), m_currentChar(m_currentString.m_current), m_lines(0), m_composite(false) {}
+     TokenizerString(const QString &str) : m_currentString(str), m_currentChar(m_currentString.m_current), m_lines(0), m_composite(false) {}
++    TokenizerString(const TokenizerString &o) : m_pushedChar1(o.m_pushedChar1), m_pushedChar2(o.m_pushedChar2),
++                                                m_currentString(o.m_currentString), m_substrings(o.m_substrings),
++                                                m_lines(o.m_lines), m_composite(o.m_composite) { 
++        m_currentChar = m_pushedChar1.isNull() ? m_currentString.m_current : &m_pushedChar1; 
++    } 
+ 
+     void clear();
+ 
+@@ -173,6 +178,25 @@
+ 
+ };
+ 
++
++class TokenizerQueue : public QValueList<TokenizerString>
++{
++
++public:
++    TokenizerQueue() {}
++    ~TokenizerQueue() {}
++    void  push( const TokenizerString &t ) { prepend(t); }
++    TokenizerString pop() {
++        if (isEmpty()) 
++            return TokenizerString();
++        TokenizerString t(first());
++        remove( begin() );
++        return t;
++    }
++    TokenizerString& top() { return first(); }
++    TokenizerString& bottom() { return last(); }
++};
++
+ }
+ 
+ #endif
+--- khtml/khtmlview.h	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ khtml/khtmlview.h	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -171,6 +171,10 @@
+ 
+ 
+ signals:
++    /**
++     * This signal is used for internal layouting. Don't use it to check if rendering finished.
++     * Use @ref KHTMLPart completed() signal instead.
++     */
+     void finishedLayout();
+     void cleared();
+     void zoomView( int );
+--- khtml/xml/dom2_eventsimpl.cpp	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ khtml/xml/dom2_eventsimpl.cpp	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -499,14 +499,14 @@
+     }
+ 
+     L toLeft(R r) {
+-        typename QMap<R,L>::iterator i = m_rToL.find(r);
++        QMapIterator<R,L> i( m_rToL.find(r) );
+         if (i != m_rToL.end())
+             return *i;
+         return L();
+     }
+ 
+     R toRight(L l) {
+-        typename QMap<L,R>::iterator i = m_lToR.find(l);
++        QMapIterator<L,R> i = m_lToR.find(l);
+         if (i != m_lToR.end())
+             return *i;
+         return R();
+@@ -775,7 +775,7 @@
+     if (keyIdentifierArg.length() == 1) {
+         //Likely to be normal unicode id, unless it's one of the few
+         //special values.
+-        unsigned short code = keyIdentifierArg.unicode()[0].unicode();
++        unsigned short code = keyIdentifierArg.unicode()[0];
+         if (code > 0x20 && code != 0x7F)
+             keyVal = code;
+     }
+@@ -789,7 +789,7 @@
+             modifiersList.string().stripWhiteSpace().simplifyWhiteSpace());
+ 
+     unsigned modifiers = 0;
+-    for (QStringList::iterator i = mods.begin(); i != mods.end(); ++i)
++    for (QStringList::Iterator i = mods.begin(); i != mods.end(); ++i)
+         if (unsigned mask = keyModifiersToCode()->toRight((*i).latin1()))
+             modifiers |= mask;
+ 
+--- khtml/xml/dom_docimpl.cpp	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ khtml/xml/dom_docimpl.cpp	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -173,7 +173,7 @@
+     if (doc->doctype() && dtype)
+         doc->doctype()->copyFrom(*dtype);
+ 
+-    // the document must be created empty if all parameters are null 
++    // the document must be created empty if all parameters are null
+     // (or empty for qName/nsURI as a tolerance) - see DOM 3 Core.
+     if (dtype || !qualifiedName.isEmpty() || !namespaceURI.isEmpty()) {
+         ElementImpl *element = doc->createElementNS(namespaceURI,qualifiedName);
+@@ -610,7 +610,7 @@
+ 
+     ElementMappingCache::ItemInfo* info = m_getElementByIdCache.get(stringKey);
+ 
+-    if (!info) 
++    if (!info)
+         return 0;
+ 
+     //See if cache has an unambiguous answer.
+@@ -1656,6 +1656,9 @@
+         m_preferredStylesheetSet = content;
+         updateStyleSelector();
+     }
++    else if (strcasecmp(equiv, "content-language") == 0) {
++        m_contentLanguage = content.string();
++    }
+ }
+ 
+ bool DocumentImpl::prepareMouseEvent( bool readonly, int _x, int _y, MouseEvent *ev )
+--- khtml/xml/dom_docimpl.h	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ khtml/xml/dom_docimpl.h	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -530,6 +530,9 @@
+         return m_getElementByIdCache;
+     }
+ 
++    QString contentLanguage() const { return m_contentLanguage; }
++    void setContentLanguage(const QString& cl) { m_contentLanguage = cl; }
++
+ signals:
+     void finishedParsing();
+ 
+@@ -551,6 +554,8 @@
+     QString m_printSheet;
+     QStringList m_availableSheets;
+ 
++    QString m_contentLanguage;
++
+     // Track the number of currently loading top-level stylesheets.  Sheets
+     // loaded using the @import directive are not included in this count.
+     // We use this count of pending sheets to detect when we can begin attaching
+--- kdoctools/customization/da/lang.entities	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ kdoctools/customization/da/lang.entities	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -12,6 +12,8 @@
+ <!-- Licence links -->
+ <!ENTITY underGPL           PUBLIC "-//KDE//DOCUMENT GPL Licence Declaration//DA"
+   "entities/underGPL.docbook"                       ><!-- level: para -->
++<!ENTITY underLGPL          PUBLIC "-//KDE//DOCUMENT LGPL Licence Declaration//DA"
++  "entities/underLGPL.docbook"                       ><!-- level: para -->
+ <!ENTITY underFDL           PUBLIC "-//KDE//DOCUMENT FDL Licence Declaration//DA"
+   "entities/underFDL.docbook"                       ><!-- level: para -->
+ <!ENTITY underBSDLicense    PUBLIC "-//KDE//DOCUMENT BSD Licence Declaration//DA"
+--- kdoctools/customization/da/catalog	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ kdoctools/customization/da/catalog	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -16,6 +16,8 @@
+        "common/fdl-translated"
+ PUBLIC "-//KDE//DOCUMENT GPL Licence Declaration//DA"
+        "entities/underGPL.docbook" 
++PUBLIC "-//KDE//DOCUMENT LGPL Licence Declaration//DA"
++       "entities/underLGPL.docbook"
+ PUBLIC "-//KDE//DOCUMENT FDL Licence Declaration//DA"
+        "entities/underFDL.docbook"
+ PUBLIC "-//KDE//DOCUMENT BSD Licence Declaration//DA"
+--- kdoctools/customization/it/entities/underLGPL.docbook	(.../tags/KDE/3.5.2/kdelibs)	(revision 0)
++++ kdoctools/customization/it/entities/underLGPL.docbook	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -0,0 +1,2 @@
++<para>Questo programma è concesso in licenza sotto i termini della <ulink
++url="common/gpl-license.html">GNU Lesser General Public License</ulink>.</para>
+\ No newline at end of file
+--- kdoctools/customization/it/lang.entities	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ kdoctools/customization/it/lang.entities	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -12,6 +12,8 @@
+ <!-- Licence links -->
+ <!ENTITY underGPL           PUBLIC "-//KDE//DOCUMENT GPL Licence Declaration//IT"
+   "entities/underGPL.docbook"                       ><!-- level: para -->
++<!ENTITY underLGPL           PUBLIC "-//KDE//DOCUMENT LGPL Licence Declaration//IT"
++  "entities/underLGPL.docbook"                       ><!-- level: para -->
+ <!ENTITY underFDL           PUBLIC "-//KDE//DOCUMENT FDL Licence Declaration//IT"
+   "entities/underFDL.docbook"                       ><!-- level: para -->
+ <!ENTITY underBSDLicense    PUBLIC "-//KDE//DOCUMENT BSD Licence Declaration//IT"
+--- kdoctools/customization/it/catalog	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ kdoctools/customization/it/catalog	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -16,6 +16,8 @@
+        "common/fdl-translated"
+ PUBLIC "-//KDE//DOCUMENT GPL Licence Declaration//IT"
+        "entities/underGPL.docbook" 
++PUBLIC "-//KDE//DOCUMENT LGPL Licence Declaration//IT"
++       "entities/underLGPL.docbook" 
+ PUBLIC "-//KDE//DOCUMENT FDL Licence Declaration//IT"
+        "entities/underFDL.docbook"
+ PUBLIC "-//KDE//DOCUMENT BSD Licence Declaration//IT"
+--- kded/khostname.cpp	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ kded/khostname.cpp	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -155,7 +155,11 @@
+          continue;
+ 
+       QCString newNetId = newName+netId.mid(i);
++      QCString oldNetId = netId.left(i);
+ 
++      if(oldNetId != oldName)
++         continue;
++
+       cmd = "xauth remove "+KProcess::quote(netId);
+       system(QFile::encodeName(cmd));
+       cmd = "xauth add ";
+--- configure.in.in	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ configure.in.in	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -306,7 +306,10 @@
+    CXXFLAGS="$CXXFLAGS $USE_RTTI"
+ fi
+ 
+-rgb_file="$x_libraries/X11/rgb.txt"
++AC_ARG_WITH([rgbfile],
++  AC_HELP_STRING([--with-rgbfile=path], [Define custom path for rgb.txt. (default: \$(x11libdir)/X11/rgb.txt)]),
++  [rgb_file=$withval], [rgb_file="$x_libraries/X11/rgb.txt"])
++
+ AC_DEFINE_UNQUOTED(X11_RGBFILE, "$rgb_file", [where rgb.txt is in])
+ 
+ AC_MSG_CHECKING([for Compiler version])
+--- kdeui/kmessagebox.cpp	(.../tags/KDE/3.5.2/kdelibs)	(revision 523640)
++++ kdeui/kmessagebox.cpp	(.../branches/KDE/3.5/kdelibs)	(revision 523640)
+@@ -82,7 +82,7 @@
+         break;
+     }
+ 
+-   QPixmap ret = KApplication::kApplication()->iconLoader()->loadIcon(icon_name, KIcon::NoGroup, KIcon::SizeMedium, KIcon::DefaultState, 0, true);
++   QPixmap ret = KGlobal::iconLoader()->loadIcon(icon_name, KIcon::NoGroup, KIcon::SizeMedium, KIcon::DefaultState, 0, true);
+ 
+    if (ret.isNull())
+        return QMessageBox::standardIcon(icon);




More information about the pkg-kde-commits mailing list