Merge branch 'MDL-67372-master' of git://github.com/rezaies/moodle
authorSara Arjona <sara@moodle.com>
Fri, 17 Jan 2020 08:30:11 +0000 (09:30 +0100)
committerSara Arjona <sara@moodle.com>
Fri, 17 Jan 2020 08:30:11 +0000 (09:30 +0100)
22 files changed:
lib/htmlpurifier/HTMLPurifier.php
lib/htmlpurifier/HTMLPurifier/AttrDef/HTML/Bool.php
lib/htmlpurifier/HTMLPurifier/AttrDef/URI/Host.php
lib/htmlpurifier/HTMLPurifier/CSSDefinition.php
lib/htmlpurifier/HTMLPurifier/Config.php
lib/htmlpurifier/HTMLPurifier/ConfigSchema.php
lib/htmlpurifier/HTMLPurifier/ConfigSchema/schema.ser
lib/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt
lib/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.AllowParseManyTags.txt [new file with mode: 0644]
lib/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt
lib/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer/README [changed mode: 0644->0755]
lib/htmlpurifier/HTMLPurifier/EntityParser.php
lib/htmlpurifier/HTMLPurifier/HTMLModule.php
lib/htmlpurifier/HTMLPurifier/HTMLModule/SafeScripting.php
lib/htmlpurifier/HTMLPurifier/Language/messages/en-x-test.php
lib/htmlpurifier/HTMLPurifier/Language/messages/en-x-testmini.php
lib/htmlpurifier/HTMLPurifier/Lexer/DOMLex.php
lib/htmlpurifier/HTMLPurifier/Printer/ConfigForm.php
lib/htmlpurifier/HTMLPurifier/VarParser.php
lib/htmlpurifier/HTMLPurifier/VarParser/Flexible.php
lib/htmlpurifier/readme_moodle.txt
lib/thirdpartylibs.xml

index 6f0fa81..a8ccb0d 100644 (file)
@@ -19,7 +19,7 @@
  */\r
 \r
 /*\r
-    HTML Purifier 4.10.0 - Standards Compliant HTML Filtering\r
+    HTML Purifier 4.12.0 - Standards Compliant HTML Filtering\r
     Copyright (C) 2006-2008 Edward Z. Yang\r
 \r
     This library is free software; you can redistribute it and/or\r
@@ -58,12 +58,12 @@ class HTMLPurifier
      * Version of HTML Purifier.\r
      * @type string\r
      */\r
-    public $version = '4.10.0';\r
+    public $version = '4.12.0';\r
 \r
     /**\r
      * Constant with version of HTML Purifier.\r
      */\r
-    const VERSION = '4.10.0';\r
+    const VERSION = '4.12.0';\r
 \r
     /**\r
      * Global configuration object.\r
@@ -240,12 +240,16 @@ class HTMLPurifier
     public function purifyArray($array_of_html, $config = null)\r
     {\r
         $context_array = array();\r
-        foreach ($array_of_html as $key => $html) {\r
-            $array_of_html[$key] = $this->purify($html, $config);\r
+        foreach($array_of_html as $key=>$value){\r
+            if (is_array($value)) {\r
+                $array[$key] = $this->purifyArray($value, $config);\r
+            } else {\r
+                $array[$key] = $this->purify($value, $config);\r
+            }\r
             $context_array[$key] = $this->context;\r
         }\r
         $this->context = $context_array;\r
-        return $array_of_html;\r
+        return $array;\r
     }\r
 \r
     /**\r
index 953a36a..bf54e8e 100644 (file)
@@ -7,7 +7,7 @@ class HTMLPurifier_AttrDef_HTML_Bool extends HTMLPurifier_AttrDef
 {\r
 \r
     /**\r
-     * @type bool\r
+     * @type string\r
      */\r
     protected $name;\r
 \r
@@ -17,7 +17,7 @@ class HTMLPurifier_AttrDef_HTML_Bool extends HTMLPurifier_AttrDef
     public $minimized = true;\r
 \r
     /**\r
-     * @param bool $name\r
+     * @param bool|string $name\r
      */\r
     public function __construct($name = false)\r
     {\r
index c1e2e3c..a61111e 100644 (file)
@@ -97,7 +97,11 @@ class HTMLPurifier_AttrDef_URI_Host extends HTMLPurifier_AttrDef
 \r
         // PHP 5.3 and later support this functionality natively\r
         if (function_exists('idn_to_ascii')) {\r
-            $string = idn_to_ascii($string, IDNA_NONTRANSITIONAL_TO_ASCII, INTL_IDNA_VARIANT_UTS46);\r
+            if (defined('IDNA_NONTRANSITIONAL_TO_ASCII') && defined('INTL_IDNA_VARIANT_UTS46')) {\r
+                $string = idn_to_ascii($string, IDNA_NONTRANSITIONAL_TO_ASCII, INTL_IDNA_VARIANT_UTS46);\r
+            } else {\r
+                $string = idn_to_ascii($string);\r
+            }\r
 \r
         // If we have Net_IDNA2 support, we can support IRIs by\r
         // punycoding them. (This is the most portable thing to do,\r
index 5e7490e..ca3dcd6 100644 (file)
@@ -220,15 +220,25 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
             array(\r
                 new HTMLPurifier_AttrDef_CSS_Length('0'),\r
                 new HTMLPurifier_AttrDef_CSS_Percentage(true),\r
-                new HTMLPurifier_AttrDef_Enum(array('auto'))\r
+                new HTMLPurifier_AttrDef_Enum(array('auto', 'initial', 'inherit'))\r
+            )\r
+        );\r
+        $trusted_min_wh = new HTMLPurifier_AttrDef_CSS_Composite(\r
+            array(\r
+                new HTMLPurifier_AttrDef_CSS_Length('0'),\r
+                new HTMLPurifier_AttrDef_CSS_Percentage(true),\r
+                new HTMLPurifier_AttrDef_Enum(array('initial', 'inherit'))\r
+            )\r
+        );\r
+        $trusted_max_wh = new HTMLPurifier_AttrDef_CSS_Composite(\r
+            array(\r
+                new HTMLPurifier_AttrDef_CSS_Length('0'),\r
+                new HTMLPurifier_AttrDef_CSS_Percentage(true),\r
+                new HTMLPurifier_AttrDef_Enum(array('none', 'initial', 'inherit'))\r
             )\r
         );\r
         $max = $config->get('CSS.MaxImgLength');\r
 \r
-        $this->info['min-width'] =\r
-        $this->info['max-width'] =\r
-        $this->info['min-height'] =\r
-        $this->info['max-height'] =\r
         $this->info['width'] =\r
         $this->info['height'] =\r
             $max === null ?\r
@@ -245,6 +255,38 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
                     // For everyone else:\r
                     $trusted_wh\r
                 );\r
+        $this->info['min-width'] =\r
+        $this->info['min-height'] =\r
+            $max === null ?\r
+                $trusted_min_wh :\r
+                new HTMLPurifier_AttrDef_Switch(\r
+                    'img',\r
+                    // For img tags:\r
+                    new HTMLPurifier_AttrDef_CSS_Composite(\r
+                        array(\r
+                            new HTMLPurifier_AttrDef_CSS_Length('0', $max),\r
+                            new HTMLPurifier_AttrDef_Enum(array('initial', 'inherit'))\r
+                        )\r
+                    ),\r
+                    // For everyone else:\r
+                    $trusted_min_wh\r
+                );\r
+        $this->info['max-width'] =\r
+        $this->info['max-height'] =\r
+            $max === null ?\r
+                $trusted_max_wh :\r
+                new HTMLPurifier_AttrDef_Switch(\r
+                    'img',\r
+                    // For img tags:\r
+                    new HTMLPurifier_AttrDef_CSS_Composite(\r
+                        array(\r
+                            new HTMLPurifier_AttrDef_CSS_Length('0', $max),\r
+                            new HTMLPurifier_AttrDef_Enum(array('none', 'initial', 'inherit'))\r
+                        )\r
+                    ),\r
+                    // For everyone else:\r
+                    $trusted_max_wh\r
+                );\r
 \r
         $this->info['text-decoration'] = new HTMLPurifier_AttrDef_CSS_TextDecoration();\r
 \r
index 0d89bc2..0a7e09f 100644 (file)
@@ -21,7 +21,7 @@ class HTMLPurifier_Config
      * HTML Purifier's version\r
      * @type string\r
      */\r
-    public $version = '4.10.0';\r
+    public $version = '4.12.0';\r
 \r
     /**\r
      * Whether or not to automatically finalize\r
@@ -890,7 +890,7 @@ class HTMLPurifier_Config
             // zip(tail(trace), trace) -- but PHP is not Haskell har har\r
             for ($i = 0, $c = count($trace); $i < $c - 1; $i++) {\r
                 // XXX this is not correct on some versions of HTML Purifier\r
-                if ($trace[$i + 1]['class'] === 'HTMLPurifier_Config') {\r
+                if (isset($trace[$i + 1]['class']) && $trace[$i + 1]['class'] === 'HTMLPurifier_Config') {\r
                     continue;\r
                 }\r
                 $frame = $trace[$i];\r
index cc8f471..446cdf3 100644 (file)
@@ -100,7 +100,7 @@ class HTMLPurifier_ConfigSchema
      * @param string $key Name of directive\r
      * @param mixed $default Default value of directive\r
      * @param string $type Allowed type of the directive. See\r
-     *      HTMLPurifier_DirectiveDef::$type for allowed values\r
+     *      HTMLPurifier_VarParser::$types for allowed values\r
      * @param bool $allow_null Whether or not to allow null values\r
      */\r
     public function add($key, $default, $type, $allow_null)\r
index 371e948..47bd259 100644 (file)
Binary files a/lib/htmlpurifier/HTMLPurifier/ConfigSchema/schema.ser and b/lib/htmlpurifier/HTMLPurifier/ConfigSchema/schema.ser differ
index 5f355d6..e557ad2 100644 (file)
@@ -6,7 +6,7 @@ DEFAULT: false
 <p>\r
   When enabled, HTML Purifier will treat any elements that contain only\r
   non-breaking spaces as well as regular whitespace as empty, and remove\r
-  them when %AutoForamt.RemoveEmpty is enabled.\r
+  them when %AutoFormat.RemoveEmpty is enabled.\r
 </p>\r
 <p>\r
   See %AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions for a list of elements\r
diff --git a/lib/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.AllowParseManyTags.txt b/lib/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.AllowParseManyTags.txt
new file mode 100644 (file)
index 0000000..b4b9b10
--- /dev/null
@@ -0,0 +1,12 @@
+Core.AllowParseManyTags\r
+TYPE: bool\r
+DEFAULT: false\r
+VERSION: 4.10.1\r
+--DESCRIPTION--\r
+<p>\r
+    This directive allows parsing of many nested tags.\r
+    If you set true, relaxes any hardcoded limit from the parser.\r
+    However, in that case it may cause a Dos attack.\r
+    Be careful when enabling it.\r
+</p>\r
+--# vim: et sw=4 sts=4\r
index f782398..fc10086 100644 (file)
@@ -3,23 +3,154 @@ TYPE: hash
 VERSION: 2.0.0\r
 --DEFAULT--\r
 array (\r
-  'maroon' => '#800000',\r
-  'red' => '#FF0000',\r
-  'orange' => '#FFA500',\r
-  'yellow' => '#FFFF00',\r
-  'olive' => '#808000',\r
-  'purple' => '#800080',\r
+  'aliceblue' => '#F0F8FF',\r
+  'antiquewhite' => '#FAEBD7',\r
+  'aqua' => '#00FFFF',\r
+  'aquamarine' => '#7FFFD4',\r
+  'azure' => '#F0FFFF',\r
+  'beige' => '#F5F5DC',\r
+  'bisque' => '#FFE4C4',\r
+  'black' => '#000000',\r
+  'blanchedalmond' => '#FFEBCD',\r
+  'blue' => '#0000FF',\r
+  'blueviolet' => '#8A2BE2',\r
+  'brown' => '#A52A2A',\r
+  'burlywood' => '#DEB887',\r
+  'cadetblue' => '#5F9EA0',\r
+  'chartreuse' => '#7FFF00',\r
+  'chocolate' => '#D2691E',\r
+  'coral' => '#FF7F50',\r
+  'cornflowerblue' => '#6495ED',\r
+  'cornsilk' => '#FFF8DC',\r
+  'crimson' => '#DC143C',\r
+  'cyan' => '#00FFFF',\r
+  'darkblue' => '#00008B',\r
+  'darkcyan' => '#008B8B',\r
+  'darkgoldenrod' => '#B8860B',\r
+  'darkgray' => '#A9A9A9',\r
+  'darkgrey' => '#A9A9A9',\r
+  'darkgreen' => '#006400',\r
+  'darkkhaki' => '#BDB76B',\r
+  'darkmagenta' => '#8B008B',\r
+  'darkolivegreen' => '#556B2F',\r
+  'darkorange' => '#FF8C00',\r
+  'darkorchid' => '#9932CC',\r
+  'darkred' => '#8B0000',\r
+  'darksalmon' => '#E9967A',\r
+  'darkseagreen' => '#8FBC8F',\r
+  'darkslateblue' => '#483D8B',\r
+  'darkslategray' => '#2F4F4F',\r
+  'darkslategrey' => '#2F4F4F',\r
+  'darkturquoise' => '#00CED1',\r
+  'darkviolet' => '#9400D3',\r
+  'deeppink' => '#FF1493',\r
+  'deepskyblue' => '#00BFFF',\r
+  'dimgray' => '#696969',\r
+  'dimgrey' => '#696969',\r
+  'dodgerblue' => '#1E90FF',\r
+  'firebrick' => '#B22222',\r
+  'floralwhite' => '#FFFAF0',\r
+  'forestgreen' => '#228B22',\r
   'fuchsia' => '#FF00FF',\r
-  'white' => '#FFFFFF',\r
-  'lime' => '#00FF00',\r
+  'gainsboro' => '#DCDCDC',\r
+  'ghostwhite' => '#F8F8FF',\r
+  'gold' => '#FFD700',\r
+  'goldenrod' => '#DAA520',\r
+  'gray' => '#808080',\r
+  'grey' => '#808080',\r
   'green' => '#008000',\r
+  'greenyellow' => '#ADFF2F',\r
+  'honeydew' => '#F0FFF0',\r
+  'hotpink' => '#FF69B4',\r
+  'indianred' => '#CD5C5C',\r
+  'indigo' => '#4B0082',\r
+  'ivory' => '#FFFFF0',\r
+  'khaki' => '#F0E68C',\r
+  'lavender' => '#E6E6FA',\r
+  'lavenderblush' => '#FFF0F5',\r
+  'lawngreen' => '#7CFC00',\r
+  'lemonchiffon' => '#FFFACD',\r
+  'lightblue' => '#ADD8E6',\r
+  'lightcoral' => '#F08080',\r
+  'lightcyan' => '#E0FFFF',\r
+  'lightgoldenrodyellow' => '#FAFAD2',\r
+  'lightgray' => '#D3D3D3',\r
+  'lightgrey' => '#D3D3D3',\r
+  'lightgreen' => '#90EE90',\r
+  'lightpink' => '#FFB6C1',\r
+  'lightsalmon' => '#FFA07A',\r
+  'lightseagreen' => '#20B2AA',\r
+  'lightskyblue' => '#87CEFA',\r
+  'lightslategray' => '#778899',\r
+  'lightslategrey' => '#778899',\r
+  'lightsteelblue' => '#B0C4DE',\r
+  'lightyellow' => '#FFFFE0',\r
+  'lime' => '#00FF00',\r
+  'limegreen' => '#32CD32',\r
+  'linen' => '#FAF0E6',\r
+  'magenta' => '#FF00FF',\r
+  'maroon' => '#800000',\r
+  'mediumaquamarine' => '#66CDAA',\r
+  'mediumblue' => '#0000CD',\r
+  'mediumorchid' => '#BA55D3',\r
+  'mediumpurple' => '#9370DB',\r
+  'mediumseagreen' => '#3CB371',\r
+  'mediumslateblue' => '#7B68EE',\r
+  'mediumspringgreen' => '#00FA9A',\r
+  'mediumturquoise' => '#48D1CC',\r
+  'mediumvioletred' => '#C71585',\r
+  'midnightblue' => '#191970',\r
+  'mintcream' => '#F5FFFA',\r
+  'mistyrose' => '#FFE4E1',\r
+  'moccasin' => '#FFE4B5',\r
+  'navajowhite' => '#FFDEAD',\r
   'navy' => '#000080',\r
-  'blue' => '#0000FF',\r
-  'aqua' => '#00FFFF',\r
-  'teal' => '#008080',\r
-  'black' => '#000000',\r
+  'oldlace' => '#FDF5E6',\r
+  'olive' => '#808000',\r
+  'olivedrab' => '#6B8E23',\r
+  'orange' => '#FFA500',\r
+  'orangered' => '#FF4500',\r
+  'orchid' => '#DA70D6',\r
+  'palegoldenrod' => '#EEE8AA',\r
+  'palegreen' => '#98FB98',\r
+  'paleturquoise' => '#AFEEEE',\r
+  'palevioletred' => '#DB7093',\r
+  'papayawhip' => '#FFEFD5',\r
+  'peachpuff' => '#FFDAB9',\r
+  'peru' => '#CD853F',\r
+  'pink' => '#FFC0CB',\r
+  'plum' => '#DDA0DD',\r
+  'powderblue' => '#B0E0E6',\r
+  'purple' => '#800080',\r
+  'rebeccapurple' => '#663399',\r
+  'red' => '#FF0000',\r
+  'rosybrown' => '#BC8F8F',\r
+  'royalblue' => '#4169E1',\r
+  'saddlebrown' => '#8B4513',\r
+  'salmon' => '#FA8072',\r
+  'sandybrown' => '#F4A460',\r
+  'seagreen' => '#2E8B57',\r
+  'seashell' => '#FFF5EE',\r
+  'sienna' => '#A0522D',\r
   'silver' => '#C0C0C0',\r
-  'gray' => '#808080',\r
+  'skyblue' => '#87CEEB',\r
+  'slateblue' => '#6A5ACD',\r
+  'slategray' => '#708090',\r
+  'slategrey' => '#708090',\r
+  'snow' => '#FFFAFA',\r
+  'springgreen' => '#00FF7F',\r
+  'steelblue' => '#4682B4',\r
+  'tan' => '#D2B48C',\r
+  'teal' => '#008080',\r
+  'thistle' => '#D8BFD8',\r
+  'tomato' => '#FF6347',\r
+  'turquoise' => '#40E0D0',\r
+  'violet' => '#EE82EE',\r
+  'wheat' => '#F5DEB3',\r
+  'white' => '#FFFFFF',\r
+  'whitesmoke' => '#F5F5F5',\r
+  'yellow' => '#FFFF00',\r
+  'yellowgreen' => '#9ACD32'\r
 )\r
 --DESCRIPTION--\r
 \r
index 41059e5..4e44fad 100644 (file)
@@ -118,7 +118,7 @@ class HTMLPurifier_EntityParser
         $entity = $matches[0];\r
         $hex_part = @$matches[1];\r
         $dec_part = @$matches[2];\r
-        $named_part = empty($matches[3]) ? @$matches[4] : $matches[3];\r
+        $named_part = empty($matches[3]) ? (empty($matches[4]) ? "" : $matches[4]) : $matches[3];\r
         if ($hex_part !== NULL && $hex_part !== "") {\r
             return HTMLPurifier_Encoder::unichr(hexdec($hex_part));\r
         } elseif ($dec_part !== NULL && $dec_part !== "") {\r
index 9877f9e..a94b8ea 100644 (file)
@@ -132,9 +132,9 @@ class HTMLPurifier_HTMLModule
      * @param string $element Name of element to add\r
      * @param string|bool $type What content set should element be registered to?\r
      *              Set as false to skip this step.\r
-     * @param string $contents Allowed children in form of:\r
+     * @param string|HTMLPurifier_ChildDef $contents Allowed children in form of:\r
      *              "$content_model_type: $content_model"\r
-     * @param array $attr_includes What attribute collections to register to\r
+     * @param array|string $attr_includes What attribute collections to register to\r
      *              element?\r
      * @param array $attr What unique attributes does the element define?\r
      * @see HTMLPurifier_ElementDef:: for in-depth descriptions of these parameters.\r
index 6e9113c..22669a6 100644 (file)
@@ -23,13 +23,13 @@ class HTMLPurifier_HTMLModule_SafeScripting extends HTMLPurifier_HTMLModule
         $script = $this->addElement(\r
             'script',\r
             'Inline',\r
-            'Empty',\r
+            'Optional:', // Not `Empty` to not allow to autoclose the <script /> tag @see https://www.w3.org/TR/html4/interact/scripts.html\r
             null,\r
             array(\r
                 // While technically not required by the spec, we're forcing\r
                 // it to this value.\r
                 'type' => 'Enum#text/javascript',\r
-                'src*' => new HTMLPurifier_AttrDef_Enum(array_keys($allowed))\r
+                'src*' => new HTMLPurifier_AttrDef_Enum(array_keys($allowed), /*case sensitive*/ true)\r
             )\r
         );\r
         $script->attr_transform_pre[] =\r
index e6a174a..8328054 100644 (file)
@@ -8,4 +8,6 @@ $messages = array(
     'HTMLPurifier' => 'HTML Purifier X'\r
 );\r
 \r
+$errorNames = array();\r
+\r
 // vim: et sw=4 sts=4\r
index ed8560f..b6d1c99 100644 (file)
@@ -9,4 +9,6 @@ $messages = array(
     'HTMLPurifier' => 'HTML Purifier XNone'\r
 );\r
 \r
+$errorNames = array();\r
+\r
 // vim: et sw=4 sts=4\r
index de35258..ffa167c 100644 (file)
@@ -68,8 +68,18 @@ class HTMLPurifier_Lexer_DOMLex extends HTMLPurifier_Lexer
         $doc = new DOMDocument();\r
         $doc->encoding = 'UTF-8'; // theoretically, the above has this covered\r
 \r
+        $options = 0;\r
+        if ($config->get('Core.AllowParseManyTags') && defined('LIBXML_PARSEHUGE')) {\r
+            $options |= LIBXML_PARSEHUGE;\r
+        }\r
+\r
         set_error_handler(array($this, 'muteErrorHandler'));\r
-        $doc->loadHTML($html);\r
+        // loadHTML() fails on PHP 5.3 when second parameter is given\r
+        if ($options) {\r
+            $doc->loadHTML($html, $options);\r
+        } else {\r
+            $doc->loadHTML($html);\r
+        }\r
         restore_error_handler();\r
 \r
         $body = $doc->getElementsByTagName('html')->item(0)-> // <html>\r
@@ -133,11 +143,11 @@ class HTMLPurifier_Lexer_DOMLex extends HTMLPurifier_Lexer
      */\r
     protected function getTagName($node)\r
     {\r
-        if (property_exists($node, 'tagName')) {\r
+        if (isset($node->tagName)) {\r
             return $node->tagName;\r
-        } else if (property_exists($node, 'nodeName')) {\r
+        } else if (isset($node->nodeName)) {\r
             return $node->nodeName;\r
-        } else if (property_exists($node, 'localName')) {\r
+        } else if (isset($node->localName)) {\r
             return $node->localName;\r
         }\r
         return null;\r
@@ -150,11 +160,11 @@ class HTMLPurifier_Lexer_DOMLex extends HTMLPurifier_Lexer
      */\r
     protected function getData($node)\r
     {\r
-        if (property_exists($node, 'data')) {\r
+        if (isset($node->data)) {\r
             return $node->data;\r
-        } else if (property_exists($node, 'nodeValue')) {\r
+        } else if (isset($node->nodeValue)) {\r
             return $node->nodeValue;\r
-        } else if (property_exists($node, 'textContent')) {\r
+        } else if (isset($node->textContent)) {\r
             return $node->textContent;\r
         }\r
         return null;\r
index 3bc4173..8897002 100644 (file)
@@ -48,7 +48,7 @@ class HTMLPurifier_Printer_ConfigForm extends HTMLPurifier_Printer
         $this->compress = $compress;\r
         // initialize sub-printers\r
         $this->fields[0] = new HTMLPurifier_Printer_ConfigForm_default();\r
-        $this->fields[HTMLPurifier_VarParser::BOOL] = new HTMLPurifier_Printer_ConfigForm_bool();\r
+        $this->fields[HTMLPurifier_VarParser::C_BOOL] = new HTMLPurifier_Printer_ConfigForm_bool();\r
     }\r
 \r
     /**\r
@@ -339,7 +339,7 @@ class HTMLPurifier_Printer_ConfigForm_default extends HTMLPurifier_Printer
                     $value = '';\r
             }\r
         }\r
-        if ($type === HTMLPurifier_VarParser::MIXED) {\r
+        if ($type === HTMLPurifier_VarParser::C_MIXED) {\r
             return 'Not supported';\r
             $value = serialize($value);\r
         }\r
index 4bf7771..6a9ef71 100644 (file)
@@ -7,34 +7,34 @@
 class HTMLPurifier_VarParser\r
 {\r
 \r
-    const STRING = 1;\r
+    const C_STRING = 1;\r
     const ISTRING = 2;\r
     const TEXT = 3;\r
     const ITEXT = 4;\r
-    const INT = 5;\r
-    const FLOAT = 6;\r
-    const BOOL = 7;\r
+    const C_INT = 5;\r
+    const C_FLOAT = 6;\r
+    const C_BOOL = 7;\r
     const LOOKUP = 8;\r
     const ALIST = 9;\r
     const HASH = 10;\r
-    const MIXED = 11;\r
+    const C_MIXED = 11;\r
 \r
     /**\r
      * Lookup table of allowed types. Mainly for backwards compatibility, but\r
      * also convenient for transforming string type names to the integer constants.\r
      */\r
     public static $types = array(\r
-        'string' => self::STRING,\r
+        'string' => self::C_STRING,\r
         'istring' => self::ISTRING,\r
         'text' => self::TEXT,\r
         'itext' => self::ITEXT,\r
-        'int' => self::INT,\r
-        'float' => self::FLOAT,\r
-        'bool' => self::BOOL,\r
+        'int' => self::C_INT,\r
+        'float' => self::C_FLOAT,\r
+        'bool' => self::C_BOOL,\r
         'lookup' => self::LOOKUP,\r
         'list' => self::ALIST,\r
         'hash' => self::HASH,\r
-        'mixed' => self::MIXED\r
+        'mixed' => self::C_MIXED\r
     );\r
 \r
     /**\r
@@ -42,7 +42,7 @@ class HTMLPurifier_VarParser
      * allowed value lists.\r
      */\r
     public static $stringTypes = array(\r
-        self::STRING => true,\r
+        self::C_STRING => true,\r
         self::ISTRING => true,\r
         self::TEXT => true,\r
         self::ITEXT => true,\r
@@ -74,7 +74,7 @@ class HTMLPurifier_VarParser
         // These are basic checks, to make sure nothing horribly wrong\r
         // happened in our implementations.\r
         switch ($type) {\r
-            case (self::STRING):\r
+            case (self::C_STRING):\r
             case (self::ISTRING):\r
             case (self::TEXT):\r
             case (self::ITEXT):\r
@@ -85,17 +85,17 @@ class HTMLPurifier_VarParser
                     $var = strtolower($var);\r
                 }\r
                 return $var;\r
-            case (self::INT):\r
+            case (self::C_INT):\r
                 if (!is_int($var)) {\r
                     break;\r
                 }\r
                 return $var;\r
-            case (self::FLOAT):\r
+            case (self::C_FLOAT):\r
                 if (!is_float($var)) {\r
                     break;\r
                 }\r
                 return $var;\r
-            case (self::BOOL):\r
+            case (self::C_BOOL):\r
                 if (!is_bool($var)) {\r
                     break;\r
                 }\r
@@ -119,7 +119,7 @@ class HTMLPurifier_VarParser
                     }\r
                 }\r
                 return $var;\r
-            case (self::MIXED):\r
+            case (self::C_MIXED):\r
                 return $var;\r
             default:\r
                 $this->errorInconsistent(get_class($this), $type);\r
index b2ed860..4ec648b 100644 (file)
@@ -23,23 +23,23 @@ class HTMLPurifier_VarParser_Flexible extends HTMLPurifier_VarParser
             // Note: if code "breaks" from the switch, it triggers a generic\r
             // exception to be thrown. Specific errors can be specifically\r
             // done here.\r
-            case self::MIXED:\r
+            case self::C_MIXED:\r
             case self::ISTRING:\r
-            case self::STRING:\r
+            case self::C_STRING:\r
             case self::TEXT:\r
             case self::ITEXT:\r
                 return $var;\r
-            case self::INT:\r
+            case self::C_INT:\r
                 if (is_string($var) && ctype_digit($var)) {\r
                     $var = (int)$var;\r
                 }\r
                 return $var;\r
-            case self::FLOAT:\r
+            case self::C_FLOAT:\r
                 if ((is_string($var) && is_numeric($var)) || is_int($var)) {\r
                     $var = (float)$var;\r
                 }\r
                 return $var;\r
-            case self::BOOL:\r
+            case self::C_BOOL:\r
                 if (is_int($var) && ($var === 0 || $var === 1)) {\r
                     $var = (bool)$var;\r
                 } elseif (is_string($var)) {\r
index 1195367..6935b70 100644 (file)
@@ -1,23 +1,20 @@
-Description of HTML Purifier v4.10.0 library import into Moodle
+Description of HTML Purifier v4.12.0 library import into Moodle
 
 * Make new (or delete contents of) /lib/htmlpurifier/
 * Copy everything from /library/ folder to /lib/htmlpurifier/
 * Copy CREDITS, LICENSE from root folder to /lib/htmlpurifier/
 * Delete unused files:
     HTMLPurifier.auto.php
-    HTMLPurifier.func.php
-    HTMLPurifier.kses.php
     HTMLPurifier.autoload.php
+    HTMLPurifier.autoload-legacy.php
     HTMLPurifier.composer.php
+    HTMLPurifier.func.php
     HTMLPurifier.includes.php
+    HTMLPurifier.kses.php
     HTMLPurifier.path.php
-    HTMLPurifier.autoload-legacy.php
 * add locallib.php with Moodle specific extensions to /lib/htmlpurifier/
 * add this readme_moodle.txt to /lib/htmlpurifier/
 
 Modifications:
 (verify if we need to apply them on every upgrade, remove when not needed)
-* MDL-60337 use correct IDN variant for converting domain names to ascii
-  Check status of https://github.com/ezyang/htmlpurifier/pull/148
-* MDL-67030 applied https://github.com/ezyang/htmlpurifier/pull/224 towards
-  php74 compatibility.
+(No modification was needed)
\ No newline at end of file
index b7fd57b..9064aa2 100644 (file)
@@ -39,7 +39,7 @@
     <location>htmlpurifier</location>
     <name>HTML Purifier</name>
     <license>LGPL</license>
-    <version>4.10.0</version>
+    <version>4.12.0</version>
     <licenseversion>2.1+</licenseversion>
   </library>
   <library>