JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.6.3
[ckeditor.git] / _source / plugins / entities / plugin.js
index 5402365..5729831 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.html or http://ckeditor.com/license\r
 */\r
 \r
@@ -62,10 +62,12 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                                shy             : '\u00AD',             // IE\r
                                gt              : '\u003E',             // IE | FF |   --   | Opera\r
                                lt              : '\u003C',             // IE | FF | Safari | Opera\r
-                               amp : '\u0026'          // ALL\r
+                               amp     : '\u0026',             // ALL\r
+                               apos    : '\u0027',             // IE\r
+                               quot    : '\u0022'              // IE\r
                        };\r
 \r
-               entities = entities.replace( /\b(nbsp|shy|gt|lt|amp)(?:,|$)/g, function( match, entity )\r
+               entities = entities.replace( /\b(nbsp|shy|gt|lt|amp|apos|quot)(?:,|$)/g, function( match, entity )\r
                        {\r
                                var org = reverse ? '&' + entity + ';' : specialTable[ entity ],\r
                                        result = reverse ? specialTable[ entity ] : '&' + entity + ';';\r
@@ -114,25 +116,27 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                        if ( htmlFilter )\r
                        {\r
                                // Mandatory HTML base entities.\r
-                               var selectedEntities = '';\r
+                               var selectedEntities = [];\r
 \r
                                if ( config.basicEntities !== false )\r
-                                       selectedEntities += htmlbase;\r
+                                       selectedEntities.push( htmlbase );\r
 \r
                                if ( config.entities )\r
                                {\r
-                                       selectedEntities += ',' + entities;\r
+                                       if ( selectedEntities.length )\r
+                                               selectedEntities.push( entities );\r
+\r
                                        if ( config.entities_latin )\r
-                                               selectedEntities += ',' + latin;\r
+                                               selectedEntities.push( latin );\r
 \r
                                        if ( config.entities_greek )\r
-                                               selectedEntities += ',' + greek;\r
+                                               selectedEntities.push( greek );\r
 \r
                                        if ( config.entities_additional )\r
-                                               selectedEntities += ',' + config.entities_additional;\r
+                                               selectedEntities.push( config.entities_additional );\r
                                }\r
 \r
-                               var entitiesTable = buildTable( selectedEntities );\r
+                               var entitiesTable = buildTable( selectedEntities.join( ',' ) );\r
 \r
                                // Create the Regex used to find entities in the text, leave it matches nothing if entities are empty.\r
                                var entitiesRegex = entitiesTable.regex ? '[' + entitiesTable.regex + ']' : 'a^';\r