rpms/kdelibs/devel kdelibs-3.5.3-kde#81806.patch, NONE, 1.1 kdelibs.spec, 1.150, 1.151
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Tue Jul 4 12:31:42 UTC 2006
- Previous message (by thread): rpms/busybox/devel busybox-1.2.0-ppc64.patch, NONE, 1.1 busybox.spec, 1.44, 1.45 busybox-1.1.1-ppc64.patch, 1.1, NONE
- Next message (by thread): rpms/openssl097a/devel openssl097a.spec, NONE, 1.1 libica-1.2-struct.patch, 1.1, NONE openssl.spec, 1.8, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: than
Update of /cvs/dist/rpms/kdelibs/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv20340
Modified Files:
kdelibs.spec
Added Files:
kdelibs-3.5.3-kde#81806.patch
Log Message:
apply upstream patches, fix #128940/#81806
kdelibs-3.5.3-kde#81806.patch:
dtd.cpp | 352 ++++++++++++++++++---------------------------------------
htmlparser.cpp | 5
2 files changed, 115 insertions(+), 242 deletions(-)
--- NEW FILE kdelibs-3.5.3-kde#81806.patch ---
Index: khtml/html/dtd.cpp
===================================================================
--- khtml/html/dtd.cpp (Revision 552024)
+++ khtml/html/dtd.cpp (Revision 552025)
@@ -259,261 +259,111 @@
REQUIRED // ID_TEXT
};
-
-static const ushort tag_list_0[] = {
+// This a combination of HTML4.dtd XHTML11.dtd and various extensions
+// and deprecated elements
+static const ushort tag_list_inline[] = {
ID_TEXT,
+ // %fontstyle
ID_TT,
ID_I,
ID_B,
- ID_U,
- ID_S,
- ID_STRIKE,
ID_BIG,
ID_SMALL,
+ ID_U, // legacy
+ ID_S, // legacy
+ ID_STRIKE, // legacy
+ ID_FONT, // legacy
+ ID_BASEFONT, // legacy
+ // %phrase
ID_EM,
ID_STRONG,
ID_DFN,
ID_CODE,
+ ID_Q,
ID_SAMP,
ID_KBD,
ID_VAR,
ID_CITE,
ID_ABBR,
ID_ACRONYM,
- ID_A,
- ID_IMG,
- ID_APPLET,
- ID_OBJECT,
- ID_EMBED,
- ID_FONT,
- ID_BASEFONT,
- ID_BR,
- ID_SCRIPT,
- ID_MAP,
- ID_Q,
ID_SUB,
ID_SUP,
- ID_SPAN,
- ID_BDO,
- ID_IFRAME,
+ // %inline.forms
ID_INPUT,
ID_SELECT,
ID_TEXTAREA,
ID_LABEL,
ID_BUTTON,
- ID_INS,
- ID_DEL,
- ID_COMMENT,
- ID_NOBR,
- ID_WBR,
- 0
-};
-
-static const ushort tag_list_1[] = {
- ID_TEXT,
- ID_P,
- ID_H1,
- ID_H2,
- ID_H3,
- ID_H4,
- ID_H5,
- ID_H6,
- ID_UL,
- ID_OL,
- ID_DIR,
- ID_MENU,
- ID_PRE,
- ID_PLAINTEXT,
- ID_DL,
- ID_DIV,
- ID_ILAYER,
- ID_LAYER,
- ID_CENTER,
- ID_NOSCRIPT,
- ID_NOFRAMES,
- ID_BLOCKQUOTE,
- ID_FORM,
- ID_ISINDEX,
- ID_HR,
- ID_TABLE,
- ID_FIELDSET,
- ID_ADDRESS,
- ID_TT,
- ID_I,
- ID_B,
- ID_U,
- ID_S,
- ID_STRIKE,
- ID_BIG,
- ID_SMALL,
- ID_EM,
- ID_STRONG,
- ID_DFN,
- ID_CODE,
- ID_SAMP,
- ID_KBD,
- ID_VAR,
- ID_CITE,
- ID_ABBR,
- ID_ACRONYM,
+ // %special
ID_A,
+ ID_OBJECT,
ID_IMG,
ID_APPLET,
- ID_OBJECT,
- ID_EMBED,
- ID_FONT,
- ID_BASEFONT,
+ ID_IFRAME,
+ ID_EMBED, // ?
+ // %special.pre
ID_BR,
- ID_SCRIPT,
- ID_MAP,
- ID_Q,
- ID_SUB,
- ID_SUP,
ID_SPAN,
ID_BDO,
- ID_IFRAME,
- ID_INPUT,
- ID_KEYGEN,
- ID_SELECT,
- ID_TEXTAREA,
- ID_LABEL,
- ID_BUTTON,
- ID_COMMENT,
- ID_LI,
- ID_DD,
- ID_XMP,
+ ID_MAP,
+ // %misc.inline
+ ID_SCRIPT,
ID_INS,
ID_DEL,
- ID_NOBR,
- ID_WBR,
- ID_MARQUEE,
+ // non-standard:
+ ID_ILAYER, // deprecated
+ ID_NOBR, // ?
+ ID_WBR, // ?
0
};
-static const ushort tag_list_2[] = {
- ID_COMMENT,
+static const ushort tag_list_quirk_inline[] = {
+ ID_NOSCRIPT, // block, but parsed as inline in Mozilla and MSIE
0
};
-static const ushort tag_list_3[] = {
- ID_TEXT,
+static const ushort tag_list_block[] = {
+ ID_TEXT, // white-space is allowed
ID_P,
+ // %headings
ID_H1,
ID_H2,
ID_H3,
ID_H4,
ID_H5,
ID_H6,
+ // %lists
ID_UL,
ID_OL,
- ID_DIR,
- ID_MENU,
- ID_PRE,
- ID_PLAINTEXT,
ID_DL,
- ID_DIV,
- ID_ILAYER,
- ID_LAYER,
- ID_CENTER,
- ID_NOSCRIPT,
- ID_NOFRAMES,
- ID_BLOCKQUOTE,
- ID_FORM,
- ID_ISINDEX,
+ ID_DIR, // legacy
+ ID_MENU, // legacy
+ // %blocktext
+ ID_PRE,
ID_HR,
- ID_TABLE,
- ID_FIELDSET,
+ ID_BLOCKQUOTE,
ID_ADDRESS,
- ID_COMMENT,
- ID_LI,
- ID_DD,
- ID_XMP,
- ID_MARQUEE,
- 0
-};
-
-static const ushort tag_list_4[] = {
- ID_TEXT,
- ID_PARAM,
- ID_P,
- ID_H1,
- ID_H2,
- ID_H3,
- ID_H4,
- ID_H5,
- ID_H6,
- ID_UL,
- ID_OL,
- ID_DIR,
- ID_MENU,
- ID_PRE,
- ID_PLAINTEXT,
- ID_DL,
+ ID_PLAINTEXT, // ?
+ ID_XMP, // ?
+ ID_CENTER, // legacy
+ // other
ID_DIV,
- ID_ILAYER,
- ID_LAYER,
- ID_CENTER,
+ ID_FIELDSET,
+ ID_TABLE,
ID_NOSCRIPT,
ID_NOFRAMES,
- ID_BLOCKQUOTE,
ID_FORM,
- ID_ISINDEX,
- ID_HR,
- ID_TABLE,
- ID_FIELDSET,
- ID_ADDRESS,
- ID_TEXT,
- ID_TT,
- ID_I,
- ID_B,
- ID_U,
- ID_S,
- ID_STRIKE,
- ID_BIG,
- ID_SMALL,
- ID_EM,
- ID_STRONG,
- ID_DFN,
- ID_CODE,
- ID_SAMP,
- ID_KBD,
- ID_VAR,
- ID_CITE,
- ID_ABBR,
- ID_ACRONYM,
- ID_A,
- ID_IMG,
- ID_APPLET,
- ID_OBJECT,
- ID_EMBED,
- ID_FONT,
- ID_BASEFONT,
- ID_BR,
- ID_SCRIPT,
- ID_MAP,
- ID_Q,
- ID_SUB,
- ID_SUP,
- ID_SPAN,
- ID_BDO,
- ID_IFRAME,
- ID_INPUT,
- ID_SELECT,
- ID_TEXTAREA,
- ID_LABEL,
- ID_BUTTON,
- ID_COMMENT,
- ID_LI,
- ID_DD,
- ID_XMP,
- ID_MARQUEE,
+ ID_ISINDEX, // legacy
+ // non-standard:
+ ID_LAYER, // deprecated
+ ID_MARQUEE, // extension
0
};
-static const ushort tag_list_6[] = {
- ID_DT,
+// block elements allowed for quirky error recovery
+static const ushort tag_list_quirk_block[] = {
+ ID_LI,
ID_DD,
- ID_COMMENT,
0
};
@@ -521,7 +371,6 @@
ID_TEXT,
ID_OPTGROUP,
ID_OPTION,
- ID_COMMENT,
ID_SCRIPT,
0
};
@@ -530,19 +379,19 @@
ID_FRAMESET,
ID_FRAME,
ID_NOFRAMES,
- ID_COMMENT,
0
};
+// %head.content
static const ushort tag_list_11[] = {
ID_SCRIPT,
ID_STYLE,
ID_META,
ID_LINK,
+ ID_OBJECT,
ID_TITLE,
- ID_ISINDEX,
ID_BASE,
- ID_COMMENT,
+ ID_ISINDEX,
0
};
@@ -557,7 +406,23 @@
return false;
}
+static bool check_block(ushort childID, bool strict)
+{
+ return check_array(childID, tag_list_block) ||
+ (!strict && check_array(childID, tag_list_quirk_block));
+}
+static bool check_inline(ushort childID, bool strict)
+{
+ return check_array(childID, tag_list_inline) ||
+ (!strict && check_array(childID, tag_list_quirk_inline));
+}
+
+static bool check_flow(ushort childID, bool strict)
+{
+ return check_block(childID, strict) || check_inline(childID, strict);
+}
+
bool DOM::checkChild(ushort tagID, ushort childID, bool strict)
{
//kdDebug( 6030 ) << "checkChild: " << tagID << "/" << childID << endl;
@@ -567,6 +432,8 @@
if (tagID >= 1000 || childID >= 1000)
return true; // one or both of the elements in an XML element; just allow for now
+ if (childID == ID_COMMENT) return true;
+
switch(tagID)
{
case ID_TT:
@@ -593,23 +460,27 @@
case ID_FONT:
case ID_LEGEND:
case ID_Q:
- case ID_A:
case ID_NOBR:
case ID_WBR:
- // _1 *
- return check_array(childID, tag_list_1) || check_array(childID, tag_list_6);
+ // %inline *
+ return check_inline(childID, strict) ||
+ (!strict && check_block(childID, true));
+ case ID_A:
+ // A: %inline * (but even strict sites expect %flow)
+ return check_flow(childID, true);
case ID_P:
- // P: ( _0 | TABLE | NOSCRIPT) *
- return check_array(childID, tag_list_0) || (!strict && (childID == ID_TABLE || childID == ID_NOSCRIPT));
+ // P: %inline *
+ return check_inline(childID, strict) ||
+ (!strict && childID == ID_TABLE );
case ID_H1:
case ID_H2:
case ID_H3:
case ID_H4:
case ID_H5:
case ID_H6:
- // _0 *
- return check_array(childID, tag_list_0) ||
- (!strict && check_array(childID, tag_list_3) && (childID < ID_H1 || childID > ID_H6));
+ // %inline *
+ return check_inline(childID, strict) ||
+ (!strict && check_block(childID, true) && (childID < ID_H1 || childID > ID_H6));
case ID_BASEFONT:
case ID_BR:
case ID_AREA:
@@ -627,13 +498,16 @@
// BASEFONT: EMPTY
return false;
case ID_BODY:
- // BODY: _1 * + _2
- return check_array(childID, tag_list_1) || check_array(childID, tag_list_2);
+ // BODY: %block | SCRIPT (but even strict sites expect %flow)
+ return check_flow(childID, strict);
case ID_ADDRESS:
- // ADDRESS: ( _0 | P ) *
- return check_array(childID, tag_list_0) || childID == ID_P;
+ // ADDRESS: %inline *
+ return check_inline(childID, strict) ||
+ (!strict && childID == ID_P);
case ID_DT:
- if ( childID == ID_DL ) return false;
+ // DT: %inline *
+ return check_inline(childID, strict) ||
+ (!strict && check_block(childID, true) && childID != ID_DL);
case ID_LI:
case ID_DIV:
case ID_SPAN:
@@ -651,47 +525,48 @@
case ID_NOSCRIPT:
case ID_CAPTION:
case ID_MARQUEE:
- // DIV: _1 *
- return check_array(childID, tag_list_1);
+ // DIV: %flow *
+ return check_flow(childID, strict);
case ID_MAP:
- // We accept SCRIPT in client-side image maps as an extension to the DTD.
- // MAP: ( _3 + | AREA + | SCRIPT + )
- return check_array(childID, tag_list_3) ||
- childID == ID_AREA ||
- childID == ID_SCRIPT;
+ // MAP: ( %block | AREA ) +
+ return check_block(childID, true) || childID == ID_AREA ||
+ (!strict && childID == ID_SCRIPT);
case ID_OBJECT:
case ID_EMBED:
case ID_APPLET:
- // OBJECT: _4 *
- return check_array(childID, tag_list_4);
+ // OBJECT: %flow | PARAM *
+ return check_flow(childID, true) || childID == ID_PARAM;
case ID_PRE:
case ID_XMP:
case ID_PLAINTEXT:
- // PRE: _0 * - _5
- return check_array(childID, tag_list_1);
+ // PRE: %flow * - _5
+ return check_flow(childID, true);
case ID_DL:
- // DL: _6 +
- return check_array(childID, tag_list_6) || check_array(childID, tag_list_1);
+ // DL: DT | DD +
+ return (childID == ID_DT || childID == ID_DD || childID == ID_TEXT) ||
+ (!strict && check_flow(childID, true));
case ID_OL:
case ID_UL:
// OL: LI +
- return check_array(childID, tag_list_1);
+ return (childID == ID_LI || childID == ID_TEXT) ||
+ (!strict && check_flow(childID, true));
case ID_DIR:
case ID_MENU:
// (DIR|MENU): LI + - _3
if(childID == ID_LI) return true;
return false;
case ID_FORM:
- // FORM: _1 * - FORM
- return check_array(childID, tag_list_1);
+ // FORM: %flow * - FORM
+ return check_flow(childID, strict);
case ID_LABEL:
- // LABEL: _1 * - LABEL
- return check_array(childID, tag_list_1);
+ // LABEL: %inline * - LABEL
+ return check_inline(childID, strict) ||
+ (!strict && check_block(childID, true));
+ case ID_KEYGEN:
// KEYGEN does not really allow any children
// from outside, just need this to be able
// to add the keylengths ourself
// Yes, consider it a hack (Dirk)
- case ID_KEYGEN:
case ID_SELECT:
// SELECT: _7 +
return check_array(childID, tag_list_7);
@@ -708,13 +583,13 @@
if(childID == ID_TEXT) return true;
return false;
case ID_FIELDSET:
- // FIELDSET: ( TEXT , LEGEND , _1 * )
+ // FIELDSET: ( TEXT , LEGEND , %flow * )
if(childID == ID_TEXT) return true;
if(childID == ID_LEGEND) return true;
- return check_array(childID, tag_list_1);
+ return check_flow(childID, strict);
case ID_BUTTON:
- // BUTTON: _1 * - _8
- return check_array(childID, tag_list_1);
+ // BUTTON: %flow * - _8
+ return check_flow(childID, strict);
case ID_TABLE:
// TABLE: ( CAPTION ? , ( COL * | COLGROUP * ) , THEAD ? , TFOOT ? , TBODY + )
switch(childID)
@@ -755,7 +630,6 @@
switch(childID)
{
case ID_HEAD:
- case ID_COMMENT:
case ID_BODY:
case ID_FRAMESET:
case ID_NOFRAMES:
Index: khtml/html/htmlparser.cpp
===================================================================
--- khtml/html/htmlparser.cpp (Revision 552024)
+++ khtml/html/htmlparser.cpp (Revision 552025)
@@ -371,12 +371,11 @@
HTMLElementImpl *e;
bool handled = false;
- // first switch on current element for a elements with optional end-tag
+ // first switch on current element for elements with optional end-tag and inline-only content
switch(current->id())
{
case ID_P:
- case ID_DD:
- case ID_LI:
+ case ID_DT:
if(!n->isInline())
{
popBlock(current->id());
Index: kdelibs.spec
===================================================================
RCS file: /cvs/dist/rpms/kdelibs/devel/kdelibs.spec,v
retrieving revision 1.150
retrieving revision 1.151
diff -u -r1.150 -r1.151
--- kdelibs.spec 29 Jun 2006 10:01:04 -0000 1.150
+++ kdelibs.spec 4 Jul 2006 12:31:30 -0000 1.151
@@ -19,7 +19,7 @@
%define arts 1
Version: 3.5.3
-Release: 5
+Release: 6
Summary: K Desktop Environment - Libraries
Name: kdelibs
Url: http://www.kde.org/
@@ -59,6 +59,7 @@
Patch107: kdelibs-3.5.3-kde#128842.patch
Patch108: kdelibs-3.5.3-kde#128902.patch
Patch109: kdelibs-3.5.3-kde#67849.patch
+Patch110: kdelibs-3.5.3-kde#81806.patch
%if %{arts}
Requires: arts >= %{arts_epoch}:%{arts_version}
@@ -198,6 +199,7 @@
%patch107 -p0 -b .kde#128842
%patch108 -p0 -b .kde#128902
%patch109 -p0 -b .kde#67849
+%patch110 -p0 -b .kde#81806
perl -pi -e "s,^#define KDE_VERSION_STRING .*,#define KDE_VERSION_STRING \"%{version}-%{release} %{distname}\"," kdecore/kdeversion.h
@@ -421,6 +423,9 @@
%doc %{_docdir}/HTML/en/kdelibs*
%changelog
+* Tue Jul 04 2006 Than Ngo <than at redhat.com> 6:3.5.3-6
+- apply upstream patches, fix #128940/#81806
+
* Sat Jun 24 2006 Than Ngo <than at redhat.com> 6:3.5.3-5
- fix #196013, mark kde.sh/kde.csh as config file
- fix #178323 #196225, typo in kde.sh
- Previous message (by thread): rpms/busybox/devel busybox-1.2.0-ppc64.patch, NONE, 1.1 busybox.spec, 1.44, 1.45 busybox-1.1.1-ppc64.patch, 1.1, NONE
- Next message (by thread): rpms/openssl097a/devel openssl097a.spec, NONE, 1.1 libica-1.2-struct.patch, 1.1, NONE openssl.spec, 1.8, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-cvs-commits
mailing list