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