JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.4.2
[ckeditor.git] / _source / core / htmlparser / fragment.js
index ad1c93e..9db04dd 100644 (file)
@@ -108,9 +108,9 @@ CKEDITOR.htmlParser.fragment = function()
                        }\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
@@ -237,6 +237,12 @@ CKEDITOR.htmlParser.fragment = function()
                                {\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
@@ -274,6 +280,7 @@ CKEDITOR.htmlParser.fragment = function()
                        }\r
 \r
                        checkPending( tagName );\r
+                       sendPendingBRs();\r
 \r
                        element.parent = currentNode;\r
                        element.returnPoint = returnPoint;\r
@@ -385,13 +392,15 @@ CKEDITOR.htmlParser.fragment = function()
 \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