[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

kocienda kocienda at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 08:01:18 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 380f787f8fbee9feb003a81452d9a735b9729a68
Author: kocienda <kocienda at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Oct 14 15:36:10 2003 +0000

            Reviewed by Hyatt
    
            * khtml/dom/dom_misc.h: Declared TristateFlag enum used to implement
    	inheritance behavior for inheritable attributes like designMode.
            * khtml/dom/html_document.cpp:
            (HTMLDocument::designMode): Added getter.
            (HTMLDocument::setDesignMode): Added setter.
            * khtml/dom/html_document.h: Added declarations for designMode getter and setter.
            * khtml/dom/html_element.cpp:
            (HTMLElement::isContentEditable): Added convenience.
            (HTMLElement::contentEditable): Added getter.
            (HTMLElement::setContentEditable): Added setter.
            * khtml/dom/html_element.h: Added declarations for contentEditable accessors.
            * khtml/ecma/kjs_html.cpp: Added js support for contentEditable and designMode.
            (KJS::HTMLDocument::tryGet)
            (KJS::HTMLDocument::putValue)
            (KJS::HTMLElement::getValueProperty)
            (KJS::HTMLElement::putValue)
            * khtml/ecma/kjs_html.h:
            (KJS::HTMLDocument::): Added DesignMode to attribuute enum.
            (KJS::HTMLElement::): Added ContentEditable to attribute enum.
            * khtml/html/html_documentimpl.cpp:
            (HTMLDocumentImpl::designMode): Added getter.
            (HTMLDocumentImpl::setDesignMode): Added setter.
            * khtml/html/html_documentimpl.h: Declared designMode accessors.
            * khtml/html/html_elementimpl.cpp:
            (HTMLElementImpl::HTMLElementImpl):
            (HTMLElementImpl::parseAttribute): Added support for contentEditable.
            (HTMLElementImpl::isContentEditable): Added. Implements inheritance feature
    	for this attribute.
            (HTMLElementImpl::contentEditable): Getter for contentEditable attribute.
            (HTMLElementImpl::setContentEditable): Setter for contentEditable attribute.
            * khtml/html/html_elementimpl.h:
            * khtml/khtml_part.cpp:
            (KHTMLPart::setEditMode): Added.
            (KHTMLPart::editMode): Added. Implements inheritance behavior for
    	attribute.
            (KHTMLPart::inEditMode): Helper that calls on editMode function.
            (KHTMLPart::parentPart): Made const.
            * khtml/khtml_part.h: Rolled in a couple of typo fixes. Added
    	declarations for the changes made in the implementation file.
            * khtml/khtmlpart_p.h:
            (KHTMLPartPrivate::KHTMLPartPrivate): Declared editMode flag.
    	Also added support for editMode flag in initializers and copy function.
            * khtml/misc/htmlattrs.in: Added contentEditable as an attribute name.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@5179 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index 0897a13..958b3dc 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,51 @@
+2003-10-14  Ken Kocienda  <kocienda at apple.com>
+
+        Reviewed by Hyatt
+
+        * khtml/dom/dom_misc.h: Declared TristateFlag enum used to implement
+	inheritance behavior for inheritable attributes like designMode.
+        * khtml/dom/html_document.cpp:
+        (HTMLDocument::designMode): Added getter.
+        (HTMLDocument::setDesignMode): Added setter.
+        * khtml/dom/html_document.h: Added declarations for designMode getter and setter.
+        * khtml/dom/html_element.cpp:
+        (HTMLElement::isContentEditable): Added convenience.
+        (HTMLElement::contentEditable): Added getter.
+        (HTMLElement::setContentEditable): Added setter.
+        * khtml/dom/html_element.h: Added declarations for contentEditable accessors.
+        * khtml/ecma/kjs_html.cpp: Added js support for contentEditable and designMode.
+        (KJS::HTMLDocument::tryGet)
+        (KJS::HTMLDocument::putValue)
+        (KJS::HTMLElement::getValueProperty)
+        (KJS::HTMLElement::putValue)
+        * khtml/ecma/kjs_html.h:
+        (KJS::HTMLDocument::): Added DesignMode to attribuute enum.
+        (KJS::HTMLElement::): Added ContentEditable to attribute enum.
+        * khtml/html/html_documentimpl.cpp:
+        (HTMLDocumentImpl::designMode): Added getter.
+        (HTMLDocumentImpl::setDesignMode): Added setter.
+        * khtml/html/html_documentimpl.h: Declared designMode accessors.
+        * khtml/html/html_elementimpl.cpp:
+        (HTMLElementImpl::HTMLElementImpl):
+        (HTMLElementImpl::parseAttribute): Added support for contentEditable.
+        (HTMLElementImpl::isContentEditable): Added. Implements inheritance feature
+	for this attribute.
+        (HTMLElementImpl::contentEditable): Getter for contentEditable attribute.
+        (HTMLElementImpl::setContentEditable): Setter for contentEditable attribute.
+        * khtml/html/html_elementimpl.h:
+        * khtml/khtml_part.cpp:
+        (KHTMLPart::setEditMode): Added.
+        (KHTMLPart::editMode): Added. Implements inheritance behavior for
+	attribute.
+        (KHTMLPart::inEditMode): Helper that calls on editMode function.
+        (KHTMLPart::parentPart): Made const.
+        * khtml/khtml_part.h: Rolled in a couple of typo fixes. Added
+	declarations for the changes made in the implementation file.
+        * khtml/khtmlpart_p.h:
+        (KHTMLPartPrivate::KHTMLPartPrivate): Declared editMode flag.
+	Also added support for editMode flag in initializers and copy function.
+        * khtml/misc/htmlattrs.in: Added contentEditable as an attribute name.
+
 2003-10-13  David Hyatt  <hyatt at apple.com>
 
 	Fix for a small-caps rendering error when used in conjunction with ::first-line.  Always update
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 0897a13..958b3dc 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,51 @@
+2003-10-14  Ken Kocienda  <kocienda at apple.com>
+
+        Reviewed by Hyatt
+
+        * khtml/dom/dom_misc.h: Declared TristateFlag enum used to implement
+	inheritance behavior for inheritable attributes like designMode.
+        * khtml/dom/html_document.cpp:
+        (HTMLDocument::designMode): Added getter.
+        (HTMLDocument::setDesignMode): Added setter.
+        * khtml/dom/html_document.h: Added declarations for designMode getter and setter.
+        * khtml/dom/html_element.cpp:
+        (HTMLElement::isContentEditable): Added convenience.
+        (HTMLElement::contentEditable): Added getter.
+        (HTMLElement::setContentEditable): Added setter.
+        * khtml/dom/html_element.h: Added declarations for contentEditable accessors.
+        * khtml/ecma/kjs_html.cpp: Added js support for contentEditable and designMode.
+        (KJS::HTMLDocument::tryGet)
+        (KJS::HTMLDocument::putValue)
+        (KJS::HTMLElement::getValueProperty)
+        (KJS::HTMLElement::putValue)
+        * khtml/ecma/kjs_html.h:
+        (KJS::HTMLDocument::): Added DesignMode to attribuute enum.
+        (KJS::HTMLElement::): Added ContentEditable to attribute enum.
+        * khtml/html/html_documentimpl.cpp:
+        (HTMLDocumentImpl::designMode): Added getter.
+        (HTMLDocumentImpl::setDesignMode): Added setter.
+        * khtml/html/html_documentimpl.h: Declared designMode accessors.
+        * khtml/html/html_elementimpl.cpp:
+        (HTMLElementImpl::HTMLElementImpl):
+        (HTMLElementImpl::parseAttribute): Added support for contentEditable.
+        (HTMLElementImpl::isContentEditable): Added. Implements inheritance feature
+	for this attribute.
+        (HTMLElementImpl::contentEditable): Getter for contentEditable attribute.
+        (HTMLElementImpl::setContentEditable): Setter for contentEditable attribute.
+        * khtml/html/html_elementimpl.h:
+        * khtml/khtml_part.cpp:
+        (KHTMLPart::setEditMode): Added.
+        (KHTMLPart::editMode): Added. Implements inheritance behavior for
+	attribute.
+        (KHTMLPart::inEditMode): Helper that calls on editMode function.
+        (KHTMLPart::parentPart): Made const.
+        * khtml/khtml_part.h: Rolled in a couple of typo fixes. Added
+	declarations for the changes made in the implementation file.
+        * khtml/khtmlpart_p.h:
+        (KHTMLPartPrivate::KHTMLPartPrivate): Declared editMode flag.
+	Also added support for editMode flag in initializers and copy function.
+        * khtml/misc/htmlattrs.in: Added contentEditable as an attribute name.
+
 2003-10-13  David Hyatt  <hyatt at apple.com>
 
 	Fix for a small-caps rendering error when used in conjunction with ::first-line.  Always update
diff --git a/WebCore/khtml/dom/dom_misc.h b/WebCore/khtml/dom/dom_misc.h
index 9ebb003..b598e5a 100644
--- a/WebCore/khtml/dom/dom_misc.h
+++ b/WebCore/khtml/dom/dom_misc.h
@@ -53,6 +53,8 @@ protected:
     unsigned int _ref;
 };
 
+enum TristateFlag { FlagNone, FlagEnabled, FlagDisabled };
+
 }; // namespace
 
 #endif
diff --git a/WebCore/khtml/dom/html_document.cpp b/WebCore/khtml/dom/html_document.cpp
index c79eadb..30ccc44 100644
--- a/WebCore/khtml/dom/html_document.cpp
+++ b/WebCore/khtml/dom/html_document.cpp
@@ -237,3 +237,15 @@ NodeList HTMLDocument::getElementsByName( const DOMString &elementName )
     return new NameNodeListImpl(impl, elementName);
 }
 
+DOMString HTMLDocument::designMode() const
+{
+    if(!impl) return "inherit";
+    return ((HTMLDocumentImpl *)impl)->designMode();
+}
+
+void HTMLDocument::setDesignMode(const DOMString &s)
+{
+    if(impl)
+        ((HTMLDocumentImpl *)impl)->setDesignMode(s);
+}
+
diff --git a/WebCore/khtml/dom/html_document.h b/WebCore/khtml/dom/html_document.h
index c9a303f..9da69e6 100644
--- a/WebCore/khtml/dom/html_document.h
+++ b/WebCore/khtml/dom/html_document.h
@@ -292,6 +292,10 @@ public:
      * a document.
      */
     HTMLCollection all() const;
+
+    DOMString designMode() const;
+    void setDesignMode(const DOMString &);
+
 };
 
 }; //namespace
diff --git a/WebCore/khtml/dom/html_element.cpp b/WebCore/khtml/dom/html_element.cpp
index e5dddf8..ea05011 100644
--- a/WebCore/khtml/dom/html_element.cpp
+++ b/WebCore/khtml/dom/html_element.cpp
@@ -175,3 +175,26 @@ void HTMLElement::assignOther( const Node &other, int elementId )
 	Node::operator = (other);
     }   
 }
+
+bool HTMLElement::isContentEditable() const
+{
+    if(!impl) return false;
+    return static_cast<HTMLElementImpl *>(impl)->isContentEditable();
+}
+
+DOMString HTMLElement::contentEditable() const {
+    if(!impl) return "inherit";
+    return static_cast<HTMLElementImpl *>(impl)->contentEditable();
+}
+
+void HTMLElement::setContentEditable(const DOMString &enabled) {
+    if(!impl)
+        throw DOMException(DOMException::INVALID_STATE_ERR);
+    if (enabled == "inherit") {
+        int exceptionCode;
+        static_cast<HTMLElementImpl *>(impl)->removeAttribute(ATTR_CONTENTEDITABLE, exceptionCode);
+    }
+    else
+        static_cast<HTMLElementImpl *>(impl)->setAttribute(ATTR_CONTENTEDITABLE, enabled.isEmpty() ? "true" : enabled);
+}
+
diff --git a/WebCore/khtml/dom/html_element.h b/WebCore/khtml/dom/html_element.h
index dadbefa..1387b08 100644
--- a/WebCore/khtml/dom/html_element.h
+++ b/WebCore/khtml/dom/html_element.h
@@ -200,6 +200,10 @@ public:
      */
     void addCSSProperty( const DOMString &property, const DOMString &value );
 
+    bool isContentEditable() const;
+    DOMString contentEditable() const;
+    void setContentEditable(const DOMString &enabled);
+
 protected:
     /*
      * @internal
diff --git a/WebCore/khtml/ecma/kjs_html.cpp b/WebCore/khtml/ecma/kjs_html.cpp
index 4318ac5..604d1d6 100644
--- a/WebCore/khtml/ecma/kjs_html.cpp
+++ b/WebCore/khtml/ecma/kjs_html.cpp
@@ -122,7 +122,7 @@ Value KJS::HTMLDocFunction::tryCall(ExecState *exec, Object &thisObj, const List
 const ClassInfo KJS::HTMLDocument::info =
   { "HTMLDocument", &DOMDocument::info, &HTMLDocumentTable, 0 };
 /* Source for HTMLDocumentTable. Use "make hashtables" to regenerate.
- at begin HTMLDocumentTable 31
+ at begin HTMLDocumentTable 32
   title			HTMLDocument::Title		DontDelete
   referrer		HTMLDocument::Referrer		DontDelete|ReadOnly
   domain		HTMLDocument::Domain		DontDelete
@@ -154,6 +154,7 @@ const ClassInfo KJS::HTMLDocument::info =
   height		HTMLDocument::Height		DontDelete|ReadOnly
   width			HTMLDocument::Width		DontDelete|ReadOnly
   dir			HTMLDocument::Dir		DontDelete
+  designMode            HTMLDocument::DesignMode        DontDelete
 #potentially obsolete array properties
 # layers
 # plugins
@@ -244,6 +245,8 @@ Value KJS::HTMLDocument::tryGet(ExecState *exec, const Identifier &propertyName)
     case CaptureEvents:
     case ReleaseEvents:
       return lookupOrCreateFunction<HTMLDocFunction>( exec, propertyName, this, entry->value, entry->params, entry->attr );
+    case DesignMode:
+        return String(doc.designMode());
     }
   }
   // Look for overrides
@@ -414,6 +417,9 @@ void KJS::HTMLDocument::putValue(ExecState *exec, int token, const Value& value,
   case Dir:
     body.setDir(value.toString(exec).string());
     break;
+  case DesignMode:
+    doc.setDesignMode(value.toString(exec).string());
+    break;
   default:
     kdWarning() << "HTMLDocument::putValue unhandled token " << token << endl;
   }
@@ -603,7 +609,7 @@ const ClassInfo* KJS::HTMLElement::classInfo() const
   }
 }
 /*
- at begin HTMLElementTable 8
+ at begin HTMLElementTable 11
   id		KJS::HTMLElement::ElementId	DontDelete
   title		KJS::HTMLElement::ElementTitle	DontDelete
   lang		KJS::HTMLElement::ElementLang	DontDelete
@@ -615,6 +621,8 @@ const ClassInfo* KJS::HTMLElement::classInfo() const
   document	KJS::HTMLElement::ElementDocument  DontDelete|ReadOnly
 # IE extension
   children	KJS::HTMLElement::ElementChildren  DontDelete|ReadOnly
+  contentEditable   KJS::HTMLElement::ElementContentEditable  DontDelete
+  isContentEditable KJS::HTMLElement::ElementIsContentEditable  DontDelete|ReadOnly
 @end
 @begin HTMLHtmlElementTable 1
   version	KJS::HTMLElement::HtmlVersion	DontDelete
@@ -1794,6 +1802,10 @@ Value KJS::HTMLElement::getValueProperty(ExecState *exec, int token) const
     return getDOMNode(exec,element.ownerDocument());
   case ElementChildren:
     return getHTMLCollection(exec,element.children());
+  case ElementContentEditable:
+    return String(element.contentEditable());
+  case ElementIsContentEditable:
+    return Boolean(element.isContentEditable());
   // ### what about style? or is this used instead for DOM2 stylesheets?
   }
   kdWarning() << "HTMLElement::getValueProperty unhandled token " << token << endl;
@@ -2807,6 +2819,9 @@ void KJS::HTMLElement::putValue(ExecState *exec, int token, const Value& value,
   case ElementInnerText:
     element.setInnerText(str);
     return;
+  case ElementContentEditable:
+    element.setContentEditable(str);
+    return;
   default:
     kdWarning() << "KJS::HTMLElement::putValue unhandled token " << token << " thisTag=" << element.tagName().string() << " str=" << str.string() << endl;
   }
diff --git a/WebCore/khtml/ecma/kjs_html.h b/WebCore/khtml/ecma/kjs_html.h
index bfca951..7824176 100644
--- a/WebCore/khtml/ecma/kjs_html.h
+++ b/WebCore/khtml/ecma/kjs_html.h
@@ -49,7 +49,7 @@ namespace KJS {
     enum { Title, Referrer, Domain, URL, Body, Location, Cookie,
            Images, Applets, Links, Forms, Anchors, Scripts, All, Clear, Open, Close,
            Write, WriteLn, GetElementsByName, CaptureEvents, ReleaseEvents,
-           BgColor, FgColor, AlinkColor, LinkColor, VlinkColor, LastModified, Height, Width, Dir };
+           BgColor, FgColor, AlinkColor, LinkColor, VlinkColor, LastModified, Height, Width, Dir, DesignMode };
     DOM::Document toDocument() const { return static_cast<DOM::Document>( node ); }
   };
 
@@ -146,7 +146,8 @@ namespace KJS {
            IFrameFrameBorder, IFrameSrc, IFrameName, IFrameHeight,
            IFrameMarginHeight, IFrameMarginWidth, IFrameScrolling, IFrameWidth, IFrameContentDocument,
            ElementInnerHTML, ElementTitle, ElementId, ElementDir, ElementLang,
-           ElementClassName, ElementInnerText, ElementDocument, ElementChildren };
+           ElementClassName, ElementInnerText, ElementDocument, ElementChildren, ElementContentEditable,
+           ElementIsContentEditable};
 
     DOM::HTMLElement toElement() const { return static_cast<DOM::HTMLElement>(node); }
   };
diff --git a/WebCore/khtml/ecma/kjs_html.lut.h b/WebCore/khtml/ecma/kjs_html.lut.h
index 3c2a7b2..6622924 100644
--- a/WebCore/khtml/ecma/kjs_html.lut.h
+++ b/WebCore/khtml/ecma/kjs_html.lut.h
@@ -3,66 +3,77 @@
 namespace KJS {
 
 const struct HashEntry HTMLDocumentTableEntries[] = {
-   { "open", HTMLDocument::Open, DontDelete|Function, 0, 0 },
-   { "scripts", HTMLDocument::Scripts, DontDelete|ReadOnly, 0, 0 },
-   { "releaseEvents", HTMLDocument::ReleaseEvents, DontDelete|Function, 0, 0 },
-   { "all", HTMLDocument::All, DontDelete|ReadOnly, 0, &HTMLDocumentTableEntries[32] },
-   { 0, 0, 0, 0, 0 },
+   { "width", HTMLDocument::Width, DontDelete|ReadOnly, 0, 0 },
+   { "links", HTMLDocument::Links, DontDelete|ReadOnly, 0, 0 },
+   { "title", HTMLDocument::Title, DontDelete, 0, 0 },
    { "vlinkColor", HTMLDocument::VlinkColor, DontDelete, 0, 0 },
-   { "anchors", HTMLDocument::Anchors, DontDelete|ReadOnly, 0, 0 },
-   { "close", HTMLDocument::Close, DontDelete|Function, 0, 0 },
    { 0, 0, 0, 0, 0 },
-   { "dir", HTMLDocument::Dir, DontDelete, 0, 0 },
-   { "images", HTMLDocument::Images, DontDelete|ReadOnly, 0, 0 },
+   { "writeln", HTMLDocument::WriteLn, DontDelete|Function, 1, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "forms", HTMLDocument::Forms, DontDelete|ReadOnly, 0, &HTMLDocumentTableEntries[35] },
+   { "scripts", HTMLDocument::Scripts, DontDelete|ReadOnly, 0, &HTMLDocumentTableEntries[39] },
+   { "captureEvents", HTMLDocument::CaptureEvents, DontDelete|Function, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "write", HTMLDocument::Write, DontDelete|Function, 1, 0 },
+   { "fgColor", HTMLDocument::FgColor, DontDelete, 0, 0 },
    { "linkColor", HTMLDocument::LinkColor, DontDelete, 0, 0 },
+   { "body", HTMLDocument::Body, DontDelete, 0, &HTMLDocumentTableEntries[33] },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "open", HTMLDocument::Open, DontDelete|Function, 0, 0 },
+   { "URL", HTMLDocument::URL, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "lastModified", HTMLDocument::LastModified, DontDelete|ReadOnly, 0, 0 },
+   { "images", HTMLDocument::Images, DontDelete|ReadOnly, 0, &HTMLDocumentTableEntries[36] },
+   { 0, 0, 0, 0, 0 },
    { "domain", HTMLDocument::Domain, DontDelete, 0, 0 },
-   { "height", HTMLDocument::Height, DontDelete|ReadOnly, 0, 0 },
+   { "location", HTMLDocument::Location, DontDelete, 0, &HTMLDocumentTableEntries[32] },
    { "cookie", HTMLDocument::Cookie, DontDelete, 0, 0 },
-   { "alinkColor", HTMLDocument::AlinkColor, DontDelete, 0, 0 },
-   { "getElementsByName", HTMLDocument::GetElementsByName, DontDelete|Function, 1, 0 },
-   { "applets", HTMLDocument::Applets, DontDelete|ReadOnly, 0, &HTMLDocumentTableEntries[34] },
-   { "links", HTMLDocument::Links, DontDelete|ReadOnly, 0, 0 },
-   { "title", HTMLDocument::Title, DontDelete, 0, 0 },
-   { "location", HTMLDocument::Location, DontDelete, 0, 0 },
-   { "captureEvents", HTMLDocument::CaptureEvents, DontDelete|Function, 0, 0 },
    { 0, 0, 0, 0, 0 },
-   { "clear", HTMLDocument::Clear, DontDelete|Function, 0, 0 },
-   { "referrer", HTMLDocument::Referrer, DontDelete|ReadOnly, 0, &HTMLDocumentTableEntries[31] },
    { 0, 0, 0, 0, 0 },
-   { "URL", HTMLDocument::URL, DontDelete|ReadOnly, 0, 0 },
-   { "body", HTMLDocument::Body, DontDelete, 0, 0 },
-   { "write", HTMLDocument::Write, DontDelete|Function, 1, &HTMLDocumentTableEntries[33] },
-   { "writeln", HTMLDocument::WriteLn, DontDelete|Function, 1, 0 },
+   { "referrer", HTMLDocument::Referrer, DontDelete|ReadOnly, 0, 0 },
+   { 0, 0, 0, 0, 0 },
+   { "dir", HTMLDocument::Dir, DontDelete, 0, &HTMLDocumentTableEntries[42] },
+   { "applets", HTMLDocument::Applets, DontDelete|ReadOnly, 0, &HTMLDocumentTableEntries[34] },
+   { "anchors", HTMLDocument::Anchors, DontDelete|ReadOnly, 0, &HTMLDocumentTableEntries[40] },
+   { "all", HTMLDocument::All, DontDelete|ReadOnly, 0, &HTMLDocumentTableEntries[37] },
+   { "clear", HTMLDocument::Clear, DontDelete|Function, 0, 0 },
+   { "close", HTMLDocument::Close, DontDelete|Function, 0, &HTMLDocumentTableEntries[38] },
+   { "getElementsByName", HTMLDocument::GetElementsByName, DontDelete|Function, 1, &HTMLDocumentTableEntries[41] },
+   { "releaseEvents", HTMLDocument::ReleaseEvents, DontDelete|Function, 0, 0 },
    { "bgColor", HTMLDocument::BgColor, DontDelete, 0, 0 },
-   { "forms", HTMLDocument::Forms, DontDelete|ReadOnly, 0, 0 },
-   { "fgColor", HTMLDocument::FgColor, DontDelete, 0, 0 },
-   { "lastModified", HTMLDocument::LastModified, DontDelete|ReadOnly, 0, 0 },
-   { "width", HTMLDocument::Width, DontDelete|ReadOnly, 0, 0 }
+   { "alinkColor", HTMLDocument::AlinkColor, DontDelete, 0, 0 },
+   { "height", HTMLDocument::Height, DontDelete|ReadOnly, 0, 0 },
+   { "designMode", HTMLDocument::DesignMode, DontDelete, 0, 0 }
 };
 
-const struct HashTable HTMLDocumentTable = { 2, 35, HTMLDocumentTableEntries, 31 };
+const struct HashTable HTMLDocumentTable = { 2, 43, HTMLDocumentTableEntries, 32 };
 
 } // namespace
 
 namespace KJS {
 
 const struct HashEntry HTMLElementTableEntries[] = {
+   { "lang", KJS::HTMLElement::ElementLang, DontDelete, 0, &HTMLElementTableEntries[12] },
+   { 0, 0, 0, 0, 0 },
+   { "innerHTML", KJS::HTMLElement::ElementInnerHTML, DontDelete, 0, 0 },
    { 0, 0, 0, 0, 0 },
-   { "innerHTML", KJS::HTMLElement::ElementInnerHTML, DontDelete, 0, &HTMLElementTableEntries[10] },
-   { "title", KJS::HTMLElement::ElementTitle, DontDelete, 0, &HTMLElementTableEntries[8] },
+   { "innerText", KJS::HTMLElement::ElementInnerText, DontDelete, 0, 0 },
+   { "document", KJS::HTMLElement::ElementDocument, DontDelete|ReadOnly, 0, &HTMLElementTableEntries[13] },
+   { "className", KJS::HTMLElement::ElementClassName, DontDelete, 0, &HTMLElementTableEntries[14] },
+   { "id", KJS::HTMLElement::ElementId, DontDelete, 0, &HTMLElementTableEntries[11] },
    { 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0 },
-   { "id", KJS::HTMLElement::ElementId, DontDelete, 0, 0 },
    { 0, 0, 0, 0, 0 },
-   { "dir", KJS::HTMLElement::ElementDir, DontDelete, 0, &HTMLElementTableEntries[9] },
-   { "lang", KJS::HTMLElement::ElementLang, DontDelete, 0, 0 },
-   { "className", KJS::HTMLElement::ElementClassName, DontDelete, 0, &HTMLElementTableEntries[11] },
-   { "innerText", KJS::HTMLElement::ElementInnerText, DontDelete, 0, &HTMLElementTableEntries[12] },
-   { "document", KJS::HTMLElement::ElementDocument, DontDelete|ReadOnly, 0, 0 },
-   { "children", KJS::HTMLElement::ElementChildren, DontDelete|ReadOnly, 0, 0 }
+   { "title", KJS::HTMLElement::ElementTitle, DontDelete, 0, &HTMLElementTableEntries[15] },
+   { "dir", KJS::HTMLElement::ElementDir, DontDelete, 0, 0 },
+   { "children", KJS::HTMLElement::ElementChildren, DontDelete|ReadOnly, 0, 0 },
+   { "contentEditable", KJS::HTMLElement::ElementContentEditable, DontDelete, 0, 0 },
+   { "isContentEditable", KJS::HTMLElement::ElementIsContentEditable, DontDelete|ReadOnly, 0, 0 }
 };
 
-const struct HashTable HTMLElementTable = { 2, 13, HTMLElementTableEntries, 8 };
+const struct HashTable HTMLElementTable = { 2, 16, HTMLElementTableEntries, 11 };
 
 } // namespace
 
diff --git a/WebCore/khtml/html/html_documentimpl.cpp b/WebCore/khtml/html/html_documentimpl.cpp
index 89b7860..94a5497 100644
--- a/WebCore/khtml/html/html_documentimpl.cpp
+++ b/WebCore/khtml/html/html_documentimpl.cpp
@@ -262,6 +262,34 @@ Tokenizer *HTMLDocumentImpl::createTokenizer()
 // not part of the DOM
 // --------------------------------------------------------------------------
 
+DOMString HTMLDocumentImpl::designMode() const
+{
+    TristateFlag editMode = KWQ(view()->part())->editMode();
+    // Note: case for return values intentionally matches WinIE
+    switch (editMode) {
+        default:
+        case FlagNone:
+            return "Inherit";
+        case FlagEnabled:
+            return "On";
+        case FlagDisabled:
+            return "Off";
+    }
+}
+
+void HTMLDocumentImpl::setDesignMode(const DOMString &s)
+{
+    if ( strcasecmp( s, "on" ) == 0 ) {
+        KWQ(view()->part())->setEditMode(FlagEnabled);
+    }
+    else if (strcasecmp(s, "off") == 0) {
+        KWQ(view()->part())->setEditMode(FlagDisabled);
+    }
+    else if (strcasecmp(s, "inherit") == 0 || s.isNull()) {
+        KWQ(view()->part())->setEditMode(FlagNone);
+    }
+}
+
 bool HTMLDocumentImpl::childAllowed( NodeImpl *newChild )
 {
     // ### support comments. etc as a child
diff --git a/WebCore/khtml/html/html_documentimpl.h b/WebCore/khtml/html/html_documentimpl.h
index 74aa59b..b21b6ba 100644
--- a/WebCore/khtml/html/html_documentimpl.h
+++ b/WebCore/khtml/html/html_documentimpl.h
@@ -65,6 +65,9 @@ public:
     void setPolicyBaseURL(const DOMString &s) { m_policyBaseURL = s; }
 #endif
 
+    DOMString designMode() const;
+    void setDesignMode(const DOMString &);
+
     HTMLElementImpl *body();
     void setBody(HTMLElementImpl *_body, int& exceptioncode);
 
diff --git a/WebCore/khtml/html/html_elementimpl.cpp b/WebCore/khtml/html/html_elementimpl.cpp
index 495e7d2..af8f156 100644
--- a/WebCore/khtml/html/html_elementimpl.cpp
+++ b/WebCore/khtml/html/html_elementimpl.cpp
@@ -53,7 +53,8 @@ using namespace DOM;
 using namespace khtml;
 
 HTMLElementImpl::HTMLElementImpl(DocumentPtr *doc)
-    : ElementImpl(doc)
+    : ElementImpl(doc),
+      m_contentEditable(FlagNone)
 {
 }
 
@@ -129,6 +130,12 @@ void HTMLElementImpl::parseAttribute(AttributeImpl *attr)
         setHasClass(attr->val());
         setChanged();
         break;
+    case ATTR_CONTENTEDITABLE:
+    {
+        setContentEditable(attr->value());
+        setChanged();
+        break;
+    }
     case ATTR_STYLE:
         // ### we need to remove old style info in case there was any!
         // ### the inline sheet ay contain more than 1 property!
@@ -564,6 +571,43 @@ void HTMLElementImpl::addHTMLAlignment( DOMString alignment )
 	addCSSProperty( CSS_PROP_VERTICAL_ALIGN, propvalign );
 }
 
+bool HTMLElementImpl::isContentEditable() const {
+    if (m_contentEditable == FlagEnabled)
+        return true;
+    if (m_contentEditable == FlagDisabled)
+        return false;
+
+    NodeImpl *node = parentNode();
+    while (node && node->isHTMLElement()) {
+        HTMLElementImpl *element = static_cast<HTMLElementImpl *>(node);
+        if (element->m_contentEditable == FlagEnabled)
+            return true;
+        if (element->m_contentEditable == FlagDisabled)
+            return false;
+        node = node->parentNode();
+    }
+    return false;
+}
+
+DOMString HTMLElementImpl::contentEditable() const {
+    if (m_contentEditable == FlagEnabled)
+        return "true";
+    if (m_contentEditable == FlagDisabled)
+        return "false";
+    return "inherit";
+}
+
+void HTMLElementImpl::setContentEditable(const DOMString &enabled) {
+    if ( strcasecmp ( enabled, "true" ) == 0 )
+        m_contentEditable = FlagEnabled;
+    else if ( enabled.isEmpty() ) // we want the "true" attribute
+        setAttribute(ATTR_CONTENTEDITABLE, "true");
+    else if ( strcasecmp ( enabled, "false" ) == 0 )
+        m_contentEditable = FlagDisabled;
+    else if ( strcasecmp ( enabled, "inherit" ) == 0 ) {
+        m_contentEditable = FlagNone;
+    }
+}
 
 // -------------------------------------------------------------------------
 HTMLGenericElementImpl::HTMLGenericElementImpl(DocumentPtr *doc, ushort i)
diff --git a/WebCore/khtml/html/html_elementimpl.h b/WebCore/khtml/html/html_elementimpl.h
index 331e86c..a0dc686 100644
--- a/WebCore/khtml/html/html_elementimpl.h
+++ b/WebCore/khtml/html/html_elementimpl.h
@@ -60,6 +60,10 @@ public:
     bool setInnerText( const DOMString &text );
 
     virtual DOMString namespaceURI() const;
+    
+    virtual bool isContentEditable() const;
+    virtual DOMString contentEditable() const;
+    virtual void setContentEditable(const DOMString &enabled);
 
 #if APPLE_CHANGES
     virtual bool isGenericFormElement() const { return false; }
@@ -68,6 +72,11 @@ public:
 protected:
     // for IMG, OBJECT and APPLET
     void addHTMLAlignment( DOMString alignment );
+
+private:
+    // FIXME: When the property for editing has been determined in CSS3, use that 
+    // instead of this member variable.
+    TristateFlag m_contentEditable;
 };
 
 class HTMLGenericElementImpl : public HTMLElementImpl
diff --git a/WebCore/khtml/khtml_part.cpp b/WebCore/khtml/khtml_part.cpp
index ce0ecd2..c37b61c 100644
--- a/WebCore/khtml/khtml_part.cpp
+++ b/WebCore/khtml/khtml_part.cpp
@@ -2092,6 +2092,30 @@ void KHTMLPart::setOnlyLocalReferences(bool enable)
   d->m_onlyLocalReferences = enable;
 }
 
+void KHTMLPart::setEditMode(TristateFlag flag)
+{
+    d->m_inEditMode = flag;
+}
+
+TristateFlag KHTMLPart::editMode() const
+{ 
+    if (d->m_inEditMode != FlagNone)
+        return d->m_inEditMode == FlagEnabled ? FlagEnabled : FlagDisabled;
+    
+    KHTMLPart *part = parentPart();
+    while (part) {
+        if (part->d->m_inEditMode != FlagNone)
+            return part->d->m_inEditMode == FlagEnabled ? FlagEnabled : FlagDisabled;
+        part = part->parentPart();
+    }
+    return FlagNone;
+}
+
+bool KHTMLPart::inEditMode() const
+{
+    return editMode() == FlagEnabled;
+}
+
 void KHTMLPart::findTextBegin(NodeImpl *startNode, int startPos)
 {
     d->m_findPos = startPos;
@@ -3708,7 +3732,7 @@ bool KHTMLPart::frameExists( const QString &frameName )
   return (!(*it).m_frame.isNull());
 }
 
-KHTMLPart *KHTMLPart::parentPart()
+KHTMLPart *KHTMLPart::parentPart() const
 {
   if ( !parent() || !parent()->inherits( "KHTMLPart" ) )
     return 0L;
diff --git a/WebCore/khtml/khtml_part.h b/WebCore/khtml/khtml_part.h
index d12f758..461271a 100644
--- a/WebCore/khtml/khtml_part.h
+++ b/WebCore/khtml/khtml_part.h
@@ -29,6 +29,7 @@
 
 #include "dom/html_document.h"
 #include "dom/dom2_range.h"
+#include "dom/dom_misc.h"
 
 #include <kparts/part.h>
 #include <kparts/browserextension.h>
@@ -61,6 +62,8 @@ namespace DOM
   class EventListener;
 };
 
+using DOM::TristateFlag;
+
 namespace khtml
 {
   class DocLoader;
@@ -94,7 +97,7 @@ namespace KParts
  * This class is khtml's main class. It features an almost complete
  * web browser, and html renderer.
  *
- * The easiest way to use this class (if you just want to display a an HTML
+ * The easiest way to use this class (if you just want to display an HTML
  * page at some URL) is the following:
  *
  * <pre>
@@ -345,10 +348,14 @@ public:
   void setOnlyLocalReferences(bool enable);
 
   /**
-   * Returnd whether references should be loaded ( default false )
+   * Returns whether references should be loaded ( default false )
    **/
   bool onlyLocalReferences() const;
 
+  void setEditMode(TristateFlag enable);
+  TristateFlag editMode() const;
+  bool inEditMode() const;
+
 #ifndef KDE_NO_COMPAT
   void enableJScript(bool e) { setJScriptEnabled(e); }
   void enableJava(bool e) { setJavaEnabled(e); }
@@ -639,7 +646,7 @@ public:
    *
    *  Returns 0L otherwise.
    */
-  KHTMLPart *parentPart();
+  KHTMLPart *parentPart() const;
 
   /**
    * Returns a list of names of all frame (including iframe) objects of
diff --git a/WebCore/khtml/khtmlpart_p.h b/WebCore/khtml/khtmlpart_p.h
index b593754..0e019a0 100644
--- a/WebCore/khtml/khtmlpart_p.h
+++ b/WebCore/khtml/khtmlpart_p.h
@@ -42,6 +42,7 @@
 #include "misc/decoder.h"
 #include "java/kjavaappletcontext.h"
 #include "ecma/kjs_proxy.h"
+#include "dom/dom_misc.h"
 
 namespace KIO
 {
@@ -151,6 +152,8 @@ public:
     m_bPluginsOverride = false;
     m_onlyLocalReferences = false;
 
+    m_inEditMode = DOM::FlagNone;
+
     m_metaRefreshEnabled = true;
     m_bHTTPRefresh = false;
 
@@ -181,6 +184,7 @@ public:
             m_ssl_in_use = part->d->m_ssl_in_use;
 #endif
             m_onlyLocalReferences = part->d->m_onlyLocalReferences;
+            m_inEditMode = part->d->m_inEditMode;
             m_zoomFactor = part->d->m_zoomFactor;
         }
     }
@@ -360,6 +364,8 @@ public:
   bool m_bSecurityInQuestion:1;
   bool m_focusNodeRestored:1;
 
+  TristateFlag m_inEditMode;
+
   int m_focusNodeNumber;
 
   QPoint m_dragStartPos;
diff --git a/WebCore/khtml/misc/htmlattrs.c b/WebCore/khtml/misc/htmlattrs.c
index 862ce32..a727a12 100644
--- a/WebCore/khtml/misc/htmlattrs.c
+++ b/WebCore/khtml/misc/htmlattrs.c
@@ -8,7 +8,7 @@ struct attrs {
     const char *name;
     int id;
 };
-/* maximum key range = 914, duplicates = 1 */
+/* maximum key range = 1208, duplicates = 1 */
 
 #ifdef __GNUC__
 __inline
@@ -22,38 +22,40 @@ hash_attr (register const char *str, register unsigned int len)
 {
   static const unsigned short asso_values[] =
     {
-      923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
-      923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
-      923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
-      923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
-      923, 923, 923, 923, 923,   0, 923, 923, 923, 923,
-      923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
-      923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
-      923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
-      923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
-      923, 923, 923, 923, 923, 923, 923,  35,  25,   0,
-       75,   0,  45,  90, 135,  55,   0, 305,   0, 185,
-        0,   0,  50,   5, 115,   5,  15,  15,  40,  35,
-       70,  55,   5, 923, 923, 923, 923, 923, 923, 923,
-      923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
-      923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
-      923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
-      923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
-      923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
-      923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
-      923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
-      923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
-      923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
-      923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
-      923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
-      923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
-      923, 923, 923, 923, 923, 923
+      1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+      1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+      1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+      1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+      1211, 1211, 1211, 1211, 1211,    5, 1211, 1211, 1211, 1211,
+      1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+      1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+      1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+      1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+      1211, 1211, 1211, 1211, 1211, 1211, 1211,   45,   65,   10,
+        50,    0,   75,   60,  170,  200,    0,   45,    0,  175,
+         0,    0,    0,    0,   25,    5,    0,  160,  160,   15,
+        30,  170,   20, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+      1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+      1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+      1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+      1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+      1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+      1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+      1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+      1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+      1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+      1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+      1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+      1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+      1211, 1211, 1211, 1211, 1211, 1211
     };
   register int hval = len;
 
   switch (hval)
     {
       default:
+      case 15:
+        hval += asso_values[(unsigned char)str[14]];
       case 14:
         hval += asso_values[(unsigned char)str[13]];
       case 13:
@@ -95,255 +97,292 @@ findAttr (register const char *str, register unsigned int len)
 {
   enum
     {
-      TOTAL_KEYWORDS = 145,
+      TOTAL_KEYWORDS = 146,
       MIN_WORD_LENGTH = 2,
-      MAX_WORD_LENGTH = 14,
-      MIN_HASH_VALUE = 9,
-      MAX_HASH_VALUE = 922
+      MAX_WORD_LENGTH = 15,
+      MIN_HASH_VALUE = 3,
+      MAX_HASH_VALUE = 1210
     };
 
   static const struct attrs wordlist_attr[] =
     {
+      {"top", ATTR_TOP},
+      {"content", ATTR_CONTENT},
       {"cols", ATTR_COLS},
+      {"scope", ATTR_SCOPE},
       {"onselect", ATTR_ONSELECT},
-      {"content", ATTR_CONTENT},
-      {"object", ATTR_OBJECT},
-      {"class", ATTR_CLASS},
+      {"rel", ATTR_REL},
+      {"text", ATTR_TEXT},
+      {"onreset", ATTR_ONRESET},
+      {"color", ATTR_COLOR},
+      {"src", ATTR_SRC},
       {"alt", ATTR_ALT},
-      {"scope", ATTR_SCOPE},
-      {"left", ATTR_LEFT},
-      {"label", ATTR_LABEL},
-      {"top", ATTR_TOP},
-      {"size", ATTR_SIZE},
-      {"onfocus", ATTR_ONFOCUS},
-      {"cite", ATTR_CITE},
-      {"code", ATTR_CODE},
-      {"style", ATTR_STYLE},
-      {"face", ATTR_FACE},
-      {"nosave", ATTR_NOSAVE},
-      {"title", ATTR_TITLE},
+      {"rows", ATTR_ROWS},
       {"span", ATTR_SPAN},
-      {"value", ATTR_VALUE},
+      {"code", ATTR_CODE},
       {"colspan", ATTR_COLSPAN},
-      {"selected", ATTR_SELECTED},
-      {"text", ATTR_TEXT},
+      {"class", ATTR_CLASS},
       {"accept", ATTR_ACCEPT},
-      {"action", ATTR_ACTION},
-      {"onload", ATTR_ONLOAD},
-      {"rel", ATTR_REL},
-      {"color", ATTR_COLOR},
-      {"src", ATTR_SRC},
-      {"type", ATTR_TYPE},
-      {"enctype", ATTR_ENCTYPE},
-      {"lang", ATTR_LANG},
-      {"id", ATTR_ID},
-      {"onunload", ATTR_ONUNLOAD},
-      {"vspace", ATTR_VSPACE},
-      {"rules", ATTR_RULES},
-      {"onreset", ATTR_ONRESET},
-      {"plain", ATTR_PLAIN},
-      {"codebase", ATTR_CODEBASE},
+      {"selected", ATTR_SELECTED},
+      {"left", ATTR_LEFT},
+      {"start", ATTR_START},
+      {"object", ATTR_OBJECT},
+      {"onerror", ATTR_ONERROR},
       {"clear", ATTR_CLEAR},
-      {"rev", ATTR_REV},
-      {"rows", ATTR_ROWS},
-      {"onblur", ATTR_ONBLUR},
+      {"wrap", ATTR_WRAP},
+      {"nowrap", ATTR_NOWRAP},
+      {"coords", ATTR_COORDS},
+      {"rowspan", ATTR_ROWSPAN},
+      {"onload", ATTR_ONLOAD},
       {"for", ATTR_FOR},
-      {"data", ATTR_DATA},
-      {"axis", ATTR_AXIS},
+      {"lang", ATTR_LANG},
+      {"label", ATTR_LABEL},
       {"longdesc", ATTR_LONGDESC},
-      {"classid", ATTR_CLASSID},
-      {"align", ATTR_ALIGN},
-      {"noresize", ATTR_NORESIZE},
-      {"onresize", ATTR_ONRESIZE},
-      {"start", ATTR_START},
+      {"face", ATTR_FACE},
+      {"target", ATTR_TARGET},
+      {"declare", ATTR_DECLARE},
+      {"pagex", ATTR_PAGEX},
       {"onabort", ATTR_ONABORT},
-      {"coords", ATTR_COORDS},
-      {"codetype", ATTR_CODETYPE},
+      {"data", ATTR_DATA},
+      {"defer", ATTR_DEFER},
+      {"bgcolor", ATTR_BGCOLOR},
+      {"border", ATTR_BORDER},
+      {"type", ATTR_TYPE},
+      {"style", ATTR_STYLE},
+      {"codebase", ATTR_CODEBASE},
+      {"enctype", ATTR_ENCTYPE},
+      {"rev", ATTR_REV},
+      {"rules", ATTR_RULES},
       {"abbr", ATTR_ABBR},
-      {"z-index", ATTR_Z_INDEX},
-      {"standby", ATTR_STANDBY},
-      {"valuetype", ATTR_VALUETYPE},
-      {"version", ATTR_VERSION},
+      {"title", ATTR_TITLE},
+      {"prompt", ATTR_PROMPT},
+      {"bordercolor", ATTR_BORDERCOLOR},
+      {"cite", ATTR_CITE},
+      {"nosave", ATTR_NOSAVE},
       {"name", ATTR_NAME},
-      {"valign", ATTR_VALIGN},
       {"shape", ATTR_SHAPE},
+      {"vspace", ATTR_VSPACE},
+      {"unknown", ATTR_UNKNOWN},
+      {"size", ATTR_SIZE},
+      {"oversrc", ATTR_OVERSRC},
       {"hspace", ATTR_HSPACE},
-      {"declare", ATTR_DECLARE},
-      {"pagey", ATTR_PAGEY},
-      {"bgcolor", ATTR_BGCOLOR},
-      {"wrap", ATTR_WRAP},
-      {"defer", ATTR_DEFER},
-      {"nowrap", ATTR_NOWRAP},
-      {"onmouseout", ATTR_ONMOUSEOUT},
-      {"cellspacing", ATTR_CELLSPACING},
-      {"rowspan", ATTR_ROWSPAN},
-      {"dir", ATTR_DIR},
-      {"pagex", ATTR_PAGEX},
+      {"codetype", ATTR_CODETYPE},
+      {"compact", ATTR_COMPACT},
+      {"link", ATTR_LINK},
+      {"plain", ATTR_PLAIN},
+      {"id", ATTR_ID},
+      {"char", ATTR_CHAR},
+      {"onblur", ATTR_ONBLUR},
+      {"onfocus", ATTR_ONFOCUS},
+      {"noresize", ATTR_NORESIZE},
+      {"onresize", ATTR_ONRESIZE},
+      {"onkeypress", ATTR_ONKEYPRESS},
+      {"action", ATTR_ACTION},
+      {"charset", ATTR_CHARSET},
+      {"onunload", ATTR_ONUNLOAD},
+      {"onclick", ATTR_ONCLICK},
+      {"href", ATTR_HREF},
+      {"nohref", ATTR_NOHREF},
       {"noshade", ATTR_NOSHADE},
+      {"dir", ATTR_DIR},
+      {"pagey", ATTR_PAGEY},
+      {"axis", ATTR_AXIS},
+      {"onkeydown", ATTR_ONKEYDOWN},
+      {"checked", ATTR_CHECKED},
       {"onchange", ATTR_ONCHANGE},
       {"challenge", ATTR_CHALLENGE},
+      {"alink", ATTR_ALINK},
+      {"readonly", ATTR_READONLY},
+      {"accesskey", ATTR_ACCESSKEY},
+      {"headers", ATTR_HEADERS},
       {"profile", ATTR_PROFILE},
-      {"language", ATTR_LANGUAGE},
       {"scrolling", ATTR_SCROLLING},
-      {"target", ATTR_TARGET},
-      {"disabled", ATTR_DISABLED},
-      {"onmouseup", ATTR_ONMOUSEUP},
-      {"oversrc", ATTR_OVERSRC},
-      {"tabindex", ATTR_TABINDEX},
-      {"readonly", ATTR_READONLY},
-      {"char", ATTR_CHAR},
-      {"compact", ATTR_COMPACT},
-      {"usemap", ATTR_USEMAP},
-      {"href", ATTR_HREF},
-      {"nohref", ATTR_NOHREF},
-      {"onsubmit", ATTR_ONSUBMIT},
-      {"charset", ATTR_CHARSET},
+      {"align", ATTR_ALIGN},
+      {"z-index", ATTR_Z_INDEX},
+      {"classid", ATTR_CLASSID},
+      {"frame", ATTR_FRAME},
+      {"accept-charset", ATTR_ACCEPT_CHARSET},
+      {"cellspacing", ATTR_CELLSPACING},
+      {"standby", ATTR_STANDBY},
+      {"html", ATTR_HTML},
+      {"scheme", ATTR_SCHEME},
+      {"value", ATTR_VALUE},
+      {"language", ATTR_LANGUAGE},
+      {"onkeyup", ATTR_ONKEYUP},
+      {"hreflang", ATTR_HREFLANG},
+      {"contenteditable", ATTR_CONTENTEDITABLE},
       {"oncontextmenu", ATTR_ONCONTEXTMENU},
-      {"width", ATTR_WIDTH},
-      {"onmousedown", ATTR_ONMOUSEDOWN},
+      {"ondblclick", ATTR_ONDBLCLICK},
+      {"usemap", ATTR_USEMAP},
+      {"bgproperties", ATTR_BGPROPERTIES},
+      {"version", ATTR_VERSION},
+      {"tabindex", ATTR_TABINDEX},
+      {"method", ATTR_METHOD},
       {"autocomplete", ATTR_AUTOCOMPLETE},
-      {"multiple", ATTR_MULTIPLE},
-      {"scheme", ATTR_SCHEME},
+      {"charoff", ATTR_CHAROFF},
+      {"vlink", ATTR_VLINK},
+      {"onmousedown", ATTR_ONMOUSEDOWN},
+      {"disabled", ATTR_DISABLED},
+      {"cellpadding", ATTR_CELLPADDING},
       {"ismap", ATTR_ISMAP},
-      {"border", ATTR_BORDER},
-      {"html", ATTR_HTML},
-      {"http-equiv", ATTR_HTTP_EQUIV},
-      {"hidden", ATTR_HIDDEN},
-      {"pluginurl", ATTR_PLUGINURL},
-      {"onerror", ATTR_ONERROR},
+      {"width", ATTR_WIDTH},
+      {"background", ATTR_BACKGROUND},
+      {"valign", ATTR_VALIGN},
       {"media", ATTR_MEDIA},
-      {"unknown", ATTR_UNKNOWN},
-      {"link", ATTR_LINK},
-      {"onclick", ATTR_ONCLICK},
-      {"visibility", ATTR_VISIBILITY},
-      {"onmouseover", ATTR_ONMOUSEOVER},
-      {"headers", ATTR_HEADERS},
-      {"charoff", ATTR_CHAROFF},
-      {"frame", ATTR_FRAME},
-      {"archive", ATTR_ARCHIVE},
+      {"hidden", ATTR_HIDDEN},
       {"datetime", ATTR_DATETIME},
-      {"cellpadding", ATTR_CELLPADDING},
+      {"maxlength", ATTR_MAXLENGTH},
+      {"frameborder", ATTR_FRAMEBORDER},
+      {"onmouseup", ATTR_ONMOUSEUP},
+      {"onmouseout", ATTR_ONMOUSEOUT},
+      {"topmargin", ATTR_TOPMARGIN},
       {"pluginpage", ATTR_PLUGINPAGE},
-      {"alink", ATTR_ALINK},
+      {"onmouseover", ATTR_ONMOUSEOVER},
       {"pluginspage", ATTR_PLUGINSPAGE},
-      {"vlink", ATTR_VLINK},
-      {"accesskey", ATTR_ACCESSKEY},
-      {"method", ATTR_METHOD},
-      {"accept-charset", ATTR_ACCEPT_CHARSET},
-      {"prompt", ATTR_PROMPT},
-      {"hreflang", ATTR_HREFLANG},
-      {"onkeyup", ATTR_ONKEYUP},
+      {"multiple", ATTR_MULTIPLE},
+      {"valuetype", ATTR_VALUETYPE},
+      {"leftmargin", ATTR_LEFTMARGIN},
       {"height", ATTR_HEIGHT},
+      {"onsubmit", ATTR_ONSUBMIT},
+      {"pluginurl", ATTR_PLUGINURL},
+      {"archive", ATTR_ARCHIVE},
       {"onmousemove", ATTR_ONMOUSEMOVE},
-      {"bordercolor", ATTR_BORDERCOLOR},
-      {"ondblclick", ATTR_ONDBLCLICK},
-      {"onkeydown", ATTR_ONKEYDOWN},
-      {"checked", ATTR_CHECKED},
-      {"bgproperties", ATTR_BGPROPERTIES},
-      {"maxlength", ATTR_MAXLENGTH},
-      {"onkeypress", ATTR_ONKEYPRESS},
-      {"leftmargin", ATTR_LEFTMARGIN},
-      {"topmargin", ATTR_TOPMARGIN},
+      {"http-equiv", ATTR_HTTP_EQUIV},
       {"summary", ATTR_SUMMARY},
-      {"background", ATTR_BACKGROUND},
-      {"frameborder", ATTR_FRAMEBORDER},
       {"marginwidth", ATTR_MARGINWIDTH},
-      {"marginheight", ATTR_MARGINHEIGHT}
+      {"marginheight", ATTR_MARGINHEIGHT},
+      {"visibility", ATTR_VISIBILITY}
     };
 
   static const short lookup[] =
     {
+        -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,    1,   -1,    2,    3,   -1,   -1,    4,
+        -1,   -1,   -1,   -1,    5,   -1,   -1,   -1,
+        -1,   -1,    6,   -1,   -1,    7,   -1,   -1,
+         8,   -1,   -1,    9,   -1,   -1,   -1,   -1,
+        10,   11,   -1,   -1,   -1,   -1,   12,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        13,   -1,   -1,   14,   -1,   -1,   15,   16,
+        -1,   17,   -1,   -1,   -1,   -1,   -1,   18,
+        19,   20,   21,   -1,   -1,   22,   -1,   -1,
+        -1,   23,   -1,   24,   -1,   -1,   -1,   -1,
+        25,   26,   -1,   -1,   -1,   27,   -1,   28,
+        -1,   -1,   -1,   -1,   -1,   29,   -1,   -1,
+        -1,   -1,   -1,   30,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   31,   32,   -1,
+        33,   34,   -1,   -1,   35,   -1,   36,   -1,
+        37,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   38,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   39,
+        -1,   -1,   -1,   40,   -1,   -1,   41,   -1,
+        -1,   -1,   -1,   -1,   42,   -1,   -1,   43,
+        -1,   -1,   -1,   44,   45,   -1,   -1,   -1,
+        -1,   -1,   -1,   46,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   47,   48,   49,   -1,
+        -1,   -1,   -1,   50,   -1,   -1,   51,   -1,
+        52,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        53,   54,   55,   56,   -1,   57,   -1,   -1,
+        58,   -1,   -1,   -1,   59,   -1,   60,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   61,
+        -1,   62,   63,   -1,   64,   -1,   65,   -1,
+        66,   67, -411,   -1,   70,   71,   72,   73,
+       -78,   -2,   -1,   -1,   -1,   -1,   -1,   -1,
+        74,   -1,   75,   -1,   76,   77,   78,   -1,
+        79,   -1,   -1,   -1,   80,   -1,   -1,   -1,
+        -1,   81,   -1,   -1,   82,   83,   84,   85,
+        -1,   -1,   86,   87,   -1,   -1,   88,   -1,
+        -1,   -1,   -1,   89,   -1,   90,   91,   -1,
+        92,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   93,   -1,   -1,   94,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   95,   -1,   96,   97,   -1,
+        -1,   -1,   -1,   -1,   -1,   98,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   99,   -1,
+        -1,   -1,  100,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  101,   -1,   -1,   -1,  102,  103,
+        -1,  104,   -1,   -1,  105,   -1,  106,  107,
+       108,   -1,   -1,   -1,   -1,  109,  110,   -1,
+        -1,  111,  112,   -1,   -1,   -1,   -1,  113,
+        -1,   -1,  114,   -1,   -1,   -1,   -1,   -1,
+       115,   -1,   -1,   -1,   -1,   -1,   -1,  116,
+        -1,   -1,  117,   -1,   -1,   -1,  118,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+       119,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  120,  121,
+        -1,   -1,   -1,  122,  123,   -1,  124,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,
+       126,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  127,  128,   -1,
+        -1,   -1,  129,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,  130,
+       131,   -1,   -1,   -1,   -1,  132,   -1,  133,
+       134,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  135,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  136,   -1,
+        -1,   -1,   -1,   -1,   -1,  137,  138,   -1,
+        -1,  139,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,  140,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,  141,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,  142,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,    1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,    2,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,    3,   -1,
-        -1,   -1,    4,   -1,   -1,    5,   -1,   -1,
-        -1,   -1,   -1,   -1,    6,   -1,   -1,   -1,
-         7,    8,   -1,   -1,    9,   10,   -1,   -1,
-        11,   -1,   12,   -1,   -1,   -1,   -1,   13,
-        14,   -1,   -1,   -1,   15,   -1,   16,   -1,
-        -1,   -1,   17,   -1,   -1,   -1,   18,   19,
-        -1,   20,   -1,   -1,   -1,   -1,   -1,   21,
-        22,   -1,   23,   -1,   -1,   -1,   -1,   24,
-        -1,   -1,   -1,   -1,   25,   -1,   26,   -1,
-        27,   -1,   -1,   28,   29,   -1,   -1,   30,
-        -1,   31,   -1,   -1,   32,   33,   -1,   -1,
-        34,   -1,   -1,   -1,   35,   -1,   36,   -1,
-        -1,   37,   -1,   -1,   38,   -1,   -1,   -1,
-        -1,   -1,   -1,   39,   -1,   -1,   40,   41,
-        -1,   42,   -1,   43,   44,   -1,   -1,   -1,
-        -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   46,   -1,   -1,   -1,   47,   -1,
-        -1,   48,   -1,   -1, -337,   -1,   51,  -96,
-        -2,   -1,   -1,   -1,   -1,   52,   -1,   -1,
-        -1,   53,   -1,   54,   55,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   56,   -1,   -1,   -1,
-        -1,   57,   -1,   58,   -1,   -1,   59,   -1,
-        60,   -1,   61,   -1,   -1,   -1,   62,   63,
-        64,   -1,   -1,   65,   -1,   66,   -1,   67,
-        68,   69,   -1,   -1,   -1,   70,   71,   72,
-        73,   -1,   74,   -1,   -1,   -1,   -1,   -1,
-        -1,   75,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   76,   77,   -1,   -1,
-        78,   79,   80,   -1,   81,   -1,   82,   83,
-        -1,   -1,   84,   85,   -1,   -1,   -1,   -1,
-        86,   87,   -1,   -1,   88,   -1,   -1,   -1,
-        89,   -1,   -1,   90,   -1,   91,   -1,   -1,
-        -1,   -1,   -1,   -1,   92,   -1,   -1,   -1,
-        93,   94,   -1,   -1,   -1,   -1,   -1,   -1,
-        95,   -1,   -1,   -1,   -1,   -1,   96,   97,
-        98,   -1,   -1,   99,   -1,   -1,   -1,  100,
-       101,   -1,   -1,  102,  103,   -1,   -1,   -1,
-        -1,   -1,  104,   -1,   -1,  105,   -1,   -1,
-       106,   -1,   -1,  107,   -1,   -1,   -1,   -1,
-        -1,   -1,  108,   -1,  109,   -1,   -1,  110,
-        -1,   -1,  111,  112,  113,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  114,   -1,
-        -1,  115,   -1,  116,  117,   -1,   -1,  118,
-        -1,   -1,   -1,  119,   -1,   -1,   -1,   -1,
-       120,  121,   -1,   -1,   -1,  122,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,
-       124,   -1,   -1,  125,   -1,  126,   -1,   -1,
-        -1,   -1,   -1,   -1,  127,   -1,   -1,   -1,
-       128,   -1,   -1,   -1,  129,   -1,   -1,   -1,
-        -1,  130,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-       131,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  132,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,   -1,  133,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,  134,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,  135,   -1,   -1,   -1,
-        -1,   -1,   -1,  136,   -1,   -1,   -1,   -1,
-        -1,  137,   -1,   -1,   -1,   -1,  138,   -1,
-        -1,   -1,  139,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,  140,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,   -1,   -1,  143,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  141,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,  142,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
@@ -353,10 +392,10 @@ findAttr (register const char *str, register unsigned int len)
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,   -1,   -1,   -1,   -1,  143,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
+        -1,   -1,   -1,   -1,   -1,  144,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
@@ -368,7 +407,7 @@ findAttr (register const char *str, register unsigned int len)
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
-        -1,   -1,  144
+        -1,   -1,  145
     };
 
   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
@@ -443,6 +482,7 @@ static const char * const attrList[] = {
     "COLSPAN",
     "COMPACT",
     "CONTENT",
+    "CONTENTEDITABLE",
     "COORDS",
     "DATA",
     "DATETIME",
diff --git a/WebCore/khtml/misc/htmlattrs.h b/WebCore/khtml/misc/htmlattrs.h
index 770206f..e712afe 100644
--- a/WebCore/khtml/misc/htmlattrs.h
+++ b/WebCore/khtml/misc/htmlattrs.h
@@ -43,117 +43,118 @@ using namespace DOM;
 #define ATTR_COLSPAN 33
 #define ATTR_COMPACT 34
 #define ATTR_CONTENT 35
-#define ATTR_COORDS 36
-#define ATTR_DATA 37
-#define ATTR_DATETIME 38
-#define ATTR_DECLARE 39
-#define ATTR_DEFER 40
-#define ATTR_DIR 41
-#define ATTR_DISABLED 42
-#define ATTR_ENCTYPE 43
-#define ATTR_FACE 44
-#define ATTR_FOR 45
-#define ATTR_FRAME 46
-#define ATTR_FRAMEBORDER 47
-#define ATTR_HEADERS 48
-#define ATTR_HEIGHT 49
-#define ATTR_HIDDEN 50
-#define ATTR_HREF 51
-#define ATTR_HREFLANG 52
-#define ATTR_HSPACE 53
-#define ATTR_HTML 54
-#define ATTR_HTTP_EQUIV 55
-#define ATTR_ID 56
-#define ATTR_ISMAP 57
-#define ATTR_LABEL 58
-#define ATTR_LANG 59
-#define ATTR_LANGUAGE 60
-#define ATTR_LEFT 61
-#define ATTR_LEFTMARGIN 62
-#define ATTR_LINK 63
-#define ATTR_LONGDESC 64
-#define ATTR_MARGINHEIGHT 65
-#define ATTR_MARGINWIDTH 66
-#define ATTR_MAXLENGTH 67
-#define ATTR_MEDIA 68
-#define ATTR_METHOD 69
-#define ATTR_MULTIPLE 70
-#define ATTR_NAME 71
-#define ATTR_NOHREF 72
-#define ATTR_NORESIZE 73
-#define ATTR_NOSAVE 74
-#define ATTR_NOSHADE 75
-#define ATTR_NOWRAP 76
-#define ATTR_OBJECT 77
-#define ATTR_ONABORT 78
-#define ATTR_ONBLUR 79
-#define ATTR_ONCHANGE 80
-#define ATTR_ONCLICK 81
-#define ATTR_ONCONTEXTMENU 82
-#define ATTR_ONDBLCLICK 83
-#define ATTR_ONERROR 84
-#define ATTR_ONFOCUS 85
-#define ATTR_ONKEYDOWN 86
-#define ATTR_ONKEYPRESS 87
-#define ATTR_ONKEYUP 88
-#define ATTR_ONLOAD 89
-#define ATTR_ONMOUSEDOWN 90
-#define ATTR_ONMOUSEMOVE 91
-#define ATTR_ONMOUSEOUT 92
-#define ATTR_ONMOUSEOVER 93
-#define ATTR_ONMOUSEUP 94
-#define ATTR_ONRESET 95
-#define ATTR_ONRESIZE 96
-#define ATTR_ONSELECT 97
-#define ATTR_ONSUBMIT 98
-#define ATTR_ONUNLOAD 99
-#define ATTR_OVERSRC 100
-#define ATTR_PAGEX 101
-#define ATTR_PAGEY 102
-#define ATTR_PLAIN 103
-#define ATTR_PLUGINPAGE 104
-#define ATTR_PLUGINSPAGE 105
-#define ATTR_PLUGINURL 106
-#define ATTR_PROFILE 107
-#define ATTR_PROMPT 108
-#define ATTR_READONLY 109
-#define ATTR_REL 110
-#define ATTR_REV 111
-#define ATTR_ROWS 112
-#define ATTR_ROWSPAN 113
-#define ATTR_RULES 114
-#define ATTR_SCHEME 115
-#define ATTR_SCOPE 116
-#define ATTR_SCROLLING 117
-#define ATTR_SELECTED 118
-#define ATTR_SHAPE 119
-#define ATTR_SIZE 120
-#define ATTR_SPAN 121
-#define ATTR_SRC 122
-#define ATTR_STANDBY 123
-#define ATTR_START 124
-#define ATTR_STYLE 125
-#define ATTR_SUMMARY 126
-#define ATTR_TABINDEX 127
-#define ATTR_TARGET 128
-#define ATTR_TEXT 129
-#define ATTR_TITLE 130
-#define ATTR_TOP 131
-#define ATTR_TOPMARGIN 132
-#define ATTR_TYPE 133
-#define ATTR_UNKNOWN 134
-#define ATTR_USEMAP 135
-#define ATTR_VALIGN 136
-#define ATTR_VALUE 137
-#define ATTR_VALUETYPE 138
-#define ATTR_VERSION 139
-#define ATTR_VISIBILITY 140
-#define ATTR_VLINK 141
-#define ATTR_VSPACE 142
-#define ATTR_WIDTH 143
-#define ATTR_WRAP 144
-#define ATTR_Z_INDEX 145
-#define ATTR_LAST_ATTR 145
+#define ATTR_CONTENTEDITABLE 36
+#define ATTR_COORDS 37
+#define ATTR_DATA 38
+#define ATTR_DATETIME 39
+#define ATTR_DECLARE 40
+#define ATTR_DEFER 41
+#define ATTR_DIR 42
+#define ATTR_DISABLED 43
+#define ATTR_ENCTYPE 44
+#define ATTR_FACE 45
+#define ATTR_FOR 46
+#define ATTR_FRAME 47
+#define ATTR_FRAMEBORDER 48
+#define ATTR_HEADERS 49
+#define ATTR_HEIGHT 50
+#define ATTR_HIDDEN 51
+#define ATTR_HREF 52
+#define ATTR_HREFLANG 53
+#define ATTR_HSPACE 54
+#define ATTR_HTML 55
+#define ATTR_HTTP_EQUIV 56
+#define ATTR_ID 57
+#define ATTR_ISMAP 58
+#define ATTR_LABEL 59
+#define ATTR_LANG 60
+#define ATTR_LANGUAGE 61
+#define ATTR_LEFT 62
+#define ATTR_LEFTMARGIN 63
+#define ATTR_LINK 64
+#define ATTR_LONGDESC 65
+#define ATTR_MARGINHEIGHT 66
+#define ATTR_MARGINWIDTH 67
+#define ATTR_MAXLENGTH 68
+#define ATTR_MEDIA 69
+#define ATTR_METHOD 70
+#define ATTR_MULTIPLE 71
+#define ATTR_NAME 72
+#define ATTR_NOHREF 73
+#define ATTR_NORESIZE 74
+#define ATTR_NOSAVE 75
+#define ATTR_NOSHADE 76
+#define ATTR_NOWRAP 77
+#define ATTR_OBJECT 78
+#define ATTR_ONABORT 79
+#define ATTR_ONBLUR 80
+#define ATTR_ONCHANGE 81
+#define ATTR_ONCLICK 82
+#define ATTR_ONCONTEXTMENU 83
+#define ATTR_ONDBLCLICK 84
+#define ATTR_ONERROR 85
+#define ATTR_ONFOCUS 86
+#define ATTR_ONKEYDOWN 87
+#define ATTR_ONKEYPRESS 88
+#define ATTR_ONKEYUP 89
+#define ATTR_ONLOAD 90
+#define ATTR_ONMOUSEDOWN 91
+#define ATTR_ONMOUSEMOVE 92
+#define ATTR_ONMOUSEOUT 93
+#define ATTR_ONMOUSEOVER 94
+#define ATTR_ONMOUSEUP 95
+#define ATTR_ONRESET 96
+#define ATTR_ONRESIZE 97
+#define ATTR_ONSELECT 98
+#define ATTR_ONSUBMIT 99
+#define ATTR_ONUNLOAD 100
+#define ATTR_OVERSRC 101
+#define ATTR_PAGEX 102
+#define ATTR_PAGEY 103
+#define ATTR_PLAIN 104
+#define ATTR_PLUGINPAGE 105
+#define ATTR_PLUGINSPAGE 106
+#define ATTR_PLUGINURL 107
+#define ATTR_PROFILE 108
+#define ATTR_PROMPT 109
+#define ATTR_READONLY 110
+#define ATTR_REL 111
+#define ATTR_REV 112
+#define ATTR_ROWS 113
+#define ATTR_ROWSPAN 114
+#define ATTR_RULES 115
+#define ATTR_SCHEME 116
+#define ATTR_SCOPE 117
+#define ATTR_SCROLLING 118
+#define ATTR_SELECTED 119
+#define ATTR_SHAPE 120
+#define ATTR_SIZE 121
+#define ATTR_SPAN 122
+#define ATTR_SRC 123
+#define ATTR_STANDBY 124
+#define ATTR_START 125
+#define ATTR_STYLE 126
+#define ATTR_SUMMARY 127
+#define ATTR_TABINDEX 128
+#define ATTR_TARGET 129
+#define ATTR_TEXT 130
+#define ATTR_TITLE 131
+#define ATTR_TOP 132
+#define ATTR_TOPMARGIN 133
+#define ATTR_TYPE 134
+#define ATTR_UNKNOWN 135
+#define ATTR_USEMAP 136
+#define ATTR_VALIGN 137
+#define ATTR_VALUE 138
+#define ATTR_VALUETYPE 139
+#define ATTR_VERSION 140
+#define ATTR_VISIBILITY 141
+#define ATTR_VLINK 142
+#define ATTR_VSPACE 143
+#define ATTR_WIDTH 144
+#define ATTR_WRAP 145
+#define ATTR_Z_INDEX 146
+#define ATTR_LAST_ATTR 146
 DOMString getAttrName(unsigned short id);
 
 #endif
diff --git a/WebCore/khtml/misc/htmlattrs.in b/WebCore/khtml/misc/htmlattrs.in
index 2238a0e..a63e538 100644
--- a/WebCore/khtml/misc/htmlattrs.in
+++ b/WebCore/khtml/misc/htmlattrs.in
@@ -33,6 +33,7 @@ cols
 colspan
 compact
 content
+contenteditable
 coords
 data
 datetime

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list