JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.4.2
[ckeditor.git] / _source / plugins / htmlwriter / plugin.js
index 46fadde..b4f766a 100644 (file)
@@ -57,12 +57,14 @@ CKEDITOR.htmlWriter = CKEDITOR.tools.createClass(
                 */\r
                this.lineBreakChars = '\n';\r
 \r
-               this.forceSimpleAmpersand = false;\r
+               this.forceSimpleAmpersand = 0;\r
 \r
-               this.sortAttributes = true;\r
+               this.sortAttributes = 1;\r
 \r
-               this._.indent = false;\r
+               this._.indent = 0;\r
                this._.indentation = '';\r
+               // Indicate preformatted block context status. (#5789)\r
+               this._.inPre = 0;\r
                this._.rules = {};\r
 \r
                var dtd = CKEDITOR.dtd;\r
@@ -71,35 +73,35 @@ CKEDITOR.htmlWriter = CKEDITOR.tools.createClass(
                {\r
                        this.setRules( e,\r
                                {\r
-                                       indent : true,\r
-                                       breakBeforeOpen : true,\r
-                                       breakAfterOpen : true,\r
+                                       indent : 1,\r
+                                       breakBeforeOpen : 1,\r
+                                       breakAfterOpen : 1,\r
                                        breakBeforeClose : !dtd[ e ][ '#' ],\r
-                                       breakAfterClose : true\r
+                                       breakAfterClose : 1\r
                                });\r
                }\r
 \r
                this.setRules( 'br',\r
                        {\r
-                               breakAfterOpen : true\r
+                               breakAfterOpen : 1\r
                        });\r
 \r
                this.setRules( 'title',\r
                        {\r
-                               indent : false,\r
-                               breakAfterOpen : false\r
+                               indent : 0,\r
+                               breakAfterOpen : 0\r
                        });\r
 \r
                this.setRules( 'style',\r
                        {\r
-                               indent : false,\r
-                               breakBeforeClose : true\r
+                               indent : 0,\r
+                               breakBeforeClose : 1\r
                        });\r
 \r
                // Disable indentation on <pre>.\r
                this.setRules( 'pre',\r
                        {\r
-                         indent: false\r
+                         indent : 0\r
                        });\r
        },\r
 \r
@@ -158,6 +160,7 @@ CKEDITOR.htmlWriter = CKEDITOR.tools.createClass(
 \r
                        if ( rules && rules.breakAfterOpen )\r
                                this.lineBreak();\r
+                       tagName == 'pre' && ( this._.inPre = 1 );\r
                },\r
 \r
                /**\r
@@ -206,6 +209,7 @@ CKEDITOR.htmlWriter = CKEDITOR.tools.createClass(
                        }\r
 \r
                        this._.output.push( '</', tagName, '>' );\r
+                       tagName == 'pre' && ( this._.inPre = 0 );\r
 \r
                        if ( rules && rules.breakAfterClose )\r
                                this.lineBreak();\r
@@ -223,7 +227,7 @@ CKEDITOR.htmlWriter = CKEDITOR.tools.createClass(
                        if ( this._.indent )\r
                        {\r
                                this.indentation();\r
-                               text = CKEDITOR.tools.ltrim( text );\r
+                               !this._.inPre  && ( text = CKEDITOR.tools.ltrim( text ) );\r
                        }\r
 \r
                        this._.output.push( text );\r
@@ -252,9 +256,9 @@ CKEDITOR.htmlWriter = CKEDITOR.tools.createClass(
                 */\r
                lineBreak : function()\r
                {\r
-                       if ( this._.output.length > 0 )\r
+                       if ( !this._.inPre && this._.output.length > 0 )\r
                                this._.output.push( this.lineBreakChars );\r
-                       this._.indent = true;\r
+                       this._.indent = 1;\r
                },\r
 \r
                /**\r
@@ -267,8 +271,9 @@ CKEDITOR.htmlWriter = CKEDITOR.tools.createClass(
                 */\r
                indentation : function()\r
                {\r
-                       this._.output.push( this._.indentation );\r
-                       this._.indent = false;\r
+                       if( !this._.inPre )\r
+                               this._.output.push( this._.indentation );\r
+                       this._.indent = 0;\r
                },\r
 \r
                /**\r