}\r
}\r
\r
- function sendPendingBRs()\r
+ function sendPendingBRs( brsToIgnore )\r
{\r
- while ( pendingBRs.length )\r
+ while ( pendingBRs.length - ( brsToIgnore || 0 ) > 0 )\r
currentNode.add( pendingBRs.shift() );\r
}\r
\r
{\r
addElement( currentNode, currentNode.parent );\r
}\r
+ else if ( tagName in CKEDITOR.dtd.$listItem )\r
+ {\r
+ parser.onTagOpen( 'ul', {} );\r
+ addPoint = currentNode;\r
+ reApply = true;\r
+ }\r
else\r
{\r
if ( nonBreakingBlocks[ currentName ] )\r
}\r
\r
checkPending( tagName );\r
+ sendPendingBRs();\r
\r
element.parent = currentNode;\r
element.returnPoint = returnPoint;\r
\r
parser.onComment = function( comment )\r
{\r
+ checkPending();\r
currentNode.add( new CKEDITOR.htmlParser.comment( comment ) );\r
};\r
\r
// Parse it.\r
parser.parse( fragmentHtml );\r
\r
- sendPendingBRs();\r
+ // Send all pending BRs except one, which we consider a unwanted bogus. (#5293)\r
+ sendPendingBRs( !CKEDITOR.env.ie && 1 );\r
\r
// Close all pending nodes.\r
while ( currentNode.type )\r