Improve preservation of overrides
authorAryeh Gregor <ayg@aryeh.name>
Thu, 17 May 2012 05:03:55 -0600
changeset 728 cfe7e4a592e8
parent 727 6873a2bf3689
child 729 c1369e156007
Improve preservation of overrides

Now we preserve overrides for a lot more commands.

Reported-By: Ehsan Akhgari
Report-URL: https://bugzilla.mozilla.org/show_bug.cgi?id=590640#c53
conformancetest/data.js
editing.html
implementation.js
source.html
tests.js
--- a/conformancetest/data.js	Sun May 06 04:36:37 2012 -0600
+++ b/conformancetest/data.js	Thu May 17 05:03:55 2012 -0600
@@ -27655,6 +27655,16 @@
 	[true,true],
 	{"bold":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["bold",""],["delete",""]],
+	"fo[]bar",
+	[true,true],
+	{"bold":[false,false,"",false,true,""],"delete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["bold",""],["delete",""],["inserttext","a"]],
+	"fo<b>a[]</b>bar",
+	[true,true,true],
+	{"bold":[false,false,"",false,true,""],"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["bold",""],["formatblock","<div>"]],
 	"<div>foo[]bar</div>",
 	[true,true],
@@ -27665,6 +27675,16 @@
 	[true,true,true],
 	{"bold":[false,false,"",false,true,""],"formatblock":[false,false,"",false,false,"div"],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["bold",""],["forwarddelete",""]],
+	"foo[]ar",
+	[true,true],
+	{"bold":[false,false,"",false,true,""],"forwarddelete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["bold",""],["forwarddelete",""],["inserttext","a"]],
+	"foo<b>a[]</b>ar",
+	[true,true,true],
+	{"bold":[false,false,"",false,true,""],"forwarddelete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["bold",""],["indent",""]],
 	"<blockquote>foo[]bar</blockquote>",
 	[true,true],
@@ -27675,6 +27695,46 @@
 	[true,true,true],
 	{"bold":[false,false,"",false,true,""],"indent":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["bold",""],["inserthorizontalrule",""]],
+	"foo<hr>{}bar",
+	[true,true],
+	{"bold":[false,false,"",false,false,""],"inserthorizontalrule":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["bold",""],["inserthorizontalrule",""],["inserttext","a"]],
+	"foo<hr>a[]bar",
+	[true,true,true],
+	{"bold":[false,false,"",false,false,""],"inserthorizontalrule":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["bold",""],["inserthtml","ab<b>c</b>d"]],
+	"fooab<b>c</b>d{}bar",
+	[true,true],
+	{"bold":[false,false,"",false,false,""],"inserthtml":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["bold",""],["inserthtml","ab<b>c</b>d"],["inserttext","a"]],
+	"fooab<b>c</b>da[]bar",
+	[true,true,true],
+	{"bold":[false,false,"",false,false,""],"inserthtml":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["bold",""],["insertimage","/img/lion.svg"]],
+	"foo<img src=\"/img/lion.svg\">{}bar",
+	[true,true],
+	{"bold":[false,false,"",false,false,""],"insertimage":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["bold",""],["insertimage","/img/lion.svg"],["inserttext","a"]],
+	"foo<img src=\"/img/lion.svg\">a[]bar",
+	[true,true,true],
+	{"bold":[false,false,"",false,false,""],"insertimage":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["bold",""],["insertlinebreak",""]],
+	"foo<br>{}bar",
+	[true,true],
+	{"bold":[false,false,"",false,true,""],"insertlinebreak":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["bold",""],["insertlinebreak",""],["inserttext","a"]],
+	"foo<br><b>a[]</b>bar",
+	[true,true,true],
+	{"bold":[false,false,"",false,true,""],"insertlinebreak":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["bold",""],["insertorderedlist",""]],
 	"<ol><li>foo[]bar</li></ol>",
 	[true,true],
@@ -27685,6 +27745,16 @@
 	[true,true,true],
 	{"bold":[false,false,"",false,true,""],"insertorderedlist":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["bold",""],["insertparagraph",""]],
+	"<p>foo</p><p>{}bar</p>",
+	[true,true],
+	{"bold":[false,false,"",false,true,""],"insertparagraph":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["bold",""],["insertparagraph",""],["inserttext","a"]],
+	"<p>foo</p><p><b>a[]</b>bar</p>",
+	[true,true,true],
+	{"bold":[false,false,"",false,true,""],"insertparagraph":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["bold",""],["insertunorderedlist",""]],
 	"<ul><li>foo[]bar</li></ul>",
 	[true,true],
@@ -27750,6 +27820,16 @@
 	[true,true],
 	{"italic":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["italic",""],["delete",""]],
+	"fo[]bar",
+	[true,true],
+	{"italic":[false,false,"",false,true,""],"delete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["italic",""],["delete",""],["inserttext","a"]],
+	"fo<i>a[]</i>bar",
+	[true,true,true],
+	{"italic":[false,false,"",false,true,""],"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["italic",""],["formatblock","<div>"]],
 	"<div>foo[]bar</div>",
 	[true,true],
@@ -27760,6 +27840,16 @@
 	[true,true,true],
 	{"italic":[false,false,"",false,true,""],"formatblock":[false,false,"",false,false,"div"],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["italic",""],["forwarddelete",""]],
+	"foo[]ar",
+	[true,true],
+	{"italic":[false,false,"",false,true,""],"forwarddelete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["italic",""],["forwarddelete",""],["inserttext","a"]],
+	"foo<i>a[]</i>ar",
+	[true,true,true],
+	{"italic":[false,false,"",false,true,""],"forwarddelete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["italic",""],["indent",""]],
 	"<blockquote>foo[]bar</blockquote>",
 	[true,true],
@@ -27770,6 +27860,46 @@
 	[true,true,true],
 	{"italic":[false,false,"",false,true,""],"indent":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["italic",""],["inserthorizontalrule",""]],
+	"foo<hr>{}bar",
+	[true,true],
+	{"italic":[false,false,"",false,false,""],"inserthorizontalrule":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["italic",""],["inserthorizontalrule",""],["inserttext","a"]],
+	"foo<hr>a[]bar",
+	[true,true,true],
+	{"italic":[false,false,"",false,false,""],"inserthorizontalrule":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["italic",""],["inserthtml","ab<b>c</b>d"]],
+	"fooab<b>c</b>d{}bar",
+	[true,true],
+	{"italic":[false,false,"",false,false,""],"inserthtml":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["italic",""],["inserthtml","ab<b>c</b>d"],["inserttext","a"]],
+	"fooab<b>c</b>da[]bar",
+	[true,true,true],
+	{"italic":[false,false,"",false,false,""],"inserthtml":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["italic",""],["insertimage","/img/lion.svg"]],
+	"foo<img src=\"/img/lion.svg\">{}bar",
+	[true,true],
+	{"italic":[false,false,"",false,false,""],"insertimage":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["italic",""],["insertimage","/img/lion.svg"],["inserttext","a"]],
+	"foo<img src=\"/img/lion.svg\">a[]bar",
+	[true,true,true],
+	{"italic":[false,false,"",false,false,""],"insertimage":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["italic",""],["insertlinebreak",""]],
+	"foo<br>{}bar",
+	[true,true],
+	{"italic":[false,false,"",false,true,""],"insertlinebreak":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["italic",""],["insertlinebreak",""],["inserttext","a"]],
+	"foo<br><i>a[]</i>bar",
+	[true,true,true],
+	{"italic":[false,false,"",false,true,""],"insertlinebreak":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["italic",""],["insertorderedlist",""]],
 	"<ol><li>foo[]bar</li></ol>",
 	[true,true],
@@ -27780,6 +27910,16 @@
 	[true,true,true],
 	{"italic":[false,false,"",false,true,""],"insertorderedlist":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["italic",""],["insertparagraph",""]],
+	"<p>foo</p><p>{}bar</p>",
+	[true,true],
+	{"italic":[false,false,"",false,true,""],"insertparagraph":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["italic",""],["insertparagraph",""],["inserttext","a"]],
+	"<p>foo</p><p><i>a[]</i>bar</p>",
+	[true,true,true],
+	{"italic":[false,false,"",false,true,""],"insertparagraph":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["italic",""],["insertunorderedlist",""]],
 	"<ul><li>foo[]bar</li></ul>",
 	[true,true],
@@ -27845,6 +27985,16 @@
 	[true,true],
 	{"strikethrough":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["strikethrough",""],["delete",""]],
+	"fo[]bar",
+	[true,true],
+	{"strikethrough":[false,false,"",false,true,""],"delete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["strikethrough",""],["delete",""],["inserttext","a"]],
+	"fo<s>a[]</s>bar",
+	[true,true,true],
+	{"strikethrough":[false,false,"",false,true,""],"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["strikethrough",""],["formatblock","<div>"]],
 	"<div>foo[]bar</div>",
 	[true,true],
@@ -27855,6 +28005,16 @@
 	[true,true,true],
 	{"strikethrough":[false,false,"",false,true,""],"formatblock":[false,false,"",false,false,"div"],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["strikethrough",""],["forwarddelete",""]],
+	"foo[]ar",
+	[true,true],
+	{"strikethrough":[false,false,"",false,true,""],"forwarddelete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["strikethrough",""],["forwarddelete",""],["inserttext","a"]],
+	"foo<s>a[]</s>ar",
+	[true,true,true],
+	{"strikethrough":[false,false,"",false,true,""],"forwarddelete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["strikethrough",""],["indent",""]],
 	"<blockquote>foo[]bar</blockquote>",
 	[true,true],
@@ -27865,6 +28025,46 @@
 	[true,true,true],
 	{"strikethrough":[false,false,"",false,true,""],"indent":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["strikethrough",""],["inserthorizontalrule",""]],
+	"foo<hr>{}bar",
+	[true,true],
+	{"strikethrough":[false,false,"",false,false,""],"inserthorizontalrule":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["strikethrough",""],["inserthorizontalrule",""],["inserttext","a"]],
+	"foo<hr>a[]bar",
+	[true,true,true],
+	{"strikethrough":[false,false,"",false,false,""],"inserthorizontalrule":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["strikethrough",""],["inserthtml","ab<b>c</b>d"]],
+	"fooab<b>c</b>d{}bar",
+	[true,true],
+	{"strikethrough":[false,false,"",false,false,""],"inserthtml":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["strikethrough",""],["inserthtml","ab<b>c</b>d"],["inserttext","a"]],
+	"fooab<b>c</b>da[]bar",
+	[true,true,true],
+	{"strikethrough":[false,false,"",false,false,""],"inserthtml":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["strikethrough",""],["insertimage","/img/lion.svg"]],
+	"foo<img src=\"/img/lion.svg\">{}bar",
+	[true,true],
+	{"strikethrough":[false,false,"",false,false,""],"insertimage":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["strikethrough",""],["insertimage","/img/lion.svg"],["inserttext","a"]],
+	"foo<img src=\"/img/lion.svg\">a[]bar",
+	[true,true,true],
+	{"strikethrough":[false,false,"",false,false,""],"insertimage":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["strikethrough",""],["insertlinebreak",""]],
+	"foo<br>{}bar",
+	[true,true],
+	{"strikethrough":[false,false,"",false,true,""],"insertlinebreak":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["strikethrough",""],["insertlinebreak",""],["inserttext","a"]],
+	"foo<br><s>a[]</s>bar",
+	[true,true,true],
+	{"strikethrough":[false,false,"",false,true,""],"insertlinebreak":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["strikethrough",""],["insertorderedlist",""]],
 	"<ol><li>foo[]bar</li></ol>",
 	[true,true],
@@ -27875,6 +28075,16 @@
 	[true,true,true],
 	{"strikethrough":[false,false,"",false,true,""],"insertorderedlist":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["strikethrough",""],["insertparagraph",""]],
+	"<p>foo</p><p>{}bar</p>",
+	[true,true],
+	{"strikethrough":[false,false,"",false,true,""],"insertparagraph":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["strikethrough",""],["insertparagraph",""],["inserttext","a"]],
+	"<p>foo</p><p><s>a[]</s>bar</p>",
+	[true,true,true],
+	{"strikethrough":[false,false,"",false,true,""],"insertparagraph":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["strikethrough",""],["insertunorderedlist",""]],
 	"<ul><li>foo[]bar</li></ul>",
 	[true,true],
@@ -27940,6 +28150,16 @@
 	[true,true],
 	{"subscript":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["subscript",""],["delete",""]],
+	"fo[]bar",
+	[true,true],
+	{"subscript":[false,false,"",false,true,""],"delete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["subscript",""],["delete",""],["inserttext","a"]],
+	"fo<sub><font size=\"3\">a[]</font></sub>bar",
+	[true,true,true],
+	{"subscript":[false,false,"",false,true,""],"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["subscript",""],["formatblock","<div>"]],
 	"<div>foo[]bar</div>",
 	[true,true],
@@ -27950,6 +28170,16 @@
 	[true,true,true],
 	{"subscript":[false,false,"",false,true,""],"formatblock":[false,false,"",false,false,"div"],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["subscript",""],["forwarddelete",""]],
+	"foo[]ar",
+	[true,true],
+	{"subscript":[false,false,"",false,true,""],"forwarddelete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["subscript",""],["forwarddelete",""],["inserttext","a"]],
+	"foo<sub><font size=\"3\">a[]</font></sub>ar",
+	[true,true,true],
+	{"subscript":[false,false,"",false,true,""],"forwarddelete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["subscript",""],["indent",""]],
 	"<blockquote>foo[]bar</blockquote>",
 	[true,true],
@@ -27960,6 +28190,46 @@
 	[true,true,true],
 	{"subscript":[false,false,"",false,true,""],"indent":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["subscript",""],["inserthorizontalrule",""]],
+	"foo<hr>{}bar",
+	[true,true],
+	{"subscript":[false,false,"",false,false,""],"inserthorizontalrule":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["subscript",""],["inserthorizontalrule",""],["inserttext","a"]],
+	"foo<hr>a[]bar",
+	[true,true,true],
+	{"subscript":[false,false,"",false,false,""],"inserthorizontalrule":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["subscript",""],["inserthtml","ab<b>c</b>d"]],
+	"fooab<b>c</b>d{}bar",
+	[true,true],
+	{"subscript":[false,false,"",false,false,""],"inserthtml":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["subscript",""],["inserthtml","ab<b>c</b>d"],["inserttext","a"]],
+	"fooab<b>c</b>da[]bar",
+	[true,true,true],
+	{"subscript":[false,false,"",false,false,""],"inserthtml":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["subscript",""],["insertimage","/img/lion.svg"]],
+	"foo<img src=\"/img/lion.svg\">{}bar",
+	[true,true],
+	{"subscript":[false,false,"",false,false,""],"insertimage":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["subscript",""],["insertimage","/img/lion.svg"],["inserttext","a"]],
+	"foo<img src=\"/img/lion.svg\">a[]bar",
+	[true,true,true],
+	{"subscript":[false,false,"",false,false,""],"insertimage":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["subscript",""],["insertlinebreak",""]],
+	"foo<br>{}bar",
+	[true,true],
+	{"subscript":[false,false,"",false,true,""],"insertlinebreak":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["subscript",""],["insertlinebreak",""],["inserttext","a"]],
+	"foo<br><sub>a[]</sub>bar",
+	[true,true,true],
+	{"subscript":[false,false,"",false,true,""],"insertlinebreak":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["subscript",""],["insertorderedlist",""]],
 	"<ol><li>foo[]bar</li></ol>",
 	[true,true],
@@ -27970,6 +28240,16 @@
 	[true,true,true],
 	{"subscript":[false,false,"",false,true,""],"insertorderedlist":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["subscript",""],["insertparagraph",""]],
+	"<p>foo</p><p>{}bar</p>",
+	[true,true],
+	{"subscript":[false,false,"",false,true,""],"insertparagraph":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["subscript",""],["insertparagraph",""],["inserttext","a"]],
+	"<p>foo</p><p><sub>a[]</sub>bar</p>",
+	[true,true,true],
+	{"subscript":[false,false,"",false,true,""],"insertparagraph":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["subscript",""],["insertunorderedlist",""]],
 	"<ul><li>foo[]bar</li></ul>",
 	[true,true],
@@ -28035,6 +28315,16 @@
 	[true,true],
 	{"superscript":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["superscript",""],["delete",""]],
+	"fo[]bar",
+	[true,true],
+	{"superscript":[false,false,"",false,true,""],"delete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["superscript",""],["delete",""],["inserttext","a"]],
+	"fo<sup><font size=\"3\">a[]</font></sup>bar",
+	[true,true,true],
+	{"superscript":[false,false,"",false,true,""],"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["superscript",""],["formatblock","<div>"]],
 	"<div>foo[]bar</div>",
 	[true,true],
@@ -28045,6 +28335,16 @@
 	[true,true,true],
 	{"superscript":[false,false,"",false,true,""],"formatblock":[false,false,"",false,false,"div"],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["superscript",""],["forwarddelete",""]],
+	"foo[]ar",
+	[true,true],
+	{"superscript":[false,false,"",false,true,""],"forwarddelete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["superscript",""],["forwarddelete",""],["inserttext","a"]],
+	"foo<sup><font size=\"3\">a[]</font></sup>ar",
+	[true,true,true],
+	{"superscript":[false,false,"",false,true,""],"forwarddelete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["superscript",""],["indent",""]],
 	"<blockquote>foo[]bar</blockquote>",
 	[true,true],
@@ -28055,6 +28355,46 @@
 	[true,true,true],
 	{"superscript":[false,false,"",false,true,""],"indent":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["superscript",""],["inserthorizontalrule",""]],
+	"foo<hr>{}bar",
+	[true,true],
+	{"superscript":[false,false,"",false,false,""],"inserthorizontalrule":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["superscript",""],["inserthorizontalrule",""],["inserttext","a"]],
+	"foo<hr>a[]bar",
+	[true,true,true],
+	{"superscript":[false,false,"",false,false,""],"inserthorizontalrule":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["superscript",""],["inserthtml","ab<b>c</b>d"]],
+	"fooab<b>c</b>d{}bar",
+	[true,true],
+	{"superscript":[false,false,"",false,false,""],"inserthtml":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["superscript",""],["inserthtml","ab<b>c</b>d"],["inserttext","a"]],
+	"fooab<b>c</b>da[]bar",
+	[true,true,true],
+	{"superscript":[false,false,"",false,false,""],"inserthtml":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["superscript",""],["insertimage","/img/lion.svg"]],
+	"foo<img src=\"/img/lion.svg\">{}bar",
+	[true,true],
+	{"superscript":[false,false,"",false,false,""],"insertimage":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["superscript",""],["insertimage","/img/lion.svg"],["inserttext","a"]],
+	"foo<img src=\"/img/lion.svg\">a[]bar",
+	[true,true,true],
+	{"superscript":[false,false,"",false,false,""],"insertimage":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["superscript",""],["insertlinebreak",""]],
+	"foo<br>{}bar",
+	[true,true],
+	{"superscript":[false,false,"",false,true,""],"insertlinebreak":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["superscript",""],["insertlinebreak",""],["inserttext","a"]],
+	"foo<br><sup>a[]</sup>bar",
+	[true,true,true],
+	{"superscript":[false,false,"",false,true,""],"insertlinebreak":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["superscript",""],["insertorderedlist",""]],
 	"<ol><li>foo[]bar</li></ol>",
 	[true,true],
@@ -28065,6 +28405,16 @@
 	[true,true,true],
 	{"superscript":[false,false,"",false,true,""],"insertorderedlist":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["superscript",""],["insertparagraph",""]],
+	"<p>foo</p><p>{}bar</p>",
+	[true,true],
+	{"superscript":[false,false,"",false,true,""],"insertparagraph":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["superscript",""],["insertparagraph",""],["inserttext","a"]],
+	"<p>foo</p><p><sup>a[]</sup>bar</p>",
+	[true,true,true],
+	{"superscript":[false,false,"",false,true,""],"insertparagraph":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["superscript",""],["insertunorderedlist",""]],
 	"<ul><li>foo[]bar</li></ul>",
 	[true,true],
@@ -28130,6 +28480,16 @@
 	[true,true],
 	{"underline":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["underline",""],["delete",""]],
+	"fo[]bar",
+	[true,true],
+	{"underline":[false,false,"",false,true,""],"delete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["underline",""],["delete",""],["inserttext","a"]],
+	"fo<u>a[]</u>bar",
+	[true,true,true],
+	{"underline":[false,false,"",false,true,""],"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["underline",""],["formatblock","<div>"]],
 	"<div>foo[]bar</div>",
 	[true,true],
@@ -28140,6 +28500,16 @@
 	[true,true,true],
 	{"underline":[false,false,"",false,true,""],"formatblock":[false,false,"",false,false,"div"],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["underline",""],["forwarddelete",""]],
+	"foo[]ar",
+	[true,true],
+	{"underline":[false,false,"",false,true,""],"forwarddelete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["underline",""],["forwarddelete",""],["inserttext","a"]],
+	"foo<u>a[]</u>ar",
+	[true,true,true],
+	{"underline":[false,false,"",false,true,""],"forwarddelete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["underline",""],["indent",""]],
 	"<blockquote>foo[]bar</blockquote>",
 	[true,true],
@@ -28150,6 +28520,46 @@
 	[true,true,true],
 	{"underline":[false,false,"",false,true,""],"indent":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["underline",""],["inserthorizontalrule",""]],
+	"foo<hr>{}bar",
+	[true,true],
+	{"underline":[false,false,"",false,false,""],"inserthorizontalrule":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["underline",""],["inserthorizontalrule",""],["inserttext","a"]],
+	"foo<hr>a[]bar",
+	[true,true,true],
+	{"underline":[false,false,"",false,false,""],"inserthorizontalrule":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["underline",""],["inserthtml","ab<b>c</b>d"]],
+	"fooab<b>c</b>d{}bar",
+	[true,true],
+	{"underline":[false,false,"",false,false,""],"inserthtml":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["underline",""],["inserthtml","ab<b>c</b>d"],["inserttext","a"]],
+	"fooab<b>c</b>da[]bar",
+	[true,true,true],
+	{"underline":[false,false,"",false,false,""],"inserthtml":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["underline",""],["insertimage","/img/lion.svg"]],
+	"foo<img src=\"/img/lion.svg\">{}bar",
+	[true,true],
+	{"underline":[false,false,"",false,false,""],"insertimage":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["underline",""],["insertimage","/img/lion.svg"],["inserttext","a"]],
+	"foo<img src=\"/img/lion.svg\">a[]bar",
+	[true,true,true],
+	{"underline":[false,false,"",false,false,""],"insertimage":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["underline",""],["insertlinebreak",""]],
+	"foo<br>{}bar",
+	[true,true],
+	{"underline":[false,false,"",false,true,""],"insertlinebreak":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["underline",""],["insertlinebreak",""],["inserttext","a"]],
+	"foo<br><u>a[]</u>bar",
+	[true,true,true],
+	{"underline":[false,false,"",false,true,""],"insertlinebreak":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["underline",""],["insertorderedlist",""]],
 	"<ol><li>foo[]bar</li></ol>",
 	[true,true],
@@ -28160,6 +28570,16 @@
 	[true,true,true],
 	{"underline":[false,false,"",false,true,""],"insertorderedlist":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["underline",""],["insertparagraph",""]],
+	"<p>foo</p><p>{}bar</p>",
+	[true,true],
+	{"underline":[false,false,"",false,true,""],"insertparagraph":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["underline",""],["insertparagraph",""],["inserttext","a"]],
+	"<p>foo</p><p><u>a[]</u>bar</p>",
+	[true,true,true],
+	{"underline":[false,false,"",false,true,""],"insertparagraph":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["underline",""],["insertunorderedlist",""]],
 	"<ul><li>foo[]bar</li></ul>",
 	[true,true],
@@ -28225,6 +28645,16 @@
 	[true,true],
 	{"backcolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["backcolor","#00FFFF"],["delete",""]],
+	"fo[]bar",
+	[true,true],
+	{"backcolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"delete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["backcolor","#00FFFF"],["delete",""],["inserttext","a"]],
+	"fo<span style=\"background-color:rgb(0, 255, 255)\">a[]</span>bar",
+	[true,true,true],
+	{"backcolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["backcolor","#00FFFF"],["formatblock","<div>"]],
 	"<div>foo[]bar</div>",
 	[true,true],
@@ -28235,6 +28665,16 @@
 	[true,true,true],
 	{"backcolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"formatblock":[false,false,"",false,false,"div"],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["backcolor","#00FFFF"],["forwarddelete",""]],
+	"foo[]ar",
+	[true,true],
+	{"backcolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"forwarddelete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["backcolor","#00FFFF"],["forwarddelete",""],["inserttext","a"]],
+	"foo<span style=\"background-color:rgb(0, 255, 255)\">a[]</span>ar",
+	[true,true,true],
+	{"backcolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"forwarddelete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["backcolor","#00FFFF"],["indent",""]],
 	"<blockquote>foo[]bar</blockquote>",
 	[true,true],
@@ -28245,6 +28685,46 @@
 	[true,true,true],
 	{"backcolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"indent":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["backcolor","#00FFFF"],["inserthorizontalrule",""]],
+	"foo<hr>{}bar",
+	[true,true],
+	{"backcolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgba(0, 0, 0, 0)"],"inserthorizontalrule":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["backcolor","#00FFFF"],["inserthorizontalrule",""],["inserttext","a"]],
+	"foo<hr>a[]bar",
+	[true,true,true],
+	{"backcolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgba(0, 0, 0, 0)"],"inserthorizontalrule":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["backcolor","#00FFFF"],["inserthtml","ab<b>c</b>d"]],
+	"fooab<b>c</b>d{}bar",
+	[true,true],
+	{"backcolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgba(0, 0, 0, 0)"],"inserthtml":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["backcolor","#00FFFF"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]],
+	"fooab<b>c</b>da[]bar",
+	[true,true,true],
+	{"backcolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgba(0, 0, 0, 0)"],"inserthtml":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["backcolor","#00FFFF"],["insertimage","/img/lion.svg"]],
+	"foo<img src=\"/img/lion.svg\">{}bar",
+	[true,true],
+	{"backcolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgba(0, 0, 0, 0)"],"insertimage":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["backcolor","#00FFFF"],["insertimage","/img/lion.svg"],["inserttext","a"]],
+	"foo<img src=\"/img/lion.svg\">a[]bar",
+	[true,true,true],
+	{"backcolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgba(0, 0, 0, 0)"],"insertimage":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["backcolor","#00FFFF"],["insertlinebreak",""]],
+	"foo<br>{}bar",
+	[true,true],
+	{"backcolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"insertlinebreak":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["backcolor","#00FFFF"],["insertlinebreak",""],["inserttext","a"]],
+	"foo<br><span style=\"background-color:rgb(0, 255, 255)\">a[]</span>bar",
+	[true,true,true],
+	{"backcolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"insertlinebreak":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["backcolor","#00FFFF"],["insertorderedlist",""]],
 	"<ol><li>foo[]bar</li></ol>",
 	[true,true],
@@ -28255,6 +28735,16 @@
 	[true,true,true],
 	{"backcolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"insertorderedlist":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["backcolor","#00FFFF"],["insertparagraph",""]],
+	"<p>foo</p><p>{}bar</p>",
+	[true,true],
+	{"backcolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"insertparagraph":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["backcolor","#00FFFF"],["insertparagraph",""],["inserttext","a"]],
+	"<p>foo</p><p><span style=\"background-color:rgb(0, 255, 255)\">a[]</span>bar</p>",
+	[true,true,true],
+	{"backcolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"insertparagraph":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["backcolor","#00FFFF"],["insertunorderedlist",""]],
 	"<ul><li>foo[]bar</li></ul>",
 	[true,true],
@@ -28320,6 +28810,16 @@
 	[true,true],
 	{"createlink":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["createlink","http://www.google.com/"],["delete",""]],
+	"fo[]bar",
+	[true,true],
+	{"createlink":[false,false,"",false,false,""],"delete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["createlink","http://www.google.com/"],["delete",""],["inserttext","a"]],
+	"fo<a href=\"http://www.google.com/\"><font color=\"#000000\">a[]</font></a>bar",
+	[true,true,true],
+	{"createlink":[false,false,"",false,false,""],"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["createlink","http://www.google.com/"],["formatblock","<div>"]],
 	"<div>foo[]bar</div>",
 	[true,true],
@@ -28330,6 +28830,16 @@
 	[true,true,true],
 	{"createlink":[false,false,"",false,false,""],"formatblock":[false,false,"",false,false,"div"],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["createlink","http://www.google.com/"],["forwarddelete",""]],
+	"foo[]ar",
+	[true,true],
+	{"createlink":[false,false,"",false,false,""],"forwarddelete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["createlink","http://www.google.com/"],["forwarddelete",""],["inserttext","a"]],
+	"foo<a href=\"http://www.google.com/\"><font color=\"#000000\">a[]</font></a>ar",
+	[true,true,true],
+	{"createlink":[false,false,"",false,false,""],"forwarddelete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["createlink","http://www.google.com/"],["indent",""]],
 	"<blockquote>foo[]bar</blockquote>",
 	[true,true],
@@ -28340,6 +28850,46 @@
 	[true,true,true],
 	{"createlink":[false,false,"",false,false,""],"indent":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["createlink","http://www.google.com/"],["inserthorizontalrule",""]],
+	"foo<hr>{}bar",
+	[true,true],
+	{"createlink":[false,false,"",false,false,""],"inserthorizontalrule":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["createlink","http://www.google.com/"],["inserthorizontalrule",""],["inserttext","a"]],
+	"foo<hr>a[]bar",
+	[true,true,true],
+	{"createlink":[false,false,"",false,false,""],"inserthorizontalrule":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["createlink","http://www.google.com/"],["inserthtml","ab<b>c</b>d"]],
+	"fooab<b>c</b>d{}bar",
+	[true,true],
+	{"createlink":[false,false,"",false,false,""],"inserthtml":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["createlink","http://www.google.com/"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]],
+	"fooab<b>c</b>da[]bar",
+	[true,true,true],
+	{"createlink":[false,false,"",false,false,""],"inserthtml":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["createlink","http://www.google.com/"],["insertimage","/img/lion.svg"]],
+	"foo<img src=\"/img/lion.svg\">{}bar",
+	[true,true],
+	{"createlink":[false,false,"",false,false,""],"insertimage":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["createlink","http://www.google.com/"],["insertimage","/img/lion.svg"],["inserttext","a"]],
+	"foo<img src=\"/img/lion.svg\">a[]bar",
+	[true,true,true],
+	{"createlink":[false,false,"",false,false,""],"insertimage":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["createlink","http://www.google.com/"],["insertlinebreak",""]],
+	"foo<br>{}bar",
+	[true,true],
+	{"createlink":[false,false,"",false,false,""],"insertlinebreak":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["createlink","http://www.google.com/"],["insertlinebreak",""],["inserttext","a"]],
+	"foo<br><a href=\"http://www.google.com/\">a[]</a>bar",
+	[true,true,true],
+	{"createlink":[false,false,"",false,false,""],"insertlinebreak":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["createlink","http://www.google.com/"],["insertorderedlist",""]],
 	"<ol><li>foo[]bar</li></ol>",
 	[true,true],
@@ -28350,6 +28900,16 @@
 	[true,true,true],
 	{"createlink":[false,false,"",false,false,""],"insertorderedlist":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["createlink","http://www.google.com/"],["insertparagraph",""]],
+	"<p>foo</p><p>{}bar</p>",
+	[true,true],
+	{"createlink":[false,false,"",false,false,""],"insertparagraph":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["createlink","http://www.google.com/"],["insertparagraph",""],["inserttext","a"]],
+	"<p>foo</p><p><a href=\"http://www.google.com/\">a[]</a>bar</p>",
+	[true,true,true],
+	{"createlink":[false,false,"",false,false,""],"insertparagraph":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["createlink","http://www.google.com/"],["insertunorderedlist",""]],
 	"<ul><li>foo[]bar</li></ul>",
 	[true,true],
@@ -28415,6 +28975,16 @@
 	[true,true],
 	{"fontname":[false,false,"serif",false,false,"sans-serif"],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["fontname","sans-serif"],["delete",""]],
+	"fo[]bar",
+	[true,true],
+	{"fontname":[false,false,"serif",false,false,"sans-serif"],"delete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["fontname","sans-serif"],["delete",""],["inserttext","a"]],
+	"fo<font face=\"sans-serif\">a[]</font>bar",
+	[true,true,true],
+	{"fontname":[false,false,"serif",false,false,"sans-serif"],"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["fontname","sans-serif"],["formatblock","<div>"]],
 	"<div>foo[]bar</div>",
 	[true,true],
@@ -28425,6 +28995,16 @@
 	[true,true,true],
 	{"fontname":[false,false,"serif",false,false,"sans-serif"],"formatblock":[false,false,"",false,false,"div"],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["fontname","sans-serif"],["forwarddelete",""]],
+	"foo[]ar",
+	[true,true],
+	{"fontname":[false,false,"serif",false,false,"sans-serif"],"forwarddelete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["fontname","sans-serif"],["forwarddelete",""],["inserttext","a"]],
+	"foo<font face=\"sans-serif\">a[]</font>ar",
+	[true,true,true],
+	{"fontname":[false,false,"serif",false,false,"sans-serif"],"forwarddelete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["fontname","sans-serif"],["indent",""]],
 	"<blockquote>foo[]bar</blockquote>",
 	[true,true],
@@ -28435,6 +29015,46 @@
 	[true,true,true],
 	{"fontname":[false,false,"serif",false,false,"sans-serif"],"indent":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["fontname","sans-serif"],["inserthorizontalrule",""]],
+	"foo<hr>{}bar",
+	[true,true],
+	{"fontname":[false,false,"serif",false,false,"serif"],"inserthorizontalrule":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["fontname","sans-serif"],["inserthorizontalrule",""],["inserttext","a"]],
+	"foo<hr>a[]bar",
+	[true,true,true],
+	{"fontname":[false,false,"serif",false,false,"serif"],"inserthorizontalrule":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["fontname","sans-serif"],["inserthtml","ab<b>c</b>d"]],
+	"fooab<b>c</b>d{}bar",
+	[true,true],
+	{"fontname":[false,false,"serif",false,false,"serif"],"inserthtml":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["fontname","sans-serif"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]],
+	"fooab<b>c</b>da[]bar",
+	[true,true,true],
+	{"fontname":[false,false,"serif",false,false,"serif"],"inserthtml":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["fontname","sans-serif"],["insertimage","/img/lion.svg"]],
+	"foo<img src=\"/img/lion.svg\">{}bar",
+	[true,true],
+	{"fontname":[false,false,"serif",false,false,"serif"],"insertimage":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["fontname","sans-serif"],["insertimage","/img/lion.svg"],["inserttext","a"]],
+	"foo<img src=\"/img/lion.svg\">a[]bar",
+	[true,true,true],
+	{"fontname":[false,false,"serif",false,false,"serif"],"insertimage":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["fontname","sans-serif"],["insertlinebreak",""]],
+	"foo<br>{}bar",
+	[true,true],
+	{"fontname":[false,false,"serif",false,false,"sans-serif"],"insertlinebreak":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["fontname","sans-serif"],["insertlinebreak",""],["inserttext","a"]],
+	"foo<br><font face=\"sans-serif\">a[]</font>bar",
+	[true,true,true],
+	{"fontname":[false,false,"serif",false,false,"sans-serif"],"insertlinebreak":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["fontname","sans-serif"],["insertorderedlist",""]],
 	"<ol><li>foo[]bar</li></ol>",
 	[true,true],
@@ -28445,6 +29065,16 @@
 	[true,true,true],
 	{"fontname":[false,false,"serif",false,false,"sans-serif"],"insertorderedlist":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["fontname","sans-serif"],["insertparagraph",""]],
+	"<p>foo</p><p>{}bar</p>",
+	[true,true],
+	{"fontname":[false,false,"serif",false,false,"sans-serif"],"insertparagraph":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["fontname","sans-serif"],["insertparagraph",""],["inserttext","a"]],
+	"<p>foo</p><p><font face=\"sans-serif\">a[]</font>bar</p>",
+	[true,true,true],
+	{"fontname":[false,false,"serif",false,false,"sans-serif"],"insertparagraph":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["fontname","sans-serif"],["insertunorderedlist",""]],
 	"<ul><li>foo[]bar</li></ul>",
 	[true,true],
@@ -28510,6 +29140,16 @@
 	[true,true],
 	{"fontsize":[false,false,"3",false,false,"4"],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["fontsize","4"],["delete",""]],
+	"fo[]bar",
+	[true,true],
+	{"fontsize":[false,false,"3",false,false,"4"],"delete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["fontsize","4"],["delete",""],["inserttext","a"]],
+	"fo<font size=\"4\">a[]</font>bar",
+	[true,true,true],
+	{"fontsize":[false,false,"3",false,false,"4"],"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["fontsize","4"],["formatblock","<div>"]],
 	"<div>foo[]bar</div>",
 	[true,true],
@@ -28520,6 +29160,16 @@
 	[true,true,true],
 	{"fontsize":[false,false,"3",false,false,"4"],"formatblock":[false,false,"",false,false,"div"],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["fontsize","4"],["forwarddelete",""]],
+	"foo[]ar",
+	[true,true],
+	{"fontsize":[false,false,"3",false,false,"4"],"forwarddelete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["fontsize","4"],["forwarddelete",""],["inserttext","a"]],
+	"foo<font size=\"4\">a[]</font>ar",
+	[true,true,true],
+	{"fontsize":[false,false,"3",false,false,"4"],"forwarddelete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["fontsize","4"],["indent",""]],
 	"<blockquote>foo[]bar</blockquote>",
 	[true,true],
@@ -28530,6 +29180,46 @@
 	[true,true,true],
 	{"fontsize":[false,false,"3",false,false,"4"],"indent":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["fontsize","4"],["inserthorizontalrule",""]],
+	"foo<hr>{}bar",
+	[true,true],
+	{"fontsize":[false,false,"3",false,false,"3"],"inserthorizontalrule":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["fontsize","4"],["inserthorizontalrule",""],["inserttext","a"]],
+	"foo<hr>a[]bar",
+	[true,true,true],
+	{"fontsize":[false,false,"3",false,false,"3"],"inserthorizontalrule":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["fontsize","4"],["inserthtml","ab<b>c</b>d"]],
+	"fooab<b>c</b>d{}bar",
+	[true,true],
+	{"fontsize":[false,false,"3",false,false,"3"],"inserthtml":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["fontsize","4"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]],
+	"fooab<b>c</b>da[]bar",
+	[true,true,true],
+	{"fontsize":[false,false,"3",false,false,"3"],"inserthtml":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["fontsize","4"],["insertimage","/img/lion.svg"]],
+	"foo<img src=\"/img/lion.svg\">{}bar",
+	[true,true],
+	{"fontsize":[false,false,"3",false,false,"3"],"insertimage":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["fontsize","4"],["insertimage","/img/lion.svg"],["inserttext","a"]],
+	"foo<img src=\"/img/lion.svg\">a[]bar",
+	[true,true,true],
+	{"fontsize":[false,false,"3",false,false,"3"],"insertimage":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["fontsize","4"],["insertlinebreak",""]],
+	"foo<br>{}bar",
+	[true,true],
+	{"fontsize":[false,false,"3",false,false,"4"],"insertlinebreak":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["fontsize","4"],["insertlinebreak",""],["inserttext","a"]],
+	"foo<br><font size=\"4\">a[]</font>bar",
+	[true,true,true],
+	{"fontsize":[false,false,"3",false,false,"4"],"insertlinebreak":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["fontsize","4"],["insertorderedlist",""]],
 	"<ol><li>foo[]bar</li></ol>",
 	[true,true],
@@ -28540,6 +29230,16 @@
 	[true,true,true],
 	{"fontsize":[false,false,"3",false,false,"4"],"insertorderedlist":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["fontsize","4"],["insertparagraph",""]],
+	"<p>foo</p><p>{}bar</p>",
+	[true,true],
+	{"fontsize":[false,false,"3",false,false,"4"],"insertparagraph":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["fontsize","4"],["insertparagraph",""],["inserttext","a"]],
+	"<p>foo</p><p><font size=\"4\">a[]</font>bar</p>",
+	[true,true,true],
+	{"fontsize":[false,false,"3",false,false,"4"],"insertparagraph":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["fontsize","4"],["insertunorderedlist",""]],
 	"<ul><li>foo[]bar</li></ul>",
 	[true,true],
@@ -28605,6 +29305,16 @@
 	[true,true],
 	{"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 255)"],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["forecolor","#0000FF"],["delete",""]],
+	"fo[]bar",
+	[true,true],
+	{"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 255)"],"delete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["forecolor","#0000FF"],["delete",""],["inserttext","a"]],
+	"fo<font color=\"#0000ff\">a[]</font>bar",
+	[true,true,true],
+	{"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 255)"],"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["forecolor","#0000FF"],["formatblock","<div>"]],
 	"<div>foo[]bar</div>",
 	[true,true],
@@ -28615,6 +29325,16 @@
 	[true,true,true],
 	{"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 255)"],"formatblock":[false,false,"",false,false,"div"],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["forecolor","#0000FF"],["forwarddelete",""]],
+	"foo[]ar",
+	[true,true],
+	{"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 255)"],"forwarddelete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["forecolor","#0000FF"],["forwarddelete",""],["inserttext","a"]],
+	"foo<font color=\"#0000ff\">a[]</font>ar",
+	[true,true,true],
+	{"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 255)"],"forwarddelete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["forecolor","#0000FF"],["indent",""]],
 	"<blockquote>foo[]bar</blockquote>",
 	[true,true],
@@ -28625,6 +29345,46 @@
 	[true,true,true],
 	{"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 255)"],"indent":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["forecolor","#0000FF"],["inserthorizontalrule",""]],
+	"foo<hr>{}bar",
+	[true,true],
+	{"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 0)"],"inserthorizontalrule":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["forecolor","#0000FF"],["inserthorizontalrule",""],["inserttext","a"]],
+	"foo<hr>a[]bar",
+	[true,true,true],
+	{"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 0)"],"inserthorizontalrule":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["forecolor","#0000FF"],["inserthtml","ab<b>c</b>d"]],
+	"fooab<b>c</b>d{}bar",
+	[true,true],
+	{"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 0)"],"inserthtml":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["forecolor","#0000FF"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]],
+	"fooab<b>c</b>da[]bar",
+	[true,true,true],
+	{"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 0)"],"inserthtml":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["forecolor","#0000FF"],["insertimage","/img/lion.svg"]],
+	"foo<img src=\"/img/lion.svg\">{}bar",
+	[true,true],
+	{"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 0)"],"insertimage":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["forecolor","#0000FF"],["insertimage","/img/lion.svg"],["inserttext","a"]],
+	"foo<img src=\"/img/lion.svg\">a[]bar",
+	[true,true,true],
+	{"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 0)"],"insertimage":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["forecolor","#0000FF"],["insertlinebreak",""]],
+	"foo<br>{}bar",
+	[true,true],
+	{"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 255)"],"insertlinebreak":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["forecolor","#0000FF"],["insertlinebreak",""],["inserttext","a"]],
+	"foo<br><font color=\"#0000ff\">a[]</font>bar",
+	[true,true,true],
+	{"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 255)"],"insertlinebreak":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["forecolor","#0000FF"],["insertorderedlist",""]],
 	"<ol><li>foo[]bar</li></ol>",
 	[true,true],
@@ -28635,6 +29395,16 @@
 	[true,true,true],
 	{"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 255)"],"insertorderedlist":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["forecolor","#0000FF"],["insertparagraph",""]],
+	"<p>foo</p><p>{}bar</p>",
+	[true,true],
+	{"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 255)"],"insertparagraph":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["forecolor","#0000FF"],["insertparagraph",""],["inserttext","a"]],
+	"<p>foo</p><p><font color=\"#0000ff\">a[]</font>bar</p>",
+	[true,true,true],
+	{"forecolor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 255)"],"insertparagraph":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["forecolor","#0000FF"],["insertunorderedlist",""]],
 	"<ul><li>foo[]bar</li></ul>",
 	[true,true],
@@ -28700,6 +29470,16 @@
 	[true,true],
 	{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["hilitecolor","#00FFFF"],["delete",""]],
+	"fo[]bar",
+	[true,true],
+	{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"delete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["hilitecolor","#00FFFF"],["delete",""],["inserttext","a"]],
+	"fo<span style=\"background-color:rgb(0, 255, 255)\">a[]</span>bar",
+	[true,true,true],
+	{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["hilitecolor","#00FFFF"],["formatblock","<div>"]],
 	"<div>foo[]bar</div>",
 	[true,true],
@@ -28710,6 +29490,16 @@
 	[true,true,true],
 	{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"formatblock":[false,false,"",false,false,"div"],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["hilitecolor","#00FFFF"],["forwarddelete",""]],
+	"foo[]ar",
+	[true,true],
+	{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"forwarddelete":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["hilitecolor","#00FFFF"],["forwarddelete",""],["inserttext","a"]],
+	"foo<span style=\"background-color:rgb(0, 255, 255)\">a[]</span>ar",
+	[true,true,true],
+	{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"forwarddelete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["hilitecolor","#00FFFF"],["indent",""]],
 	"<blockquote>foo[]bar</blockquote>",
 	[true,true],
@@ -28720,6 +29510,46 @@
 	[true,true,true],
 	{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"indent":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["hilitecolor","#00FFFF"],["inserthorizontalrule",""]],
+	"foo<hr>{}bar",
+	[true,true],
+	{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgba(0, 0, 0, 0)"],"inserthorizontalrule":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["hilitecolor","#00FFFF"],["inserthorizontalrule",""],["inserttext","a"]],
+	"foo<hr>a[]bar",
+	[true,true,true],
+	{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgba(0, 0, 0, 0)"],"inserthorizontalrule":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["hilitecolor","#00FFFF"],["inserthtml","ab<b>c</b>d"]],
+	"fooab<b>c</b>d{}bar",
+	[true,true],
+	{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgba(0, 0, 0, 0)"],"inserthtml":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["hilitecolor","#00FFFF"],["inserthtml","ab<b>c</b>d"],["inserttext","a"]],
+	"fooab<b>c</b>da[]bar",
+	[true,true,true],
+	{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgba(0, 0, 0, 0)"],"inserthtml":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["hilitecolor","#00FFFF"],["insertimage","/img/lion.svg"]],
+	"foo<img src=\"/img/lion.svg\">{}bar",
+	[true,true],
+	{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgba(0, 0, 0, 0)"],"insertimage":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["hilitecolor","#00FFFF"],["insertimage","/img/lion.svg"],["inserttext","a"]],
+	"foo<img src=\"/img/lion.svg\">a[]bar",
+	[true,true,true],
+	{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgba(0, 0, 0, 0)"],"insertimage":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["hilitecolor","#00FFFF"],["insertlinebreak",""]],
+	"foo<br>{}bar",
+	[true,true],
+	{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"insertlinebreak":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["hilitecolor","#00FFFF"],["insertlinebreak",""],["inserttext","a"]],
+	"foo<br><span style=\"background-color:rgb(0, 255, 255)\">a[]</span>bar",
+	[true,true,true],
+	{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"insertlinebreak":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["hilitecolor","#00FFFF"],["insertorderedlist",""]],
 	"<ol><li>foo[]bar</li></ol>",
 	[true,true],
@@ -28730,6 +29560,16 @@
 	[true,true,true],
 	{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"insertorderedlist":[false,false,"",false,true,""],"inserttext":[false,false,"",false,false,""]}],
 ["foo[]bar",
+	[["hilitecolor","#00FFFF"],["insertparagraph",""]],
+	"<p>foo</p><p>{}bar</p>",
+	[true,true],
+	{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"insertparagraph":[false,false,"",false,false,""]}],
+["foo[]bar",
+	[["hilitecolor","#00FFFF"],["insertparagraph",""],["inserttext","a"]],
+	"<p>foo</p><p><span style=\"background-color:rgb(0, 255, 255)\">a[]</span>bar</p>",
+	[true,true,true],
+	{"hilitecolor":[false,false,"rgba(0, 0, 0, 0)",false,false,"rgb(0, 255, 255)"],"insertparagraph":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}],
+["foo[]bar",
 	[["hilitecolor","#00FFFF"],["insertunorderedlist",""]],
 	"<ul><li>foo[]bar</li></ul>",
 	[true,true],
--- a/editing.html	Sun May 06 04:36:37 2012 -0600
+++ b/editing.html	Thu May 17 05:03:55 2012 -0600
@@ -68,7 +68,7 @@
 <div class=head id=head>
 <p><a href=http://www.w3.org/><img alt=W3C height=48 src=http://www.w3.org/Icons/w3c_home width=72></a></p>
 <h1>HTML Editing APIs</h1>
-<h2 class="no-num no-toc" id=work-in-progress-&mdash;-last-update-6-may-2012>Work in Progress &mdash; Last Update 6 May 2012</h2>
+<h2 class="no-num no-toc" id=work-in-progress-&mdash;-last-update-17-may-2012>Work in Progress &mdash; Last Update 17 May 2012</h2>
 <dl>
  <dt>Editor
  <dd>Aryeh Gregor &lt;<a href=mailto:[email protected]>[email protected]</a>&gt;
@@ -660,8 +660,6 @@
   whatnot in the middle of a surrogate pair?  This could make the content not
   serialize through a character encoding change.
 
-  <li>Probably need to record and restore overrides in some more places.
-
   <li>Some more thought needs to go into what happens to the selection when you
   mutate the DOM.  In some cases the results are pretty arbitrary.  It might
   make sense to do some kind of normalization.
@@ -2014,9 +2012,6 @@
 overrides, and <a href=#the-inserttext-command><code title="">insertText</code></a> checks for them and applies them to the
 newly-inserted text.  Other commands like <a href=#the-delete-command><code title="">delete</code></a> also interact with overrides.
 
-<p class=XXX>Figure out exactly what commands need to preserve state/value
-overrides.
-
 <p class=comments>See
 <a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=16207">bug 16207</a>.
 
@@ -4747,6 +4742,16 @@
   <li>Return <var title="">node</var>.
 </ol>
 
+<p class=comments><a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=14062">Bug 14062</a>.  See
+also <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=590640">Mozilla bug
+590640</a>, specifically comments 48 and on.
+
+<p>If a <a href=#command>command</a> <dfn id=preserves-overrides>preserves overrides</dfn>, then before taking
+its <a href=#action>action</a>, the user agent must <a href=#record-current-overrides>record current
+overrides</a>.  After taking the <a href=#action>action</a>, if the <a href=#active-range>active
+range</a> is <code class=external data-anolis-spec=dom title=dom-Range-collapsed><a href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-range-collapsed>collapsed</a></code>, it must <a href=#restore-states-and-values>restore states and
+values</a> from the recorded list.
+
 
 <h3 id=assorted-block-formatting-command-algorithms>Assorted block formatting command algorithms</h3>
 
@@ -7262,12 +7267,6 @@
 or "ul"):
 
 <ol>
-  <li>
-  <p class=comments><a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=14062">Bug 14062</a>.
-
-  <p><a href=#record-current-overrides>Record current overrides</a>, and let <var title="">overrides</var> be the
-  result.
-
   <li>Let <var title="">mode</var> be "disable" if the <a href="#selection's-list-state">selection's list
   state</a> is <var title="">tag name</var>, and "enable" otherwise.
 
@@ -7521,8 +7520,6 @@
 
     <li><a href=#fix-disallowed-ancestors>Fix disallowed ancestors</a> of the previous step's result.
   </ol>
-
-  <li><a href=#restore-states-and-values>Restore states and values</a> from <var title="">overrides</var>.
 </ol>
 
 
@@ -7562,12 +7559,6 @@
 "center", "justify", "left", or "right"):
 
 <ol>
-  <li>
-  <p class=comments><a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=14062">Bug 14062</a>.
-
-  <p><a href=#record-current-overrides>Record current overrides</a>, and let <var title="">overrides</var> be the
-  result.
-
   <li><a href=#block-extend>Block-extend</a> the <a href=#active-range>active range</a>, and let <var title="">new
   range</var> be the result.
 
@@ -7655,8 +7646,6 @@
     on the <a class=external data-anolis-spec=dom href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#context-object>context object</a>, then set its CSS property "text-align" to
     <var title="">alignment</var> and return the result.
   </ol>
-
-  <li><a href=#restore-states-and-values>Restore states and values</a> from <var title="">overrides</var>.
 </ol>
 
 
@@ -7823,6 +7812,8 @@
 </ul>
 </div>
 
+<p><a href=#preserves-overrides>Preserves overrides</a>
+
 <p class=comments>For all the deletions here, Firefox 7.0a2 will remove wrapper
 elements like &lt;b&gt; only if they're selected, like {&lt;b&gt;foo&lt;/b&gt;}.  IE9,
 Chrome 14 dev, and Opera 11.50 will all remove them even if only their contents
@@ -8256,6 +8247,8 @@
 other browsers don't do it.
 </div>
 
+<p><a href=#preserves-overrides>Preserves overrides</a>
+
 <p><a href=#action>Action</a>:
 
 <ol>
@@ -8306,12 +8299,6 @@
   <p>If <var title="">value</var> is not a <a href=#formattable-block-name>formattable block name</a>, abort
   these steps and do nothing.
 
-  <li>
-  <p class=comments><a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=14062">Bug 14062</a>.
-
-  <p><a href=#record-current-overrides>Record current overrides</a>, and let <var title="">overrides</var> be the
-  result.
-
   <li><a href=#block-extend>Block-extend</a> the <a href=#active-range>active range</a>, and let <var title="">new
   range</var> be the result.
 
@@ -8448,8 +8435,6 @@
     <a class=external data-anolis-spec=dom href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#context-object>context object</a>.  Then <a href=#fix-disallowed-ancestors>fix disallowed ancestors</a> of the
     result.
   </ol>
-
-  <li><a href=#restore-states-and-values>Restore states and values</a> from <var title="">overrides</var>.
 </ol>
 
 <p class=comments>Firefox 6.0a2 throws, Chrome 14 dev always returns false,
@@ -8568,6 +8553,8 @@
 diacritics, we delete the diacritics too.  (Backspacing just deletes the last
 diacritic, so you have to backspace several times to remove the whole cluster.)
 
+<p><a href=#preserves-overrides>Preserves overrides</a>
+
 <p class=comments>Copy-pasted from delete, see there for comments.
 
 <p><a href=#action>Action</a>:
@@ -8828,15 +8815,11 @@
 of ways.
 </div>
 
+<p><a href=#preserves-overrides>Preserves overrides</a>
+
 <p><a href=#action>Action</a>:
 
 <ol>
-  <li>
-  <p class=comments><a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=14062">Bug 14062</a>.
-
-  <p><a href=#record-current-overrides>Record current overrides</a>, and let <var title="">overrides</var> be the
-  result.
-
   <li>Let <var title="">items</var> be a list of all <code class=external data-anolis-spec=html title="the li element"><a href=http://www.whatwg.org/specs/web-apps/current-work/multipage/grouping-content.html#the-li-element>li</a></code>s that are
   <a class=external data-anolis-spec=dom href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-inclusive-ancestor title=concept-tree-inclusive-ancestor>inclusive ancestors</a> of the <a href=#active-range>active range</a>'s <a class=external data-anolis-spec=dom href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-range-start title=concept-range-start>start</a>
   and/or <a class=external data-anolis-spec=dom href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-range-end title=concept-range-end>end</a> <a class=external data-anolis-spec=dom href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a>.
@@ -8891,8 +8874,6 @@
 
     <li><a href=#indent>Indent</a> <var title="">sublist</var>.
   </ol>
-
-  <li><a href=#restore-states-and-values>Restore states and values</a> from <var title="">overrides</var>.
 </ol>
 
 
@@ -9198,6 +9179,8 @@
 <p>Opera 11.11 isn't heedful of &lt;xmp&gt;, and treats &lt;pre&gt; somewhat oddly.
 </div>
 
+<p><a href=#preserves-overrides>Preserves overrides</a>
+
 <p><a href=#action>Action</a>:
 
 <ol>
@@ -9257,6 +9240,8 @@
 
 <h3 id=the-insertorderedlist-command><dfn>The <code title="">insertOrderedList</code> command</dfn></h3>
 
+<p><a href=#preserves-overrides>Preserves overrides</a>
+
 <p><a href=#action>Action</a>: <a href=#toggle-lists>Toggle lists</a> with <var title="">tag name</var>
 "ol".
 
@@ -9311,6 +9296,8 @@
 </ul>
 </div>
 
+<p><a href=#preserves-overrides>Preserves overrides</a>
+
 <div class=comments>
 <p>There are three major behaviors here.  Firefox 5.0a2 behaves identically to
 execCommand("formatBlock", false, "p"), which is not really useful.  IE9
@@ -9879,6 +9866,8 @@
 
 <h3 id=the-insertunorderedlist-command><dfn>The <code title="">insertUnorderedList</code> command</dfn></h3>
 
+<p><a href=#preserves-overrides>Preserves overrides</a>
+
 <p class=comments>See comments for <a href=#the-insertorderedlist-command>insertOrderedList</a>.
 
 <p><a href=#action>Action</a>: <a href=#toggle-lists>Toggle lists</a> with <var title="">tag name</var>
@@ -9893,6 +9882,8 @@
 
 <h3 id=the-justifycenter-command><dfn>The <code title="">justifyCenter</code> command</dfn></h3>
 
+<p><a href=#preserves-overrides>Preserves overrides</a>
+
 <p><a href=#action>Action</a>: <a href=#justify-the-selection>Justify the selection</a> with
 <var title="">alignment</var> "center".
 
@@ -9963,6 +9954,8 @@
 
 <h3 id=the-justifyfull-command><dfn>The <code title="">justifyFull</code> command</dfn></h3>
 
+<p><a href=#preserves-overrides>Preserves overrides</a>
+
 <p><a href=#action>Action</a>: <a href=#justify-the-selection>Justify the selection</a> with
 <var title="">alignment</var> "justify".
 
@@ -9989,6 +9982,8 @@
 
 <h3 id=the-justifyleft-command><dfn>The <code title="">justifyLeft</code> command</dfn></h3>
 
+<p><a href=#preserves-overrides>Preserves overrides</a>
+
 <p><a href=#action>Action</a>: <a href=#justify-the-selection>Justify the selection</a> with
 <var title="">alignment</var> "left".
 
@@ -10015,6 +10010,8 @@
 
 <h3 id=the-justifyright-command><dfn>The <code title="">justifyRight</code> command</dfn></h3>
 
+<p><a href=#preserves-overrides>Preserves overrides</a>
+
 <p><a href=#action>Action</a>: <a href=#justify-the-selection>Justify the selection</a> with
 <var title="">alignment</var> "right".
 
@@ -10041,15 +10038,11 @@
 
 <h3 id=the-outdent-command><dfn>The <code title="">outdent</code> command</dfn></h3>
 
+<p><a href=#preserves-overrides>Preserves overrides</a>
+
 <p><a href=#action>Action</a>:
 
 <ol>
-  <li>
-  <p class=comments><a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=14062">Bug 14062</a>.
-
-  <p><a href=#record-current-overrides>Record current overrides</a>, and let <var title="">overrides</var> be the
-  result.
-
   <li>Let <var title="">items</var> be a list of all <code class=external data-anolis-spec=html title="the li element"><a href=http://www.whatwg.org/specs/web-apps/current-work/multipage/grouping-content.html#the-li-element>li</a></code>s that are
   <a class=external data-anolis-spec=dom href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-tree-inclusive-ancestor title=concept-tree-inclusive-ancestor>inclusive ancestors</a> of the <a href=#active-range>active range</a>'s <a class=external data-anolis-spec=dom href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-range-start title=concept-range-start>start</a>
   and/or <a class=external data-anolis-spec=dom href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-range-end title=concept-range-end>end</a> <a class=external data-anolis-spec=dom href=http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#concept-node title=concept-node>node</a>.
@@ -10125,8 +10118,6 @@
 
     <li><a href=#restore-the-values>Restore the values</a> from <var title="">values</var>.
   </ol>
-
-  <li><a href=#restore-states-and-values>Restore states and values</a> from <var title="">overrides</var>.
 </ol>
 
 
--- a/implementation.js	Sun May 06 04:36:37 2012 -0600
+++ b/implementation.js	Thu May 17 05:03:55 2012 -0600
@@ -5638,9 +5638,6 @@
 //@{
 
 function toggleLists(tagName) {
-	// "Record current overrides, and let overrides be the result."
-	var overrides = recordCurrentOverrides();
-
 	// "Let mode be "disable" if the selection's list state is tag name, and
 	// "enable" otherwise."
 	var mode = getSelectionListState() == tagName ? "disable" : "enable";
@@ -5915,9 +5912,6 @@
 			));
 		}
 	}
-
-	// "Restore states and values from overrides."
-	restoreStatesAndValues(overrides);
 }
 
 
@@ -5926,9 +5920,6 @@
 //@{
 
 function justifySelection(alignment) {
-	// "Record current overrides, and let overrides be the result."
-	var overrides = recordCurrentOverrides();
-
 	// "Block-extend the active range, and let new range be the result."
 	var newRange = blockExtend(globalRange);
 
@@ -6037,9 +6028,6 @@
 			}
 		);
 	}
-
-	// "Restore states and values from overrides."
-	restoreStatesAndValues(overrides);
 }
 
 
@@ -6153,6 +6141,7 @@
 ///// The delete command /////
 //@{
 commands["delete"] = {
+	preservesOverrides: true,
 	action: function() {
 		// "If the active range is not collapsed, delete the selection and
 		// abort these steps."
@@ -6538,6 +6527,7 @@
 	"h4", "h5", "h6", "p", "pre"];
 
 commands.formatblock = {
+	preservesOverrides: true,
 	action: function(value) {
 		// "If value begins with a "<" character and ends with a ">" character,
 		// remove the first and last characters from it."
@@ -6554,9 +6544,6 @@
 			return;
 		}
 
-		// "Record current overrides, and let overrides be the result."
-		var overrides = recordCurrentOverrides();
-
 		// "Block-extend the active range, and let new range be the result."
 		var newRange = blockExtend(getActiveRange());
 
@@ -6658,9 +6645,6 @@
 					: function() { return false },
 				function() { return document.createElement(value) }));
 		}
-
-		// "Restore states and values from overrides."
-		restoreStatesAndValues(overrides);
 	}, indeterm: function() {
 		// "If the active range is null, return false."
 		if (!getActiveRange()) {
@@ -6774,6 +6758,7 @@
 ///// The forwardDelete command /////
 //@{
 commands.forwarddelete = {
+	preservesOverrides: true,
 	action: function() {
 		// "If the active range is not collapsed, delete the selection and
 		// abort these steps."
@@ -7006,10 +6991,8 @@
 ///// The indent command /////
 //@{
 commands.indent = {
+	preservesOverrides: true,
 	action: function() {
-		// "Record current overrides, and let overrides be the result."
-		var overrides = recordCurrentOverrides();
-
 		// "Let items be a list of all lis that are ancestor containers of the
 		// active range's start and/or end node."
 		//
@@ -7090,9 +7073,6 @@
 			// "Indent sublist."
 			indentNodes(sublist);
 		}
-
-		// "Restore states and values from overrides."
-		restoreStatesAndValues(overrides);
 	}
 };
 
@@ -7328,6 +7308,7 @@
 ///// The insertLineBreak command /////
 //@{
 commands.insertlinebreak = {
+	preservesOverrides: true,
 	action: function(value) {
 		// "Delete the selection, with strip wrappers false."
 		deleteSelection({stripWrappers: false});
@@ -7413,6 +7394,7 @@
 ///// The insertOrderedList command /////
 //@{
 commands.insertorderedlist = {
+	preservesOverrides: true,
 	// "Toggle lists with tag name "ol"."
 	action: function() { toggleLists("ol") },
 	// "True if the selection's list state is "mixed" or "mixed ol", false
@@ -7426,6 +7408,7 @@
 ///// The insertParagraph command /////
 //@{
 commands.insertparagraph = {
+	preservesOverrides: true,
 	action: function() {
 		// "Delete the selection."
 		deleteSelection();
@@ -7914,6 +7897,7 @@
 ///// The insertUnorderedList command /////
 //@{
 commands.insertunorderedlist = {
+	preservesOverrides: true,
 	// "Toggle lists with tag name "ul"."
 	action: function() { toggleLists("ul") },
 	// "True if the selection's list state is "mixed" or "mixed ul", false
@@ -7927,6 +7911,7 @@
 ///// The justifyCenter command /////
 //@{
 commands.justifycenter = {
+	preservesOverrides: true,
 	// "Justify the selection with alignment "center"."
 	action: function() { justifySelection("center") },
 	indeterm: function() {
@@ -7980,6 +7965,7 @@
 ///// The justifyFull command /////
 //@{
 commands.justifyfull = {
+	preservesOverrides: true,
 	// "Justify the selection with alignment "justify"."
 	action: function() { justifySelection("justify") },
 	indeterm: function() {
@@ -8033,6 +8019,7 @@
 ///// The justifyLeft command /////
 //@{
 commands.justifyleft = {
+	preservesOverrides: true,
 	// "Justify the selection with alignment "left"."
 	action: function() { justifySelection("left") },
 	indeterm: function() {
@@ -8086,6 +8073,7 @@
 ///// The justifyRight command /////
 //@{
 commands.justifyright = {
+	preservesOverrides: true,
 	// "Justify the selection with alignment "right"."
 	action: function() { justifySelection("right") },
 	indeterm: function() {
@@ -8139,10 +8127,8 @@
 ///// The outdent command /////
 //@{
 commands.outdent = {
+	preservesOverrides: true,
 	action: function() {
-		// "Record current overrides, and let overrides be the result."
-		var overrides = recordCurrentOverrides();
-
 		// "Let items be a list of all lis that are ancestor containers of the
 		// range's start and/or end node."
 		//
@@ -8234,9 +8220,6 @@
 			// "Restore the values from values."
 			restoreValues(values);
 		}
-
-		// "Restore states and values from overrides."
-		restoreStatesAndValues(overrides);
 	}
 };
 
@@ -8427,6 +8410,22 @@
 			return ret;
 		};
 	}
+
+	// "If a command preserves overrides, then before taking its action, the
+	// user agent must record current overrides. After taking the action, if
+	// the active range is collapsed, it must restore states and values from
+	// the recorded list."
+	if ("preservesOverrides" in commands[command]) {
+		var oldAction = commands[command].action;
+
+		commands[command].action = function(value) {
+			var overrides = recordCurrentOverrides();
+			oldAction(value);
+			if (getActiveRange().collapsed) {
+				restoreStatesAndValues(overrides);
+			}
+		};
+	}
 });
 })();
 //@}
--- a/source.html	Sun May 06 04:36:37 2012 -0600
+++ b/source.html	Thu May 17 05:03:55 2012 -0600
@@ -603,8 +603,6 @@
   whatnot in the middle of a surrogate pair?  This could make the content not
   serialize through a character encoding change.
 
-  <li>Probably need to record and restore overrides in some more places.
-
   <li>Some more thought needs to go into what happens to the selection when you
   mutate the DOM.  In some cases the results are pretty arbitrary.  It might
   make sense to do some kind of normalization.
@@ -2008,9 +2006,6 @@
 newly-inserted text.  Other commands like <a href=#the-delete-command><code
 title>delete</code></a> also interact with overrides.
 
-<p class=XXX>Figure out exactly what commands need to preserve state/value
-overrides.
-
 <p class=comments>See
 <a href=https://www.w3.org/Bugs/Public/show_bug.cgi?id=16207>bug 16207</a>.
 
@@ -4798,6 +4793,17 @@
   <li>Return <var>node</var>.
 </ol>
 
+<p class=comments><a
+href=http://www.w3.org/Bugs/Public/show_bug.cgi?id=14062>Bug 14062</a>.  See
+also <a href=https://bugzilla.mozilla.org/show_bug.cgi?id=590640>Mozilla bug
+590640</a>, specifically comments 48 and on.
+
+<p>If a <span>command</span> <dfn>preserves overrides</dfn>, then before taking
+its <span>action</span>, the user agent must <span>record current
+overrides</span>.  After taking the <span>action</span>, if the <span>active
+range</span> is [[rangecollapsed]], it must <span>restore states and
+values</span> from the recorded list.
+
 <!-- @} -->
 <h3>Assorted block formatting command algorithms</h3>
 <!-- @{ -->
@@ -7342,13 +7348,6 @@
 or "ul"):
 
 <ol>
-  <li>
-  <p class=comments><a
-  href=http://www.w3.org/Bugs/Public/show_bug.cgi?id=14062>Bug 14062</a>.
-
-  <p><span>Record current overrides</span>, and let <var>overrides</var> be the
-  result.
-
   <li>Let <var>mode</var> be "disable" if the <span>selection's list
   state</span> is <var>tag name</var>, and "enable" otherwise.
 
@@ -7605,8 +7604,6 @@
 
     <li><span>Fix disallowed ancestors</span> of the previous step's result.
   </ol>
-
-  <li><span>Restore states and values</span> from <var>overrides</var>.
 </ol>
 
 <!-- @} -->
@@ -7647,13 +7644,6 @@
 "center", "justify", "left", or "right"):
 
 <ol>
-  <li>
-  <p class=comments><a
-  href=http://www.w3.org/Bugs/Public/show_bug.cgi?id=14062>Bug 14062</a>.
-
-  <p><span>Record current overrides</span>, and let <var>overrides</var> be the
-  result.
-
   <li><span>Block-extend</span> the <span>active range</span>, and let <var>new
   range</var> be the result.
 
@@ -7743,8 +7733,6 @@
     on the [[contextobject]], then set its CSS property "text-align" to
     <var>alignment</var> and return the result.
   </ol>
-
-  <li><span>Restore states and values</span> from <var>overrides</var>.
 </ol>
 
 <!-- @} -->
@@ -7918,6 +7906,8 @@
 </ul>
 </div>
 
+<p><span>Preserves overrides</span>
+
 <p class=comments>For all the deletions here, Firefox 7.0a2 will remove wrapper
 elements like &lt;b> only if they're selected, like {&lt;b>foo&lt;/b>}.  IE9,
 Chrome 14 dev, and Opera 11.50 will all remove them even if only their contents
@@ -8353,6 +8343,8 @@
 other browsers don't do it.
 </div>
 
+<p><span>Preserves overrides</span>
+
 <p><span>Action</span>:
 
 <ol>
@@ -8404,13 +8396,6 @@
   <p>If <var>value</var> is not a <span>formattable block name</span>, abort
   these steps and do nothing.
 
-  <li>
-  <p class=comments><a
-  href=http://www.w3.org/Bugs/Public/show_bug.cgi?id=14062>Bug 14062</a>.
-
-  <p><span>Record current overrides</span>, and let <var>overrides</var> be the
-  result.
-
   <li><span>Block-extend</span> the <span>active range</span>, and let <var>new
   range</var> be the result.
 
@@ -8547,8 +8532,6 @@
     [[contextobject]].  Then <span>fix disallowed ancestors</span> of the
     result.
   </ol>
-
-  <li><span>Restore states and values</span> from <var>overrides</var>.
 </ol>
 
 <p class=comments>Firefox 6.0a2 throws, Chrome 14 dev always returns false,
@@ -8669,6 +8652,8 @@
 diacritics, we delete the diacritics too.  (Backspacing just deletes the last
 diacritic, so you have to backspace several times to remove the whole cluster.)
 
+<p><span>Preserves overrides</span>
+
 <p class=comments>Copy-pasted from delete, see there for comments.
 
 <p><span>Action</span>:
@@ -8929,16 +8914,11 @@
 of ways.
 </div>
 
+<p><span>Preserves overrides</span>
+
 <p><span>Action</span>:
 
 <ol>
-  <li>
-  <p class=comments><a
-  href=http://www.w3.org/Bugs/Public/show_bug.cgi?id=14062>Bug 14062</a>.
-
-  <p><span>Record current overrides</span>, and let <var>overrides</var> be the
-  result.
-
   <li>Let <var>items</var> be a list of all [[li]]s that are
   [[inclusiveancestors]] of the <span>active range</span>'s [[rangestart]]
   and/or [[rangeend]] [[node]].
@@ -8993,8 +8973,6 @@
 
     <li><span>Indent</span> <var>sublist</var>.
   </ol>
-
-  <li><span>Restore states and values</span> from <var>overrides</var>.
 </ol>
 
 <!-- @} -->
@@ -9303,6 +9281,8 @@
 <p>Opera 11.11 isn't heedful of &lt;xmp>, and treats &lt;pre> somewhat oddly.
 </div>
 
+<p><span>Preserves overrides</span>
+
 <p><span>Action</span>:
 
 <ol>
@@ -9362,6 +9342,8 @@
 <!-- @} -->
 <h3><dfn>The <code title>insertOrderedList</code> command</dfn></h3>
 <!-- @{ -->
+<p><span>Preserves overrides</span>
+
 <p><span>Action</span>: <span>Toggle lists</span> with <var>tag name</var>
 "ol".
 
@@ -9418,6 +9400,8 @@
 </ul>
 </div>
 
+<p><span>Preserves overrides</span>
+
 <div class=comments>
 <p>There are three major behaviors here.  Firefox 5.0a2 behaves identically to
 execCommand("formatBlock", false, "p"), which is not really useful.  IE9
@@ -9989,6 +9973,8 @@
 <!-- @} -->
 <h3><dfn>The <code title>insertUnorderedList</code> command</dfn></h3>
 <!-- @{ -->
+<p><span>Preserves overrides</span>
+
 <p class=comments>See comments for <a
 href=#the-insertorderedlist-command>insertOrderedList</a>.
 
@@ -10004,6 +9990,8 @@
 <!-- @} -->
 <h3><dfn>The <code title>justifyCenter</code> command</dfn></h3>
 <!-- @{ -->
+<p><span>Preserves overrides</span>
+
 <p><span>Action</span>: <span>Justify the selection</span> with
 <var>alignment</var> "center".
 
@@ -10074,6 +10062,8 @@
 <!-- @} -->
 <h3><dfn>The <code title>justifyFull</code> command</dfn></h3>
 <!-- @{ -->
+<p><span>Preserves overrides</span>
+
 <p><span>Action</span>: <span>Justify the selection</span> with
 <var>alignment</var> "justify".
 
@@ -10100,6 +10090,8 @@
 <!-- @} -->
 <h3><dfn>The <code title>justifyLeft</code> command</dfn></h3>
 <!-- @{ -->
+<p><span>Preserves overrides</span>
+
 <p><span>Action</span>: <span>Justify the selection</span> with
 <var>alignment</var> "left".
 
@@ -10126,6 +10118,8 @@
 <!-- @} -->
 <h3><dfn>The <code title>justifyRight</code> command</dfn></h3>
 <!-- @{ -->
+<p><span>Preserves overrides</span>
+
 <p><span>Action</span>: <span>Justify the selection</span> with
 <var>alignment</var> "right".
 
@@ -10152,16 +10146,11 @@
 <!-- @} -->
 <h3><dfn>The <code title>outdent</code> command</dfn></h3>
 <!-- @{ -->
+<p><span>Preserves overrides</span>
+
 <p><span>Action</span>:
 
 <ol>
-  <li>
-  <p class=comments><a
-  href=http://www.w3.org/Bugs/Public/show_bug.cgi?id=14062>Bug 14062</a>.
-
-  <p><span>Record current overrides</span>, and let <var>overrides</var> be the
-  result.
-
   <li>Let <var>items</var> be a list of all [[li]]s that are
   [[inclusiveancestors]] of the <span>active range</span>'s [[rangestart]]
   and/or [[rangeend]] [[node]].
@@ -10237,8 +10226,6 @@
 
     <li><span>Restore the values</span> from <var>values</var>.
   </ol>
-
-  <li><span>Restore states and values</span> from <var>overrides</var>.
 </ol>
 <!-- @} -->
 
--- a/tests.js	Sun May 06 04:36:37 2012 -0600
+++ b/tests.js	Thu May 17 05:03:55 2012 -0600
@@ -4083,14 +4083,29 @@
 	multitest: [
 	//@{
 		// Insertion-affecting state.  Test that insertText works right, and
-		// test that various block commands preserve the state.
+		// test that various block commands preserve (or don't preserve) the
+		// state.
 		['foo[]bar', 'bold', 'inserttext'],
+		['foo[]bar', 'bold', 'delete'],
+		['foo[]bar', 'bold', 'delete', 'inserttext'],
 		['foo[]bar', 'bold', 'formatblock'],
 		['foo[]bar', 'bold', 'formatblock', 'inserttext'],
+		['foo[]bar', 'bold', 'forwarddelete'],
+		['foo[]bar', 'bold', 'forwarddelete', 'inserttext'],
 		['foo[]bar', 'bold', 'indent'],
 		['foo[]bar', 'bold', 'indent', 'inserttext'],
+		['foo[]bar', 'bold', 'inserthorizontalrule'],
+		['foo[]bar', 'bold', 'inserthorizontalrule', 'inserttext'],
+		['foo[]bar', 'bold', 'inserthtml'],
+		['foo[]bar', 'bold', 'inserthtml', 'inserttext'],
+		['foo[]bar', 'bold', 'insertimage'],
+		['foo[]bar', 'bold', 'insertimage', 'inserttext'],
+		['foo[]bar', 'bold', 'insertlinebreak'],
+		['foo[]bar', 'bold', 'insertlinebreak', 'inserttext'],
 		['foo[]bar', 'bold', 'insertorderedlist'],
 		['foo[]bar', 'bold', 'insertorderedlist', 'inserttext'],
+		['foo[]bar', 'bold', 'insertparagraph'],
+		['foo[]bar', 'bold', 'insertparagraph', 'inserttext'],
 		['foo[]bar', 'bold', 'insertunorderedlist'],
 		['foo[]bar', 'bold', 'insertunorderedlist', 'inserttext'],
 		['foo[]bar', 'bold', 'justifycenter'],
@@ -4105,12 +4120,26 @@
 		['foo[]bar', 'bold', 'outdent', 'inserttext'],
 
 		['foo[]bar', 'italic', 'inserttext'],
+		['foo[]bar', 'italic', 'delete'],
+		['foo[]bar', 'italic', 'delete', 'inserttext'],
 		['foo[]bar', 'italic', 'formatblock'],
 		['foo[]bar', 'italic', 'formatblock', 'inserttext'],
+		['foo[]bar', 'italic', 'forwarddelete'],
+		['foo[]bar', 'italic', 'forwarddelete', 'inserttext'],
 		['foo[]bar', 'italic', 'indent'],
 		['foo[]bar', 'italic', 'indent', 'inserttext'],
+		['foo[]bar', 'italic', 'inserthorizontalrule'],
+		['foo[]bar', 'italic', 'inserthorizontalrule', 'inserttext'],
+		['foo[]bar', 'italic', 'inserthtml'],
+		['foo[]bar', 'italic', 'inserthtml', 'inserttext'],
+		['foo[]bar', 'italic', 'insertimage'],
+		['foo[]bar', 'italic', 'insertimage', 'inserttext'],
+		['foo[]bar', 'italic', 'insertlinebreak'],
+		['foo[]bar', 'italic', 'insertlinebreak', 'inserttext'],
 		['foo[]bar', 'italic', 'insertorderedlist'],
 		['foo[]bar', 'italic', 'insertorderedlist', 'inserttext'],
+		['foo[]bar', 'italic', 'insertparagraph'],
+		['foo[]bar', 'italic', 'insertparagraph', 'inserttext'],
 		['foo[]bar', 'italic', 'insertunorderedlist'],
 		['foo[]bar', 'italic', 'insertunorderedlist', 'inserttext'],
 		['foo[]bar', 'italic', 'justifycenter'],
@@ -4125,12 +4154,26 @@
 		['foo[]bar', 'italic', 'outdent', 'inserttext'],
 
 		['foo[]bar', 'strikethrough', 'inserttext'],
+		['foo[]bar', 'strikethrough', 'delete'],
+		['foo[]bar', 'strikethrough', 'delete', 'inserttext'],
 		['foo[]bar', 'strikethrough', 'formatblock'],
 		['foo[]bar', 'strikethrough', 'formatblock', 'inserttext'],
+		['foo[]bar', 'strikethrough', 'forwarddelete'],
+		['foo[]bar', 'strikethrough', 'forwarddelete', 'inserttext'],
 		['foo[]bar', 'strikethrough', 'indent'],
 		['foo[]bar', 'strikethrough', 'indent', 'inserttext'],
+		['foo[]bar', 'strikethrough', 'inserthorizontalrule'],
+		['foo[]bar', 'strikethrough', 'inserthorizontalrule', 'inserttext'],
+		['foo[]bar', 'strikethrough', 'inserthtml'],
+		['foo[]bar', 'strikethrough', 'inserthtml', 'inserttext'],
+		['foo[]bar', 'strikethrough', 'insertimage'],
+		['foo[]bar', 'strikethrough', 'insertimage', 'inserttext'],
+		['foo[]bar', 'strikethrough', 'insertlinebreak'],
+		['foo[]bar', 'strikethrough', 'insertlinebreak', 'inserttext'],
 		['foo[]bar', 'strikethrough', 'insertorderedlist'],
 		['foo[]bar', 'strikethrough', 'insertorderedlist', 'inserttext'],
+		['foo[]bar', 'strikethrough', 'insertparagraph'],
+		['foo[]bar', 'strikethrough', 'insertparagraph', 'inserttext'],
 		['foo[]bar', 'strikethrough', 'insertunorderedlist'],
 		['foo[]bar', 'strikethrough', 'insertunorderedlist', 'inserttext'],
 		['foo[]bar', 'strikethrough', 'justifycenter'],
@@ -4145,12 +4188,26 @@
 		['foo[]bar', 'strikethrough', 'outdent', 'inserttext'],
 
 		['foo[]bar', 'subscript', 'inserttext'],
+		['foo[]bar', 'subscript', 'delete'],
+		['foo[]bar', 'subscript', 'delete', 'inserttext'],
 		['foo[]bar', 'subscript', 'formatblock'],
 		['foo[]bar', 'subscript', 'formatblock', 'inserttext'],
+		['foo[]bar', 'subscript', 'forwarddelete'],
+		['foo[]bar', 'subscript', 'forwarddelete', 'inserttext'],
 		['foo[]bar', 'subscript', 'indent'],
 		['foo[]bar', 'subscript', 'indent', 'inserttext'],
+		['foo[]bar', 'subscript', 'inserthorizontalrule'],
+		['foo[]bar', 'subscript', 'inserthorizontalrule', 'inserttext'],
+		['foo[]bar', 'subscript', 'inserthtml'],
+		['foo[]bar', 'subscript', 'inserthtml', 'inserttext'],
+		['foo[]bar', 'subscript', 'insertimage'],
+		['foo[]bar', 'subscript', 'insertimage', 'inserttext'],
+		['foo[]bar', 'subscript', 'insertlinebreak'],
+		['foo[]bar', 'subscript', 'insertlinebreak', 'inserttext'],
 		['foo[]bar', 'subscript', 'insertorderedlist'],
 		['foo[]bar', 'subscript', 'insertorderedlist', 'inserttext'],
+		['foo[]bar', 'subscript', 'insertparagraph'],
+		['foo[]bar', 'subscript', 'insertparagraph', 'inserttext'],
 		['foo[]bar', 'subscript', 'insertunorderedlist'],
 		['foo[]bar', 'subscript', 'insertunorderedlist', 'inserttext'],
 		['foo[]bar', 'subscript', 'justifycenter'],
@@ -4165,12 +4222,26 @@
 		['foo[]bar', 'subscript', 'outdent', 'inserttext'],
 
 		['foo[]bar', 'superscript', 'inserttext'],
+		['foo[]bar', 'superscript', 'delete'],
+		['foo[]bar', 'superscript', 'delete', 'inserttext'],
 		['foo[]bar', 'superscript', 'formatblock'],
 		['foo[]bar', 'superscript', 'formatblock', 'inserttext'],
+		['foo[]bar', 'superscript', 'forwarddelete'],
+		['foo[]bar', 'superscript', 'forwarddelete', 'inserttext'],
 		['foo[]bar', 'superscript', 'indent'],
 		['foo[]bar', 'superscript', 'indent', 'inserttext'],
+		['foo[]bar', 'superscript', 'inserthorizontalrule'],
+		['foo[]bar', 'superscript', 'inserthorizontalrule', 'inserttext'],
+		['foo[]bar', 'superscript', 'inserthtml'],
+		['foo[]bar', 'superscript', 'inserthtml', 'inserttext'],
+		['foo[]bar', 'superscript', 'insertimage'],
+		['foo[]bar', 'superscript', 'insertimage', 'inserttext'],
+		['foo[]bar', 'superscript', 'insertlinebreak'],
+		['foo[]bar', 'superscript', 'insertlinebreak', 'inserttext'],
 		['foo[]bar', 'superscript', 'insertorderedlist'],
 		['foo[]bar', 'superscript', 'insertorderedlist', 'inserttext'],
+		['foo[]bar', 'superscript', 'insertparagraph'],
+		['foo[]bar', 'superscript', 'insertparagraph', 'inserttext'],
 		['foo[]bar', 'superscript', 'insertunorderedlist'],
 		['foo[]bar', 'superscript', 'insertunorderedlist', 'inserttext'],
 		['foo[]bar', 'superscript', 'justifycenter'],
@@ -4185,12 +4256,26 @@
 		['foo[]bar', 'superscript', 'outdent', 'inserttext'],
 
 		['foo[]bar', 'underline', 'inserttext'],
+		['foo[]bar', 'underline', 'delete'],
+		['foo[]bar', 'underline', 'delete', 'inserttext'],
 		['foo[]bar', 'underline', 'formatblock'],
 		['foo[]bar', 'underline', 'formatblock', 'inserttext'],
+		['foo[]bar', 'underline', 'forwarddelete'],
+		['foo[]bar', 'underline', 'forwarddelete', 'inserttext'],
 		['foo[]bar', 'underline', 'indent'],
 		['foo[]bar', 'underline', 'indent', 'inserttext'],
+		['foo[]bar', 'underline', 'inserthorizontalrule'],
+		['foo[]bar', 'underline', 'inserthorizontalrule', 'inserttext'],
+		['foo[]bar', 'underline', 'inserthtml'],
+		['foo[]bar', 'underline', 'inserthtml', 'inserttext'],
+		['foo[]bar', 'underline', 'insertimage'],
+		['foo[]bar', 'underline', 'insertimage', 'inserttext'],
+		['foo[]bar', 'underline', 'insertlinebreak'],
+		['foo[]bar', 'underline', 'insertlinebreak', 'inserttext'],
 		['foo[]bar', 'underline', 'insertorderedlist'],
 		['foo[]bar', 'underline', 'insertorderedlist', 'inserttext'],
+		['foo[]bar', 'underline', 'insertparagraph'],
+		['foo[]bar', 'underline', 'insertparagraph', 'inserttext'],
 		['foo[]bar', 'underline', 'insertunorderedlist'],
 		['foo[]bar', 'underline', 'insertunorderedlist', 'inserttext'],
 		['foo[]bar', 'underline', 'justifycenter'],
@@ -4205,14 +4290,29 @@
 		['foo[]bar', 'underline', 'outdent', 'inserttext'],
 
 		// Insertion-affecting value.  Test that insertText works right, and
-		// test that various block commands preserve the value.
+		// test that various block commands preserve (or don't preserve) the
+		// value.
 		['foo[]bar', 'backcolor', 'inserttext'],
+		['foo[]bar', 'backcolor', 'delete'],
+		['foo[]bar', 'backcolor', 'delete', 'inserttext'],
 		['foo[]bar', 'backcolor', 'formatblock'],
 		['foo[]bar', 'backcolor', 'formatblock', 'inserttext'],
+		['foo[]bar', 'backcolor', 'forwarddelete'],
+		['foo[]bar', 'backcolor', 'forwarddelete', 'inserttext'],
 		['foo[]bar', 'backcolor', 'indent'],
 		['foo[]bar', 'backcolor', 'indent', 'inserttext'],
+		['foo[]bar', 'backcolor', 'inserthorizontalrule'],
+		['foo[]bar', 'backcolor', 'inserthorizontalrule', 'inserttext'],
+		['foo[]bar', 'backcolor', 'inserthtml'],
+		['foo[]bar', 'backcolor', 'inserthtml', 'inserttext'],
+		['foo[]bar', 'backcolor', 'insertimage'],
+		['foo[]bar', 'backcolor', 'insertimage', 'inserttext'],
+		['foo[]bar', 'backcolor', 'insertlinebreak'],
+		['foo[]bar', 'backcolor', 'insertlinebreak', 'inserttext'],
 		['foo[]bar', 'backcolor', 'insertorderedlist'],
 		['foo[]bar', 'backcolor', 'insertorderedlist', 'inserttext'],
+		['foo[]bar', 'backcolor', 'insertparagraph'],
+		['foo[]bar', 'backcolor', 'insertparagraph', 'inserttext'],
 		['foo[]bar', 'backcolor', 'insertunorderedlist'],
 		['foo[]bar', 'backcolor', 'insertunorderedlist', 'inserttext'],
 		['foo[]bar', 'backcolor', 'justifycenter'],
@@ -4227,12 +4327,26 @@
 		['foo[]bar', 'backcolor', 'outdent', 'inserttext'],
 
 		['foo[]bar', 'createlink', 'inserttext'],
+		['foo[]bar', 'createlink', 'delete'],
+		['foo[]bar', 'createlink', 'delete', 'inserttext'],
 		['foo[]bar', 'createlink', 'formatblock'],
 		['foo[]bar', 'createlink', 'formatblock', 'inserttext'],
+		['foo[]bar', 'createlink', 'forwarddelete'],
+		['foo[]bar', 'createlink', 'forwarddelete', 'inserttext'],
 		['foo[]bar', 'createlink', 'indent'],
 		['foo[]bar', 'createlink', 'indent', 'inserttext'],
+		['foo[]bar', 'createlink', 'inserthorizontalrule'],
+		['foo[]bar', 'createlink', 'inserthorizontalrule', 'inserttext'],
+		['foo[]bar', 'createlink', 'inserthtml'],
+		['foo[]bar', 'createlink', 'inserthtml', 'inserttext'],
+		['foo[]bar', 'createlink', 'insertimage'],
+		['foo[]bar', 'createlink', 'insertimage', 'inserttext'],
+		['foo[]bar', 'createlink', 'insertlinebreak'],
+		['foo[]bar', 'createlink', 'insertlinebreak', 'inserttext'],
 		['foo[]bar', 'createlink', 'insertorderedlist'],
 		['foo[]bar', 'createlink', 'insertorderedlist', 'inserttext'],
+		['foo[]bar', 'createlink', 'insertparagraph'],
+		['foo[]bar', 'createlink', 'insertparagraph', 'inserttext'],
 		['foo[]bar', 'createlink', 'insertunorderedlist'],
 		['foo[]bar', 'createlink', 'insertunorderedlist', 'inserttext'],
 		['foo[]bar', 'createlink', 'justifycenter'],
@@ -4247,12 +4361,26 @@
 		['foo[]bar', 'createlink', 'outdent', 'inserttext'],
 
 		['foo[]bar', 'fontname', 'inserttext'],
+		['foo[]bar', 'fontname', 'delete'],
+		['foo[]bar', 'fontname', 'delete', 'inserttext'],
 		['foo[]bar', 'fontname', 'formatblock'],
 		['foo[]bar', 'fontname', 'formatblock', 'inserttext'],
+		['foo[]bar', 'fontname', 'forwarddelete'],
+		['foo[]bar', 'fontname', 'forwarddelete', 'inserttext'],
 		['foo[]bar', 'fontname', 'indent'],
 		['foo[]bar', 'fontname', 'indent', 'inserttext'],
+		['foo[]bar', 'fontname', 'inserthorizontalrule'],
+		['foo[]bar', 'fontname', 'inserthorizontalrule', 'inserttext'],
+		['foo[]bar', 'fontname', 'inserthtml'],
+		['foo[]bar', 'fontname', 'inserthtml', 'inserttext'],
+		['foo[]bar', 'fontname', 'insertimage'],
+		['foo[]bar', 'fontname', 'insertimage', 'inserttext'],
+		['foo[]bar', 'fontname', 'insertlinebreak'],
+		['foo[]bar', 'fontname', 'insertlinebreak', 'inserttext'],
 		['foo[]bar', 'fontname', 'insertorderedlist'],
 		['foo[]bar', 'fontname', 'insertorderedlist', 'inserttext'],
+		['foo[]bar', 'fontname', 'insertparagraph'],
+		['foo[]bar', 'fontname', 'insertparagraph', 'inserttext'],
 		['foo[]bar', 'fontname', 'insertunorderedlist'],
 		['foo[]bar', 'fontname', 'insertunorderedlist', 'inserttext'],
 		['foo[]bar', 'fontname', 'justifycenter'],
@@ -4267,12 +4395,26 @@
 		['foo[]bar', 'fontname', 'outdent', 'inserttext'],
 
 		['foo[]bar', 'fontsize', 'inserttext'],
+		['foo[]bar', 'fontsize', 'delete'],
+		['foo[]bar', 'fontsize', 'delete', 'inserttext'],
 		['foo[]bar', 'fontsize', 'formatblock'],
 		['foo[]bar', 'fontsize', 'formatblock', 'inserttext'],
+		['foo[]bar', 'fontsize', 'forwarddelete'],
+		['foo[]bar', 'fontsize', 'forwarddelete', 'inserttext'],
 		['foo[]bar', 'fontsize', 'indent'],
 		['foo[]bar', 'fontsize', 'indent', 'inserttext'],
+		['foo[]bar', 'fontsize', 'inserthorizontalrule'],
+		['foo[]bar', 'fontsize', 'inserthorizontalrule', 'inserttext'],
+		['foo[]bar', 'fontsize', 'inserthtml'],
+		['foo[]bar', 'fontsize', 'inserthtml', 'inserttext'],
+		['foo[]bar', 'fontsize', 'insertimage'],
+		['foo[]bar', 'fontsize', 'insertimage', 'inserttext'],
+		['foo[]bar', 'fontsize', 'insertlinebreak'],
+		['foo[]bar', 'fontsize', 'insertlinebreak', 'inserttext'],
 		['foo[]bar', 'fontsize', 'insertorderedlist'],
 		['foo[]bar', 'fontsize', 'insertorderedlist', 'inserttext'],
+		['foo[]bar', 'fontsize', 'insertparagraph'],
+		['foo[]bar', 'fontsize', 'insertparagraph', 'inserttext'],
 		['foo[]bar', 'fontsize', 'insertunorderedlist'],
 		['foo[]bar', 'fontsize', 'insertunorderedlist', 'inserttext'],
 		['foo[]bar', 'fontsize', 'justifycenter'],
@@ -4287,12 +4429,26 @@
 		['foo[]bar', 'fontsize', 'outdent', 'inserttext'],
 
 		['foo[]bar', 'forecolor', 'inserttext'],
+		['foo[]bar', 'forecolor', 'delete'],
+		['foo[]bar', 'forecolor', 'delete', 'inserttext'],
 		['foo[]bar', 'forecolor', 'formatblock'],
 		['foo[]bar', 'forecolor', 'formatblock', 'inserttext'],
+		['foo[]bar', 'forecolor', 'forwarddelete'],
+		['foo[]bar', 'forecolor', 'forwarddelete', 'inserttext'],
 		['foo[]bar', 'forecolor', 'indent'],
 		['foo[]bar', 'forecolor', 'indent', 'inserttext'],
+		['foo[]bar', 'forecolor', 'inserthorizontalrule'],
+		['foo[]bar', 'forecolor', 'inserthorizontalrule', 'inserttext'],
+		['foo[]bar', 'forecolor', 'inserthtml'],
+		['foo[]bar', 'forecolor', 'inserthtml', 'inserttext'],
+		['foo[]bar', 'forecolor', 'insertimage'],
+		['foo[]bar', 'forecolor', 'insertimage', 'inserttext'],
+		['foo[]bar', 'forecolor', 'insertlinebreak'],
+		['foo[]bar', 'forecolor', 'insertlinebreak', 'inserttext'],
 		['foo[]bar', 'forecolor', 'insertorderedlist'],
 		['foo[]bar', 'forecolor', 'insertorderedlist', 'inserttext'],
+		['foo[]bar', 'forecolor', 'insertparagraph'],
+		['foo[]bar', 'forecolor', 'insertparagraph', 'inserttext'],
 		['foo[]bar', 'forecolor', 'insertunorderedlist'],
 		['foo[]bar', 'forecolor', 'insertunorderedlist', 'inserttext'],
 		['foo[]bar', 'forecolor', 'justifycenter'],
@@ -4307,12 +4463,26 @@
 		['foo[]bar', 'forecolor', 'outdent', 'inserttext'],
 
 		['foo[]bar', 'hilitecolor', 'inserttext'],
+		['foo[]bar', 'hilitecolor', 'delete'],
+		['foo[]bar', 'hilitecolor', 'delete', 'inserttext'],
 		['foo[]bar', 'hilitecolor', 'formatblock'],
 		['foo[]bar', 'hilitecolor', 'formatblock', 'inserttext'],
+		['foo[]bar', 'hilitecolor', 'forwarddelete'],
+		['foo[]bar', 'hilitecolor', 'forwarddelete', 'inserttext'],
 		['foo[]bar', 'hilitecolor', 'indent'],
 		['foo[]bar', 'hilitecolor', 'indent', 'inserttext'],
+		['foo[]bar', 'hilitecolor', 'inserthorizontalrule'],
+		['foo[]bar', 'hilitecolor', 'inserthorizontalrule', 'inserttext'],
+		['foo[]bar', 'hilitecolor', 'inserthtml'],
+		['foo[]bar', 'hilitecolor', 'inserthtml', 'inserttext'],
+		['foo[]bar', 'hilitecolor', 'insertimage'],
+		['foo[]bar', 'hilitecolor', 'insertimage', 'inserttext'],
+		['foo[]bar', 'hilitecolor', 'insertlinebreak'],
+		['foo[]bar', 'hilitecolor', 'insertlinebreak', 'inserttext'],
 		['foo[]bar', 'hilitecolor', 'insertorderedlist'],
 		['foo[]bar', 'hilitecolor', 'insertorderedlist', 'inserttext'],
+		['foo[]bar', 'hilitecolor', 'insertparagraph'],
+		['foo[]bar', 'hilitecolor', 'insertparagraph', 'inserttext'],
 		['foo[]bar', 'hilitecolor', 'insertunorderedlist'],
 		['foo[]bar', 'hilitecolor', 'insertunorderedlist', 'inserttext'],
 		['foo[]bar', 'hilitecolor', 'justifycenter'],