diff options
author | Michael Palimaka <kensington@gentoo.org> | 2014-12-04 11:40:14 +0000 |
---|---|---|
committer | Michael Palimaka <kensington@gentoo.org> | 2014-12-04 11:40:14 +0000 |
commit | 3ee4587c0d822efbc5bb482c085c76e01e5b28db (patch) | |
tree | 1d8d772196ff5587698b5ba05b1c05d89c0899e1 /kde-base | |
parent | Call python_optimize, bug 531638 (diff) | |
download | historical-3ee4587c0d822efbc5bb482c085c76e01e5b28db.tar.gz historical-3ee4587c0d822efbc5bb482c085c76e01e5b28db.tar.bz2 historical-3ee4587c0d822efbc5bb482c085c76e01e5b28db.zip |
Backport patch from upstream solving a crash wrt bug #530646.
Package-Manager: portage-2.2.15/cvs/Linux x86_64
Manifest-Sign-Key: 0x06B1F38DCA45A1EC!
Diffstat (limited to 'kde-base')
-rw-r--r-- | kde-base/kdelibs/ChangeLog | 8 | ||||
-rw-r--r-- | kde-base/kdelibs/Manifest | 30 | ||||
-rw-r--r-- | kde-base/kdelibs/files/kdelibs-4.14.3-trim-crash.patch | 610 | ||||
-rw-r--r-- | kde-base/kdelibs/kdelibs-4.14.3-r1.ebuild | 306 |
4 files changed, 939 insertions, 15 deletions
diff --git a/kde-base/kdelibs/ChangeLog b/kde-base/kdelibs/ChangeLog index 009b5390e225..c061d669cb74 100644 --- a/kde-base/kdelibs/ChangeLog +++ b/kde-base/kdelibs/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for kde-base/kdelibs # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/kde-base/kdelibs/ChangeLog,v 1.1035 2014/12/03 15:04:58 kensington Exp $ +# $Header: /var/cvsroot/gentoo-x86/kde-base/kdelibs/ChangeLog,v 1.1036 2014/12/04 11:39:50 kensington Exp $ + +*kdelibs-4.14.3-r1 (04 Dec 2014) + + 04 Dec 2014; Michael Palimaka <kensington@gentoo.org> + +files/kdelibs-4.14.3-trim-crash.patch, +kdelibs-4.14.3-r1.ebuild: + Backport patch from upstream solving a crash wrt bug #530646. 03 Dec 2014; Michael Palimaka <kensington@gentoo.org> kdelibs-4.14.3.ebuild: Introduce crypt USE flag. diff --git a/kde-base/kdelibs/Manifest b/kde-base/kdelibs/Manifest index b6d1036aa0c4..e28de72b8f8f 100644 --- a/kde-base/kdelibs/Manifest +++ b/kde-base/kdelibs/Manifest @@ -8,6 +8,7 @@ AUX kdelibs-4.13.1-kio-diskfree.patch 1845 SHA256 85e4d8fe871ea3aba8bcb50140540d AUX kdelibs-4.13.2-CVE-2014-3494.patch 2695 SHA256 4a8382341b750b7170c50363145a360dd698882b6a9fe833cf6573bf292ab3ea SHA512 3c515d13f3673bc72d0d024166327343c0283c08bc68d214e4cf092bb14da436ca70467a84afefce6ed15a1d062253281e5b9b381e80ef7b781ef751fdb7ff25 WHIRLPOOL 707b0ac561a853a142f90284ba6797081c8e5660e1a1e1c0c4fd2f431dd9666d6e9d6a83d382c6f09bbc99891d7342c65fd81ed0077578750b2c433ba1b30dd7 AUX kdelibs-4.13.3-CVE-2014-5033.patch 2063 SHA256 456e20ded57839bcecc3d84fe2abe965de8891139ed41220468b0642f472259e SHA512 887ce9561f6b99c891623607e709e39a9286189a4b00dd1f7d1691c48b3edc5819c21a09d37439c5738be6674ffe0ad7dbee46fa7af7c259a0bc1e25662f9b41 WHIRLPOOL cd8ec1712bfc5474473df37731d2a85dca2b0ecf32e44012c9cf0680ea8a860785066a9410f6d16e14b5edea4f21f9bb80cd58dd7cb626fdc63cd4f1e6c6a21f AUX kdelibs-4.14.0-mimetypes.patch 1187 SHA256 40cbbf358f11504abfa494508d8d83a4b47ee3cffe30d7076e03ad6f7e0e354c SHA512 fcdb9d5d03782cec401d95fe5ec9f4addda0d586de9ebbf6bad7bb8b402b248e3d24dc5a73f41456474fa2d65f33473d9d1d7d77557bec4da3805e0c31d42541 WHIRLPOOL b39ec794a32b114d4d268fc5849c65e2295921ae34cf608690a06ce5a6d403ddb61c539cc5bd4c17faa29fc2077162ef2a519e1710153a34a4268f3413f36cd6 +AUX kdelibs-4.14.3-trim-crash.patch 28725 SHA256 070fd14403c797d18360f6c5bd9a0b36d8b50c7a41cc28d1d220a7a6c66f0233 SHA512 3b72c021aa5a4c10799296e1858f03adcdfac34f9f83bdee4c7357502314b2bc92fd5f137021657c157723da894a362e818d875fee95f965e7d82a3fbbc1bdb8 WHIRLPOOL 3f0f3a84cf320c9b5f7be2e1bbcea4e3d1d9942f0b9e1ebd277eab310f1e539b5c9ea19e6554ffc70fc2f1d279cbb3e939d617661e250027f3364726a9a78a57 AUX kdelibs-4.3.80-kdeui_util_kkeyserver_mac.patch 2210 SHA256 3602e079a4788feceff27f7f6bcaeff33828c259a81d0357f7df092000f98a6a SHA512 9207f2ab33e757d3d8ed3279350ea4326339129f232bb67bcce7b3806480fe551c9ba03a93d289df311e913055c343c925f957eb0b0b24bec6a7ef59017090a2 WHIRLPOOL f63b26fc0657f7e72856b493fc469af1cfaa68bb18b1dd4078f9dae44c37a3bdec9114c6a2c92c55b2cdde4d7cbc2ea072df1157b26e43f844dccf16ec8b1f8d AUX kdelibs-4.4.90-xslt.patch 553 SHA256 ffb7b7f44d3e840d1fe5e3b1d859db74f6bf534d44160f48e0f91993200ab55b SHA512 0016a0cb2f4a93cc2a9638a74c8aa42759830304abf97b608393099093a35205bcdfbd0a8a6d501f6628119de34d39c7a40cac9ed99bff7081c651f678533dea WHIRLPOOL 8fd53eb3a5bb083b12f1ff1e68f5ba9208a5badd0210944bf62297899a7416d61cbd29d24adc02024b70789bad289abafcfa24b02370e5ea5929b39022dc6f46 AUX kdelibs-4.6.2-armlinking.patch 1129 SHA256 9b076d1587bb02b85353f3a155199fd6dace7d1c76f189667787bca89192dee6 SHA512 d0208e095e751d4064e3f9b7d836135bce8c7f1cb7b4f1a20ef4d86d2fd5a08523c563c72ab86a871929000f26e4d50fa58fd81f7996edc57066984ce508ff1d WHIRLPOOL 81535f48c1ab14e37fd0dae7751317e72c53f4c55d4c28be67db8c6782af9a0a5e1ee3aba48680b8d367c9b6dda4d0e481392826b5eb597e1965bfbff70aaf38 @@ -20,25 +21,26 @@ DIST kdelibs-4.14.2.tar.xz 11597872 SHA256 39745a77f019cc1280374aa5de02fbf961393 DIST kdelibs-4.14.3.tar.xz 11600500 SHA256 f8206da1106184ef0bd031b82701c4910b8dade331c4cdaf1cd9c6c5208cfd9e SHA512 7713cec4851fd4d7d5376afd905515902395ca469cefe1924c05ac0cd4499c28ab6a3c3e7bee10c4cfb3584f2fe93cfb6129d5b550d56d18217866f5fde748cf WHIRLPOOL 9b6d525136cee8e43b832dbbe7451494cc30e15cc58cc34eeab8c9040a9cbe893dc8ba794be50cdb3462e20279bfb41bee22385d3d106a353ef738da510f5c04 EBUILD kdelibs-4.12.5-r2.ebuild 8687 SHA256 766c49e483380970b54134ef1a3cb49d8a84bdbe718a83f44adc23e0feff675f SHA512 e5d52fb6fb265b95f49808a08d6da06607f3905e5296344ddcad8e7ebee8c218bb7b271c583654369f31f4e4e817cddd4633cd3908ded0b2162df21fa08ea1fa WHIRLPOOL 37af099002f5bb8c66853114436d9f881677d30797897e098eb0a5416d47fc57283847741385d2c9d4e81946be424ae94bcb11300c7b710b46521a870edf3d15 EBUILD kdelibs-4.14.2.ebuild 8593 SHA256 37d02d042bcaa1079ef14978b68a196d0ee88b690eaf33967bd2ee650f9ac8a2 SHA512 42e32a9b51a4d06ec75c656ea130deeb58010959f61f2bd094cae034c70be86d545dc8e613d2944337665444a01dd31c43bc3bc1a439e7b02b08d62f130bda9d WHIRLPOOL 1c7c445b650b8c31799922484141c503281bca6d362006a0a522ba5436991708470be0e57b0b30c7670926391f1d81672101a0a8c9de75cd4023a568ed6a6fdb +EBUILD kdelibs-4.14.3-r1.ebuild 8699 SHA256 55dd58bc9786233f16b28d3b55bf513f384b13e1260e1ec0964d62d8d0209c11 SHA512 cde0de66b6c1147731db853108c1e888a44dc3538033c1ac3fa387d19dbe6367debc33f0abbe45c30ad06c70c38bc5920da8e6fe80620435e4eee32cb06270b9 WHIRLPOOL 0f02a68518de298a719ad662c9f86503cb38c0e2e4a571af1d0fdf4bcb00f9f813ff260125a2e4943b2e9aeda4afcec3dd01920045fb1c24fa5e7b83603c6a97 EBUILD kdelibs-4.14.3.ebuild 8651 SHA256 05bd8e7b30cee28e8226df0aa6f6ffd0e008aa1366af2ad2cadde13c9bb4976b SHA512 759d7e6ab7f8dd83a7c450d93eb095d47007a55a9149e8d35850f2b12b8918cb54942187f4099392989c3b09ade16af11124b8a0f60d90811ef7a283ef4d24cf WHIRLPOOL b2fec9587869adafecb04b2487b832a6ab0cf469a7006c5e6928d1d177e8f11b2be231e578d859fee20894b42883157dc1ccc969b35222202298d62aff5355e0 -MISC ChangeLog 60107 SHA256 29355a47bec8b8faffb58db56591a0f5593810296537e5a986003b62c2b02b12 SHA512 5e002f5aa7d4c2ca072fa1abdb4163a45c0d6bd20359e6641125d25d562feb60b3929dfc9777a51503de9e12b2c7253fb1e11fe2e33bc451b45018e0e943d428 WHIRLPOOL 4eec4c0452fbb3915300c467aa5151e2938dfc9f035e2aa5428fd933a3d342b58e94569ecfa0a0807fe0efa6c4f0478f39840695e365b61b83fafdafb2b7c4c8 +MISC ChangeLog 60331 SHA256 d24ea7ad1cbe28c024d606e3a47accefaa90fd5517c5c1e1e46631e08e7b8399 SHA512 79bdf479f43ae83c66fc979be525efd615b40595c16fe309ed51918ce8f8a91b96bb9b4403b5ce872ad017c6d2ef7ced109f589ab79d970c05e64dca6ae36f7d WHIRLPOOL ffca1c59e771d9de74913a9620c258972ca4521c11c1448d9494aa6c39a4518485ce57c258b3bf751575b38c3e52ca4cb680b406e53054105668573e2f27ebb4 MISC ChangeLog-2009 110608 SHA256 845ba7764dc9cabd4753d146e82cc0347a0dbbe21a76a4aab453106e7d70ba1f SHA512 c643c3bd742f1c2c4322217b4d9f2992310e9bf86f585ef687cf68f54ed2a86d2950f7f3c3fc5021a2dd472b6db39e17415ca6cde478e4ef4f91317a116889b5 WHIRLPOOL 8dd58bffc294a811176bc3f9882a0fa8a12c02fcdd692bacfccfc9745646d5062d3980553388fcdc835bbbecefd0783f029d07a5999e7208ceece5a93fa36893 MISC metadata.xml 335 SHA256 ce5c36bcfe52e7bc12d4c7fb83f64b01fd52f5b329365cadd44bd9d59b1e3a3a SHA512 efc588b15e3096574a9ecf0d0edf99f979197cc0e33b2710fd7babb16f2dcaf3cff22197e9fb429ef97590a1288410f77cd987e5c03b3dac8c85236b9af751e6 WHIRLPOOL 6f8cba5c16126a196fb424944b9c12322579ccbe8165821e5cb11611f941a664dee1a31f52927a346da165c25cd829c1f0187e40d209e5ef7c0af7e1afac3347 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0 -iQJiBAEBCABMBQJUfya+RRSAAAAAABQAKGlzc3Vlci1mcHJAbm90YXRpb25zOTc5 +iQJiBAEBCABMBQJUgEgnRRSAAAAAABQAKGlzc3Vlci1mcHJAbm90YXRpb25zOTc5 MTY5NkQ3RDM3NkRBN0U5QjZGMTUwMDZCMUYzOERDQTQ1QTFFQwAKCRAGsfONykWh -7G0oEACH8d4zXltRMUcbZT3BdHoR0k9uAlZ5tYRNIYEjsvNcxjTGirT1EiBFSNiU -nMJlXxz1waGqyHa4GWqzwoG//xuBEVkCYUsKmPOIIjT52gmkBv0zdOyokmr351N5 -cZ0gN/JsMg96LRrqAoEm1tuRZKV0NaYBwEBIO6dDG4Q9gANFTbUFq6IFoufnxVtr -+HaRU27H8m50RkQM2TXdJEwfR0jl0U+/ivTDyQSgHjbqzgpozVvgfBr0nePFsDIm -g8PVDhPvtAgDSB2D7cVAQisqpi1Any1nxZlKe15HO0gAjDsoDsuZjs0bb5glxcL8 -HGcEM7Kb3IAv/M+cBqUrT1YBWKlyWJEK2HZijZVVrLwJJA7/CkBKhRFRoMP+uhYz -/A6uu1OkaU4DHf8UGjMmVzT5ctlahMn3GOhTlapHC6+K+3aPp+gChWYXiBwIK6dh -94q6onccVK8V8VDro+EnZ23i3JCfUsyRR42/y1smF79ClyfouE+DuOyhRzivZgb/ -eFKC3BS3lGTIm9kfKvGjaS5tgyDr3h0w/CPbhIRJkeaYrii8+kbNUB48ouU2Y9G4 -fJ0urjKkzHrL8qGPzha1uedj1B9IO6WInu06UpcXSsOq5I0mmH670Tj481qEpniK -+7z2gQ9Tk8DeUSYWjyXCk3oZ4cqFKECe4HJzBWGDsqFInDO+UQ== -=y1BF +7JN6D/9vAdUGugK+IIhxJKO8t6ruLR8sh1G08h4MXDsJfP9wzUITJ/Pb4wNBv51H +yzpB9OLAdC/SLNWTEWeCOH3lHRT+XN2KBy7J/Tz1K/B0T3pd7XExVAbNnq2eummS +pGvqGces5JijwTLa603GiLOP69mZBUYONxP0ry/VojOmo9fDhVvcM5bNu0rpoqN8 +AWAzogmDLHzxgEsMgCbcibXGLYiEdSv0Ole+ljSX6CsRJ9uRQ7kA/P0iSTdLfudE +yJjiXxqzA2WRVdTs46KJlC2khdVB9W1dhhDvyDysVgo2IkYEU0LQFSsjV9+BU13/ +ONTof6feQ3/xfc+RpquxPaZAEHGSdNE/glzxpqgAmAV+QnCWS37uirt7WsZBygFX +BsjmNR98UJCpe1ShvVTZSeEwW6HjPetFnWVr2eV3srGylxiNR9kLDFZxW6QMPGf/ +otBn959Og7CSdjANk0rsVshh8i2mHxHimZF4bA5qgifrKY8rCJINDMsk9PfIs8k+ +xFx/Kiv6D6RktIwKgGgwl9xtT1LHdF98xYbHS83I5GPDCIw+A8niLQR+f8psVrwA +PHtgPTskMsQl1676w2kYz26E5/GvvHG6ghiWQ83X4bbQBd1L2H3UQNe7qIeT+tn9 +teq4ok1Fy8OJ26o7+ejXPzfg22VLtDL62Iw4ocTxkWKTOWl89A== +=xRR1 -----END PGP SIGNATURE----- diff --git a/kde-base/kdelibs/files/kdelibs-4.14.3-trim-crash.patch b/kde-base/kdelibs/files/kdelibs-4.14.3-trim-crash.patch new file mode 100644 index 000000000000..12c84dcfe93e --- /dev/null +++ b/kde-base/kdelibs/files/kdelibs-4.14.3-trim-crash.patch @@ -0,0 +1,610 @@ +From 570425a30c008297df09ef48b60486108fcf33e9 Mon Sep 17 00:00:00 2001 +From: Andrea Iacovitti <aiacovitti@libero.it> +Date: Tue, 11 Nov 2014 07:54:28 +0100 +Subject: [PATCH] Introduce DOMString::trimSpaces(), useful for removing space + characters from url string. + +--- + khtml/css/css_valueimpl.cpp | 4 ++-- + khtml/css/cssparser.cpp | 4 ++-- + khtml/dom/dom_string.cpp | 32 ++++++++++++++++++++++++++++++++ + khtml/dom/dom_string.h | 7 +++++++ + khtml/dom/html_base.cpp | 8 ++++---- + khtml/dom/html_document.cpp | 2 +- + khtml/dom/html_form.cpp | 4 ++-- + khtml/dom/html_head.cpp | 12 ++++++------ + khtml/dom/html_image.cpp | 8 ++++---- + khtml/dom/html_inline.cpp | 4 ++-- + khtml/ecma/kjs_html.cpp | 4 ++-- + khtml/ecma/xmlhttprequest.cpp | 3 ++- + khtml/html/html_baseimpl.cpp | 6 +++--- + khtml/html/html_formimpl.cpp | 2 +- + khtml/html/html_headimpl.cpp | 12 ++++++------ + khtml/html/html_imageimpl.cpp | 6 +++--- + khtml/html/html_inlineimpl.cpp | 2 +- + khtml/html/html_objectimpl.cpp | 4 ++-- + khtml/html/html_tableimpl.cpp | 4 ++-- + khtml/html/htmlparser.cpp | 4 ++-- + khtml/html/htmlprospectivetokenizer.cpp | 4 ++-- + khtml/khtml_part.cpp | 4 ++-- + khtml/khtmlview.cpp | 2 +- + khtml/rendering/render_image.cpp | 8 ++++---- + khtml/xml/dom_docimpl.cpp | 7 ++++--- + 25 files changed, 99 insertions(+), 58 deletions(-) + +diff --git a/khtml/css/css_valueimpl.cpp b/khtml/css/css_valueimpl.cpp +index 98f33e6..aa825b7 100644 +--- a/khtml/css/css_valueimpl.cpp ++++ b/khtml/css/css_valueimpl.cpp +@@ -1383,9 +1383,9 @@ CSSImageValueImpl::CSSImageValueImpl(const DOMString &url, StyleBaseImpl* style) + : CSSPrimitiveValueImpl(url, CSSPrimitiveValue::CSS_URI) + { + m_image = 0; +- const QString imgUrl = url.string().trimmed(); ++ const DOMString imgUrl = url.trimSpaces(); + if (!imgUrl.isEmpty()) { +- m_fullImageUrl = KUrl(style->baseURL(), imgUrl).url(); ++ m_fullImageUrl = KUrl(style->baseURL(), imgUrl.string()).url(); + } else { + m_fullImageUrl.clear(); + } +diff --git a/khtml/css/cssparser.cpp b/khtml/css/cssparser.cpp +index e8f8493..600d205 100644 +--- a/khtml/css/cssparser.cpp ++++ b/khtml/css/cssparser.cpp +@@ -2309,8 +2309,8 @@ bool CSSParser::parseFontFaceSrc() + while ((val = valueList->current())) { + CSSFontFaceSrcValueImpl* parsedValue = 0; + if (val->unit == CSSPrimitiveValue::CSS_URI && !expectComma && styleElement) { +- const QString uri = qString(val->string).trimmed(); +- parsedValue = new CSSFontFaceSrcValueImpl(DOMString(KUrl(styleElement->baseURL(), uri).url()), false /*local*/); ++ const DOMString uri = domString(val->string).trimSpaces(); ++ parsedValue = new CSSFontFaceSrcValueImpl(DOMString(KUrl(styleElement->baseURL(), uri.string()).url()), false /*local*/); + uriValue = parsedValue; + allowFormat = true; + expectComma = true; +diff --git a/khtml/dom/dom_string.cpp b/khtml/dom/dom_string.cpp +index d54d037..4a10221 100644 +--- a/khtml/dom/dom_string.cpp ++++ b/khtml/dom/dom_string.cpp +@@ -290,6 +290,38 @@ bool DOMString::startsWith(const DOMString& str) const + return impl->startsWith(str.implementation()); + } + ++static inline bool isSpaceCharacter(const ushort &c) ++{ ++ // http://dev.w3.org/html5/spec-LC/common-microsyntaxes.html#space-character ++ return ((c < 0x0021) && ++ (c == 0x0020 || c == 0x0009 || c == 0x000A || c == 0x000C || c == 0x000D)); ++} ++ ++DOMString DOMString::trimSpaces() const ++{ ++ if (!impl || !impl->l) { ++ return *this; ++ } ++ ++ const QChar *s = impl->s; ++ unsigned int start = 0; ++ unsigned int end = impl->l - 1; ++ ++ while ((start <= end) && isSpaceCharacter(s[start].unicode())) { ++ ++start; ++ } ++ ++ if (start > end) { ++ return DOMString(""); ++ } ++ ++ while (end && isSpaceCharacter(s[end].unicode())) { ++ --end; ++ } ++ ++ return new DOMStringImpl(s + start, end - start + 1); ++} ++ + // ------------------------------------------------------------------------ + + bool DOM::strcasecmp( const DOMString &as, const DOMString &bs ) +diff --git a/khtml/dom/dom_string.h b/khtml/dom/dom_string.h +index 13b4265..84b1378 100644 +--- a/khtml/dom/dom_string.h ++++ b/khtml/dom/dom_string.h +@@ -125,6 +125,13 @@ public: + bool startsWith(const DOMString& str) const; + + /** ++ * Returns a string with Space Characters removed from the start and the end. ++ * Space Characters as defined in ++ * http://dev.w3.org/html5/spec-LC/common-microsyntaxes.html#space-character ++ */ ++ DOMString trimSpaces() const; ++ ++ /** + * @internal get a handle to the imlementation of the DOMString + * Use at own risk!!! + */ +diff --git a/khtml/dom/html_base.cpp b/khtml/dom/html_base.cpp +index c5e9048..11ee331 100644 +--- a/khtml/dom/html_base.cpp ++++ b/khtml/dom/html_base.cpp +@@ -231,8 +231,8 @@ void HTMLFrameElement::setScrolling( const DOMString &value ) + DOMString HTMLFrameElement::src() const + { + if(!impl) return DOMString(); +- const QString s = ((ElementImpl *)impl)->getAttribute(ATTR_SRC).string().trimmed(); +- return !s.isNull() ? impl->document()->completeURL(s) : DOMString(); ++ const DOMString s = ((ElementImpl *)impl)->getAttribute(ATTR_SRC).trimSpaces(); ++ return !s.isNull() ? impl->document()->completeURL(s.string()) : s; + } + + void HTMLFrameElement::setSrc( const DOMString &value ) +@@ -367,8 +367,8 @@ void HTMLIFrameElement::setScrolling( const DOMString &value ) + DOMString HTMLIFrameElement::src() const + { + if(!impl) return DOMString(); +- const QString s = ((ElementImpl *)impl)->getAttribute(ATTR_SRC).string().trimmed(); +- return !s.isNull() ? impl->document()->completeURL(s) : DOMString(); ++ const DOMString s = ((ElementImpl *)impl)->getAttribute(ATTR_SRC).trimSpaces(); ++ return !s.isNull() ? impl->document()->completeURL(s.string()) : s; + } + + void HTMLIFrameElement::setSrc( const DOMString &value ) +diff --git a/khtml/dom/html_document.cpp b/khtml/dom/html_document.cpp +index 042bc5a..2acf683 100644 +--- a/khtml/dom/html_document.cpp ++++ b/khtml/dom/html_document.cpp +@@ -100,7 +100,7 @@ DOMString HTMLDocument::referrer() const + DOMString HTMLDocument::completeURL(const DOMString& str) const + { + if(!impl) return str; +- return ((HTMLDocumentImpl *)impl)->completeURL(str.string().trimmed()); ++ return ((HTMLDocumentImpl *)impl)->completeURL(str.trimSpaces().string()); + } + + DOMString HTMLDocument::domain() const +diff --git a/khtml/dom/html_form.cpp b/khtml/dom/html_form.cpp +index 425cb3d..6d44261 100644 +--- a/khtml/dom/html_form.cpp ++++ b/khtml/dom/html_form.cpp +@@ -504,8 +504,8 @@ void HTMLInputElement::setSize( long value ) + DOMString HTMLInputElement::src() const + { + if(!impl) return DOMString(); +- const QString s = static_cast<ElementImpl*>(impl)->getAttribute(ATTR_SRC).string().trimmed(); +- return !s.isNull() ? impl->document()->completeURL(s) : DOMString(); ++ const DOMString s = static_cast<ElementImpl*>(impl)->getAttribute(ATTR_SRC).trimSpaces(); ++ return !s.isNull() ? impl->document()->completeURL(s.string()) : s; + } + + void HTMLInputElement::setSrc( const DOMString &value ) +diff --git a/khtml/dom/html_head.cpp b/khtml/dom/html_head.cpp +index 4812631..23fe125 100644 +--- a/khtml/dom/html_head.cpp ++++ b/khtml/dom/html_head.cpp +@@ -58,8 +58,8 @@ HTMLBaseElement::~HTMLBaseElement() + DOMString HTMLBaseElement::href() const + { + if(!impl) return DOMString(); +- const QString href = static_cast<ElementImpl*>(impl)->getAttribute(ATTR_HREF).string().trimmed(); +- return !href.isNull() ? impl->document()->completeURL(href) : DOMString(); ++ const DOMString href = static_cast<ElementImpl*>(impl)->getAttribute(ATTR_HREF).trimSpaces(); ++ return !href.isNull() ? impl->document()->completeURL(href.string()) : href; + } + + void HTMLBaseElement::setHref( const DOMString &value ) +@@ -134,8 +134,8 @@ void HTMLLinkElement::setCharset( const DOMString &value ) + DOMString HTMLLinkElement::href() const + { + if(!impl) return DOMString(); +- const QString href = static_cast<ElementImpl*>(impl)->getAttribute(ATTR_HREF).string().trimmed(); +- return !href.isNull() ? impl->document()->completeURL(href) : DOMString(); ++ const DOMString href = static_cast<ElementImpl*>(impl)->getAttribute(ATTR_HREF).trimSpaces(); ++ return !href.isNull() ? impl->document()->completeURL(href.string()) : href; + } + + void HTMLLinkElement::setHref( const DOMString &value ) +@@ -379,8 +379,8 @@ void HTMLScriptElement::setDefer( bool _defer ) + DOMString HTMLScriptElement::src() const + { + if(!impl) return DOMString(); +- const QString s = ((ElementImpl *)impl)->getAttribute(ATTR_SRC).string().trimmed(); +- return !s.isNull() ? impl->document()->completeURL(s) : DOMString(); ++ const DOMString s = ((ElementImpl *)impl)->getAttribute(ATTR_SRC).trimSpaces(); ++ return !s.isNull() ? impl->document()->completeURL(s.string()) : s; + } + + void HTMLScriptElement::setSrc( const DOMString &value ) +diff --git a/khtml/dom/html_image.cpp b/khtml/dom/html_image.cpp +index db1f5ea..a8b4ae0 100644 +--- a/khtml/dom/html_image.cpp ++++ b/khtml/dom/html_image.cpp +@@ -95,8 +95,8 @@ void HTMLAreaElement::setCoords( const DOMString &value ) + DOMString HTMLAreaElement::href() const + { + if(!impl) return DOMString(); +- const QString href = static_cast<ElementImpl*>(impl)->getAttribute(ATTR_HREF).string().trimmed(); +- return !href.isNull() ? impl->document()->completeURL(href) : DOMString(); ++ const DOMString href = static_cast<ElementImpl*>(impl)->getAttribute(ATTR_HREF).trimSpaces(); ++ return !href.isNull() ? impl->document()->completeURL(href.string()) : href; + } + + void HTMLAreaElement::setHref( const DOMString &value ) +@@ -302,8 +302,8 @@ void HTMLImageElement::setLongDesc( const DOMString &value ) + DOMString HTMLImageElement::src() const + { + if(!impl) return DOMString(); +- const QString s = ((ElementImpl *)impl)->getAttribute(ATTR_SRC).string().trimmed(); +- return !s.isNull() ? impl->document()->completeURL(s) : DOMString(); ++ const DOMString s = ((ElementImpl *)impl)->getAttribute(ATTR_SRC).trimSpaces(); ++ return !s.isNull() ? impl->document()->completeURL(s.string()) : s; + } + + void HTMLImageElement::setSrc( const DOMString &value ) +diff --git a/khtml/dom/html_inline.cpp b/khtml/dom/html_inline.cpp +index c01f668..2f74713 100644 +--- a/khtml/dom/html_inline.cpp ++++ b/khtml/dom/html_inline.cpp +@@ -95,8 +95,8 @@ void HTMLAnchorElement::setCoords( const DOMString &value ) + DOMString HTMLAnchorElement::href() const + { + if(!impl) return DOMString(); +- const QString href = static_cast<ElementImpl*>(impl)->getAttribute(ATTR_HREF).string().trimmed(); +- return !href.isNull() ? impl->document()->completeURL(href) : DOMString(); ++ const DOMString href = static_cast<ElementImpl*>(impl)->getAttribute(ATTR_HREF).trimSpaces(); ++ return !href.isNull() ? impl->document()->completeURL(href.string()) : href; + } + + void HTMLAnchorElement::setHref( const DOMString &value ) +diff --git a/khtml/ecma/kjs_html.cpp b/khtml/ecma/kjs_html.cpp +index ea15929..d5693af 100644 +--- a/khtml/ecma/kjs_html.cpp ++++ b/khtml/ecma/kjs_html.cpp +@@ -1587,8 +1587,8 @@ QHash<int, const HTMLElement::BoundPropInfo*>* HTMLElement::boundPropInfo() + + QString KJS::HTMLElement::getURLArg(unsigned id) const + { +- const QString rel = impl()->getAttribute(id).string().trimmed(); +- return !rel.isNull() ? impl()->document()->completeURL(rel) : rel; ++ const DOMString rel = impl()->getAttribute(id).trimSpaces(); ++ return !rel.isNull() ? impl()->document()->completeURL(rel.string()) : QString(); + } + + DOM::HTMLElementImpl *toHTMLElement(JSValue *val) { +diff --git a/khtml/ecma/xmlhttprequest.cpp b/khtml/ecma/xmlhttprequest.cpp +index f9fae5d..45c5a4b 100644 +--- a/khtml/ecma/xmlhttprequest.cpp ++++ b/khtml/ecma/xmlhttprequest.cpp +@@ -906,7 +906,8 @@ JSValue *XMLHttpRequestProtoFunc::callAsFunction(ExecState *exec, JSObject *this + return throwError(exec, SyntaxError, "Not enough arguments"); + + QString method = args[0]->toString(exec).qstring(); +- KUrl url = KUrl(request->doc->completeURL(args[1]->toString(exec).qstring())); ++ DOMString urlArg = args[1]->toString(exec).domString().trimSpaces(); ++ KUrl url = KUrl(request->doc->completeURL(urlArg.string())); + + bool async = true; + if (args.size() >= 3) { +diff --git a/khtml/html/html_baseimpl.cpp b/khtml/html/html_baseimpl.cpp +index 5b4a77a..102b56e 100644 +--- a/khtml/html/html_baseimpl.cpp ++++ b/khtml/html/html_baseimpl.cpp +@@ -71,7 +71,7 @@ void HTMLBodyElementImpl::parseAttribute(AttributeImpl *attr) + + case ATTR_BACKGROUND: + { +- QString url = attr->val()->string().trimmed(); ++ QString url = attr->value().trimSpaces().string(); + if (!url.isEmpty()) { + url = document()->completeURL( url ); + addCSSProperty(CSS_PROP_BACKGROUND_IMAGE, DOMString("url('"+url+"')") ); +@@ -325,7 +325,7 @@ void HTMLFrameElementImpl::parseAttribute(AttributeImpl *attr) + switch(attr->id()) + { + case ATTR_SRC: +- setLocation(attr->value().string().trimmed()); ++ setLocation(attr->value().trimSpaces().string()); + break; + case ATTR_FRAMEBORDER: + { +@@ -755,7 +755,7 @@ void HTMLIFrameElementImpl::parseAttribute(AttributeImpl *attr ) + addHTMLAlignment( attr->value() ); + break; + case ATTR_SRC: +- url = attr->value().string().trimmed(); ++ url = attr->value().trimSpaces().string(); + setNeedComputeContent(); + // ### synchronously start the process? + break; +diff --git a/khtml/html/html_formimpl.cpp b/khtml/html/html_formimpl.cpp +index 134851a..d227481 100644 +--- a/khtml/html/html_formimpl.cpp ++++ b/khtml/html/html_formimpl.cpp +@@ -679,7 +679,7 @@ void HTMLFormElementImpl::submit( ) + } + #endif // KHTML_NO_WALLET + +- QString url = getAttribute(ATTR_ACTION).string().trimmed(); ++ QString url = getAttribute(ATTR_ACTION).trimSpaces().string(); + // ignore base url if 'action' attribute is empty. + if (url.isEmpty()) + url = formUrl.url(); +diff --git a/khtml/html/html_headimpl.cpp b/khtml/html/html_headimpl.cpp +index 0de904d..a265ae1 100644 +--- a/khtml/html/html_headimpl.cpp ++++ b/khtml/html/html_headimpl.cpp +@@ -55,7 +55,7 @@ void HTMLBaseElementImpl::parseAttribute(AttributeImpl *attr) + switch(attr->id()) + { + case ATTR_HREF: +- m_href = attr->value().string().trimmed(); ++ m_href = attr->value().trimSpaces().string(); + process(); + break; + case ATTR_TARGET: +@@ -116,9 +116,9 @@ void HTMLLinkElementImpl::parseAttribute(AttributeImpl *attr) + switch (attr->id()) + { + case ATTR_HREF: { +- const QString hrefUrl = attr->val()->string().trimmed(); ++ const DOMString hrefUrl = attr->value().trimSpaces(); + if (!hrefUrl.isEmpty()) { +- m_url = document()->completeURL(hrefUrl); ++ m_url = document()->completeURL(hrefUrl.string()); + } + process(); + break; +@@ -385,7 +385,7 @@ void HTMLScriptElementImpl::parseAttribute(AttributeImpl *attr) + // we'll only start doing things once we get insertedIntoDocument() + if (m_evaluated || m_cachedScript || m_createdByParser || !inDocument()) + return; +- QString url = attr->value().string().trimmed(); ++ const DOMString url = attr->value().trimSpaces(); + if (!url.isEmpty()) + loadFromUrl(url); + break; +@@ -490,7 +490,7 @@ void HTMLScriptElementImpl::insertedIntoDocument() + if (m_createdByParser) + return; + +- QString url = getAttribute(ATTR_SRC).string().trimmed(); ++ const DOMString url = getAttribute(ATTR_SRC).trimSpaces(); + if (!url.isEmpty()) { + loadFromUrl(url); + return; +@@ -622,7 +622,7 @@ void HTMLScriptElementImpl::setDefer(bool defer) + + DOMString HTMLScriptElementImpl::src() const + { +- return document()->completeURL(getAttribute(ATTR_SRC).string().trimmed()); ++ return document()->completeURL(getAttribute(ATTR_SRC).trimSpaces().string()); + } + + void HTMLScriptElementImpl::setSrc(const DOMString &value) +diff --git a/khtml/html/html_imageimpl.cpp b/khtml/html/html_imageimpl.cpp +index 51695a8..15a8302 100644 +--- a/khtml/html/html_imageimpl.cpp ++++ b/khtml/html/html_imageimpl.cpp +@@ -84,7 +84,7 @@ void HTMLImageElementImpl::parseAttribute(AttributeImpl *attr) + setChanged(); + + //Start loading the image already, to generate events +- const QString imgSrcUrl = attr->value().string().trimmed(); ++ const DOMString imgSrcUrl = attr->value().trimSpaces(); + if (!imgSrcUrl.isEmpty()) { //### why do we not hide or something when setting this? + CachedImage* newImage = document()->docLoader()->requestImage(imgSrcUrl); + if (newImage && newImage != m_image) { +@@ -151,7 +151,7 @@ void HTMLImageElementImpl::parseAttribute(AttributeImpl *attr) + if ( attr->value()[0] == '#' ) + usemap = attr->value().lower(); + else { +- QString url = document()->completeURL(attr->value().string().trimmed()); ++ QString url = document()->completeURL(attr->value().trimSpaces().string()); + // ### we remove the part before the anchor and hope + // the map is on the same html page.... + usemap = url; +@@ -438,7 +438,7 @@ void HTMLMapElementImpl::parseAttribute(AttributeImpl *attr) + } + else { + // add name with full url: +- const QString url = document()->completeURL(attr->value().string().trimmed()); ++ const QString url = document()->completeURL(attr->value().trimSpaces().string()); + if(document()->isHTMLDocument()) + static_cast<HTMLDocumentImpl*>(document())->mapMap[url] = this; + } +diff --git a/khtml/html/html_inlineimpl.cpp b/khtml/html/html_inlineimpl.cpp +index fc2e6f6..6e9bdd8 100644 +--- a/khtml/html/html_inlineimpl.cpp ++++ b/khtml/html/html_inlineimpl.cpp +@@ -81,7 +81,7 @@ void HTMLAnchorElementImpl::defaultEventHandler(EventImpl *evt) + if (k->qKeyEvent()) k->qKeyEvent()->accept(); + } + +- QString url = getAttribute(ATTR_HREF).string().trimmed(); ++ QString url = getAttribute(ATTR_HREF).trimSpaces().string(); + QString utarget = getAttribute(ATTR_TARGET).string(); + + if ( e && e->button() == 1 ) +diff --git a/khtml/html/html_objectimpl.cpp b/khtml/html/html_objectimpl.cpp +index 863afe6..f5aef26 100644 +--- a/khtml/html/html_objectimpl.cpp ++++ b/khtml/html/html_objectimpl.cpp +@@ -695,7 +695,7 @@ void HTMLEmbedElementImpl::parseAttribute(AttributeImpl *attr) + { + case ATTR_CODE: + case ATTR_SRC: +- url = attr->val()->string().trimmed(); ++ url = attr->value().trimSpaces().string(); + setNeedComputeContent(); + break; + case ATTR_BORDER: +@@ -775,7 +775,7 @@ void HTMLObjectElementImpl::parseAttribute(AttributeImpl *attr) + switch ( attr->id() ) + { + case ATTR_DATA: +- url = attr->val()->string().trimmed(); ++ url = attr->value().trimSpaces().string(); + setNeedComputeContent(); + break; + case ATTR_CLASSID: +diff --git a/khtml/html/html_tableimpl.cpp b/khtml/html/html_tableimpl.cpp +index 8323093..c135545 100644 +--- a/khtml/html/html_tableimpl.cpp ++++ b/khtml/html/html_tableimpl.cpp +@@ -495,7 +495,7 @@ void HTMLTableElementImpl::parseAttribute(AttributeImpl *attr) + break; + case ATTR_BACKGROUND: + { +- QString url = attr->val()->string().trimmed(); ++ QString url = attr->value().trimSpaces().string(); + if (!url.isEmpty()) { + url = document()->completeURL( url ); + addCSSProperty(CSS_PROP_BACKGROUND_IMAGE, DOMString("url('"+url+"')") ); +@@ -638,7 +638,7 @@ void HTMLTablePartElementImpl::parseAttribute(AttributeImpl *attr) + break; + case ATTR_BACKGROUND: + { +- QString url = attr->val()->string().trimmed(); ++ QString url = attr->value().trimSpaces().string(); + if (!url.isEmpty()) { + url = document()->completeURL( url ); + addCSSProperty(CSS_PROP_BACKGROUND_IMAGE, DOMString("url('"+url+"')") ); +diff --git a/khtml/html/htmlparser.cpp b/khtml/html/htmlparser.cpp +index ce5be3e..49b8068 100644 +--- a/khtml/html/htmlparser.cpp ++++ b/khtml/html/htmlparser.cpp +@@ -974,7 +974,7 @@ NodeImpl *KHTMLParser::getElement(Token* t) + KHTMLGlobal::defaultHTMLSettings()->isHideAdsEnabled() && + !strcasecmp( t->attrs->getValue( ATTR_TYPE ), "image" ) ) + { +- const QString url = doc()->completeURL(t->attrs->getValue(ATTR_SRC)->string().trimmed()); ++ const QString url = doc()->completeURL(DOMString(t->attrs->getValue(ATTR_SRC)).trimSpaces().string()); + if (KHTMLGlobal::defaultHTMLSettings()->isAdFiltered(url)) + return 0; + } +@@ -1104,7 +1104,7 @@ NodeImpl *KHTMLParser::getElement(Token* t) + KHTMLGlobal::defaultHTMLSettings()->isAdFilterEnabled()&& + KHTMLGlobal::defaultHTMLSettings()->isHideAdsEnabled()) + { +- const QString url = doc()->completeURL(t->attrs->getValue(ATTR_SRC)->string().trimmed()); ++ const QString url = doc()->completeURL(DOMString(t->attrs->getValue(ATTR_SRC)).trimSpaces().string()); + if (KHTMLGlobal::defaultHTMLSettings()->isAdFiltered(url)) + return 0; + } +diff --git a/khtml/html/htmlprospectivetokenizer.cpp b/khtml/html/htmlprospectivetokenizer.cpp +index 83c4c16..585a449 100644 +--- a/khtml/html/htmlprospectivetokenizer.cpp ++++ b/khtml/html/htmlprospectivetokenizer.cpp +@@ -706,7 +706,7 @@ void ProspectiveTokenizer::processAttribute() + LocalName attrLocal = LocalName::fromString(&attrDS, IDS_NormalizeLower); + uint attribute = attrLocal.id(); + if (attribute == localNamePart(ATTR_SRC) && m_urlToLoad.isEmpty()) +- m_urlToLoad = DOMString(QString(m_attributeValue.data(), m_attributeValue.size()).trimmed()); ++ m_urlToLoad = DOMString(m_attributeValue.data(), m_attributeValue.size()).trimSpaces(); + break; + } + case ID_LINK: +@@ -715,7 +715,7 @@ void ProspectiveTokenizer::processAttribute() + LocalName attrLocal = LocalName::fromString(&attrDS, IDS_NormalizeLower); + uint attribute = attrLocal.id(); + if (attribute == localNamePart(ATTR_HREF) && m_urlToLoad.isEmpty()) +- m_urlToLoad = DOMString(QString(m_attributeValue.data(), m_attributeValue.size()).trimmed()); ++ m_urlToLoad = DOMString(m_attributeValue.data(), m_attributeValue.size()).trimSpaces(); + else if (attribute == localNamePart(ATTR_REL)) { + DOMStringImpl* lowerAttribute = DOMStringImpl(DOMStringImpl::ShallowCopy, m_attributeValue.data(), m_attributeValue.size()).lower(); + QString val = lowerAttribute->string(); +diff --git a/khtml/khtml_part.cpp b/khtml/khtml_part.cpp +index 15ea3c9..6c4ed17 100644 +--- a/khtml/khtml_part.cpp ++++ b/khtml/khtml_part.cpp +@@ -6420,7 +6420,7 @@ bool KHTMLPart::handleMouseMoveEventDrag(khtml::MouseMoveEvent *event) + if (url.isEmpty() && innerNodeImpl && innerNodeImpl->id() == ID_IMG) + { + img = static_cast<HTMLImageElementImpl *>(innerNodeImpl); +- u = completeURL(img->getAttribute(ATTR_SRC).string().trimmed()); ++ u = completeURL(img->getAttribute(ATTR_SRC).trimSpaces().string()); + pix = KIconLoader::global()->loadIcon("image-x-generic", KIconLoader::Desktop); + } + else +@@ -6719,7 +6719,7 @@ void KHTMLPart::runAdFilter() + node->id() == ID_IFRAME || + (node->id() == ID_INPUT && static_cast<HTMLInputElementImpl *>(node)->inputType() == HTMLInputElementImpl::IMAGE )) + { +- if (KHTMLGlobal::defaultHTMLSettings()->isAdFiltered(d->m_doc->completeURL(static_cast<ElementImpl *>(node)->getAttribute(ATTR_SRC).string().trimmed()))) ++ if (KHTMLGlobal::defaultHTMLSettings()->isAdFiltered(d->m_doc->completeURL(static_cast<ElementImpl *>(node)->getAttribute(ATTR_SRC).trimSpaces().string()))) + { + // Since any kids of node will be deleted, too, fastforward nextNode + // until we get outside of node. +diff --git a/khtml/khtmlview.cpp b/khtml/khtmlview.cpp +index 0c4e317..8078fdc 100644 +--- a/khtml/khtmlview.cpp ++++ b/khtml/khtmlview.cpp +@@ -2780,7 +2780,7 @@ QMap< ElementImpl*, QChar > KHTMLView::buildFallbackAccessKeys() const + bool text_before = false; + switch( element->id()) { + case ID_A: +- url = element->getAttribute(ATTR_HREF).string().trimmed(); ++ url = element->getAttribute(ATTR_HREF).trimSpaces().string(); + if( url.isEmpty()) // doesn't have href, it's only an anchor + continue; + text = static_cast< HTMLElementImpl* >( element )->innerText().string().simplified(); +diff --git a/khtml/rendering/render_image.cpp b/khtml/rendering/render_image.cpp +index dee27ab..6741858 100644 +--- a/khtml/rendering/render_image.cpp ++++ b/khtml/rendering/render_image.cpp +@@ -427,16 +427,16 @@ void RenderImage::updateFromElement() + else if (element()->id() == ID_IMG) + alt = static_cast<HTMLImageElementImpl*>(element())->altText(); + +- const QString u = element()->id() == ID_OBJECT ? +- element()->getAttribute(ATTR_DATA).string().trimmed() : element()->getAttribute(ATTR_SRC).string().trimmed(); ++ const DOMString u = element()->id() == ID_OBJECT ? ++ element()->getAttribute(ATTR_DATA).trimSpaces() : element()->getAttribute(ATTR_SRC).trimSpaces(); + + if (!u.isEmpty()) { + // Need to compute completeURL, as 'u' can be relative + // while m_cachedImage->url() is always full url + DocumentImpl *docImpl = element()->document(); +- const QString fullUrl = docImpl->completeURL(u); ++ const QString fullUrl = docImpl->completeURL(u.string()); + if (!m_cachedImage || m_cachedImage->url() != fullUrl) { +- CachedImage *new_image = docImpl->docLoader()->requestImage(fullUrl); ++ CachedImage *new_image = docImpl->docLoader()->requestImage(DOMString(fullUrl)); + if (new_image && new_image != m_cachedImage) { + updateImage(new_image); + } +diff --git a/khtml/xml/dom_docimpl.cpp b/khtml/xml/dom_docimpl.cpp +index 0a3e4ed..b8e5910 100644 +--- a/khtml/xml/dom_docimpl.cpp ++++ b/khtml/xml/dom_docimpl.cpp +@@ -1979,7 +1979,7 @@ void DocumentImpl::processHttpEquiv(const DOMString &equiv, const DOMString &con + v->part()->scheduleRedirection(delay, v->part()->url().url() ); + } else { + pos++; +- while(pos < (int)str.length() && str[pos].isSpace()) pos++; ++ while(pos < str.length() && str[pos].isSpace()) pos++; + str = str.mid(pos); + if(str.indexOf("url", 0, Qt::CaseInsensitive ) == 0) str = str.mid(3); + str = str.trimmed(); +@@ -1987,7 +1987,8 @@ void DocumentImpl::processHttpEquiv(const DOMString &equiv, const DOMString &con + while (str.length() && (str[str.length()-1] == ';' || str[str.length()-1] == ',')) { + str.resize(str.length()-1); + } +- QString newURL = document()->completeURL(str.trimmed()); ++ str = DOMString(str).trimSpaces().string(); ++ QString newURL = document()->completeURL(str); + if ( ok ) + v->part()->scheduleRedirection(delay, newURL, delay < 2 || newURL == URL().url()); + } +@@ -2047,7 +2048,7 @@ bool DocumentImpl::prepareMouseEvent( bool readonly, int _x, int _y, MouseEvent + //qDebug("urlnode: %s (%d)", getTagName(renderInfo.URLElement()->id()).string().toLatin1().constData(), renderInfo.URLElement()->id()); + + ElementImpl* e = static_cast<ElementImpl*>(renderInfo.URLElement()); +- const DOMString href = e->getAttribute(ATTR_HREF).string().trimmed(); ++ const DOMString href = e->getAttribute(ATTR_HREF).trimSpaces(); + const DOMString target = e->getAttribute(ATTR_TARGET); + + if (!target.isNull() && !href.isNull()) { +-- +2.0.4 + diff --git a/kde-base/kdelibs/kdelibs-4.14.3-r1.ebuild b/kde-base/kdelibs/kdelibs-4.14.3-r1.ebuild new file mode 100644 index 000000000000..b5f22fef123c --- /dev/null +++ b/kde-base/kdelibs/kdelibs-4.14.3-r1.ebuild @@ -0,0 +1,306 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/kde-base/kdelibs/kdelibs-4.14.3-r1.ebuild,v 1.1 2014/12/04 11:39:50 kensington Exp $ + +EAPI=5 + +CPPUNIT_REQUIRED="optional" +DECLARATIVE_REQUIRED="always" +OPENGL_REQUIRED="optional" +KDE_HANDBOOK="optional" +inherit kde4-base fdo-mime multilib toolchain-funcs flag-o-matic + +EGIT_BRANCH="KDE/4.14" + +DESCRIPTION="KDE libraries needed by all KDE programs" + +KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux" +LICENSE="LGPL-2.1" +IUSE="3dnow acl alsa altivec +bzip2 +crypt debug doc fam jpeg2k kerberos lzma mmx +nepomuk nls openexr +policykit spell sse sse2 ssl +udev +udisks +upower +zeroconf" + +REQUIRED_USE=" + udisks? ( udev ) + upower? ( udev ) +" + +# needs the kate regression testsuite from svn +RESTRICT="test" + +COMMONDEPEND=" + >=app-misc/strigi-0.7.7 + app-text/docbook-xml-dtd:4.2 + app-text/docbook-xsl-stylesheets + >=dev-libs/libattica-0.4.2 + >=dev-libs/libdbusmenu-qt-0.3.2 + dev-libs/libpcre[unicode] + dev-libs/libxml2 + dev-libs/libxslt + media-libs/fontconfig + media-libs/freetype:2 + media-libs/giflib + media-libs/libpng:0= + media-libs/phonon[qt4] + sys-libs/zlib + virtual/jpeg:0 + >=x11-misc/shared-mime-info-0.60 + acl? ( virtual/acl ) + alsa? ( media-libs/alsa-lib ) + !aqua? ( + x11-libs/libICE + x11-libs/libSM + x11-libs/libX11 + x11-libs/libXau + x11-libs/libXcursor + x11-libs/libXdmcp + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXft + x11-libs/libXpm + x11-libs/libXrender + x11-libs/libXScrnSaver + x11-libs/libXtst + !kernel_SunOS? ( + || ( + sys-libs/libutempter + >=sys-freebsd/freebsd-lib-9.0 + ) + ) + ) + bzip2? ( app-arch/bzip2 ) + crypt? ( app-crypt/qca:2 ) + fam? ( virtual/fam ) + jpeg2k? ( media-libs/jasper ) + kerberos? ( virtual/krb5 ) + nepomuk? ( + >=dev-libs/shared-desktop-ontologies-0.11.0 + >=dev-libs/soprano-2.9.0[dbus,raptor,redland] + ) + openexr? ( + media-libs/openexr:= + media-libs/ilmbase:= + ) + policykit? ( >=sys-auth/polkit-qt-0.103.0 ) + spell? ( app-text/enchant ) + ssl? ( dev-libs/openssl ) + udev? ( virtual/udev ) + zeroconf? ( net-dns/avahi[mdnsresponder-compat] ) +" +DEPEND="${COMMONDEPEND} + doc? ( app-doc/doxygen ) + nls? ( virtual/libintl ) +" +RDEPEND="${COMMONDEPEND} + !dev-qt/qtphonon + !<=kde-base/plasma-workspace-4.7.1:4 + !<=kde-base/kcontrol-4.4.50:4 + >=app-crypt/gnupg-2.0.11 + app-misc/ca-certificates + $(add_kdebase_dep kde-env) + sys-apps/dbus[X] + !aqua? ( + udisks? ( sys-fs/udisks:2 ) + x11-apps/iceauth + x11-apps/rgb + >=x11-misc/xdg-utils-1.0.2-r3 + upower? ( || ( >=sys-power/upower-0.9.23 sys-power/upower-pm-utils ) ) + ) + udev? ( app-misc/media-player-info ) +" +PDEPEND=" + $(add_kdebase_dep katepart) + || ( + $(add_kdebase_dep kfmclient) + x11-misc/xdg-utils + ) + handbook? ( + || ( + $(add_kdebase_dep khelpcenter) + kde-base/khelpcenter:5[compat(+)] + ) + ) + nepomuk? ( + $(add_kdebase_dep nepomuk-core) + $(add_kdebase_dep nepomuk-widgets) + ) + policykit? ( + >=sys-auth/polkit-kde-agent-0.99 + ) +" + +PATCHES=( + "${FILESDIR}/dist/01_gentoo_set_xdg_menu_prefix-1.patch" + "${FILESDIR}/dist/02_gentoo_append_xdg_config_dirs-1.patch" + "${FILESDIR}/${PN}-4.14.0-mimetypes.patch" + "${FILESDIR}/${PN}-4.4.90-xslt.patch" + "${FILESDIR}/${PN}-4.6.2-armlinking.patch" + "${FILESDIR}/${PN}-4.6.3-no_suid_kdeinit.patch" + "${FILESDIR}/${PN}-4.8.1-norpath.patch" + "${FILESDIR}/${PN}-4.9.3-werror.patch" + "${FILESDIR}/${PN}-4.10.0-udisks.patch" + "${FILESDIR}/${PN}-4.14.3-trim-crash.patch" +) + +pkg_pretend() { + if [[ ${MERGE_TYPE} != binary ]]; then + [[ $(gcc-major-version) -lt 4 ]] || \ + ( [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -le 3 ]] ) \ + && die "Sorry, but gcc-4.3 and earlier won't work for KDE SC 4.6 (see bug #354837)." + fi +} + +src_prepare() { + kde4-base_src_prepare + + # Rename applications.menu (needs 01_gentoo_set_xdg_menu_prefix-1.patch to work) + sed -e 's|FILES[[:space:]]applications.menu|FILES applications.menu RENAME kde-4-applications.menu|g' \ + -i kded/CMakeLists.txt || die "Sed on CMakeLists.txt for applications.menu failed." + + if use aqua; then + sed -i -e \ + "s:BUNDLE_INSTALL_DIR \"/Applications:BUNDLE_INSTALL_DIR \"${EPREFIX}/${APP_BUNDLE_DIR}:g" \ + cmake/modules/FindKDE4Internal.cmake || die "failed to sed FindKDE4Internal.cmake" + + #if [[ ${CHOST} == *-darwin8 ]]; then + sed -i -e \ + "s:set(_add_executable_param MACOSX_BUNDLE):remove(_add_executable_param MACOSX_BUNDLE):g" \ + cmake/modules/KDE4Macros.cmake || die "failed to sed KDE4Macros.cmake" + #fi + + # solid/solid/backends/iokit doesn't properly link, so disable it. + sed -e "s|\(APPLE\)|(FALSE)|g" -i solid/solid/CMakeLists.txt \ + || die "disabling solid/solid/backends/iokit failed" + sed -e "s|m_backend = .*Backends::IOKit.*;|m_backend = 0;|g" -i solid/solid/managerbase.cpp \ + || die "disabling solid/solid/backends/iokit failed" + + # There's no fdatasync on OSX and the check fails to detect that. + sed -e "/HAVE_FDATASYNC/ d" -i config.h.cmake \ + || die "disabling fdatasync failed" + + # Fix nameser include to nameser8_compat + sed -e "s|nameser8_compat.h|nameser_compat.h|g" -i kio/misc/kpac/discovery.cpp \ + || die "fixing nameser include failed" + append-flags -DHAVE_ARPA_NAMESER8_COMPAT_H=1 + + # Try to fix kkeyserver_mac + epatch "${FILESDIR}"/${PN}-4.3.80-kdeui_util_kkeyserver_mac.patch + fi +} + +src_configure() { + local mycmakeargs=( + -DWITH_HSPELL=OFF + -DWITH_ASPELL=OFF + -DWITH_DNSSD=OFF + -DKDE_DEFAULT_HOME=.kde4 + -DKAUTH_BACKEND=POLKITQT-1 + -DBUILD_libkactivities=OFF + $(cmake-utils_use_build handbook doc) + $(cmake-utils_use_has 3dnow X86_3DNOW) + $(cmake-utils_use_has altivec PPC_ALTIVEC) + $(cmake-utils_use_has mmx X86_MMX) + $(cmake-utils_use_has sse X86_SSE) + $(cmake-utils_use_has sse2 X86_SSE2) + $(cmake-utils_use_with acl) + $(cmake-utils_use_with alsa) + $(cmake-utils_use_with bzip2 BZip2) + $(cmake-utils_use_with crypt QCA2) + $(cmake-utils_use_with fam) + $(cmake-utils_use_with jpeg2k Jasper) + $(cmake-utils_use_with kerberos GSSAPI) + $(cmake-utils_use_with lzma LibLZMA) + $(cmake-utils_use_with nepomuk Soprano) + $(cmake-utils_use_with nepomuk SharedDesktopOntologies) + $(cmake-utils_use_with nls Libintl) + $(cmake-utils_use_with openexr OpenEXR) + $(cmake-utils_use_with opengl OpenGL) + $(cmake-utils_use_with policykit PolkitQt-1) + $(cmake-utils_use_with spell ENCHANT) + $(cmake-utils_use_with ssl OpenSSL) + $(cmake-utils_use_with udev UDev) + $(cmake-utils_use_with udisks SOLID_UDISKS2) + $(cmake-utils_use_with zeroconf Avahi) + ) + kde4-base_src_configure +} + +src_compile() { + kde4-base_src_compile + + # The building of apidox is not managed anymore by the build system + if use doc; then + einfo "Building API documentation" + cd "${S}"/doc/api/ + ./doxygen.sh "${S}" || die "APIDOX generation failed" + fi +} + +src_install() { + kde4-base_src_install + + # use system certificates + rm -f "${ED}"/usr/share/apps/kssl/ca-bundle.crt || die + dosym /etc/ssl/certs/ca-certificates.crt /usr/share/apps/kssl/ca-bundle.crt + + if use doc; then + einfo "Installing API documentation. This could take a bit of time." + cd "${S}"/doc/api/ + docinto /HTML/en/kdelibs-apidox + dohtml -r ${P}-apidocs/* + fi + + if use aqua; then + einfo "fixing ${PN} plugins" + + local _PV=${PV:0:3}.0 + local _dir=${EPREFIX}/usr/$(get_libdir)/kde4/plugins/script + + install_name_tool -id \ + "${_dir}/libkrossqtsplugin.${_PV}.dylib" \ + "${D}/${_dir}/libkrossqtsplugin.${_PV}.dylib" \ + || die "failed fixing libkrossqtsplugin.${_PV}.dylib" + + einfo "fixing ${PN} cmake detection files" + #sed -i -e \ + # "s:if (HAVE_XKB):if (HAVE_XKB AND NOT APPLE):g" \ + echo -e "set(XKB_FOUND FALSE)\nset(HAVE_XKB FALSE)" > \ + "${ED}"/usr/share/apps/cmake/modules/FindXKB.cmake \ + || die "failed fixing FindXKB.cmake" + fi + + einfo Installing environment file. + # Since 44qt4 is sourced earlier QT_PLUGIN_PATH is defined. + echo "COLON_SEPARATED=QT_PLUGIN_PATH" > "${T}/77kde" + echo "QT_PLUGIN_PATH=${EPREFIX}/usr/$(get_libdir)/kde4/plugins" >> "${T}/77kde" + doenvd "${T}/77kde" +} + +pkg_postinst() { + fdo-mime_mime_database_update + + if use zeroconf; then + echo + elog "To make zeroconf support available in KDE make sure that the avahi daemon" + elog "is running." + echo + einfo "If you also want to use zeroconf for hostname resolution, emerge sys-auth/nss-mdns" + einfo "and enable multicast dns lookups by editing the 'hosts:' line in /etc/nsswitch.conf" + einfo "to include 'mdns', e.g.:" + einfo " hosts: files mdns dns" + echo + fi + + kde4-base_pkg_postinst +} + +pkg_prerm() { + # Remove ksycoca4 global database + rm -f "${EROOT}${PREFIX}"/share/kde4/services/ksycoca4 +} + +pkg_postrm() { + fdo-mime_mime_database_update + + kde4-base_pkg_postrm +} |