Sfoglia il codice sorgente

Removing old htmlpurifier

Julio Montoya 12 anni fa
parent
commit
8ec0c52249
100 ha cambiato i file con 0 aggiunte e 5977 eliminazioni
  1. 0 24
      main/inc/lib/htmlpurifier/README
  2. 0 1
      main/inc/lib/htmlpurifier/VERSION
  3. 0 64
      main/inc/lib/htmlpurifier/configdoc/generate.php
  4. 0 6
      main/inc/lib/htmlpurifier/configdoc/index.html
  5. 0 6
      main/inc/lib/htmlpurifier/configdoc/styles/index.html
  6. 0 44
      main/inc/lib/htmlpurifier/configdoc/styles/plain.css
  7. 0 253
      main/inc/lib/htmlpurifier/configdoc/styles/plain.xsl
  8. 0 69
      main/inc/lib/htmlpurifier/configdoc/types.xml
  9. 0 472
      main/inc/lib/htmlpurifier/configdoc/usage.xml
  10. 0 86
      main/inc/lib/htmlpurifier/extras/ConfigDoc/HTMLXSLTProcessor.php
  11. 0 6
      main/inc/lib/htmlpurifier/extras/ConfigDoc/index.html
  12. 0 157
      main/inc/lib/htmlpurifier/extras/FSTools.php
  13. 0 126
      main/inc/lib/htmlpurifier/extras/FSTools/File.php
  14. 0 6
      main/inc/lib/htmlpurifier/extras/FSTools/index.html
  15. 0 11
      main/inc/lib/htmlpurifier/extras/HTMLPurifierExtras.auto.php
  16. 0 25
      main/inc/lib/htmlpurifier/extras/HTMLPurifierExtras.autoload.php
  17. 0 29
      main/inc/lib/htmlpurifier/extras/HTMLPurifierExtras.php
  18. 0 32
      main/inc/lib/htmlpurifier/extras/README
  19. 0 6
      main/inc/lib/htmlpurifier/extras/index.html
  20. 0 6
      main/inc/lib/htmlpurifier/index.html
  21. 0 11
      main/inc/lib/htmlpurifier/library/HTMLPurifier.auto.php
  22. 0 26
      main/inc/lib/htmlpurifier/library/HTMLPurifier.autoload.php
  23. 0 23
      main/inc/lib/htmlpurifier/library/HTMLPurifier.func.php
  24. 0 212
      main/inc/lib/htmlpurifier/library/HTMLPurifier.includes.php
  25. 0 30
      main/inc/lib/htmlpurifier/library/HTMLPurifier.kses.php
  26. 0 11
      main/inc/lib/htmlpurifier/library/HTMLPurifier.path.php
  27. 0 237
      main/inc/lib/htmlpurifier/library/HTMLPurifier.php
  28. 0 206
      main/inc/lib/htmlpurifier/library/HTMLPurifier.safe-includes.php
  29. 0 128
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrCollections.php
  30. 0 123
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef.php
  31. 0 87
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS.php
  32. 0 21
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/AlphaValue.php
  33. 0 87
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Background.php
  34. 0 133
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php
  35. 0 43
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Border.php
  36. 0 78
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Color.php
  37. 0 38
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Composite.php
  38. 0 28
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php
  39. 0 54
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Filter.php
  40. 0 149
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Font.php
  41. 0 72
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/FontFamily.php
  42. 0 40
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php
  43. 0 47
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Length.php
  44. 0 78
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ListStyle.php
  45. 0 58
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Multiple.php
  46. 0 69
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Number.php
  47. 0 40
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Percentage.php
  48. 0 38
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/TextDecoration.php
  49. 0 52
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/URI.php
  50. 0 6
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/index.html
  51. 0 65
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/Enum.php
  52. 0 28
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Bool.php
  53. 0 34
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Class.php
  54. 0 32
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Color.php
  55. 0 21
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/FrameTarget.php
  56. 0 70
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/ID.php
  57. 0 41
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Length.php
  58. 0 53
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/LinkTypes.php
  59. 0 41
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/MultiLength.php
  60. 0 52
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Nmtokens.php
  61. 0 48
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Pixels.php
  62. 0 6
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/index.html
  63. 0 73
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/Integer.php
  64. 0 73
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/Lang.php
  65. 0 34
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/Switch.php
  66. 0 15
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/Text.php
  67. 0 77
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/URI.php
  68. 0 17
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email.php
  69. 0 21
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php
  70. 0 6
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email/index.html
  71. 0 68
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php
  72. 0 39
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv4.php
  73. 0 99
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv6.php
  74. 0 6
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/index.html
  75. 0 6
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/index.html
  76. 0 56
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform.php
  77. 0 23
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/Background.php
  78. 0 19
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/BdoDir.php
  79. 0 23
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/BgColor.php
  80. 0 36
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/BoolToCSS.php
  81. 0 18
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/Border.php
  82. 0 58
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/EnumToCSS.php
  83. 0 43
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgRequired.php
  84. 0 44
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgSpace.php
  85. 0 40
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/Input.php
  86. 0 28
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/Lang.php
  87. 0 27
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/Length.php
  88. 0 21
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/Name.php
  89. 0 27
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/NameSync.php
  90. 0 20
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeEmbed.php
  91. 0 16
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeObject.php
  92. 0 67
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeParam.php
  93. 0 16
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/ScriptRequired.php
  94. 0 18
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/Textarea.php
  95. 0 6
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/index.html
  96. 0 77
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTypes.php
  97. 0 162
      main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrValidator.php
  98. 0 104
      main/inc/lib/htmlpurifier/library/HTMLPurifier/Bootstrap.php
  99. 0 301
      main/inc/lib/htmlpurifier/library/HTMLPurifier/CSSDefinition.php
  100. 0 48
      main/inc/lib/htmlpurifier/library/HTMLPurifier/ChildDef.php

+ 0 - 24
main/inc/lib/htmlpurifier/README

@@ -1,24 +0,0 @@
-
-README
-    All about HTML Purifier
-
-HTML Purifier is an HTML filtering solution that uses a unique combination
-of robust whitelists and agressive parsing to ensure that not only are
-XSS attacks thwarted, but the resulting HTML is standards compliant.
-
-HTML Purifier is oriented towards richly formatted documents from
-untrusted sources that require CSS and a full tag-set.  This library can
-be configured to accept a more restrictive set of tags, but it won't be
-as efficient as more bare-bones parsers. It will, however, do the job
-right, which may be more important.
-
-Places to go:
-
-* See INSTALL for a quick installation guide
-* See docs/ for developer-oriented documentation, code examples and
-  an in-depth installation guide.
-* See WYSIWYG for information on editors like TinyMCE and FCKeditor
-
-HTML Purifier can be found on the web at: http://htmlpurifier.org/
-
-    vim: et sw=4 sts=4

+ 0 - 1
main/inc/lib/htmlpurifier/VERSION

@@ -1 +0,0 @@
-4.2.0

+ 0 - 64
main/inc/lib/htmlpurifier/configdoc/generate.php

@@ -1,64 +0,0 @@
-<?php
-
-/**
- * Generates XML and HTML documents describing configuration.
- * @note PHP 5.2+ only!
- */
-
-/*
-TODO:
-- make XML format richer
-- extend XSLT transformation (see the corresponding XSLT file)
-- allow generation of packaged docs that can be easily moved
-- multipage documentation
-- determine how to multilingualize
-- add blurbs to ToC
-*/
-
-if (version_compare(PHP_VERSION, '5.2', '<')) exit('PHP 5.2+ required.');
-error_reporting(E_ALL | E_STRICT);
-
-chdir(dirname(__FILE__));
-
-// load dual-libraries
-require_once '../extras/HTMLPurifierExtras.auto.php';
-require_once '../library/HTMLPurifier.auto.php';
-
-// setup HTML Purifier singleton
-HTMLPurifier::getInstance(array(
-    'AutoFormat.PurifierLinkify' => true
-));
-
-$builder = new HTMLPurifier_ConfigSchema_InterchangeBuilder();
-$interchange = new HTMLPurifier_ConfigSchema_Interchange();
-$builder->buildDir($interchange);
-$loader = dirname(__FILE__) . '/../config-schema.php';
-if (file_exists($loader)) include $loader;
-$interchange->validate();
-
-$style = 'plain'; // use $_GET in the future, careful to validate!
-$configdoc_xml = 'configdoc.xml';
-
-$xml_builder = new HTMLPurifier_ConfigSchema_Builder_Xml();
-$xml_builder->openURI($configdoc_xml);
-$xml_builder->build($interchange);
-unset($xml_builder); // free handle
-
-$xslt = new ConfigDoc_HTMLXSLTProcessor();
-$xslt->importStylesheet(dirname(__FILE__) . "/styles/$style.xsl");
-$output = $xslt->transformToHTML($configdoc_xml);
-
-if (!$output) {
-    echo "Error in generating files\n";
-    exit(1);
-}
-
-// write out
-file_put_contents("$style.html", $output);
-
-if (php_sapi_name() != 'cli') {
-    // output (instant feedback if it's a browser)
-    echo $output;
-} else {
-    echo 'Files generated successfully.';
-}

+ 0 - 6
main/inc/lib/htmlpurifier/configdoc/index.html

@@ -1,6 +0,0 @@
-<html>
-<head>
-</head>
-<body>
-</body>
-</html>

+ 0 - 6
main/inc/lib/htmlpurifier/configdoc/styles/index.html

@@ -1,6 +0,0 @@
-<html>
-<head>
-</head>
-<body>
-</body>
-</html>

+ 0 - 44
main/inc/lib/htmlpurifier/configdoc/styles/plain.css

@@ -1,44 +0,0 @@
-
-body {margin:0;padding:0;}
-#content {
-  margin:1em auto;
-  max-width: 47em;
-  width: expression(document.body.clientWidth >
-    85 * parseInt(document.body.currentStyle.fontSize) ?
-    "54em": "auto");
-}
-
-table {border-collapse:collapse;}
-table td, table th {padding:0.2em;}
-
-table.constraints {margin:0 0 1em;}
-table.constraints th {
-  text-align:right;padding-left:0.4em;padding-right:0.4em;background:#EEE;
-  width:8em;vertical-align:top;}
-table.constraints td {padding-right:0.4em; padding-left: 1em;}
-table.constraints td ul {padding:0; margin:0; list-style:none;}
-table.constraints td pre {margin:0;}
-
-#tocContainer {position:relative;}
-#toc {list-style-type:none; font-weight:bold; font-size:1em; margin-bottom:1em;}
-#toc li {position:relative; line-height: 1.2em;}
-#toc .col-2 {margin-left:50%;}
-#toc .col-l {float:left;}
-#toc ul {list-style-type:disc; font-weight:normal; padding-bottom:1.2em;}
-
-.description p {margin-top:0;margin-bottom:1em;}
-
-#library, h1 {text-align:center; font-family:Garamond, serif;
-  font-variant:small-caps;}
-#library {font-size:1em;}
-h1 {margin-top:0;}
-h2 {border-bottom:1px solid #CCC; font-family:sans-serif; font-weight:normal;
-    font-size:1.3em; clear:both;}
-h3 {font-family:sans-serif; font-size:1.1em; font-weight:bold; }
-h4 {font-family:sans-serif; font-size:0.9em; font-weight:bold; }
-
-.deprecated {color: #CCC;}
-.deprecated table.constraints th {background:#FFF;}
-.deprecated-notice {color: #000; text-align:center; margin-bottom: 1em;}
-
-/* vim: et sw=4 sts=4 */

+ 0 - 253
main/inc/lib/htmlpurifier/configdoc/styles/plain.xsl

@@ -1,253 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet
-    version     = "1.0"
-    xmlns       = "http://www.w3.org/1999/xhtml"
-    xmlns:xsl   = "http://www.w3.org/1999/XSL/Transform"
->
-    <xsl:output
-        method      = "xml"
-        encoding    = "UTF-8"
-        doctype-public = "-//W3C//DTD XHTML 1.0 Transitional//EN"
-        doctype-system = "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
-        indent = "no"
-        media-type = "text/html"
-    />
-    <xsl:param name="css" select="'styles/plain.css'"/>
-    <xsl:param name="title" select="'Configuration Documentation'"/>
-
-    <xsl:variable name="typeLookup"  select="document('../types.xml')/types" />
-    <xsl:variable name="usageLookup" select="document('../usage.xml')/usage" />
-
-    <!-- Twiddle this variable to get the columns as even as possible -->
-    <xsl:variable name="maxNumberAdjust" select="2" />
-
-    <xsl:template match="/">
-        <html lang="en" xml:lang="en">
-            <head>
-                <title><xsl:value-of select="$title" /> - <xsl:value-of select="/configdoc/title" /></title>
-                <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
-                <link rel="stylesheet" type="text/css" href="{$css}" />
-            </head>
-            <body>
-                <div id="content">
-                    <div id="library"><xsl:value-of select="/configdoc/title" /></div>
-                    <h1><xsl:value-of select="$title" /></h1>
-                    <div id="tocContainer">
-                        <h2>Table of Contents</h2>
-                        <ul id="toc">
-                            <xsl:apply-templates mode="toc">
-                                <xsl:with-param name="overflowNumber" select="round(count(/configdoc/namespace) div 2) + $maxNumberAdjust" />
-                            </xsl:apply-templates>
-                        </ul>
-                    </div>
-                    <div id="typesContainer">
-                        <h2>Types</h2>
-                        <xsl:apply-templates select="$typeLookup" mode="types" />
-                    </div>
-                    <xsl:apply-templates />
-                </div>
-            </body>
-        </html>
-    </xsl:template>
-
-    <xsl:template match="type" mode="types">
-        <div class="type-block">
-            <xsl:attribute name="id">type-<xsl:value-of select="@id" /></xsl:attribute>
-            <h3><code><xsl:value-of select="@id" /></code>: <xsl:value-of select="@name" /></h3>
-            <div class="type-description">
-                <xsl:copy-of xmlns:xhtml="http://www.w3.org/1999/xhtml" select="xhtml:div/node()" />
-            </div>
-        </div>
-    </xsl:template>
-
-    <xsl:template match="title" mode="toc" />
-    <xsl:template match="namespace" mode="toc">
-        <xsl:param name="overflowNumber" />
-        <xsl:variable name="number"><xsl:number level="single" /></xsl:variable>
-        <xsl:variable name="directiveNumber"><xsl:number level="any" count="directive" /></xsl:variable>
-        <xsl:if test="count(directive)&gt;0">
-            <li>
-                <!-- BEGIN multicolumn code -->
-                <xsl:if test="$number &gt;= $overflowNumber">
-                    <xsl:attribute name="class">col-2</xsl:attribute>
-                </xsl:if>
-                <xsl:if test="$number = $overflowNumber">
-                    <xsl:attribute name="style">margin-top:-<xsl:value-of select="($number * 2 + $directiveNumber - 3) * 1.2" />em</xsl:attribute>
-                </xsl:if>
-                <!-- END multicolumn code -->
-                <a href="#{@id}"><xsl:value-of select="name" /></a>
-                <ul>
-                    <xsl:apply-templates select="directive" mode="toc">
-                        <xsl:with-param name="overflowNumber" select="$overflowNumber" />
-                    </xsl:apply-templates>
-                </ul>
-                <xsl:if test="$number + 1 = $overflowNumber">
-                    <div class="col-l" />
-                </xsl:if>
-            </li>
-        </xsl:if>
-    </xsl:template>
-    <xsl:template match="directive" mode="toc">
-        <xsl:variable name="number">
-            <xsl:number level="any" count="directive|namespace" />
-        </xsl:variable>
-        <xsl:if test="not(deprecated)">
-            <li>
-                <a href="#{@id}"><xsl:value-of select="name" /></a>
-            </li>
-        </xsl:if>
-    </xsl:template>
-
-    <xsl:template match="title" />
-
-    <xsl:template match="namespace">
-        <div class="namespace">
-            <xsl:apply-templates />
-            <xsl:if test="count(directive)=0">
-                <p>No configuration directives defined for this namespace.</p>
-            </xsl:if>
-        </div>
-    </xsl:template>
-    <xsl:template match="namespace/name">
-        <h2 id="{../@id}"><xsl:value-of select="." /></h2>
-    </xsl:template>
-    <xsl:template match="namespace/description">
-        <div class="description">
-            <xsl:copy-of xmlns:xhtml="http://www.w3.org/1999/xhtml" select="xhtml:div/node()" />
-        </div>
-    </xsl:template>
-
-    <xsl:template match="directive">
-        <div>
-            <xsl:attribute name="class"><!--
-                -->directive<!--
-                --><xsl:if test="deprecated"> deprecated</xsl:if><!--
-            --></xsl:attribute>
-            <xsl:apply-templates>
-                <xsl:with-param name="id" select="@id" />
-            </xsl:apply-templates>
-        </div>
-    </xsl:template>
-    <xsl:template match="directive/name">
-        <xsl:param name="id" />
-        <xsl:apply-templates select="../aliases/alias" mode="anchor" />
-        <h3 id="{$id}"><xsl:value-of select="$id" /></h3>
-    </xsl:template>
-    <xsl:template match="alias" mode="anchor">
-        <a id="{.}"></a>
-    </xsl:template>
-
-    <!-- Do not pass through -->
-    <xsl:template match="alias"></xsl:template>
-
-    <xsl:template match="directive/constraints">
-        <xsl:param name="id" />
-        <table class="constraints">
-            <xsl:apply-templates />
-            <xsl:if test="../aliases/alias">
-                <xsl:apply-templates select="../aliases" mode="constraints" />
-            </xsl:if>
-            <xsl:apply-templates select="$usageLookup/directive[@id=$id]" />
-        </table>
-    </xsl:template>
-    <xsl:template match="directive/aliases" mode="constraints">
-        <tr>
-            <th>Aliases</th>
-            <td>
-                <xsl:for-each select="alias">
-                    <xsl:if test="position()&gt;1">, </xsl:if>
-                    <xsl:value-of select="." />
-                </xsl:for-each>
-            </td>
-        </tr>
-    </xsl:template>
-    <xsl:template match="directive/description">
-        <div class="description">
-            <xsl:copy-of xmlns:xhtml="http://www.w3.org/1999/xhtml" select="xhtml:div/node()" />
-        </div>
-    </xsl:template>
-    <xsl:template match="directive/deprecated">
-        <div class="deprecated-notice">
-            <strong>Warning:</strong>
-            This directive was deprecated in version <xsl:value-of select="version" />.
-            <a href="#{use}">%<xsl:value-of select="use" /></a> should be used instead.
-        </div>
-    </xsl:template>
-    <xsl:template match="usage/directive">
-        <tr>
-            <th>Used in</th>
-            <td>
-                <ul>
-                    <xsl:apply-templates />
-                </ul>
-            </td>
-        </tr>
-    </xsl:template>
-    <xsl:template match="usage/directive/file">
-        <li>
-            <em><xsl:value-of select="@name" /></em> on line<xsl:if test="count(line)&gt;1">s</xsl:if>
-            <xsl:text> </xsl:text>
-            <xsl:for-each select="line">
-                <xsl:if test="position()&gt;1">, </xsl:if>
-                <xsl:value-of select="." />
-            </xsl:for-each>
-        </li>
-    </xsl:template>
-
-    <xsl:template match="constraints/version">
-        <tr>
-            <th>Version added</th>
-            <td><xsl:value-of select="." /></td>
-        </tr>
-    </xsl:template>
-    <xsl:template match="constraints/type">
-        <tr>
-            <th>Type</th>
-            <td>
-                <xsl:variable name="type" select="text()" />
-                <xsl:attribute name="class">type type-<xsl:value-of select="$type" /></xsl:attribute>
-                <a>
-                    <xsl:attribute name="href">#type-<xsl:value-of select="$type" /></xsl:attribute>
-                    <xsl:value-of select="$typeLookup/type[@id=$type]/@name" />
-                    <xsl:if test="@allow-null='yes'">
-                        (or null)
-                    </xsl:if>
-                </a>
-            </td>
-        </tr>
-    </xsl:template>
-    <xsl:template match="constraints/allowed">
-        <tr>
-            <th>Allowed values</th>
-            <td>
-                <xsl:for-each select="value"><!--
-                 --><xsl:if test="position()&gt;1">, </xsl:if>
-                    &quot;<xsl:value-of select="." />&quot;<!--
-             --></xsl:for-each>
-            </td>
-        </tr>
-    </xsl:template>
-    <xsl:template match="constraints/default">
-        <tr>
-            <th>Default</th>
-            <td><pre><xsl:value-of select="." xml:space="preserve" /></pre></td>
-        </tr>
-    </xsl:template>
-    <xsl:template match="constraints/external">
-        <tr>
-            <th>External deps</th>
-            <td>
-                <ul>
-                    <xsl:apply-templates />
-                </ul>
-            </td>
-        </tr>
-    </xsl:template>
-    <xsl:template match="constraints/external/project">
-        <li><xsl:value-of select="." /></li>
-    </xsl:template>
-
-</xsl:stylesheet>
-
-<!-- vim: et sw=4 sts=4
--->

+ 0 - 69
main/inc/lib/htmlpurifier/configdoc/types.xml

@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<types>
-  <type id="string" name="String"><div xmlns="http://www.w3.org/1999/xhtml">
-    A <a
-    href="http://docs.php.net/manual/en/language.types.string.php">sequence
-    of characters</a>.
-  </div></type>
-  <type id="istring" name="Case-insensitive string"><div xmlns="http://www.w3.org/1999/xhtml">
-    A series of case-insensitive characters.  Internally, upper-case
-    ASCII characters will be converted to lower-case.
-  </div></type>
-  <type id="text" name="Text"><div xmlns="http://www.w3.org/1999/xhtml">
-    A series of characters that may contain newlines.  Text tends to
-    indicate human-oriented text, as opposed to a machine format.
-  </div></type>
-  <type id="itext" name="Case-insensitive text"><div xmlns="http://www.w3.org/1999/xhtml">
-    A series of case-insensitive characters that may contain newlines.
-  </div></type>
-  <type id="int" name="Integer"><div xmlns="http://www.w3.org/1999/xhtml">
-    An <a
-      href="http://docs.php.net/manual/en/language.types.integer.php">
-      integer</a>.  You are alternatively permitted to pass a string of
-    digits instead, which will be cast to an integer using
-    <code>(int)</code>.
-  </div></type>
-  <type id="float" name="Float"><div xmlns="http://www.w3.org/1999/xhtml">
-    A <a href="http://docs.php.net/manual/en/language.types.float.php">
-      floating point number</a>.  You are alternatively permitted to
-    pass a numeric string (as defined by <code>is_numeric()</code>),
-    which will be cast to a float using <code>(float)</code>.
-  </div></type>
-  <type id="bool" name="Boolean"><div xmlns="http://www.w3.org/1999/xhtml">
-    A <a
-      href="http://docs.php.net/manual/en/language.types.boolean.php">boolean</a>.
-    You are alternatively permitted to pass an integer <code>0</code> or
-    <code>1</code> (other integers are not permitted) or a string
-    <code>"on"</code>, <code>"true"</code> or <code>"1"</code> for
-    <code>true</code>, and <code>"off"</code>, <code>"false"</code> or
-    <code>"0"</code> for <code>false</code>.
-  </div></type>
-  <type id="lookup" name="Lookup array"><div xmlns="http://www.w3.org/1999/xhtml">
-    An array whose values are <code>true</code>, e.g. <code>array('key'
-      => true, 'key2' => true)</code>.  You are alternatively permitted
-    to pass an array list of the keys <code>array('key', 'key2')</code>
-    or a comma-separated string of keys <code>"key, key2"</code>.  If
-    you pass an array list of values, ensure that your values are
-    strictly numerically indexed: <code>array('key1', 2 =>
-      'key2')</code> will not do what you expect and emits a warning.
-  </div></type>
-  <type id="list" name="Array list"><div xmlns="http://www.w3.org/1999/xhtml">
-    An array which has consecutive integer indexes, e.g.
-    <code>array('val1', 'val2')</code>.  You are alternatively permitted
-    to pass a comma-separated string of keys <code>"val1, val2"</code>.
-    If your array is not in this form, <code>array_values</code> is run
-    on the array and a warning is emitted.
-  </div></type>
-  <type id="hash" name="Associative array"><div xmlns="http://www.w3.org/1999/xhtml">
-    An array which is a mapping of keys to values, e.g.
-    <code>array('key1' => 'val1', 'key2' => 'val2')</code>.  You are
-    alternatively permitted to pass a comma-separated string of
-    key-colon-value strings, e.g. <code>"key1: val1, key2: val2"</code>.
-  </div></type>
-  <type id="mixed" name="Mixed"><div xmlns="http://www.w3.org/1999/xhtml">
-    An arbitrary PHP value of any type.
-  </div></type>
-</types>
-
-<!-- vim: et sw=4 sts=4
--->

+ 0 - 472
main/inc/lib/htmlpurifier/configdoc/usage.xml

@@ -1,472 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<usage>
- <directive id="Core.CollectErrors">
-  <file name="HTMLPurifier.php">
-   <line>131</line>
-  </file>
-  <file name="HTMLPurifier/Lexer.php">
-   <line>81</line>
-   <line>284</line>
-  </file>
-  <file name="HTMLPurifier/Lexer/DirectLex.php">
-   <line>53</line>
-   <line>73</line>
-   <line>348</line>
-  </file>
-  <file name="HTMLPurifier/Strategy/RemoveForeignElements.php">
-   <line>47</line>
-  </file>
- </directive>
- <directive id="CSS.MaxImgLength">
-  <file name="HTMLPurifier/CSSDefinition.php">
-   <line>157</line>
-  </file>
- </directive>
- <directive id="CSS.Proprietary">
-  <file name="HTMLPurifier/CSSDefinition.php">
-   <line>214</line>
-  </file>
- </directive>
- <directive id="CSS.AllowTricky">
-  <file name="HTMLPurifier/CSSDefinition.php">
-   <line>218</line>
-  </file>
- </directive>
- <directive id="CSS.AllowImportant">
-  <file name="HTMLPurifier/CSSDefinition.php">
-   <line>222</line>
-  </file>
- </directive>
- <directive id="CSS.AllowedProperties">
-  <file name="HTMLPurifier/CSSDefinition.php">
-   <line>275</line>
-  </file>
- </directive>
- <directive id="CSS.ForbiddenProperties">
-  <file name="HTMLPurifier/CSSDefinition.php">
-   <line>289</line>
-  </file>
- </directive>
- <directive id="Cache.DefinitionImpl">
-  <file name="HTMLPurifier/DefinitionCacheFactory.php">
-   <line>49</line>
-  </file>
- </directive>
- <directive id="HTML.Doctype">
-  <file name="HTMLPurifier/DoctypeRegistry.php">
-   <line>83</line>
-  </file>
- </directive>
- <directive id="HTML.CustomDoctype">
-  <file name="HTMLPurifier/DoctypeRegistry.php">
-   <line>85</line>
-  </file>
- </directive>
- <directive id="HTML.XHTML">
-  <file name="HTMLPurifier/DoctypeRegistry.php">
-   <line>88</line>
-  </file>
- </directive>
- <directive id="HTML.Strict">
-  <file name="HTMLPurifier/DoctypeRegistry.php">
-   <line>93</line>
-  </file>
- </directive>
- <directive id="Core.Encoding">
-  <file name="HTMLPurifier/Encoder.php">
-   <line>267</line>
-   <line>300</line>
-  </file>
- </directive>
- <directive id="Test.ForceNoIconv">
-  <file name="HTMLPurifier/Encoder.php">
-   <line>272</line>
-   <line>308</line>
-  </file>
- </directive>
- <directive id="Core.EscapeNonASCIICharacters">
-  <file name="HTMLPurifier/Encoder.php">
-   <line>304</line>
-  </file>
- </directive>
- <directive id="Output.CommentScriptContents">
-  <file name="HTMLPurifier/Generator.php">
-   <line>56</line>
-  </file>
- </directive>
- <directive id="Output.SortAttr">
-  <file name="HTMLPurifier/Generator.php">
-   <line>57</line>
-  </file>
- </directive>
- <directive id="Output.FlashCompat">
-  <file name="HTMLPurifier/Generator.php">
-   <line>58</line>
-  </file>
- </directive>
- <directive id="Output.TidyFormat">
-  <file name="HTMLPurifier/Generator.php">
-   <line>87</line>
-  </file>
- </directive>
- <directive id="Core.NormalizeNewlines">
-  <file name="HTMLPurifier/Generator.php">
-   <line>101</line>
-  </file>
-  <file name="HTMLPurifier/Lexer.php">
-   <line>266</line>
-  </file>
- </directive>
- <directive id="Output.Newline">
-  <file name="HTMLPurifier/Generator.php">
-   <line>102</line>
-  </file>
- </directive>
- <directive id="HTML.BlockWrapper">
-  <file name="HTMLPurifier/HTMLDefinition.php">
-   <line>222</line>
-  </file>
- </directive>
- <directive id="HTML.Parent">
-  <file name="HTMLPurifier/HTMLDefinition.php">
-   <line>230</line>
-  </file>
- </directive>
- <directive id="HTML.AllowedElements">
-  <file name="HTMLPurifier/HTMLDefinition.php">
-   <line>247</line>
-  </file>
- </directive>
- <directive id="HTML.AllowedAttributes">
-  <file name="HTMLPurifier/HTMLDefinition.php">
-   <line>248</line>
-  </file>
- </directive>
- <directive id="HTML.Allowed">
-  <file name="HTMLPurifier/HTMLDefinition.php">
-   <line>251</line>
-  </file>
- </directive>
- <directive id="HTML.ForbiddenElements">
-  <file name="HTMLPurifier/HTMLDefinition.php">
-   <line>342</line>
-  </file>
- </directive>
- <directive id="HTML.ForbiddenAttributes">
-  <file name="HTMLPurifier/HTMLDefinition.php">
-   <line>343</line>
-  </file>
- </directive>
- <directive id="HTML.Trusted">
-  <file name="HTMLPurifier/HTMLModuleManager.php">
-   <line>202</line>
-  </file>
-  <file name="HTMLPurifier/Lexer.php">
-   <line>271</line>
-  </file>
-  <file name="HTMLPurifier/HTMLModule/Image.php">
-   <line>27</line>
-  </file>
-  <file name="HTMLPurifier/Lexer/DirectLex.php">
-   <line>36</line>
-  </file>
-  <file name="HTMLPurifier/Strategy/RemoveForeignElements.php">
-   <line>23</line>
-  </file>
- </directive>
- <directive id="HTML.AllowedModules">
-  <file name="HTMLPurifier/HTMLModuleManager.php">
-   <line>209</line>
-  </file>
- </directive>
- <directive id="HTML.CoreModules">
-  <file name="HTMLPurifier/HTMLModuleManager.php">
-   <line>210</line>
-  </file>
- </directive>
- <directive id="HTML.Proprietary">
-  <file name="HTMLPurifier/HTMLModuleManager.php">
-   <line>221</line>
-  </file>
- </directive>
- <directive id="HTML.SafeObject">
-  <file name="HTMLPurifier/HTMLModuleManager.php">
-   <line>226</line>
-  </file>
- </directive>
- <directive id="HTML.SafeEmbed">
-  <file name="HTMLPurifier/HTMLModuleManager.php">
-   <line>229</line>
-  </file>
- </directive>
- <directive id="Attr.IDBlacklist">
-  <file name="HTMLPurifier/IDAccumulator.php">
-   <line>26</line>
-  </file>
- </directive>
- <directive id="Core.Language">
-  <file name="HTMLPurifier/LanguageFactory.php">
-   <line>88</line>
-  </file>
- </directive>
- <directive id="Core.LexerImpl">
-  <file name="HTMLPurifier/Lexer.php">
-   <line>76</line>
-  </file>
- </directive>
- <directive id="Core.MaintainLineNumbers">
-  <file name="HTMLPurifier/Lexer.php">
-   <line>80</line>
-  </file>
-  <file name="HTMLPurifier/Lexer/DirectLex.php">
-   <line>48</line>
-  </file>
- </directive>
- <directive id="Core.ConvertDocumentToFragment">
-  <file name="HTMLPurifier/Lexer.php">
-   <line>282</line>
-  </file>
- </directive>
- <directive id="Core.RemoveProcessingInstructions">
-  <file name="HTMLPurifier/Lexer.php">
-   <line>303</line>
-  </file>
- </directive>
- <directive id="URI.">
-  <file name="HTMLPurifier/URIDefinition.php">
-   <line>55</line>
-  </file>
-  <file name="HTMLPurifier/URIFilter/Munge.php">
-   <line>12</line>
-  </file>
- </directive>
- <directive id="URI.Host">
-  <file name="HTMLPurifier/URIDefinition.php">
-   <line>64</line>
-  </file>
- </directive>
- <directive id="URI.Base">
-  <file name="HTMLPurifier/URIDefinition.php">
-   <line>65</line>
-  </file>
- </directive>
- <directive id="URI.DefaultScheme">
-  <file name="HTMLPurifier/URIDefinition.php">
-   <line>72</line>
-  </file>
- </directive>
- <directive id="URI.AllowedSchemes">
-  <file name="HTMLPurifier/URISchemeRegistry.php">
-   <line>41</line>
-  </file>
- </directive>
- <directive id="URI.OverrideAllowedSchemes">
-  <file name="HTMLPurifier/URISchemeRegistry.php">
-   <line>42</line>
-  </file>
- </directive>
- <directive id="URI.Disable">
-  <file name="HTMLPurifier/AttrDef/URI.php">
-   <line>28</line>
-  </file>
- </directive>
- <directive id="Core.ColorKeywords">
-  <file name="HTMLPurifier/AttrDef/CSS/Color.php">
-   <line>12</line>
-  </file>
-  <file name="HTMLPurifier/AttrDef/HTML/Color.php">
-   <line>12</line>
-  </file>
- </directive>
- <directive id="Attr.AllowedClasses">
-  <file name="HTMLPurifier/AttrDef/HTML/Class.php">
-   <line>18</line>
-  </file>
- </directive>
- <directive id="Attr.ForbiddenClasses">
-  <file name="HTMLPurifier/AttrDef/HTML/Class.php">
-   <line>19</line>
-  </file>
- </directive>
- <directive id="Attr.AllowedFrameTargets">
-  <file name="HTMLPurifier/AttrDef/HTML/FrameTarget.php">
-   <line>15</line>
-  </file>
- </directive>
- <directive id="Attr.EnableID">
-  <file name="HTMLPurifier/AttrDef/HTML/ID.php">
-   <line>20</line>
-  </file>
- </directive>
- <directive id="Attr.IDPrefix">
-  <file name="HTMLPurifier/AttrDef/HTML/ID.php">
-   <line>26</line>
-  </file>
- </directive>
- <directive id="Attr.IDPrefixLocal">
-  <file name="HTMLPurifier/AttrDef/HTML/ID.php">
-   <line>28</line>
-   <line>31</line>
-  </file>
- </directive>
- <directive id="Attr.IDBlacklistRegexp">
-  <file name="HTMLPurifier/AttrDef/HTML/ID.php">
-   <line>54</line>
-  </file>
- </directive>
- <directive id="Attr.">
-  <file name="HTMLPurifier/AttrDef/HTML/LinkTypes.php">
-   <line>30</line>
-  </file>
- </directive>
- <directive id="Attr.DefaultTextDir">
-  <file name="HTMLPurifier/AttrTransform/BdoDir.php">
-   <line>13</line>
-  </file>
- </directive>
- <directive id="Core.RemoveInvalidImg">
-  <file name="HTMLPurifier/AttrTransform/ImgRequired.php">
-   <line>18</line>
-  </file>
-  <file name="HTMLPurifier/Strategy/RemoveForeignElements.php">
-   <line>20</line>
-  </file>
- </directive>
- <directive id="Attr.DefaultInvalidImage">
-  <file name="HTMLPurifier/AttrTransform/ImgRequired.php">
-   <line>19</line>
-  </file>
- </directive>
- <directive id="Attr.DefaultImageAlt">
-  <file name="HTMLPurifier/AttrTransform/ImgRequired.php">
-   <line>25</line>
-  </file>
- </directive>
- <directive id="Attr.DefaultInvalidImageAlt">
-  <file name="HTMLPurifier/AttrTransform/ImgRequired.php">
-   <line>33</line>
-  </file>
- </directive>
- <directive id="HTML.Attr.Name.UseCDATA">
-  <file name="HTMLPurifier/AttrTransform/Name.php">
-   <line>11</line>
-  </file>
-  <file name="HTMLPurifier/HTMLModule/Name.php">
-   <line>13</line>
-  </file>
- </directive>
- <directive id="HTML.FlashAllowFullScreen">
-  <file name="HTMLPurifier/AttrTransform/SafeParam.php">
-   <line>37</line>
-  </file>
- </directive>
- <directive id="Core.EscapeInvalidChildren">
-  <file name="HTMLPurifier/ChildDef/Required.php">
-   <line>62</line>
-  </file>
- </directive>
- <directive id="Cache.SerializerPath">
-  <file name="HTMLPurifier/DefinitionCache/Serializer.php">
-   <line>91</line>
-  </file>
- </directive>
- <directive id="Filter.ExtractStyleBlocks.TidyImpl">
-  <file name="HTMLPurifier/Filter/ExtractStyleBlocks.php">
-   <line>41</line>
-  </file>
- </directive>
- <directive id="Filter.ExtractStyleBlocks.Scope">
-  <file name="HTMLPurifier/Filter/ExtractStyleBlocks.php">
-   <line>65</line>
-  </file>
- </directive>
- <directive id="Filter.ExtractStyleBlocks.Escaping">
-  <file name="HTMLPurifier/Filter/ExtractStyleBlocks.php">
-   <line>123</line>
-  </file>
- </directive>
- <directive id="HTML.MaxImgLength">
-  <file name="HTMLPurifier/HTMLModule/Image.php">
-   <line>14</line>
-  </file>
-  <file name="HTMLPurifier/HTMLModule/SafeEmbed.php">
-   <line>13</line>
-  </file>
-  <file name="HTMLPurifier/HTMLModule/SafeObject.php">
-   <line>19</line>
-  </file>
- </directive>
- <directive id="HTML.TidyLevel">
-  <file name="HTMLPurifier/HTMLModule/Tidy.php">
-   <line>45</line>
-  </file>
- </directive>
- <directive id="HTML.TidyAdd">
-  <file name="HTMLPurifier/HTMLModule/Tidy.php">
-   <line>49</line>
-  </file>
- </directive>
- <directive id="HTML.TidyRemove">
-  <file name="HTMLPurifier/HTMLModule/Tidy.php">
-   <line>50</line>
-  </file>
- </directive>
- <directive id="AutoFormat.PurifierLinkify.DocURL">
-  <file name="HTMLPurifier/Injector/PurifierLinkify.php">
-   <line>15</line>
-  </file>
- </directive>
- <directive id="AutoFormat.RemoveEmpty.RemoveNbsp">
-  <file name="HTMLPurifier/Injector/RemoveEmpty.php">
-   <line>12</line>
-  </file>
- </directive>
- <directive id="AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions">
-  <file name="HTMLPurifier/Injector/RemoveEmpty.php">
-   <line>13</line>
-  </file>
- </directive>
- <directive id="Core.AggressivelyFixLt">
-  <file name="HTMLPurifier/Lexer/DOMLex.php">
-   <line>44</line>
-  </file>
- </directive>
- <directive id="Core.DirectLexLineNumberSyncInterval">
-  <file name="HTMLPurifier/Lexer/DirectLex.php">
-   <line>70</line>
-  </file>
- </directive>
- <directive id="Core.EscapeInvalidTags">
-  <file name="HTMLPurifier/Strategy/MakeWellFormed.php">
-   <line>45</line>
-  </file>
-  <file name="HTMLPurifier/Strategy/RemoveForeignElements.php">
-   <line>19</line>
-  </file>
- </directive>
- <directive id="Core.RemoveScriptContents">
-  <file name="HTMLPurifier/Strategy/RemoveForeignElements.php">
-   <line>25</line>
-  </file>
- </directive>
- <directive id="Core.HiddenElements">
-  <file name="HTMLPurifier/Strategy/RemoveForeignElements.php">
-   <line>26</line>
-  </file>
- </directive>
- <directive id="URI.HostBlacklist">
-  <file name="HTMLPurifier/URIFilter/HostBlacklist.php">
-   <line>8</line>
-  </file>
- </directive>
- <directive id="URI.MungeResources">
-  <file name="HTMLPurifier/URIFilter/Munge.php">
-   <line>14</line>
-  </file>
- </directive>
- <directive id="URI.MungeSecretKey">
-  <file name="HTMLPurifier/URIFilter/Munge.php">
-   <line>15</line>
-  </file>
- </directive>
-</usage>

+ 0 - 86
main/inc/lib/htmlpurifier/extras/ConfigDoc/HTMLXSLTProcessor.php

@@ -1,86 +0,0 @@
-<?php
-
-/**
- * Decorator/extender XSLT processor specifically for HTML documents.
- */
-class ConfigDoc_HTMLXSLTProcessor
-{
-
-    /**
-     * Instance of XSLTProcessor
-     */
-    protected $xsltProcessor;
-
-    public function __construct($proc = false) {
-        if ($proc === false) $proc = new XSLTProcessor();
-        $this->xsltProcessor = $proc;
-    }
-
-    /**
-     * @note Allows a string $xsl filename to be passed
-     */
-    public function importStylesheet($xsl) {
-        if (is_string($xsl)) {
-            $xsl_file = $xsl;
-            $xsl = new DOMDocument();
-            $xsl->load($xsl_file);
-        }
-        return $this->xsltProcessor->importStylesheet($xsl);
-    }
-
-    /**
-     * Transforms an XML file into compatible XHTML based on the stylesheet
-     * @param $xml XML DOM tree, or string filename
-     * @return string HTML output
-     * @todo Rename to transformToXHTML, as transformToHTML is misleading
-     */
-    public function transformToHTML($xml) {
-        if (is_string($xml)) {
-            $dom = new DOMDocument();
-            $dom->load($xml);
-        } else {
-            $dom = $xml;
-        }
-        $out = $this->xsltProcessor->transformToXML($dom);
-
-        // fudges for HTML backwards compatibility
-        // assumes that document is XHTML
-        $out = str_replace('/>', ' />', $out); // <br /> not <br/>
-        $out = str_replace(' xmlns=""', '', $out); // rm unnecessary xmlns
-
-        if (class_exists('Tidy')) {
-            // cleanup output
-            $config = array(
-                'indent'        => true,
-                'output-xhtml'  => true,
-                'wrap'          => 80
-            );
-            $tidy = new Tidy;
-            $tidy->parseString($out, $config, 'utf8');
-            $tidy->cleanRepair();
-            $out = (string) $tidy;
-        }
-
-        return $out;
-    }
-
-    /**
-     * Bulk sets parameters for the XSL stylesheet
-     * @param array $options Associative array of options to set
-     */
-    public function setParameters($options) {
-        foreach ($options as $name => $value) {
-            $this->xsltProcessor->setParameter('', $name, $value);
-        }
-    }
-
-    /**
-     * Forward any other calls to the XSLT processor
-     */
-    public function __call($name, $arguments) {
-        call_user_func_array(array($this->xsltProcessor, $name), $arguments);
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 6
main/inc/lib/htmlpurifier/extras/ConfigDoc/index.html

@@ -1,6 +0,0 @@
-<html>
-<head>
-</head>
-<body>
-</body>
-</html>

+ 0 - 157
main/inc/lib/htmlpurifier/extras/FSTools.php

@@ -1,157 +0,0 @@
-<?php
-
-/**
- * Filesystem tools not provided by default; can recursively create, copy
- * and delete folders. Some template methods are provided for extensibility.
- *
- * @note This class must be instantiated to be used, although it does
- *       not maintain state.
- */
-class FSTools
-{
-
-    private static $singleton;
-
-    /**
-     * Returns a global instance of FSTools
-     */
-    static public function singleton() {
-        if (empty(FSTools::$singleton)) FSTools::$singleton = new FSTools();
-        return FSTools::$singleton;
-    }
-
-    /**
-     * Sets our global singleton to something else; useful for overloading
-     * functions.
-     */
-    static public function setSingleton($singleton) {
-        FSTools::$singleton = $singleton;
-    }
-
-    /**
-     * Recursively creates a directory
-     * @param string $folder Name of folder to create
-     * @note Adapted from the PHP manual comment 76612
-     */
-    public function mkdirr($folder) {
-        $folders = preg_split("#[\\\\/]#", $folder);
-        $base = '';
-        for($i = 0, $c = count($folders); $i < $c; $i++) {
-            if(empty($folders[$i])) {
-                if (!$i) {
-                    // special case for root level
-                    $base .= DIRECTORY_SEPARATOR;
-                }
-                continue;
-            }
-            $base .= $folders[$i];
-            if(!is_dir($base)){
-                $this->mkdir($base);
-            }
-            $base .= DIRECTORY_SEPARATOR;
-        }
-    }
-
-    /**
-     * Copy a file, or recursively copy a folder and its contents; modified
-     * so that copied files, if PHP, have includes removed
-     * @note Adapted from http://aidanlister.com/repos/v/function.copyr.php
-     */
-    public function copyr($source, $dest) {
-        // Simple copy for a file
-        if (is_file($source)) {
-            return $this->copy($source, $dest);
-        }
-        // Make destination directory
-        if (!is_dir($dest)) {
-            $this->mkdir($dest);
-        }
-        // Loop through the folder
-        $dir = $this->dir($source);
-        while ( false !== ($entry = $dir->read()) ) {
-            // Skip pointers
-            if ($entry == '.' || $entry == '..') {
-                continue;
-            }
-            if (!$this->copyable($entry)) {
-                continue;
-            }
-            // Deep copy directories
-            if ($dest !== "$source/$entry") {
-                $this->copyr("$source/$entry", "$dest/$entry");
-            }
-        }
-        // Clean up
-        $dir->close();
-        return true;
-    }
-
-    /**
-     * Overloadable function that tests a filename for copyability. By
-     * default, everything should be copied; you can restrict things to
-     * ignore hidden files, unreadable files, etc. This function
-     * applies to copyr().
-     */
-    public function copyable($file) {
-        return true;
-    }
-
-    /**
-     * Delete a file, or a folder and its contents
-     * @note Adapted from http://aidanlister.com/repos/v/function.rmdirr.php
-     */
-    public function rmdirr($dirname)
-    {
-        // Sanity check
-        if (!$this->file_exists($dirname)) {
-            return false;
-        }
-
-        // Simple delete for a file
-        if ($this->is_file($dirname) || $this->is_link($dirname)) {
-            return $this->unlink($dirname);
-        }
-
-        // Loop through the folder
-        $dir = $this->dir($dirname);
-        while (false !== $entry = $dir->read()) {
-            // Skip pointers
-            if ($entry == '.' || $entry == '..') {
-                continue;
-            }
-            // Recurse
-            $this->rmdirr($dirname . DIRECTORY_SEPARATOR . $entry);
-        }
-
-        // Clean up
-        $dir->close();
-        return $this->rmdir($dirname);
-    }
-
-    /**
-     * Recursively globs a directory.
-     */
-    public function globr($dir, $pattern, $flags = NULL) {
-        $files = $this->glob("$dir/$pattern", $flags);
-        if ($files === false) $files = array();
-        $sub_dirs = $this->glob("$dir/*", GLOB_ONLYDIR);
-        if ($sub_dirs === false) $sub_dirs = array();
-        foreach ($sub_dirs as $sub_dir) {
-            $sub_files = $this->globr($sub_dir, $pattern, $flags);
-            $files = array_merge($files, $sub_files);
-        }
-        return $files;
-    }
-
-    /**
-     * Allows for PHP functions to be called and be stubbed.
-     * @warning This function will not work for functions that need
-     *      to pass references; manually define a stub function for those.
-     */
-    public function __call($name, $args) {
-        return call_user_func_array($name, $args);
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 126
main/inc/lib/htmlpurifier/extras/FSTools/File.php

@@ -1,126 +0,0 @@
-<?php
-
-/**
- * Represents a file in the filesystem
- *
- * @warning Be sure to distinguish between get() and write() versus
- *      read() and put(), the former operates on the entire file, while
- *      the latter operates on a handle.
- */
-class FSTools_File
-{
-
-    /** Filename of file this object represents */
-    protected $name;
-
-    /** Handle for the file */
-    protected $handle = false;
-
-    /** Instance of FSTools for interfacing with filesystem */
-    protected $fs;
-
-    /**
-     * Filename of file you wish to instantiate.
-     * @note This file need not exist
-     */
-    public function __construct($name, $fs = false) {
-        $this->name = $name;
-        $this->fs = $fs ? $fs : FSTools::singleton();
-    }
-
-    /** Returns the filename of the file. */
-    public function getName() {return $this->name;}
-
-    /** Returns directory of the file without trailing slash */
-    public function getDirectory() {return $this->fs->dirname($this->name);}
-
-    /**
-     * Retrieves the contents of a file
-     * @todo Throw an exception if file doesn't exist
-     */
-    public function get() {
-        return $this->fs->file_get_contents($this->name);
-    }
-
-    /** Writes contents to a file, creates new file if necessary */
-    public function write($contents) {
-        return $this->fs->file_put_contents($this->name, $contents);
-    }
-
-    /** Deletes the file */
-    public function delete() {
-        return $this->fs->unlink($this->name);
-    }
-
-    /** Returns true if file exists and is a file. */
-    public function exists() {
-        return $this->fs->is_file($this->name);
-    }
-
-    /** Returns last file modification time */
-    public function getMTime() {
-        return $this->fs->filemtime($this->name);
-    }
-
-    /**
-     * Chmod a file
-     * @note We ignore errors because of some weird owner trickery due
-     *       to SVN duality
-     */
-    public function chmod($octal_code) {
-        return @$this->fs->chmod($this->name, $octal_code);
-    }
-
-    /** Opens file's handle */
-    public function open($mode) {
-        if ($this->handle) $this->close();
-        $this->handle = $this->fs->fopen($this->name, $mode);
-        return true;
-    }
-
-    /** Closes file's handle */
-    public function close() {
-        if (!$this->handle) return false;
-        $status = $this->fs->fclose($this->handle);
-        $this->handle = false;
-        return $status;
-    }
-
-    /** Retrieves a line from an open file, with optional max length $length */
-    public function getLine($length = null) {
-        if (!$this->handle) $this->open('r');
-        if ($length === null) return $this->fs->fgets($this->handle);
-        else return $this->fs->fgets($this->handle, $length);
-    }
-
-    /** Retrieves a character from an open file */
-    public function getChar() {
-        if (!$this->handle) $this->open('r');
-        return $this->fs->fgetc($this->handle);
-    }
-
-    /** Retrieves an $length bytes of data from an open data */
-    public function read($length) {
-        if (!$this->handle) $this->open('r');
-        return $this->fs->fread($this->handle, $length);
-    }
-
-    /** Writes to an open file */
-    public function put($string) {
-        if (!$this->handle) $this->open('a');
-        return $this->fs->fwrite($this->handle, $string);
-    }
-
-    /** Returns TRUE if the end of the file has been reached */
-    public function eof() {
-        if (!$this->handle) return true;
-        return $this->fs->feof($this->handle);
-    }
-
-    public function __destruct() {
-        if ($this->handle) $this->close();
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 6
main/inc/lib/htmlpurifier/extras/FSTools/index.html

@@ -1,6 +0,0 @@
-<html>
-<head>
-</head>
-<body>
-</body>
-</html>

+ 0 - 11
main/inc/lib/htmlpurifier/extras/HTMLPurifierExtras.auto.php

@@ -1,11 +0,0 @@
-<?php
-
-/**
- * This is a stub include that automatically configures the include path.
- */
-
-set_include_path(dirname(__FILE__) . PATH_SEPARATOR . get_include_path() );
-require_once 'HTMLPurifierExtras.php';
-require_once 'HTMLPurifierExtras.autoload.php';
-
-// vim: et sw=4 sts=4

+ 0 - 25
main/inc/lib/htmlpurifier/extras/HTMLPurifierExtras.autoload.php

@@ -1,25 +0,0 @@
-<?php
-
-/**
- * @file
- * Convenience file that registers autoload handler for HTML Purifier.
- *
- * @warning
- *      This autoloader does not contain the compatibility code seen in
- *      HTMLPurifier_Bootstrap; the user is expected to make any necessary
- *      changes to use this library.
- */
-
-if (function_exists('spl_autoload_register')) {
-    spl_autoload_register(array('HTMLPurifierExtras', 'autoload'));
-    if (function_exists('__autoload')) {
-        // Be polite and ensure that userland autoload gets retained
-        spl_autoload_register('__autoload');
-    }
-} elseif (!function_exists('__autoload')) {
-    function __autoload($class) {
-        return HTMLPurifierExtras::autoload($class);
-    }
-}
-
-// vim: et sw=4 sts=4

+ 0 - 29
main/inc/lib/htmlpurifier/extras/HTMLPurifierExtras.php

@@ -1,29 +0,0 @@
-<?php
-
-/**
- * Meta-class for HTML Purifier's extra class hierarchies, similar to
- * HTMLPurifier_Bootstrap.
- */
-class HTMLPurifierExtras
-{
-
-    public static function autoload($class) {
-        $path = HTMLPurifierExtras::getPath($class);
-        if (!$path) return false;
-        require $path;
-        return true;
-    }
-
-    public static function getPath($class) {
-        if (
-            strncmp('FSTools', $class, 7) !== 0 &&
-            strncmp('ConfigDoc', $class, 9) !== 0
-        ) return false;
-        // Custom implementations can go here
-        // Standard implementation:
-        return str_replace('_', '/', $class) . '.php';
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 32
main/inc/lib/htmlpurifier/extras/README

@@ -1,32 +0,0 @@
-
-HTML Purifier Extras
-    The Method Behind The Madness!
-
-The extras/ folder in HTML Purifier contains--you guessed it--extra things
-for HTML Purifier.  Specifically, these are two extra libraries called
-FSTools and ConfigSchema.  They're extra for a reason: you don't need them
-if you're using HTML Purifier for normal usage: filtering HTML.  However,
-if you're a developer, and would like to test HTML Purifier, or need to
-use one of HTML Purifier's maintenance scripts, chances are they'll need
-these libraries. Who knows: maybe you'll find them useful too!
-
-Here are the libraries:
-
-
-FSTools
--------
-
-Short for File System Tools, this is a poor-man's object-oriented wrapper for
-the filesystem. It currently consists of two classes:
-
-- FSTools: This is a singleton that contains a manner of useful functions
-  such as recursive glob, directory removal, etc, as well as the ability
-  to call arbitrary native PHP functions through it like $FS->fopen(...).
-  This makes it a lot simpler to mock these filesystem calls for unit testing.
-
-- FSTools_File: This object represents a single file, and has almost any
-  method imaginable one would need.
-
-Check the files themselves for more information.
-
-    vim: et sw=4 sts=4

+ 0 - 6
main/inc/lib/htmlpurifier/extras/index.html

@@ -1,6 +0,0 @@
-<html>
-<head>
-</head>
-<body>
-</body>
-</html>

+ 0 - 6
main/inc/lib/htmlpurifier/index.html

@@ -1,6 +0,0 @@
-<html>
-<head>
-</head>
-<body>
-</body>
-</html>

+ 0 - 11
main/inc/lib/htmlpurifier/library/HTMLPurifier.auto.php

@@ -1,11 +0,0 @@
-<?php
-
-/**
- * This is a stub include that automatically configures the include path.
- */
-
-set_include_path(dirname(__FILE__) . PATH_SEPARATOR . get_include_path() );
-require_once 'HTMLPurifier/Bootstrap.php';
-require_once 'HTMLPurifier.autoload.php';
-
-// vim: et sw=4 sts=4

+ 0 - 26
main/inc/lib/htmlpurifier/library/HTMLPurifier.autoload.php

@@ -1,26 +0,0 @@
-<?php
-
-/**
- * @file
- * Convenience file that registers autoload handler for HTML Purifier.
- * It also does some sanity checks.
- */
-
-if (function_exists('spl_autoload_register') && function_exists('spl_autoload_unregister')) {
-    // We need unregister for our pre-registering functionality
-    HTMLPurifier_Bootstrap::registerAutoload();
-    if (function_exists('__autoload')) {
-        // Be polite and ensure that userland autoload gets retained
-        spl_autoload_register('__autoload');
-    }
-} elseif (!function_exists('__autoload')) {
-    function __autoload($class) {
-        return HTMLPurifier_Bootstrap::autoload($class);
-    }
-}
-
-if (ini_get('zend.ze1_compatibility_mode')) {
-    trigger_error("HTML Purifier is not compatible with zend.ze1_compatibility_mode; please turn it off", E_USER_ERROR);
-}
-
-// vim: et sw=4 sts=4

+ 0 - 23
main/inc/lib/htmlpurifier/library/HTMLPurifier.func.php

@@ -1,23 +0,0 @@
-<?php
-
-/**
- * @file
- * Defines a function wrapper for HTML Purifier for quick use.
- * @note ''HTMLPurifier()'' is NOT the same as ''new HTMLPurifier()''
- */
-
-/**
- * Purify HTML.
- * @param $html String HTML to purify
- * @param $config Configuration to use, can be any value accepted by
- *        HTMLPurifier_Config::create()
- */
-function HTMLPurifier($html, $config = null) {
-    static $purifier = false;
-    if (!$purifier) {
-        $purifier = new HTMLPurifier();
-    }
-    return $purifier->purify($html, $config);
-}
-
-// vim: et sw=4 sts=4

+ 0 - 212
main/inc/lib/htmlpurifier/library/HTMLPurifier.includes.php

@@ -1,212 +0,0 @@
-<?php
-
-/**
- * @file
- * This file was auto-generated by generate-includes.php and includes all of
- * the core files required by HTML Purifier. Use this if performance is a
- * primary concern and you are using an opcode cache. PLEASE DO NOT EDIT THIS
- * FILE, changes will be overwritten the next time the script is run.
- *
- * @version 4.2.0
- *
- * @warning
- *      You must *not* include any other HTML Purifier files before this file,
- *      because 'require' not 'require_once' is used.
- *
- * @warning
- *      This file requires that the include path contains the HTML Purifier
- *      library directory; this is not auto-set.
- */
-
-require 'HTMLPurifier.php';
-require 'HTMLPurifier/AttrCollections.php';
-require 'HTMLPurifier/AttrDef.php';
-require 'HTMLPurifier/AttrTransform.php';
-require 'HTMLPurifier/AttrTypes.php';
-require 'HTMLPurifier/AttrValidator.php';
-require 'HTMLPurifier/Bootstrap.php';
-require 'HTMLPurifier/Definition.php';
-require 'HTMLPurifier/CSSDefinition.php';
-require 'HTMLPurifier/ChildDef.php';
-require 'HTMLPurifier/Config.php';
-require 'HTMLPurifier/ConfigSchema.php';
-require 'HTMLPurifier/ContentSets.php';
-require 'HTMLPurifier/Context.php';
-require 'HTMLPurifier/DefinitionCache.php';
-require 'HTMLPurifier/DefinitionCacheFactory.php';
-require 'HTMLPurifier/Doctype.php';
-require 'HTMLPurifier/DoctypeRegistry.php';
-require 'HTMLPurifier/ElementDef.php';
-require 'HTMLPurifier/Encoder.php';
-require 'HTMLPurifier/EntityLookup.php';
-require 'HTMLPurifier/EntityParser.php';
-require 'HTMLPurifier/ErrorCollector.php';
-require 'HTMLPurifier/ErrorStruct.php';
-require 'HTMLPurifier/Exception.php';
-require 'HTMLPurifier/Filter.php';
-require 'HTMLPurifier/Generator.php';
-require 'HTMLPurifier/HTMLDefinition.php';
-require 'HTMLPurifier/HTMLModule.php';
-require 'HTMLPurifier/HTMLModuleManager.php';
-require 'HTMLPurifier/IDAccumulator.php';
-require 'HTMLPurifier/Injector.php';
-require 'HTMLPurifier/Language.php';
-require 'HTMLPurifier/LanguageFactory.php';
-require 'HTMLPurifier/Length.php';
-require 'HTMLPurifier/Lexer.php';
-require 'HTMLPurifier/PercentEncoder.php';
-require 'HTMLPurifier/PropertyList.php';
-require 'HTMLPurifier/PropertyListIterator.php';
-require 'HTMLPurifier/Strategy.php';
-require 'HTMLPurifier/StringHash.php';
-require 'HTMLPurifier/StringHashParser.php';
-require 'HTMLPurifier/TagTransform.php';
-require 'HTMLPurifier/Token.php';
-require 'HTMLPurifier/TokenFactory.php';
-require 'HTMLPurifier/URI.php';
-require 'HTMLPurifier/URIDefinition.php';
-require 'HTMLPurifier/URIFilter.php';
-require 'HTMLPurifier/URIParser.php';
-require 'HTMLPurifier/URIScheme.php';
-require 'HTMLPurifier/URISchemeRegistry.php';
-require 'HTMLPurifier/UnitConverter.php';
-require 'HTMLPurifier/VarParser.php';
-require 'HTMLPurifier/VarParserException.php';
-require 'HTMLPurifier/AttrDef/CSS.php';
-require 'HTMLPurifier/AttrDef/Enum.php';
-require 'HTMLPurifier/AttrDef/Integer.php';
-require 'HTMLPurifier/AttrDef/Lang.php';
-require 'HTMLPurifier/AttrDef/Switch.php';
-require 'HTMLPurifier/AttrDef/Text.php';
-require 'HTMLPurifier/AttrDef/URI.php';
-require 'HTMLPurifier/AttrDef/CSS/Number.php';
-require 'HTMLPurifier/AttrDef/CSS/AlphaValue.php';
-require 'HTMLPurifier/AttrDef/CSS/Background.php';
-require 'HTMLPurifier/AttrDef/CSS/BackgroundPosition.php';
-require 'HTMLPurifier/AttrDef/CSS/Border.php';
-require 'HTMLPurifier/AttrDef/CSS/Color.php';
-require 'HTMLPurifier/AttrDef/CSS/Composite.php';
-require 'HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php';
-require 'HTMLPurifier/AttrDef/CSS/Filter.php';
-require 'HTMLPurifier/AttrDef/CSS/Font.php';
-require 'HTMLPurifier/AttrDef/CSS/FontFamily.php';
-require 'HTMLPurifier/AttrDef/CSS/ImportantDecorator.php';
-require 'HTMLPurifier/AttrDef/CSS/Length.php';
-require 'HTMLPurifier/AttrDef/CSS/ListStyle.php';
-require 'HTMLPurifier/AttrDef/CSS/Multiple.php';
-require 'HTMLPurifier/AttrDef/CSS/Percentage.php';
-require 'HTMLPurifier/AttrDef/CSS/TextDecoration.php';
-require 'HTMLPurifier/AttrDef/CSS/URI.php';
-require 'HTMLPurifier/AttrDef/HTML/Bool.php';
-require 'HTMLPurifier/AttrDef/HTML/Nmtokens.php';
-require 'HTMLPurifier/AttrDef/HTML/Class.php';
-require 'HTMLPurifier/AttrDef/HTML/Color.php';
-require 'HTMLPurifier/AttrDef/HTML/FrameTarget.php';
-require 'HTMLPurifier/AttrDef/HTML/ID.php';
-require 'HTMLPurifier/AttrDef/HTML/Pixels.php';
-require 'HTMLPurifier/AttrDef/HTML/Length.php';
-require 'HTMLPurifier/AttrDef/HTML/LinkTypes.php';
-require 'HTMLPurifier/AttrDef/HTML/MultiLength.php';
-require 'HTMLPurifier/AttrDef/URI/Email.php';
-require 'HTMLPurifier/AttrDef/URI/Host.php';
-require 'HTMLPurifier/AttrDef/URI/IPv4.php';
-require 'HTMLPurifier/AttrDef/URI/IPv6.php';
-require 'HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php';
-require 'HTMLPurifier/AttrTransform/Background.php';
-require 'HTMLPurifier/AttrTransform/BdoDir.php';
-require 'HTMLPurifier/AttrTransform/BgColor.php';
-require 'HTMLPurifier/AttrTransform/BoolToCSS.php';
-require 'HTMLPurifier/AttrTransform/Border.php';
-require 'HTMLPurifier/AttrTransform/EnumToCSS.php';
-require 'HTMLPurifier/AttrTransform/ImgRequired.php';
-require 'HTMLPurifier/AttrTransform/ImgSpace.php';
-require 'HTMLPurifier/AttrTransform/Input.php';
-require 'HTMLPurifier/AttrTransform/Lang.php';
-require 'HTMLPurifier/AttrTransform/Length.php';
-require 'HTMLPurifier/AttrTransform/Name.php';
-require 'HTMLPurifier/AttrTransform/NameSync.php';
-require 'HTMLPurifier/AttrTransform/SafeEmbed.php';
-require 'HTMLPurifier/AttrTransform/SafeObject.php';
-require 'HTMLPurifier/AttrTransform/SafeParam.php';
-require 'HTMLPurifier/AttrTransform/ScriptRequired.php';
-require 'HTMLPurifier/AttrTransform/Textarea.php';
-require 'HTMLPurifier/ChildDef/Chameleon.php';
-require 'HTMLPurifier/ChildDef/Custom.php';
-require 'HTMLPurifier/ChildDef/Empty.php';
-require 'HTMLPurifier/ChildDef/Required.php';
-require 'HTMLPurifier/ChildDef/Optional.php';
-require 'HTMLPurifier/ChildDef/StrictBlockquote.php';
-require 'HTMLPurifier/ChildDef/Table.php';
-require 'HTMLPurifier/DefinitionCache/Decorator.php';
-require 'HTMLPurifier/DefinitionCache/Null.php';
-require 'HTMLPurifier/DefinitionCache/Serializer.php';
-require 'HTMLPurifier/DefinitionCache/Decorator/Cleanup.php';
-require 'HTMLPurifier/DefinitionCache/Decorator/Memory.php';
-require 'HTMLPurifier/HTMLModule/Bdo.php';
-require 'HTMLPurifier/HTMLModule/CommonAttributes.php';
-require 'HTMLPurifier/HTMLModule/Edit.php';
-require 'HTMLPurifier/HTMLModule/Forms.php';
-require 'HTMLPurifier/HTMLModule/Hypertext.php';
-require 'HTMLPurifier/HTMLModule/Image.php';
-require 'HTMLPurifier/HTMLModule/Legacy.php';
-require 'HTMLPurifier/HTMLModule/List.php';
-require 'HTMLPurifier/HTMLModule/Name.php';
-require 'HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php';
-require 'HTMLPurifier/HTMLModule/Object.php';
-require 'HTMLPurifier/HTMLModule/Presentation.php';
-require 'HTMLPurifier/HTMLModule/Proprietary.php';
-require 'HTMLPurifier/HTMLModule/Ruby.php';
-require 'HTMLPurifier/HTMLModule/SafeEmbed.php';
-require 'HTMLPurifier/HTMLModule/SafeObject.php';
-require 'HTMLPurifier/HTMLModule/Scripting.php';
-require 'HTMLPurifier/HTMLModule/StyleAttribute.php';
-require 'HTMLPurifier/HTMLModule/Tables.php';
-require 'HTMLPurifier/HTMLModule/Target.php';
-require 'HTMLPurifier/HTMLModule/Text.php';
-require 'HTMLPurifier/HTMLModule/Tidy.php';
-require 'HTMLPurifier/HTMLModule/XMLCommonAttributes.php';
-require 'HTMLPurifier/HTMLModule/Tidy/Name.php';
-require 'HTMLPurifier/HTMLModule/Tidy/Proprietary.php';
-require 'HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php';
-require 'HTMLPurifier/HTMLModule/Tidy/Strict.php';
-require 'HTMLPurifier/HTMLModule/Tidy/Transitional.php';
-require 'HTMLPurifier/HTMLModule/Tidy/XHTML.php';
-require 'HTMLPurifier/Injector/AutoParagraph.php';
-require 'HTMLPurifier/Injector/DisplayLinkURI.php';
-require 'HTMLPurifier/Injector/Linkify.php';
-require 'HTMLPurifier/Injector/PurifierLinkify.php';
-require 'HTMLPurifier/Injector/RemoveEmpty.php';
-require 'HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php';
-require 'HTMLPurifier/Injector/SafeObject.php';
-require 'HTMLPurifier/Lexer/DOMLex.php';
-require 'HTMLPurifier/Lexer/DirectLex.php';
-require 'HTMLPurifier/Strategy/Composite.php';
-require 'HTMLPurifier/Strategy/Core.php';
-require 'HTMLPurifier/Strategy/FixNesting.php';
-require 'HTMLPurifier/Strategy/MakeWellFormed.php';
-require 'HTMLPurifier/Strategy/RemoveForeignElements.php';
-require 'HTMLPurifier/Strategy/ValidateAttributes.php';
-require 'HTMLPurifier/TagTransform/Font.php';
-require 'HTMLPurifier/TagTransform/Simple.php';
-require 'HTMLPurifier/Token/Comment.php';
-require 'HTMLPurifier/Token/Tag.php';
-require 'HTMLPurifier/Token/Empty.php';
-require 'HTMLPurifier/Token/End.php';
-require 'HTMLPurifier/Token/Start.php';
-require 'HTMLPurifier/Token/Text.php';
-require 'HTMLPurifier/URIFilter/DisableExternal.php';
-require 'HTMLPurifier/URIFilter/DisableExternalResources.php';
-require 'HTMLPurifier/URIFilter/DisableResources.php';
-require 'HTMLPurifier/URIFilter/HostBlacklist.php';
-require 'HTMLPurifier/URIFilter/MakeAbsolute.php';
-require 'HTMLPurifier/URIFilter/Munge.php';
-require 'HTMLPurifier/URIScheme/data.php';
-require 'HTMLPurifier/URIScheme/file.php';
-require 'HTMLPurifier/URIScheme/ftp.php';
-require 'HTMLPurifier/URIScheme/http.php';
-require 'HTMLPurifier/URIScheme/https.php';
-require 'HTMLPurifier/URIScheme/mailto.php';
-require 'HTMLPurifier/URIScheme/news.php';
-require 'HTMLPurifier/URIScheme/nntp.php';
-require 'HTMLPurifier/VarParser/Flexible.php';
-require 'HTMLPurifier/VarParser/Native.php';

+ 0 - 30
main/inc/lib/htmlpurifier/library/HTMLPurifier.kses.php

@@ -1,30 +0,0 @@
-<?php
-
-/**
- * @file
- * Emulation layer for code that used kses(), substituting in HTML Purifier.
- */
-
-require_once dirname(__FILE__) . '/HTMLPurifier.auto.php';
-
-function kses($string, $allowed_html, $allowed_protocols = null) {
-    $config = HTMLPurifier_Config::createDefault();
-    $allowed_elements = array();
-    $allowed_attributes = array();
-    foreach ($allowed_html as $element => $attributes) {
-        $allowed_elements[$element] = true;
-        foreach ($attributes as $attribute => $x) {
-            $allowed_attributes["$element.$attribute"] = true;
-        }
-    }
-    $config->set('HTML.AllowedElements', $allowed_elements);
-    $config->set('HTML.AllowedAttributes', $allowed_attributes);
-    $allowed_schemes = array();
-    if ($allowed_protocols !== null) {
-        $config->set('URI.AllowedSchemes', $allowed_protocols);
-    }
-    $purifier = new HTMLPurifier($config);
-    return $purifier->purify($string);
-}
-
-// vim: et sw=4 sts=4

+ 0 - 11
main/inc/lib/htmlpurifier/library/HTMLPurifier.path.php

@@ -1,11 +0,0 @@
-<?php
-
-/**
- * @file
- * Convenience stub file that adds HTML Purifier's library file to the path
- * without any other side-effects.
- */
-
-set_include_path(dirname(__FILE__) . PATH_SEPARATOR . get_include_path() );
-
-// vim: et sw=4 sts=4

+ 0 - 237
main/inc/lib/htmlpurifier/library/HTMLPurifier.php

@@ -1,237 +0,0 @@
-<?php
-
-/*! @mainpage
- *
- * HTML Purifier is an HTML filter that will take an arbitrary snippet of
- * HTML and rigorously test, validate and filter it into a version that
- * is safe for output onto webpages. It achieves this by:
- *
- *  -# Lexing (parsing into tokens) the document,
- *  -# Executing various strategies on the tokens:
- *      -# Removing all elements not in the whitelist,
- *      -# Making the tokens well-formed,
- *      -# Fixing the nesting of the nodes, and
- *      -# Validating attributes of the nodes; and
- *  -# Generating HTML from the purified tokens.
- *
- * However, most users will only need to interface with the HTMLPurifier
- * and HTMLPurifier_Config.
- */
-
-/*
-    HTML Purifier 4.2.0 - Standards Compliant HTML Filtering
-    Copyright (C) 2006-2008 Edward Z. Yang
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-/**
- * Facade that coordinates HTML Purifier's subsystems in order to purify HTML.
- *
- * @note There are several points in which configuration can be specified
- *       for HTML Purifier.  The precedence of these (from lowest to
- *       highest) is as follows:
- *          -# Instance: new HTMLPurifier($config)
- *          -# Invocation: purify($html, $config)
- *       These configurations are entirely independent of each other and
- *       are *not* merged (this behavior may change in the future).
- *
- * @todo We need an easier way to inject strategies using the configuration
- *       object.
- */
-class HTMLPurifier
-{
-
-    /** Version of HTML Purifier */
-    public $version = '4.2.0';
-
-    /** Constant with version of HTML Purifier */
-    const VERSION = '4.2.0';
-
-    /** Global configuration object */
-    public $config;
-
-    /** Array of extra HTMLPurifier_Filter objects to run on HTML, for backwards compatibility */
-    private $filters = array();
-
-    /** Single instance of HTML Purifier */
-    private static $instance;
-
-    protected $strategy, $generator;
-
-    /**
-     * Resultant HTMLPurifier_Context of last run purification. Is an array
-     * of contexts if the last called method was purifyArray().
-     */
-    public $context;
-
-    /**
-     * Initializes the purifier.
-     * @param $config Optional HTMLPurifier_Config object for all instances of
-     *                the purifier, if omitted, a default configuration is
-     *                supplied (which can be overridden on a per-use basis).
-     *                The parameter can also be any type that
-     *                HTMLPurifier_Config::create() supports.
-     */
-    public function __construct($config = null) {
-
-            $this->config = HTMLPurifier_Config::create($config);
-
-            $this->strategy = new HTMLPurifier_Strategy_Core();
-
-    }
-
-    /**
-     * Adds a filter to process the output. First come first serve
-     * @param $filter HTMLPurifier_Filter object
-     */
-    public function addFilter($filter) {
-        trigger_error('HTMLPurifier->addFilter() is deprecated, use configuration directives in the Filter namespace or Filter.Custom', E_USER_WARNING);
-        $this->filters[] = $filter;
-    }
-
-    /**
-     * Filters an HTML snippet/document to be XSS-free and standards-compliant.
-     *
-     * @param $html String of HTML to purify
-     * @param $config HTMLPurifier_Config object for this operation, if omitted,
-     *                defaults to the config object specified during this
-     *                object's construction. The parameter can also be any type
-     *                that HTMLPurifier_Config::create() supports.
-     * @return Purified HTML
-     */
-    public function purify($html, $config = null) {
-
-        // :TODO: make the config merge in, instead of replace
-        $config = $config ? HTMLPurifier_Config::create($config) : $this->config;
-
-        // implementation is partially environment dependant, partially
-        // configuration dependant
-        $lexer = HTMLPurifier_Lexer::create($config);
-
-        $context = new HTMLPurifier_Context();
-
-        // setup HTML generator
-        $this->generator = new HTMLPurifier_Generator($config, $context);
-        $context->register('Generator', $this->generator);
-
-        // set up global context variables
-        if ($config->get('Core.CollectErrors')) {
-            // may get moved out if other facilities use it
-            $language_factory = HTMLPurifier_LanguageFactory::instance();
-            $language = $language_factory->create($config, $context);
-            $context->register('Locale', $language);
-
-            $error_collector = new HTMLPurifier_ErrorCollector($context);
-            $context->register('ErrorCollector', $error_collector);
-        }
-
-        // setup id_accumulator context, necessary due to the fact that
-        // AttrValidator can be called from many places
-        $id_accumulator = HTMLPurifier_IDAccumulator::build($config, $context);
-        $context->register('IDAccumulator', $id_accumulator);
-
-        $html = HTMLPurifier_Encoder::convertToUTF8($html, $config, $context);
-
-        // setup filters
-        $filter_flags = $config->getBatch('Filter');
-        $custom_filters = $filter_flags['Custom'];
-        unset($filter_flags['Custom']);
-        $filters = array();
-        foreach ($filter_flags as $filter => $flag) {
-            if (!$flag) continue;
-            if (strpos($filter, '.') !== false) continue;
-            $class = "HTMLPurifier_Filter_$filter";
-            $filters[] = new $class;
-        }
-        foreach ($custom_filters as $filter) {
-            // maybe "HTMLPurifier_Filter_$filter", but be consistent with AutoFormat
-            $filters[] = $filter;
-        }
-        $filters = array_merge($filters, $this->filters);
-        // maybe prepare(), but later
-
-        for ($i = 0, $filter_size = count($filters); $i < $filter_size; $i++) {
-            $html = $filters[$i]->preFilter($html, $config, $context);
-        }
-
-        // purified HTML
-        $html =
-            $this->generator->generateFromTokens(
-                // list of tokens
-                $this->strategy->execute(
-                    // list of un-purified tokens
-                    $lexer->tokenizeHTML(
-                        // un-purified HTML
-                        $html, $config, $context
-                    ),
-                    $config, $context
-                )
-            );
-
-        for ($i = $filter_size - 1; $i >= 0; $i--) {
-            $html = $filters[$i]->postFilter($html, $config, $context);
-        }
-
-        $html = HTMLPurifier_Encoder::convertFromUTF8($html, $config, $context);
-        $this->context =& $context;
-        return $html;
-    }
-
-    /**
-     * Filters an array of HTML snippets
-     * @param $config Optional HTMLPurifier_Config object for this operation.
-     *                See HTMLPurifier::purify() for more details.
-     * @return Array of purified HTML
-     */
-    public function purifyArray($array_of_html, $config = null) {
-            $context_array = array();
-            foreach ($array_of_html as $key => $html) {
-                $array_of_html[$key] = $this->purify($html, $config);
-                $context_array[$key] = $this->context;
-            }
-            $this->context = $context_array;
-            return $array_of_html;
-         }
-
-    /**
-     * Singleton for enforcing just one HTML Purifier in your system
-     * @param $prototype Optional prototype HTMLPurifier instance to
-     *                   overload singleton with, or HTMLPurifier_Config
-     *                   instance to configure the generated version with.
-     */
-    public static function instance($prototype = null) {
-        if (!self::$instance || $prototype) {
-            if ($prototype instanceof HTMLPurifier) {
-                self::$instance = $prototype;
-            } elseif ($prototype) {
-                self::$instance = new HTMLPurifier($prototype);
-            } else {
-                self::$instance = new HTMLPurifier();
-            }
-        }
-        return self::$instance;
-    }
-
-    /**
-     * @note Backwards compatibility, see instance()
-     */
-    public static function getInstance($prototype = null) {
-        return HTMLPurifier::instance($prototype);
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 206
main/inc/lib/htmlpurifier/library/HTMLPurifier.safe-includes.php

@@ -1,206 +0,0 @@
-<?php
-
-/**
- * @file
- * This file was auto-generated by generate-includes.php and includes all of
- * the core files required by HTML Purifier. This is a convenience stub that
- * includes all files using dirname(__FILE__) and require_once. PLEASE DO NOT
- * EDIT THIS FILE, changes will be overwritten the next time the script is run.
- *
- * Changes to include_path are not necessary.
- */
-
-$__dir = dirname(__FILE__);
-
-require_once $__dir . '/HTMLPurifier.php';
-require_once $__dir . '/HTMLPurifier/AttrCollections.php';
-require_once $__dir . '/HTMLPurifier/AttrDef.php';
-require_once $__dir . '/HTMLPurifier/AttrTransform.php';
-require_once $__dir . '/HTMLPurifier/AttrTypes.php';
-require_once $__dir . '/HTMLPurifier/AttrValidator.php';
-require_once $__dir . '/HTMLPurifier/Bootstrap.php';
-require_once $__dir . '/HTMLPurifier/Definition.php';
-require_once $__dir . '/HTMLPurifier/CSSDefinition.php';
-require_once $__dir . '/HTMLPurifier/ChildDef.php';
-require_once $__dir . '/HTMLPurifier/Config.php';
-require_once $__dir . '/HTMLPurifier/ConfigSchema.php';
-require_once $__dir . '/HTMLPurifier/ContentSets.php';
-require_once $__dir . '/HTMLPurifier/Context.php';
-require_once $__dir . '/HTMLPurifier/DefinitionCache.php';
-require_once $__dir . '/HTMLPurifier/DefinitionCacheFactory.php';
-require_once $__dir . '/HTMLPurifier/Doctype.php';
-require_once $__dir . '/HTMLPurifier/DoctypeRegistry.php';
-require_once $__dir . '/HTMLPurifier/ElementDef.php';
-require_once $__dir . '/HTMLPurifier/Encoder.php';
-require_once $__dir . '/HTMLPurifier/EntityLookup.php';
-require_once $__dir . '/HTMLPurifier/EntityParser.php';
-require_once $__dir . '/HTMLPurifier/ErrorCollector.php';
-require_once $__dir . '/HTMLPurifier/ErrorStruct.php';
-require_once $__dir . '/HTMLPurifier/Exception.php';
-require_once $__dir . '/HTMLPurifier/Filter.php';
-require_once $__dir . '/HTMLPurifier/Generator.php';
-require_once $__dir . '/HTMLPurifier/HTMLDefinition.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule.php';
-require_once $__dir . '/HTMLPurifier/HTMLModuleManager.php';
-require_once $__dir . '/HTMLPurifier/IDAccumulator.php';
-require_once $__dir . '/HTMLPurifier/Injector.php';
-require_once $__dir . '/HTMLPurifier/Language.php';
-require_once $__dir . '/HTMLPurifier/LanguageFactory.php';
-require_once $__dir . '/HTMLPurifier/Length.php';
-require_once $__dir . '/HTMLPurifier/Lexer.php';
-require_once $__dir . '/HTMLPurifier/PercentEncoder.php';
-require_once $__dir . '/HTMLPurifier/PropertyList.php';
-require_once $__dir . '/HTMLPurifier/PropertyListIterator.php';
-require_once $__dir . '/HTMLPurifier/Strategy.php';
-require_once $__dir . '/HTMLPurifier/StringHash.php';
-require_once $__dir . '/HTMLPurifier/StringHashParser.php';
-require_once $__dir . '/HTMLPurifier/TagTransform.php';
-require_once $__dir . '/HTMLPurifier/Token.php';
-require_once $__dir . '/HTMLPurifier/TokenFactory.php';
-require_once $__dir . '/HTMLPurifier/URI.php';
-require_once $__dir . '/HTMLPurifier/URIDefinition.php';
-require_once $__dir . '/HTMLPurifier/URIFilter.php';
-require_once $__dir . '/HTMLPurifier/URIParser.php';
-require_once $__dir . '/HTMLPurifier/URIScheme.php';
-require_once $__dir . '/HTMLPurifier/URISchemeRegistry.php';
-require_once $__dir . '/HTMLPurifier/UnitConverter.php';
-require_once $__dir . '/HTMLPurifier/VarParser.php';
-require_once $__dir . '/HTMLPurifier/VarParserException.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/CSS.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/Enum.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/Integer.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/Lang.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/Switch.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/Text.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/URI.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/CSS/Number.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/CSS/AlphaValue.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/CSS/Background.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/CSS/Border.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/CSS/Color.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/CSS/Composite.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/CSS/Filter.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/CSS/Font.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/CSS/FontFamily.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/CSS/Length.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/CSS/ListStyle.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/CSS/Multiple.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/CSS/Percentage.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/CSS/TextDecoration.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/CSS/URI.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/HTML/Bool.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/HTML/Nmtokens.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/HTML/Class.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/HTML/Color.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/HTML/FrameTarget.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/HTML/ID.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/HTML/Pixels.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/HTML/Length.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/HTML/LinkTypes.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/HTML/MultiLength.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/URI/Email.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/URI/Host.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/URI/IPv4.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/URI/IPv6.php';
-require_once $__dir . '/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php';
-require_once $__dir . '/HTMLPurifier/AttrTransform/Background.php';
-require_once $__dir . '/HTMLPurifier/AttrTransform/BdoDir.php';
-require_once $__dir . '/HTMLPurifier/AttrTransform/BgColor.php';
-require_once $__dir . '/HTMLPurifier/AttrTransform/BoolToCSS.php';
-require_once $__dir . '/HTMLPurifier/AttrTransform/Border.php';
-require_once $__dir . '/HTMLPurifier/AttrTransform/EnumToCSS.php';
-require_once $__dir . '/HTMLPurifier/AttrTransform/ImgRequired.php';
-require_once $__dir . '/HTMLPurifier/AttrTransform/ImgSpace.php';
-require_once $__dir . '/HTMLPurifier/AttrTransform/Input.php';
-require_once $__dir . '/HTMLPurifier/AttrTransform/Lang.php';
-require_once $__dir . '/HTMLPurifier/AttrTransform/Length.php';
-require_once $__dir . '/HTMLPurifier/AttrTransform/Name.php';
-require_once $__dir . '/HTMLPurifier/AttrTransform/NameSync.php';
-require_once $__dir . '/HTMLPurifier/AttrTransform/SafeEmbed.php';
-require_once $__dir . '/HTMLPurifier/AttrTransform/SafeObject.php';
-require_once $__dir . '/HTMLPurifier/AttrTransform/SafeParam.php';
-require_once $__dir . '/HTMLPurifier/AttrTransform/ScriptRequired.php';
-require_once $__dir . '/HTMLPurifier/AttrTransform/Textarea.php';
-require_once $__dir . '/HTMLPurifier/ChildDef/Chameleon.php';
-require_once $__dir . '/HTMLPurifier/ChildDef/Custom.php';
-require_once $__dir . '/HTMLPurifier/ChildDef/Empty.php';
-require_once $__dir . '/HTMLPurifier/ChildDef/Required.php';
-require_once $__dir . '/HTMLPurifier/ChildDef/Optional.php';
-require_once $__dir . '/HTMLPurifier/ChildDef/StrictBlockquote.php';
-require_once $__dir . '/HTMLPurifier/ChildDef/Table.php';
-require_once $__dir . '/HTMLPurifier/DefinitionCache/Decorator.php';
-require_once $__dir . '/HTMLPurifier/DefinitionCache/Null.php';
-require_once $__dir . '/HTMLPurifier/DefinitionCache/Serializer.php';
-require_once $__dir . '/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php';
-require_once $__dir . '/HTMLPurifier/DefinitionCache/Decorator/Memory.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/Bdo.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/CommonAttributes.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/Edit.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/Forms.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/Hypertext.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/Image.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/Legacy.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/List.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/Name.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/Object.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/Presentation.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/Proprietary.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/Ruby.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/SafeEmbed.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/SafeObject.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/Scripting.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/StyleAttribute.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/Tables.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/Target.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/Text.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/Tidy.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/XMLCommonAttributes.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/Tidy/Name.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/Tidy/Proprietary.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/Tidy/Strict.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/Tidy/Transitional.php';
-require_once $__dir . '/HTMLPurifier/HTMLModule/Tidy/XHTML.php';
-require_once $__dir . '/HTMLPurifier/Injector/AutoParagraph.php';
-require_once $__dir . '/HTMLPurifier/Injector/DisplayLinkURI.php';
-require_once $__dir . '/HTMLPurifier/Injector/Linkify.php';
-require_once $__dir . '/HTMLPurifier/Injector/PurifierLinkify.php';
-require_once $__dir . '/HTMLPurifier/Injector/RemoveEmpty.php';
-require_once $__dir . '/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php';
-require_once $__dir . '/HTMLPurifier/Injector/SafeObject.php';
-require_once $__dir . '/HTMLPurifier/Lexer/DOMLex.php';
-require_once $__dir . '/HTMLPurifier/Lexer/DirectLex.php';
-require_once $__dir . '/HTMLPurifier/Strategy/Composite.php';
-require_once $__dir . '/HTMLPurifier/Strategy/Core.php';
-require_once $__dir . '/HTMLPurifier/Strategy/FixNesting.php';
-require_once $__dir . '/HTMLPurifier/Strategy/MakeWellFormed.php';
-require_once $__dir . '/HTMLPurifier/Strategy/RemoveForeignElements.php';
-require_once $__dir . '/HTMLPurifier/Strategy/ValidateAttributes.php';
-require_once $__dir . '/HTMLPurifier/TagTransform/Font.php';
-require_once $__dir . '/HTMLPurifier/TagTransform/Simple.php';
-require_once $__dir . '/HTMLPurifier/Token/Comment.php';
-require_once $__dir . '/HTMLPurifier/Token/Tag.php';
-require_once $__dir . '/HTMLPurifier/Token/Empty.php';
-require_once $__dir . '/HTMLPurifier/Token/End.php';
-require_once $__dir . '/HTMLPurifier/Token/Start.php';
-require_once $__dir . '/HTMLPurifier/Token/Text.php';
-require_once $__dir . '/HTMLPurifier/URIFilter/DisableExternal.php';
-require_once $__dir . '/HTMLPurifier/URIFilter/DisableExternalResources.php';
-require_once $__dir . '/HTMLPurifier/URIFilter/DisableResources.php';
-require_once $__dir . '/HTMLPurifier/URIFilter/HostBlacklist.php';
-require_once $__dir . '/HTMLPurifier/URIFilter/MakeAbsolute.php';
-require_once $__dir . '/HTMLPurifier/URIFilter/Munge.php';
-require_once $__dir . '/HTMLPurifier/URIScheme/data.php';
-require_once $__dir . '/HTMLPurifier/URIScheme/file.php';
-require_once $__dir . '/HTMLPurifier/URIScheme/ftp.php';
-require_once $__dir . '/HTMLPurifier/URIScheme/http.php';
-require_once $__dir . '/HTMLPurifier/URIScheme/https.php';
-require_once $__dir . '/HTMLPurifier/URIScheme/mailto.php';
-require_once $__dir . '/HTMLPurifier/URIScheme/news.php';
-require_once $__dir . '/HTMLPurifier/URIScheme/nntp.php';
-require_once $__dir . '/HTMLPurifier/VarParser/Flexible.php';
-require_once $__dir . '/HTMLPurifier/VarParser/Native.php';

+ 0 - 128
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrCollections.php

@@ -1,128 +0,0 @@
-<?php
-
-/**
- * Defines common attribute collections that modules reference
- */
-
-class HTMLPurifier_AttrCollections
-{
-
-    /**
-     * Associative array of attribute collections, indexed by name
-     */
-    public $info = array();
-
-    /**
-     * Performs all expansions on internal data for use by other inclusions
-     * It also collects all attribute collection extensions from
-     * modules
-     * @param $attr_types HTMLPurifier_AttrTypes instance
-     * @param $modules Hash array of HTMLPurifier_HTMLModule members
-     */
-    public function __construct($attr_types, $modules) {
-        // load extensions from the modules
-        foreach ($modules as $module) {
-            foreach ($module->attr_collections as $coll_i => $coll) {
-                if (!isset($this->info[$coll_i])) {
-                    $this->info[$coll_i] = array();
-                }
-                foreach ($coll as $attr_i => $attr) {
-                    if ($attr_i === 0 && isset($this->info[$coll_i][$attr_i])) {
-                        // merge in includes
-                        $this->info[$coll_i][$attr_i] = array_merge(
-                            $this->info[$coll_i][$attr_i], $attr);
-                        continue;
-                    }
-                    $this->info[$coll_i][$attr_i] = $attr;
-                }
-            }
-        }
-        // perform internal expansions and inclusions
-        foreach ($this->info as $name => $attr) {
-            // merge attribute collections that include others
-            $this->performInclusions($this->info[$name]);
-            // replace string identifiers with actual attribute objects
-            $this->expandIdentifiers($this->info[$name], $attr_types);
-        }
-    }
-
-    /**
-     * Takes a reference to an attribute associative array and performs
-     * all inclusions specified by the zero index.
-     * @param &$attr Reference to attribute array
-     */
-    public function performInclusions(&$attr) {
-        if (!isset($attr[0])) return;
-        $merge = $attr[0];
-        $seen  = array(); // recursion guard
-        // loop through all the inclusions
-        for ($i = 0; isset($merge[$i]); $i++) {
-            if (isset($seen[$merge[$i]])) continue;
-            $seen[$merge[$i]] = true;
-            // foreach attribute of the inclusion, copy it over
-            if (!isset($this->info[$merge[$i]])) continue;
-            foreach ($this->info[$merge[$i]] as $key => $value) {
-                if (isset($attr[$key])) continue; // also catches more inclusions
-                $attr[$key] = $value;
-            }
-            if (isset($this->info[$merge[$i]][0])) {
-                // recursion
-                $merge = array_merge($merge, $this->info[$merge[$i]][0]);
-            }
-        }
-        unset($attr[0]);
-    }
-
-    /**
-     * Expands all string identifiers in an attribute array by replacing
-     * them with the appropriate values inside HTMLPurifier_AttrTypes
-     * @param &$attr Reference to attribute array
-     * @param $attr_types HTMLPurifier_AttrTypes instance
-     */
-    public function expandIdentifiers(&$attr, $attr_types) {
-
-        // because foreach will process new elements we add, make sure we
-        // skip duplicates
-        $processed = array();
-
-        foreach ($attr as $def_i => $def) {
-            // skip inclusions
-            if ($def_i === 0) continue;
-
-            if (isset($processed[$def_i])) continue;
-
-            // determine whether or not attribute is required
-            if ($required = (strpos($def_i, '*') !== false)) {
-                // rename the definition
-                unset($attr[$def_i]);
-                $def_i = trim($def_i, '*');
-                $attr[$def_i] = $def;
-            }
-
-            $processed[$def_i] = true;
-
-            // if we've already got a literal object, move on
-            if (is_object($def)) {
-                // preserve previous required
-                $attr[$def_i]->required = ($required || $attr[$def_i]->required);
-                continue;
-            }
-
-            if ($def === false) {
-                unset($attr[$def_i]);
-                continue;
-            }
-
-            if ($t = $attr_types->get($def)) {
-                $attr[$def_i] = $t;
-                $attr[$def_i]->required = $required;
-            } else {
-                unset($attr[$def_i]);
-            }
-        }
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 123
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef.php

@@ -1,123 +0,0 @@
-<?php
-
-/**
- * Base class for all validating attribute definitions.
- *
- * This family of classes forms the core for not only HTML attribute validation,
- * but also any sort of string that needs to be validated or cleaned (which
- * means CSS properties and composite definitions are defined here too).
- * Besides defining (through code) what precisely makes the string valid,
- * subclasses are also responsible for cleaning the code if possible.
- */
-
-abstract class HTMLPurifier_AttrDef
-{
-
-    /**
-     * Tells us whether or not an HTML attribute is minimized. Has no
-     * meaning in other contexts.
-     */
-    public $minimized = false;
-
-    /**
-     * Tells us whether or not an HTML attribute is required. Has no
-     * meaning in other contexts
-     */
-    public $required = false;
-
-    /**
-     * Validates and cleans passed string according to a definition.
-     *
-     * @param $string String to be validated and cleaned.
-     * @param $config Mandatory HTMLPurifier_Config object.
-     * @param $context Mandatory HTMLPurifier_AttrContext object.
-     */
-    abstract public function validate($string, $config, $context);
-
-    /**
-     * Convenience method that parses a string as if it were CDATA.
-     *
-     * This method process a string in the manner specified at
-     * <http://www.w3.org/TR/html4/types.html#h-6.2> by removing
-     * leading and trailing whitespace, ignoring line feeds, and replacing
-     * carriage returns and tabs with spaces.  While most useful for HTML
-     * attributes specified as CDATA, it can also be applied to most CSS
-     * values.
-     *
-     * @note This method is not entirely standards compliant, as trim() removes
-     *       more types of whitespace than specified in the spec. In practice,
-     *       this is rarely a problem, as those extra characters usually have
-     *       already been removed by HTMLPurifier_Encoder.
-     *
-     * @warning This processing is inconsistent with XML's whitespace handling
-     *          as specified by section 3.3.3 and referenced XHTML 1.0 section
-     *          4.7.  However, note that we are NOT necessarily
-     *          parsing XML, thus, this behavior may still be correct. We
-     *          assume that newlines have been normalized.
-     */
-    public function parseCDATA($string) {
-        $string = trim($string);
-        $string = str_replace(array("\n", "\t", "\r"), ' ', $string);
-        return $string;
-    }
-
-    /**
-     * Factory method for creating this class from a string.
-     * @param $string String construction info
-     * @return Created AttrDef object corresponding to $string
-     */
-    public function make($string) {
-        // default implementation, return a flyweight of this object.
-        // If $string has an effect on the returned object (i.e. you
-        // need to overload this method), it is best
-        // to clone or instantiate new copies. (Instantiation is safer.)
-        return $this;
-    }
-
-    /**
-     * Removes spaces from rgb(0, 0, 0) so that shorthand CSS properties work
-     * properly. THIS IS A HACK!
-     */
-    protected function mungeRgb($string) {
-        return preg_replace('/rgb\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)\)/', 'rgb(\1,\2,\3)', $string);
-    }
-
-    /**
-     * Parses a possibly escaped CSS string and returns the "pure" 
-     * version of it.
-     */
-    protected function expandCSSEscape($string) {
-        // flexibly parse it
-        $ret = '';
-        for ($i = 0, $c = strlen($string); $i < $c; $i++) {
-            if ($string[$i] === '\\') {
-                $i++;
-                if ($i >= $c) {
-                    $ret .= '\\';
-                    break;
-                }
-                if (ctype_xdigit($string[$i])) {
-                    $code = $string[$i];
-                    for ($a = 1, $i++; $i < $c && $a < 6; $i++, $a++) {
-                        if (!ctype_xdigit($string[$i])) break;
-                        $code .= $string[$i];
-                    }
-                    // We have to be extremely careful when adding
-                    // new characters, to make sure we're not breaking
-                    // the encoding.
-                    $char = HTMLPurifier_Encoder::unichr(hexdec($code));
-                    if (HTMLPurifier_Encoder::cleanUTF8($char) === '') continue;
-                    $ret .= $char;
-                    if ($i < $c && trim($string[$i]) !== '') $i--;
-                    continue;
-                }
-                if ($string[$i] === "\n") continue;
-            }
-            $ret .= $string[$i];
-        }
-        return $ret;
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 87
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS.php

@@ -1,87 +0,0 @@
-<?php
-
-/**
- * Validates the HTML attribute style, otherwise known as CSS.
- * @note We don't implement the whole CSS specification, so it might be
- *       difficult to reuse this component in the context of validating
- *       actual stylesheet declarations.
- * @note If we were really serious about validating the CSS, we would
- *       tokenize the styles and then parse the tokens. Obviously, we
- *       are not doing that. Doing that could seriously harm performance,
- *       but would make these components a lot more viable for a CSS
- *       filtering solution.
- */
-class HTMLPurifier_AttrDef_CSS extends HTMLPurifier_AttrDef
-{
-
-    public function validate($css, $config, $context) {
-
-        $css = $this->parseCDATA($css);
-
-        $definition = $config->getCSSDefinition();
-
-        // we're going to break the spec and explode by semicolons.
-        // This is because semicolon rarely appears in escaped form
-        // Doing this is generally flaky but fast
-        // IT MIGHT APPEAR IN URIs, see HTMLPurifier_AttrDef_CSSURI
-        // for details
-
-        $declarations = explode(';', $css);
-        $propvalues = array();
-
-        /**
-         * Name of the current CSS property being validated.
-         */
-        $property = false;
-        $context->register('CurrentCSSProperty', $property);
-
-        foreach ($declarations as $declaration) {
-            if (!$declaration) continue;
-            if (!strpos($declaration, ':')) continue;
-            list($property, $value) = explode(':', $declaration, 2);
-            $property = trim($property);
-            $value    = trim($value);
-            $ok = false;
-            do {
-                if (isset($definition->info[$property])) {
-                    $ok = true;
-                    break;
-                }
-                if (ctype_lower($property)) break;
-                $property = strtolower($property);
-                if (isset($definition->info[$property])) {
-                    $ok = true;
-                    break;
-                }
-            } while(0);
-            if (!$ok) continue;
-            // inefficient call, since the validator will do this again
-            if (strtolower(trim($value)) !== 'inherit') {
-                // inherit works for everything (but only on the base property)
-                $result = $definition->info[$property]->validate(
-                    $value, $config, $context );
-            } else {
-                $result = 'inherit';
-            }
-            if ($result === false) continue;
-            $propvalues[$property] = $result;
-        }
-
-        $context->destroy('CurrentCSSProperty');
-
-        // procedure does not write the new CSS simultaneously, so it's
-        // slightly inefficient, but it's the only way of getting rid of
-        // duplicates. Perhaps config to optimize it, but not now.
-
-        $new_declarations = '';
-        foreach ($propvalues as $prop => $value) {
-            $new_declarations .= "$prop:$value;";
-        }
-
-        return $new_declarations ? $new_declarations : false;
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 21
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/AlphaValue.php

@@ -1,21 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrDef_CSS_AlphaValue extends HTMLPurifier_AttrDef_CSS_Number
-{
-
-    public function __construct() {
-        parent::__construct(false); // opacity is non-negative, but we will clamp it
-    }
-
-    public function validate($number, $config, $context) {
-        $result = parent::validate($number, $config, $context);
-        if ($result === false) return $result;
-        $float = (float) $result;
-        if ($float < 0.0) $result = '0';
-        if ($float > 1.0) $result = '1';
-        return $result;
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 87
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Background.php

@@ -1,87 +0,0 @@
-<?php
-
-/**
- * Validates shorthand CSS property background.
- * @warning Does not support url tokens that have internal spaces.
- */
-class HTMLPurifier_AttrDef_CSS_Background extends HTMLPurifier_AttrDef
-{
-
-    /**
-     * Local copy of component validators.
-     * @note See HTMLPurifier_AttrDef_Font::$info for a similar impl.
-     */
-    protected $info;
-
-    public function __construct($config) {
-        $def = $config->getCSSDefinition();
-        $this->info['background-color'] = $def->info['background-color'];
-        $this->info['background-image'] = $def->info['background-image'];
-        $this->info['background-repeat'] = $def->info['background-repeat'];
-        $this->info['background-attachment'] = $def->info['background-attachment'];
-        $this->info['background-position'] = $def->info['background-position'];
-    }
-
-    public function validate($string, $config, $context) {
-
-        // regular pre-processing
-        $string = $this->parseCDATA($string);
-        if ($string === '') return false;
-
-        // munge rgb() decl if necessary
-        $string = $this->mungeRgb($string);
-
-        // assumes URI doesn't have spaces in it
-        $bits = explode(' ', strtolower($string)); // bits to process
-
-        $caught = array();
-        $caught['color']    = false;
-        $caught['image']    = false;
-        $caught['repeat']   = false;
-        $caught['attachment'] = false;
-        $caught['position'] = false;
-
-        $i = 0; // number of catches
-        $none = false;
-
-        foreach ($bits as $bit) {
-            if ($bit === '') continue;
-            foreach ($caught as $key => $status) {
-                if ($key != 'position') {
-                    if ($status !== false) continue;
-                    $r = $this->info['background-' . $key]->validate($bit, $config, $context);
-                } else {
-                    $r = $bit;
-                }
-                if ($r === false) continue;
-                if ($key == 'position') {
-                    if ($caught[$key] === false) $caught[$key] = '';
-                    $caught[$key] .= $r . ' ';
-                } else {
-                    $caught[$key] = $r;
-                }
-                $i++;
-                break;
-            }
-        }
-
-        if (!$i) return false;
-        if ($caught['position'] !== false) {
-            $caught['position'] = $this->info['background-position']->
-                validate($caught['position'], $config, $context);
-        }
-
-        $ret = array();
-        foreach ($caught as $value) {
-            if ($value === false) continue;
-            $ret[] = $value;
-        }
-
-        if (empty($ret)) return false;
-        return implode(' ', $ret);
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 133
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php

@@ -1,133 +0,0 @@
-<?php
-
-/* W3C says:
-    [ // adjective and number must be in correct order, even if
-      // you could switch them without introducing ambiguity.
-      // some browsers support that syntax
-        [
-            <percentage> | <length> | left | center | right
-        ]
-        [
-            <percentage> | <length> | top | center | bottom
-        ]?
-    ] |
-    [ // this signifies that the vertical and horizontal adjectives
-      // can be arbitrarily ordered, however, there can only be two,
-      // one of each, or none at all
-        [
-            left | center | right
-        ] ||
-        [
-            top | center | bottom
-        ]
-    ]
-    top, left = 0%
-    center, (none) = 50%
-    bottom, right = 100%
-*/
-
-/* QuirksMode says:
-    keyword + length/percentage must be ordered correctly, as per W3C
-
-    Internet Explorer and Opera, however, support arbitrary ordering. We
-    should fix it up.
-
-    Minor issue though, not strictly necessary.
-*/
-
-// control freaks may appreciate the ability to convert these to
-// percentages or something, but it's not necessary
-
-/**
- * Validates the value of background-position.
- */
-class HTMLPurifier_AttrDef_CSS_BackgroundPosition extends HTMLPurifier_AttrDef
-{
-
-    protected $length;
-    protected $percentage;
-
-    public function __construct() {
-        $this->length     = new HTMLPurifier_AttrDef_CSS_Length();
-        $this->percentage = new HTMLPurifier_AttrDef_CSS_Percentage();
-    }
-
-    public function validate($string, $config, $context) {
-        $string = $this->parseCDATA($string);
-        $bits = explode(' ', $string);
-
-        $keywords = array();
-        $keywords['h'] = false; // left, right
-        $keywords['v'] = false; // top, bottom
-        $keywords['ch'] = false; // center (first word)
-        $keywords['cv'] = false; // center (second word)
-        $measures = array();
-
-        $i = 0;
-
-        $lookup = array(
-            'top' => 'v',
-            'bottom' => 'v',
-            'left' => 'h',
-            'right' => 'h',
-            'center' => 'c'
-        );
-
-        foreach ($bits as $bit) {
-            if ($bit === '') continue;
-
-            // test for keyword
-            $lbit = ctype_lower($bit) ? $bit : strtolower($bit);
-            if (isset($lookup[$lbit])) {
-                $status = $lookup[$lbit];
-                if ($status == 'c') {
-                    if ($i == 0) {
-                        $status = 'ch';
-                    } else {
-                        $status = 'cv';
-                    }
-                }
-                $keywords[$status] = $lbit;
-                $i++;
-            }
-
-            // test for length
-            $r = $this->length->validate($bit, $config, $context);
-            if ($r !== false) {
-                $measures[] = $r;
-                $i++;
-            }
-
-            // test for percentage
-            $r = $this->percentage->validate($bit, $config, $context);
-            if ($r !== false) {
-                $measures[] = $r;
-                $i++;
-            }
-
-        }
-
-        if (!$i) return false; // no valid values were caught
-
-        $ret = array();
-
-        // first keyword
-        if     ($keywords['h'])     $ret[] = $keywords['h'];
-        elseif ($keywords['ch']) {
-            $ret[] = $keywords['ch'];
-            $keywords['cv'] = false; // prevent re-use: center = center center
-        }
-        elseif (count($measures))   $ret[] = array_shift($measures);
-
-        if     ($keywords['v'])     $ret[] = $keywords['v'];
-        elseif ($keywords['cv'])    $ret[] = $keywords['cv'];
-        elseif (count($measures))   $ret[] = array_shift($measures);
-
-        if (empty($ret)) return false;
-        return implode(' ', $ret);
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 43
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Border.php

@@ -1,43 +0,0 @@
-<?php
-
-/**
- * Validates the border property as defined by CSS.
- */
-class HTMLPurifier_AttrDef_CSS_Border extends HTMLPurifier_AttrDef
-{
-
-    /**
-     * Local copy of properties this property is shorthand for.
-     */
-    protected $info = array();
-
-    public function __construct($config) {
-        $def = $config->getCSSDefinition();
-        $this->info['border-width'] = $def->info['border-width'];
-        $this->info['border-style'] = $def->info['border-style'];
-        $this->info['border-top-color'] = $def->info['border-top-color'];
-    }
-
-    public function validate($string, $config, $context) {
-        $string = $this->parseCDATA($string);
-        $string = $this->mungeRgb($string);
-        $bits = explode(' ', $string);
-        $done = array(); // segments we've finished
-        $ret = ''; // return value
-        foreach ($bits as $bit) {
-            foreach ($this->info as $propname => $validator) {
-                if (isset($done[$propname])) continue;
-                $r = $validator->validate($bit, $config, $context);
-                if ($r !== false) {
-                    $ret .= $r . ' ';
-                    $done[$propname] = true;
-                    break;
-                }
-            }
-        }
-        return rtrim($ret);
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 78
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Color.php

@@ -1,78 +0,0 @@
-<?php
-
-/**
- * Validates Color as defined by CSS.
- */
-class HTMLPurifier_AttrDef_CSS_Color extends HTMLPurifier_AttrDef
-{
-
-    public function validate($color, $config, $context) {
-
-        static $colors = null;
-        if ($colors === null) $colors = $config->get('Core.ColorKeywords');
-
-        $color = trim($color);
-        if ($color === '') return false;
-
-        $lower = strtolower($color);
-        if (isset($colors[$lower])) return $colors[$lower];
-
-        if (strpos($color, 'rgb(') !== false) {
-            // rgb literal handling
-            $length = strlen($color);
-            if (strpos($color, ')') !== $length - 1) return false;
-            $triad = substr($color, 4, $length - 4 - 1);
-            $parts = explode(',', $triad);
-            if (count($parts) !== 3) return false;
-            $type = false; // to ensure that they're all the same type
-            $new_parts = array();
-            foreach ($parts as $part) {
-                $part = trim($part);
-                if ($part === '') return false;
-                $length = strlen($part);
-                if ($part[$length - 1] === '%') {
-                    // handle percents
-                    if (!$type) {
-                        $type = 'percentage';
-                    } elseif ($type !== 'percentage') {
-                        return false;
-                    }
-                    $num = (float) substr($part, 0, $length - 1);
-                    if ($num < 0) $num = 0;
-                    if ($num > 100) $num = 100;
-                    $new_parts[] = "$num%";
-                } else {
-                    // handle integers
-                    if (!$type) {
-                        $type = 'integer';
-                    } elseif ($type !== 'integer') {
-                        return false;
-                    }
-                    $num = (int) $part;
-                    if ($num < 0) $num = 0;
-                    if ($num > 255) $num = 255;
-                    $new_parts[] = (string) $num;
-                }
-            }
-            $new_triad = implode(',', $new_parts);
-            $color = "rgb($new_triad)";
-        } else {
-            // hexadecimal handling
-            if ($color[0] === '#') {
-                $hex = substr($color, 1);
-            } else {
-                $hex = $color;
-                $color = '#' . $color;
-            }
-            $length = strlen($hex);
-            if ($length !== 3 && $length !== 6) return false;
-            if (!ctype_xdigit($hex)) return false;
-        }
-
-        return $color;
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 38
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Composite.php

@@ -1,38 +0,0 @@
-<?php
-
-/**
- * Allows multiple validators to attempt to validate attribute.
- *
- * Composite is just what it sounds like: a composite of many validators.
- * This means that multiple HTMLPurifier_AttrDef objects will have a whack
- * at the string.  If one of them passes, that's what is returned.  This is
- * especially useful for CSS values, which often are a choice between
- * an enumerated set of predefined values or a flexible data type.
- */
-class HTMLPurifier_AttrDef_CSS_Composite extends HTMLPurifier_AttrDef
-{
-
-    /**
-     * List of HTMLPurifier_AttrDef objects that may process strings
-     * @todo Make protected
-     */
-    public $defs;
-
-    /**
-     * @param $defs List of HTMLPurifier_AttrDef objects
-     */
-    public function __construct($defs) {
-        $this->defs = $defs;
-    }
-
-    public function validate($string, $config, $context) {
-        foreach ($this->defs as $i => $def) {
-            $result = $this->defs[$i]->validate($string, $config, $context);
-            if ($result !== false) return $result;
-        }
-        return false;
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 28
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php

@@ -1,28 +0,0 @@
-<?php
-
-/**
- * Decorator which enables CSS properties to be disabled for specific elements.
- */
-class HTMLPurifier_AttrDef_CSS_DenyElementDecorator extends HTMLPurifier_AttrDef
-{
-    public $def, $element;
-
-    /**
-     * @param $def Definition to wrap
-     * @param $element Element to deny
-     */
-    public function __construct($def, $element) {
-        $this->def = $def;
-        $this->element = $element;
-    }
-    /**
-     * Checks if CurrentToken is set and equal to $this->element
-     */
-    public function validate($string, $config, $context) {
-        $token = $context->get('CurrentToken', true);
-        if ($token && $token->name == $this->element) return false;
-        return $this->def->validate($string, $config, $context);
-    }
-}
-
-// vim: et sw=4 sts=4

+ 0 - 54
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Filter.php

@@ -1,54 +0,0 @@
-<?php
-
-/**
- * Microsoft's proprietary filter: CSS property
- * @note Currently supports the alpha filter. In the future, this will
- *       probably need an extensible framework
- */
-class HTMLPurifier_AttrDef_CSS_Filter extends HTMLPurifier_AttrDef
-{
-
-    protected $intValidator;
-
-    public function __construct() {
-        $this->intValidator = new HTMLPurifier_AttrDef_Integer();
-    }
-
-    public function validate($value, $config, $context) {
-        $value = $this->parseCDATA($value);
-        if ($value === 'none') return $value;
-        // if we looped this we could support multiple filters
-        $function_length = strcspn($value, '(');
-        $function = trim(substr($value, 0, $function_length));
-        if ($function !== 'alpha' &&
-            $function !== 'Alpha' &&
-            $function !== 'progid:DXImageTransform.Microsoft.Alpha'
-            ) return false;
-        $cursor = $function_length + 1;
-        $parameters_length = strcspn($value, ')', $cursor);
-        $parameters = substr($value, $cursor, $parameters_length);
-        $params = explode(',', $parameters);
-        $ret_params = array();
-        $lookup = array();
-        foreach ($params as $param) {
-            list($key, $value) = explode('=', $param);
-            $key   = trim($key);
-            $value = trim($value);
-            if (isset($lookup[$key])) continue;
-            if ($key !== 'opacity') continue;
-            $value = $this->intValidator->validate($value, $config, $context);
-            if ($value === false) continue;
-            $int = (int) $value;
-            if ($int > 100) $value = '100';
-            if ($int < 0) $value = '0';
-            $ret_params[] = "$key=$value";
-            $lookup[$key] = true;
-        }
-        $ret_parameters = implode(',', $ret_params);
-        $ret_function = "$function($ret_parameters)";
-        return $ret_function;
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 149
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Font.php

@@ -1,149 +0,0 @@
-<?php
-
-/**
- * Validates shorthand CSS property font.
- */
-class HTMLPurifier_AttrDef_CSS_Font extends HTMLPurifier_AttrDef
-{
-
-    /**
-     * Local copy of component validators.
-     *
-     * @note If we moved specific CSS property definitions to their own
-     *       classes instead of having them be assembled at run time by
-     *       CSSDefinition, this wouldn't be necessary.  We'd instantiate
-     *       our own copies.
-     */
-    protected $info = array();
-
-    public function __construct($config) {
-        $def = $config->getCSSDefinition();
-        $this->info['font-style']   = $def->info['font-style'];
-        $this->info['font-variant'] = $def->info['font-variant'];
-        $this->info['font-weight']  = $def->info['font-weight'];
-        $this->info['font-size']    = $def->info['font-size'];
-        $this->info['line-height']  = $def->info['line-height'];
-        $this->info['font-family']  = $def->info['font-family'];
-    }
-
-    public function validate($string, $config, $context) {
-
-        static $system_fonts = array(
-            'caption' => true,
-            'icon' => true,
-            'menu' => true,
-            'message-box' => true,
-            'small-caption' => true,
-            'status-bar' => true
-        );
-
-        // regular pre-processing
-        $string = $this->parseCDATA($string);
-        if ($string === '') return false;
-
-        // check if it's one of the keywords
-        $lowercase_string = strtolower($string);
-        if (isset($system_fonts[$lowercase_string])) {
-            return $lowercase_string;
-        }
-
-        $bits = explode(' ', $string); // bits to process
-        $stage = 0; // this indicates what we're looking for
-        $caught = array(); // which stage 0 properties have we caught?
-        $stage_1 = array('font-style', 'font-variant', 'font-weight');
-        $final = ''; // output
-
-        for ($i = 0, $size = count($bits); $i < $size; $i++) {
-            if ($bits[$i] === '') continue;
-            switch ($stage) {
-
-                // attempting to catch font-style, font-variant or font-weight
-                case 0:
-                    foreach ($stage_1 as $validator_name) {
-                        if (isset($caught[$validator_name])) continue;
-                        $r = $this->info[$validator_name]->validate(
-                                                $bits[$i], $config, $context);
-                        if ($r !== false) {
-                            $final .= $r . ' ';
-                            $caught[$validator_name] = true;
-                            break;
-                        }
-                    }
-                    // all three caught, continue on
-                    if (count($caught) >= 3) $stage = 1;
-                    if ($r !== false) break;
-
-                // attempting to catch font-size and perhaps line-height
-                case 1:
-                    $found_slash = false;
-                    if (strpos($bits[$i], '/') !== false) {
-                        list($font_size, $line_height) =
-                                                    explode('/', $bits[$i]);
-                        if ($line_height === '') {
-                            // ooh, there's a space after the slash!
-                            $line_height = false;
-                            $found_slash = true;
-                        }
-                    } else {
-                        $font_size = $bits[$i];
-                        $line_height = false;
-                    }
-                    $r = $this->info['font-size']->validate(
-                                              $font_size, $config, $context);
-                    if ($r !== false) {
-                        $final .= $r;
-                        // attempt to catch line-height
-                        if ($line_height === false) {
-                            // we need to scroll forward
-                            for ($j = $i + 1; $j < $size; $j++) {
-                                if ($bits[$j] === '') continue;
-                                if ($bits[$j] === '/') {
-                                    if ($found_slash) {
-                                        return false;
-                                    } else {
-                                        $found_slash = true;
-                                        continue;
-                                    }
-                                }
-                                $line_height = $bits[$j];
-                                break;
-                            }
-                        } else {
-                            // slash already found
-                            $found_slash = true;
-                            $j = $i;
-                        }
-                        if ($found_slash) {
-                            $i = $j;
-                            $r = $this->info['line-height']->validate(
-                                              $line_height, $config, $context);
-                            if ($r !== false) {
-                                $final .= '/' . $r;
-                            }
-                        }
-                        $final .= ' ';
-                        $stage = 2;
-                        break;
-                    }
-                    return false;
-
-                // attempting to catch font-family
-                case 2:
-                    $font_family =
-                        implode(' ', array_slice($bits, $i, $size - $i));
-                    $r = $this->info['font-family']->validate(
-                                              $font_family, $config, $context);
-                    if ($r !== false) {
-                        $final .= $r . ' ';
-                        // processing completed successfully
-                        return rtrim($final);
-                    }
-                    return false;
-            }
-        }
-        return false;
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 72
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/FontFamily.php

@@ -1,72 +0,0 @@
-<?php
-
-/**
- * Validates a font family list according to CSS spec
- * @todo whitelisting allowed fonts would be nice
- */
-class HTMLPurifier_AttrDef_CSS_FontFamily extends HTMLPurifier_AttrDef
-{
-
-    public function validate($string, $config, $context) {
-        static $generic_names = array(
-            'serif' => true,
-            'sans-serif' => true,
-            'monospace' => true,
-            'fantasy' => true,
-            'cursive' => true
-        );
-
-        // assume that no font names contain commas in them
-        $fonts = explode(',', $string);
-        $final = '';
-        foreach($fonts as $font) {
-            $font = trim($font);
-            if ($font === '') continue;
-            // match a generic name
-            if (isset($generic_names[$font])) {
-                $final .= $font . ', ';
-                continue;
-            }
-            // match a quoted name
-            if ($font[0] === '"' || $font[0] === "'") {
-                $length = strlen($font);
-                if ($length <= 2) continue;
-                $quote = $font[0];
-                if ($font[$length - 1] !== $quote) continue;
-                $font = substr($font, 1, $length - 2);
-            }
-
-            $font = $this->expandCSSEscape($font);
-
-            // $font is a pure representation of the font name
-
-            if (ctype_alnum($font) && $font !== '') {
-                // very simple font, allow it in unharmed
-                $final .= $font . ', ';
-                continue;
-            }
-
-            // bugger out on whitespace.  form feed (0C) really
-            // shouldn't show up regardless
-            $font = str_replace(array("\n", "\t", "\r", "\x0C"), ' ', $font);
-
-            // These ugly transforms don't pose a security
-            // risk (as \\ and \" might).  We could try to be clever and
-            // use single-quote wrapping when there is a double quote
-            // present, but I have choosen not to implement that.
-            // (warning: this code relies on the selection of quotation
-            // mark below)
-            $font = str_replace('\\', '\\5C ', $font);
-            $font = str_replace('"',  '\\22 ', $font);
-
-            // complicated font, requires quoting
-            $final .= "\"$font\", "; // note that this will later get turned into &quot;
-        }
-        $final = rtrim($final, ', ');
-        if ($final === '') return false;
-        return $final;
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 40
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php

@@ -1,40 +0,0 @@
-<?php
-
-/**
- * Decorator which enables !important to be used in CSS values.
- */
-class HTMLPurifier_AttrDef_CSS_ImportantDecorator extends HTMLPurifier_AttrDef
-{
-    public $def, $allow;
-
-    /**
-     * @param $def Definition to wrap
-     * @param $allow Whether or not to allow !important
-     */
-    public function __construct($def, $allow = false) {
-        $this->def = $def;
-        $this->allow = $allow;
-    }
-    /**
-     * Intercepts and removes !important if necessary
-     */
-    public function validate($string, $config, $context) {
-        // test for ! and important tokens
-        $string = trim($string);
-        $is_important = false;
-        // :TODO: optimization: test directly for !important and ! important
-        if (strlen($string) >= 9 && substr($string, -9) === 'important') {
-            $temp = rtrim(substr($string, 0, -9));
-            // use a temp, because we might want to restore important
-            if (strlen($temp) >= 1 && substr($temp, -1) === '!') {
-                $string = rtrim(substr($temp, 0, -1));
-                $is_important = true;
-            }
-        }
-        $string = $this->def->validate($string, $config, $context);
-        if ($this->allow && $is_important) $string .= ' !important';
-        return $string;
-    }
-}
-
-// vim: et sw=4 sts=4

+ 0 - 47
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Length.php

@@ -1,47 +0,0 @@
-<?php
-
-/**
- * Represents a Length as defined by CSS.
- */
-class HTMLPurifier_AttrDef_CSS_Length extends HTMLPurifier_AttrDef
-{
-
-    protected $min, $max;
-
-    /**
-     * @param HTMLPurifier_Length $max Minimum length, or null for no bound. String is also acceptable.
-     * @param HTMLPurifier_Length $max Maximum length, or null for no bound. String is also acceptable.
-     */
-    public function __construct($min = null, $max = null) {
-        $this->min = $min !== null ? HTMLPurifier_Length::make($min) : null;
-        $this->max = $max !== null ? HTMLPurifier_Length::make($max) : null;
-    }
-
-    public function validate($string, $config, $context) {
-        $string = $this->parseCDATA($string);
-
-        // Optimizations
-        if ($string === '') return false;
-        if ($string === '0') return '0';
-        if (strlen($string) === 1) return false;
-
-        $length = HTMLPurifier_Length::make($string);
-        if (!$length->isValid()) return false;
-
-        if ($this->min) {
-            $c = $length->compareTo($this->min);
-            if ($c === false) return false;
-            if ($c < 0) return false;
-        }
-        if ($this->max) {
-            $c = $length->compareTo($this->max);
-            if ($c === false) return false;
-            if ($c > 0) return false;
-        }
-
-        return $length->toString();
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 78
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ListStyle.php

@@ -1,78 +0,0 @@
-<?php
-
-/**
- * Validates shorthand CSS property list-style.
- * @warning Does not support url tokens that have internal spaces.
- */
-class HTMLPurifier_AttrDef_CSS_ListStyle extends HTMLPurifier_AttrDef
-{
-
-    /**
-     * Local copy of component validators.
-     * @note See HTMLPurifier_AttrDef_CSS_Font::$info for a similar impl.
-     */
-    protected $info;
-
-    public function __construct($config) {
-        $def = $config->getCSSDefinition();
-        $this->info['list-style-type']     = $def->info['list-style-type'];
-        $this->info['list-style-position'] = $def->info['list-style-position'];
-        $this->info['list-style-image'] = $def->info['list-style-image'];
-    }
-
-    public function validate($string, $config, $context) {
-
-        // regular pre-processing
-        $string = $this->parseCDATA($string);
-        if ($string === '') return false;
-
-        // assumes URI doesn't have spaces in it
-        $bits = explode(' ', strtolower($string)); // bits to process
-
-        $caught = array();
-        $caught['type']     = false;
-        $caught['position'] = false;
-        $caught['image']    = false;
-
-        $i = 0; // number of catches
-        $none = false;
-
-        foreach ($bits as $bit) {
-            if ($i >= 3) return; // optimization bit
-            if ($bit === '') continue;
-            foreach ($caught as $key => $status) {
-                if ($status !== false) continue;
-                $r = $this->info['list-style-' . $key]->validate($bit, $config, $context);
-                if ($r === false) continue;
-                if ($r === 'none') {
-                    if ($none) continue;
-                    else $none = true;
-                    if ($key == 'image') continue;
-                }
-                $caught[$key] = $r;
-                $i++;
-                break;
-            }
-        }
-
-        if (!$i) return false;
-
-        $ret = array();
-
-        // construct type
-        if ($caught['type']) $ret[] = $caught['type'];
-
-        // construct image
-        if ($caught['image']) $ret[] = $caught['image'];
-
-        // construct position
-        if ($caught['position']) $ret[] = $caught['position'];
-
-        if (empty($ret)) return false;
-        return implode(' ', $ret);
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 58
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Multiple.php

@@ -1,58 +0,0 @@
-<?php
-
-/**
- * Framework class for strings that involve multiple values.
- *
- * Certain CSS properties such as border-width and margin allow multiple
- * lengths to be specified.  This class can take a vanilla border-width
- * definition and multiply it, usually into a max of four.
- *
- * @note Even though the CSS specification isn't clear about it, inherit
- *       can only be used alone: it will never manifest as part of a multi
- *       shorthand declaration.  Thus, this class does not allow inherit.
- */
-class HTMLPurifier_AttrDef_CSS_Multiple extends HTMLPurifier_AttrDef
-{
-
-    /**
-     * Instance of component definition to defer validation to.
-     * @todo Make protected
-     */
-    public $single;
-
-    /**
-     * Max number of values allowed.
-     * @todo Make protected
-     */
-    public $max;
-
-    /**
-     * @param $single HTMLPurifier_AttrDef to multiply
-     * @param $max Max number of values allowed (usually four)
-     */
-    public function __construct($single, $max = 4) {
-        $this->single = $single;
-        $this->max = $max;
-    }
-
-    public function validate($string, $config, $context) {
-        $string = $this->parseCDATA($string);
-        if ($string === '') return false;
-        $parts = explode(' ', $string); // parseCDATA replaced \r, \t and \n
-        $length = count($parts);
-        $final = '';
-        for ($i = 0, $num = 0; $i < $length && $num < $this->max; $i++) {
-            if (ctype_space($parts[$i])) continue;
-            $result = $this->single->validate($parts[$i], $config, $context);
-            if ($result !== false) {
-                $final .= $result . ' ';
-                $num++;
-            }
-        }
-        if ($final === '') return false;
-        return rtrim($final);
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 69
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Number.php

@@ -1,69 +0,0 @@
-<?php
-
-/**
- * Validates a number as defined by the CSS spec.
- */
-class HTMLPurifier_AttrDef_CSS_Number extends HTMLPurifier_AttrDef
-{
-
-    /**
-     * Bool indicating whether or not only positive values allowed.
-     */
-    protected $non_negative = false;
-
-    /**
-     * @param $non_negative Bool indicating whether negatives are forbidden
-     */
-    public function __construct($non_negative = false) {
-        $this->non_negative = $non_negative;
-    }
-
-    /**
-     * @warning Some contexts do not pass $config, $context. These
-     *          variables should not be used without checking HTMLPurifier_Length
-     */
-    public function validate($number, $config, $context) {
-
-        $number = $this->parseCDATA($number);
-
-        if ($number === '') return false;
-        if ($number === '0') return '0';
-
-        $sign = '';
-        switch ($number[0]) {
-            case '-':
-                if ($this->non_negative) return false;
-                $sign = '-';
-            case '+':
-                $number = substr($number, 1);
-        }
-
-        if (ctype_digit($number)) {
-            $number = ltrim($number, '0');
-            return $number ? $sign . $number : '0';
-        }
-
-        // Period is the only non-numeric character allowed
-        if (strpos($number, '.') === false) return false;
-
-        list($left, $right) = explode('.', $number, 2);
-
-        if ($left === '' && $right === '') return false;
-        if ($left !== '' && !ctype_digit($left)) return false;
-
-        $left  = ltrim($left,  '0');
-        $right = rtrim($right, '0');
-
-        if ($right === '') {
-            return $left ? $sign . $left : '0';
-        } elseif (!ctype_digit($right)) {
-            return false;
-        }
-
-        return $sign . $left . '.' . $right;
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 40
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Percentage.php

@@ -1,40 +0,0 @@
-<?php
-
-/**
- * Validates a Percentage as defined by the CSS spec.
- */
-class HTMLPurifier_AttrDef_CSS_Percentage extends HTMLPurifier_AttrDef
-{
-
-    /**
-     * Instance of HTMLPurifier_AttrDef_CSS_Number to defer number validation
-     */
-    protected $number_def;
-
-    /**
-     * @param Bool indicating whether to forbid negative values
-     */
-    public function __construct($non_negative = false) {
-        $this->number_def = new HTMLPurifier_AttrDef_CSS_Number($non_negative);
-    }
-
-    public function validate($string, $config, $context) {
-
-        $string = $this->parseCDATA($string);
-
-        if ($string === '') return false;
-        $length = strlen($string);
-        if ($length === 1) return false;
-        if ($string[$length - 1] !== '%') return false;
-
-        $number = substr($string, 0, $length - 1);
-        $number = $this->number_def->validate($number, $config, $context);
-
-        if ($number === false) return false;
-        return "$number%";
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 38
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/TextDecoration.php

@@ -1,38 +0,0 @@
-<?php
-
-/**
- * Validates the value for the CSS property text-decoration
- * @note This class could be generalized into a version that acts sort of
- *       like Enum except you can compound the allowed values.
- */
-class HTMLPurifier_AttrDef_CSS_TextDecoration extends HTMLPurifier_AttrDef
-{
-
-    public function validate($string, $config, $context) {
-
-        static $allowed_values = array(
-            'line-through' => true,
-            'overline' => true,
-            'underline' => true,
-        );
-
-        $string = strtolower($this->parseCDATA($string));
-
-        if ($string === 'none') return $string;
-
-        $parts = explode(' ', $string);
-        $final = '';
-        foreach ($parts as $part) {
-            if (isset($allowed_values[$part])) {
-                $final .= $part . ' ';
-            }
-        }
-        $final = rtrim($final);
-        if ($final === '') return false;
-        return $final;
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 52
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/URI.php

@@ -1,52 +0,0 @@
-<?php
-
-/**
- * Validates a URI in CSS syntax, which uses url('http://example.com')
- * @note While theoretically speaking a URI in a CSS document could
- *       be non-embedded, as of CSS2 there is no such usage so we're
- *       generalizing it. This may need to be changed in the future.
- * @warning Since HTMLPurifier_AttrDef_CSS blindly uses semicolons as
- *          the separator, you cannot put a literal semicolon in
- *          in the URI. Try percent encoding it, in that case.
- */
-class HTMLPurifier_AttrDef_CSS_URI extends HTMLPurifier_AttrDef_URI
-{
-
-    public function __construct() {
-        parent::__construct(true); // always embedded
-    }
-
-    public function validate($uri_string, $config, $context) {
-        // parse the URI out of the string and then pass it onto
-        // the parent object
-
-        $uri_string = $this->parseCDATA($uri_string);
-        if (strpos($uri_string, 'url(') !== 0) return false;
-        $uri_string = substr($uri_string, 4);
-        $new_length = strlen($uri_string) - 1;
-        if ($uri_string[$new_length] != ')') return false;
-        $uri = trim(substr($uri_string, 0, $new_length));
-
-        if (!empty($uri) && ($uri[0] == "'" || $uri[0] == '"')) {
-            $quote = $uri[0];
-            $new_length = strlen($uri) - 1;
-            if ($uri[$new_length] !== $quote) return false;
-            $uri = substr($uri, 1, $new_length - 1);
-        }
-
-        $uri = $this->expandCSSEscape($uri);
-
-        $result = parent::validate($uri, $config, $context);
-
-        if ($result === false) return false;
-
-        // extra sanity check; should have been done by URI
-        $result = str_replace(array('"', "\\", "\n", "\x0c", "\r"), "", $result);
-
-        return "url(\"$result\")";
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 6
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/index.html

@@ -1,6 +0,0 @@
-<html>
-<head>
-</head>
-<body>
-</body>
-</html>

+ 0 - 65
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/Enum.php

@@ -1,65 +0,0 @@
-<?php
-
-// Enum = Enumerated
-/**
- * Validates a keyword against a list of valid values.
- * @warning The case-insensitive compare of this function uses PHP's
- *          built-in strtolower and ctype_lower functions, which may
- *          cause problems with international comparisons
- */
-class HTMLPurifier_AttrDef_Enum extends HTMLPurifier_AttrDef
-{
-
-    /**
-     * Lookup table of valid values.
-     * @todo Make protected
-     */
-    public $valid_values   = array();
-
-    /**
-     * Bool indicating whether or not enumeration is case sensitive.
-     * @note In general this is always case insensitive.
-     */
-    protected $case_sensitive = false; // values according to W3C spec
-
-    /**
-     * @param $valid_values List of valid values
-     * @param $case_sensitive Bool indicating whether or not case sensitive
-     */
-    public function __construct(
-        $valid_values = array(), $case_sensitive = false
-    ) {
-        $this->valid_values = array_flip($valid_values);
-        $this->case_sensitive = $case_sensitive;
-    }
-
-    public function validate($string, $config, $context) {
-        $string = trim($string);
-        if (!$this->case_sensitive) {
-            // we may want to do full case-insensitive libraries
-            $string = ctype_lower($string) ? $string : strtolower($string);
-        }
-        $result = isset($this->valid_values[$string]);
-
-        return $result ? $string : false;
-    }
-
-    /**
-     * @param $string In form of comma-delimited list of case-insensitive
-     *      valid values. Example: "foo,bar,baz". Prepend "s:" to make
-     *      case sensitive
-     */
-    public function make($string) {
-        if (strlen($string) > 2 && $string[0] == 's' && $string[1] == ':') {
-            $string = substr($string, 2);
-            $sensitive = true;
-        } else {
-            $sensitive = false;
-        }
-        $values = explode(',', $string);
-        return new HTMLPurifier_AttrDef_Enum($values, $sensitive);
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 28
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Bool.php

@@ -1,28 +0,0 @@
-<?php
-
-/**
- * Validates a boolean attribute
- */
-class HTMLPurifier_AttrDef_HTML_Bool extends HTMLPurifier_AttrDef
-{
-
-    protected $name;
-    public $minimized = true;
-
-    public function __construct($name = false) {$this->name = $name;}
-
-    public function validate($string, $config, $context) {
-        if (empty($string)) return false;
-        return $this->name;
-    }
-
-    /**
-     * @param $string Name of attribute
-     */
-    public function make($string) {
-        return new HTMLPurifier_AttrDef_HTML_Bool($string);
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 34
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Class.php

@@ -1,34 +0,0 @@
-<?php
-
-/**
- * Implements special behavior for class attribute (normally NMTOKENS)
- */
-class HTMLPurifier_AttrDef_HTML_Class extends HTMLPurifier_AttrDef_HTML_Nmtokens
-{
-    protected function split($string, $config, $context) {
-        // really, this twiddle should be lazy loaded
-        $name = $config->getDefinition('HTML')->doctype->name;
-        if ($name == "XHTML 1.1" || $name == "XHTML 2.0") {
-            return parent::split($string, $config, $context);
-        } else {
-            return preg_split('/\s+/', $string);
-        }
-    }
-    protected function filter($tokens, $config, $context) {
-        $allowed = $config->get('Attr.AllowedClasses');
-        $forbidden = $config->get('Attr.ForbiddenClasses');
-        $ret = array();
-        foreach ($tokens as $token) {
-            if (
-                ($allowed === null || isset($allowed[$token])) &&
-                !isset($forbidden[$token]) &&
-                // We need this O(n) check because of PHP's array
-                // implementation that casts -0 to 0.
-                !in_array($token, $ret, true)
-            ) {
-                $ret[] = $token;
-            }
-        }
-        return $ret;
-    }
-}

+ 0 - 32
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Color.php

@@ -1,32 +0,0 @@
-<?php
-
-/**
- * Validates a color according to the HTML spec.
- */
-class HTMLPurifier_AttrDef_HTML_Color extends HTMLPurifier_AttrDef
-{
-
-    public function validate($string, $config, $context) {
-
-        static $colors = null;
-        if ($colors === null) $colors = $config->get('Core.ColorKeywords');
-
-        $string = trim($string);
-
-        if (empty($string)) return false;
-        if (isset($colors[$string])) return $colors[$string];
-        if ($string[0] === '#') $hex = substr($string, 1);
-        else $hex = $string;
-
-        $length = strlen($hex);
-        if ($length !== 3 && $length !== 6) return false;
-        if (!ctype_xdigit($hex)) return false;
-        if ($length === 3) $hex = $hex[0].$hex[0].$hex[1].$hex[1].$hex[2].$hex[2];
-
-        return "#$hex";
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 21
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/FrameTarget.php

@@ -1,21 +0,0 @@
-<?php
-
-/**
- * Special-case enum attribute definition that lazy loads allowed frame targets
- */
-class HTMLPurifier_AttrDef_HTML_FrameTarget extends HTMLPurifier_AttrDef_Enum
-{
-
-    public $valid_values = false; // uninitialized value
-    protected $case_sensitive = false;
-
-    public function __construct() {}
-
-    public function validate($string, $config, $context) {
-        if ($this->valid_values === false) $this->valid_values = $config->get('Attr.AllowedFrameTargets');
-        return parent::validate($string, $config, $context);
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 70
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/ID.php

@@ -1,70 +0,0 @@
-<?php
-
-/**
- * Validates the HTML attribute ID.
- * @warning Even though this is the id processor, it
- *          will ignore the directive Attr:IDBlacklist, since it will only
- *          go according to the ID accumulator. Since the accumulator is
- *          automatically generated, it will have already absorbed the
- *          blacklist. If you're hacking around, make sure you use load()!
- */
-
-class HTMLPurifier_AttrDef_HTML_ID extends HTMLPurifier_AttrDef
-{
-
-    // ref functionality disabled, since we also have to verify
-    // whether or not the ID it refers to exists
-
-    public function validate($id, $config, $context) {
-
-        if (!$config->get('Attr.EnableID')) return false;
-
-        $id = trim($id); // trim it first
-
-        if ($id === '') return false;
-
-        $prefix = $config->get('Attr.IDPrefix');
-        if ($prefix !== '') {
-            $prefix .= $config->get('Attr.IDPrefixLocal');
-            // prevent re-appending the prefix
-            if (strpos($id, $prefix) !== 0) $id = $prefix . $id;
-        } elseif ($config->get('Attr.IDPrefixLocal') !== '') {
-            trigger_error('%Attr.IDPrefixLocal cannot be used unless '.
-                '%Attr.IDPrefix is set', E_USER_WARNING);
-        }
-
-        //if (!$this->ref) {
-            $id_accumulator =& $context->get('IDAccumulator');
-            if (isset($id_accumulator->ids[$id])) return false;
-        //}
-
-        // we purposely avoid using regex, hopefully this is faster
-
-        if (ctype_alpha($id)) {
-            $result = true;
-        } else {
-            if (!ctype_alpha(@$id[0])) return false;
-            $trim = trim( // primitive style of regexps, I suppose
-                $id,
-                'A..Za..z0..9:-._'
-              );
-            $result = ($trim === '');
-        }
-
-        $regexp = $config->get('Attr.IDBlacklistRegexp');
-        if ($regexp && preg_match($regexp, $id)) {
-            return false;
-        }
-
-        if (/*!$this->ref && */$result) $id_accumulator->add($id);
-
-        // if no change was made to the ID, return the result
-        // else, return the new id if stripping whitespace made it
-        //     valid, or return false.
-        return $result ? $id : false;
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 41
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Length.php

@@ -1,41 +0,0 @@
-<?php
-
-/**
- * Validates the HTML type length (not to be confused with CSS's length).
- *
- * This accepts integer pixels or percentages as lengths for certain
- * HTML attributes.
- */
-
-class HTMLPurifier_AttrDef_HTML_Length extends HTMLPurifier_AttrDef_HTML_Pixels
-{
-
-    public function validate($string, $config, $context) {
-
-        $string = trim($string);
-        if ($string === '') return false;
-
-        $parent_result = parent::validate($string, $config, $context);
-        if ($parent_result !== false) return $parent_result;
-
-        $length = strlen($string);
-        $last_char = $string[$length - 1];
-
-        if ($last_char !== '%') return false;
-
-        $points = substr($string, 0, $length - 1);
-
-        if (!is_numeric($points)) return false;
-
-        $points = (int) $points;
-
-        if ($points < 0) return '0%';
-        if ($points > 100) return '100%';
-
-        return ((string) $points) . '%';
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 53
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/LinkTypes.php

@@ -1,53 +0,0 @@
-<?php
-
-/**
- * Validates a rel/rev link attribute against a directive of allowed values
- * @note We cannot use Enum because link types allow multiple
- *       values.
- * @note Assumes link types are ASCII text
- */
-class HTMLPurifier_AttrDef_HTML_LinkTypes extends HTMLPurifier_AttrDef
-{
-
-    /** Name config attribute to pull. */
-    protected $name;
-
-    public function __construct($name) {
-        $configLookup = array(
-            'rel' => 'AllowedRel',
-            'rev' => 'AllowedRev'
-        );
-        if (!isset($configLookup[$name])) {
-            trigger_error('Unrecognized attribute name for link '.
-                'relationship.', E_USER_ERROR);
-            return;
-        }
-        $this->name = $configLookup[$name];
-    }
-
-    public function validate($string, $config, $context) {
-
-        $allowed = $config->get('Attr.' . $this->name);
-        if (empty($allowed)) return false;
-
-        $string = $this->parseCDATA($string);
-        $parts = explode(' ', $string);
-
-        // lookup to prevent duplicates
-        $ret_lookup = array();
-        foreach ($parts as $part) {
-            $part = strtolower(trim($part));
-            if (!isset($allowed[$part])) continue;
-            $ret_lookup[$part] = true;
-        }
-
-        if (empty($ret_lookup)) return false;
-        $string = implode(' ', array_keys($ret_lookup));
-
-        return $string;
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 41
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/MultiLength.php

@@ -1,41 +0,0 @@
-<?php
-
-/**
- * Validates a MultiLength as defined by the HTML spec.
- *
- * A multilength is either a integer (pixel count), a percentage, or
- * a relative number.
- */
-class HTMLPurifier_AttrDef_HTML_MultiLength extends HTMLPurifier_AttrDef_HTML_Length
-{
-
-    public function validate($string, $config, $context) {
-
-        $string = trim($string);
-        if ($string === '') return false;
-
-        $parent_result = parent::validate($string, $config, $context);
-        if ($parent_result !== false) return $parent_result;
-
-        $length = strlen($string);
-        $last_char = $string[$length - 1];
-
-        if ($last_char !== '*') return false;
-
-        $int = substr($string, 0, $length - 1);
-
-        if ($int == '') return '*';
-        if (!is_numeric($int)) return false;
-
-        $int = (int) $int;
-
-        if ($int < 0) return false;
-        if ($int == 0) return '0';
-        if ($int == 1) return '*';
-        return ((string) $int) . '*';
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 52
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Nmtokens.php

@@ -1,52 +0,0 @@
-<?php
-
-/**
- * Validates contents based on NMTOKENS attribute type.
- */
-class HTMLPurifier_AttrDef_HTML_Nmtokens extends HTMLPurifier_AttrDef
-{
-
-    public function validate($string, $config, $context) {
-
-        $string = trim($string);
-
-        // early abort: '' and '0' (strings that convert to false) are invalid
-        if (!$string) return false;
-
-        $tokens = $this->split($string, $config, $context);
-        $tokens = $this->filter($tokens, $config, $context);
-        if (empty($tokens)) return false;
-        return implode(' ', $tokens);
-
-    }
-
-    /**
-     * Splits a space separated list of tokens into its constituent parts.
-     */
-    protected function split($string, $config, $context) {
-        // OPTIMIZABLE!
-        // do the preg_match, capture all subpatterns for reformulation
-
-        // we don't support U+00A1 and up codepoints or
-        // escaping because I don't know how to do that with regexps
-        // and plus it would complicate optimization efforts (you never
-        // see that anyway).
-        $pattern = '/(?:(?<=\s)|\A)'. // look behind for space or string start
-                   '((?:--|-?[A-Za-z_])[A-Za-z_\-0-9]*)'.
-                   '(?:(?=\s)|\z)/'; // look ahead for space or string end
-        preg_match_all($pattern, $string, $matches);
-        return $matches[1];
-    }
-
-    /**
-     * Template method for removing certain tokens based on arbitrary criteria.
-     * @note If we wanted to be really functional, we'd do an array_filter
-     *       with a callback. But... we're not.
-     */
-    protected function filter($tokens, $config, $context) {
-        return $tokens;
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 48
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Pixels.php

@@ -1,48 +0,0 @@
-<?php
-
-/**
- * Validates an integer representation of pixels according to the HTML spec.
- */
-class HTMLPurifier_AttrDef_HTML_Pixels extends HTMLPurifier_AttrDef
-{
-
-    protected $max;
-
-    public function __construct($max = null) {
-        $this->max = $max;
-    }
-
-    public function validate($string, $config, $context) {
-
-        $string = trim($string);
-        if ($string === '0') return $string;
-        if ($string === '')  return false;
-        $length = strlen($string);
-        if (substr($string, $length - 2) == 'px') {
-            $string = substr($string, 0, $length - 2);
-        }
-        if (!is_numeric($string)) return false;
-        $int = (int) $string;
-
-        if ($int < 0) return '0';
-
-        // upper-bound value, extremely high values can
-        // crash operating systems, see <http://ha.ckers.org/imagecrash.html>
-        // WARNING, above link WILL crash you if you're using Windows
-
-        if ($this->max !== null && $int > $this->max) return (string) $this->max;
-
-        return (string) $int;
-
-    }
-
-    public function make($string) {
-        if ($string === '') $max = null;
-        else $max = (int) $string;
-        $class = get_class($this);
-        return new $class($max);
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 6
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/index.html

@@ -1,6 +0,0 @@
-<html>
-<head>
-</head>
-<body>
-</body>
-</html>

+ 0 - 73
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/Integer.php

@@ -1,73 +0,0 @@
-<?php
-
-/**
- * Validates an integer.
- * @note While this class was modeled off the CSS definition, no currently
- *       allowed CSS uses this type.  The properties that do are: widows,
- *       orphans, z-index, counter-increment, counter-reset.  Some of the
- *       HTML attributes, however, find use for a non-negative version of this.
- */
-class HTMLPurifier_AttrDef_Integer extends HTMLPurifier_AttrDef
-{
-
-    /**
-     * Bool indicating whether or not negative values are allowed
-     */
-    protected $negative = true;
-
-    /**
-     * Bool indicating whether or not zero is allowed
-     */
-    protected $zero = true;
-
-    /**
-     * Bool indicating whether or not positive values are allowed
-     */
-    protected $positive = true;
-
-    /**
-     * @param $negative Bool indicating whether or not negative values are allowed
-     * @param $zero Bool indicating whether or not zero is allowed
-     * @param $positive Bool indicating whether or not positive values are allowed
-     */
-    public function __construct(
-        $negative = true, $zero = true, $positive = true
-    ) {
-        $this->negative = $negative;
-        $this->zero     = $zero;
-        $this->positive = $positive;
-    }
-
-    public function validate($integer, $config, $context) {
-
-        $integer = $this->parseCDATA($integer);
-        if ($integer === '') return false;
-
-        // we could possibly simply typecast it to integer, but there are
-        // certain fringe cases that must not return an integer.
-
-        // clip leading sign
-        if ( $this->negative && $integer[0] === '-' ) {
-            $digits = substr($integer, 1);
-            if ($digits === '0') $integer = '0'; // rm minus sign for zero
-        } elseif( $this->positive && $integer[0] === '+' ) {
-            $digits = $integer = substr($integer, 1); // rm unnecessary plus
-        } else {
-            $digits = $integer;
-        }
-
-        // test if it's numeric
-        if (!ctype_digit($digits)) return false;
-
-        // perform scope tests
-        if (!$this->zero     && $integer == 0) return false;
-        if (!$this->positive && $integer > 0) return false;
-        if (!$this->negative && $integer < 0) return false;
-
-        return $integer;
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 73
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/Lang.php

@@ -1,73 +0,0 @@
-<?php
-
-/**
- * Validates the HTML attribute lang, effectively a language code.
- * @note Built according to RFC 3066, which obsoleted RFC 1766
- */
-class HTMLPurifier_AttrDef_Lang extends HTMLPurifier_AttrDef
-{
-
-    public function validate($string, $config, $context) {
-
-        $string = trim($string);
-        if (!$string) return false;
-
-        $subtags = explode('-', $string);
-        $num_subtags = count($subtags);
-
-        if ($num_subtags == 0) return false; // sanity check
-
-        // process primary subtag : $subtags[0]
-        $length = strlen($subtags[0]);
-        switch ($length) {
-            case 0:
-                return false;
-            case 1:
-                if (! ($subtags[0] == 'x' || $subtags[0] == 'i') ) {
-                    return false;
-                }
-                break;
-            case 2:
-            case 3:
-                if (! ctype_alpha($subtags[0]) ) {
-                    return false;
-                } elseif (! ctype_lower($subtags[0]) ) {
-                    $subtags[0] = strtolower($subtags[0]);
-                }
-                break;
-            default:
-                return false;
-        }
-
-        $new_string = $subtags[0];
-        if ($num_subtags == 1) return $new_string;
-
-        // process second subtag : $subtags[1]
-        $length = strlen($subtags[1]);
-        if ($length == 0 || ($length == 1 && $subtags[1] != 'x') || $length > 8 || !ctype_alnum($subtags[1])) {
-            return $new_string;
-        }
-        if (!ctype_lower($subtags[1])) $subtags[1] = strtolower($subtags[1]);
-
-        $new_string .= '-' . $subtags[1];
-        if ($num_subtags == 2) return $new_string;
-
-        // process all other subtags, index 2 and up
-        for ($i = 2; $i < $num_subtags; $i++) {
-            $length = strlen($subtags[$i]);
-            if ($length == 0 || $length > 8 || !ctype_alnum($subtags[$i])) {
-                return $new_string;
-            }
-            if (!ctype_lower($subtags[$i])) {
-                $subtags[$i] = strtolower($subtags[$i]);
-            }
-            $new_string .= '-' . $subtags[$i];
-        }
-
-        return $new_string;
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 34
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/Switch.php

@@ -1,34 +0,0 @@
-<?php
-
-/**
- * Decorator that, depending on a token, switches between two definitions.
- */
-class HTMLPurifier_AttrDef_Switch
-{
-
-    protected $tag;
-    protected $withTag, $withoutTag;
-
-    /**
-     * @param string $tag Tag name to switch upon
-     * @param HTMLPurifier_AttrDef $with_tag Call if token matches tag
-     * @param HTMLPurifier_AttrDef $without_tag Call if token doesn't match, or there is no token
-     */
-    public function __construct($tag, $with_tag, $without_tag) {
-        $this->tag = $tag;
-        $this->withTag = $with_tag;
-        $this->withoutTag = $without_tag;
-    }
-
-    public function validate($string, $config, $context) {
-        $token = $context->get('CurrentToken', true);
-        if (!$token || $token->name !== $this->tag) {
-            return $this->withoutTag->validate($string, $config, $context);
-        } else {
-            return $this->withTag->validate($string, $config, $context);
-        }
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 15
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/Text.php

@@ -1,15 +0,0 @@
-<?php
-
-/**
- * Validates arbitrary text according to the HTML spec.
- */
-class HTMLPurifier_AttrDef_Text extends HTMLPurifier_AttrDef
-{
-
-    public function validate($string, $config, $context) {
-        return $this->parseCDATA($string);
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 77
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/URI.php

@@ -1,77 +0,0 @@
-<?php
-
-/**
- * Validates a URI as defined by RFC 3986.
- * @note Scheme-specific mechanics deferred to HTMLPurifier_URIScheme
- */
-class HTMLPurifier_AttrDef_URI extends HTMLPurifier_AttrDef
-{
-
-    protected $parser;
-    protected $embedsResource;
-
-    /**
-     * @param $embeds_resource_resource Does the URI here result in an extra HTTP request?
-     */
-    public function __construct($embeds_resource = false) {
-        $this->parser = new HTMLPurifier_URIParser();
-        $this->embedsResource = (bool) $embeds_resource;
-    }
-
-    public function make($string) {
-        $embeds = (bool) $string;
-        return new HTMLPurifier_AttrDef_URI($embeds);
-    }
-
-    public function validate($uri, $config, $context) {
-
-        if ($config->get('URI.Disable')) return false;
-
-        $uri = $this->parseCDATA($uri);
-
-        // parse the URI
-        $uri = $this->parser->parse($uri);
-        if ($uri === false) return false;
-
-        // add embedded flag to context for validators
-        $context->register('EmbeddedURI', $this->embedsResource);
-
-        $ok = false;
-        do {
-
-            // generic validation
-            $result = $uri->validate($config, $context);
-            if (!$result) break;
-
-            // chained filtering
-            $uri_def = $config->getDefinition('URI');
-            $result = $uri_def->filter($uri, $config, $context);
-            if (!$result) break;
-
-            // scheme-specific validation
-            $scheme_obj = $uri->getSchemeObj($config, $context);
-            if (!$scheme_obj) break;
-            if ($this->embedsResource && !$scheme_obj->browsable) break;
-            $result = $scheme_obj->validate($uri, $config, $context);
-            if (!$result) break;
-
-            // Post chained filtering
-            $result = $uri_def->postFilter($uri, $config, $context);
-            if (!$result) break;
-
-            // survived gauntlet
-            $ok = true;
-
-        } while (false);
-
-        $context->destroy('EmbeddedURI');
-        if (!$ok) return false;
-
-        // back to string
-        return $uri->toString();
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 17
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email.php

@@ -1,17 +0,0 @@
-<?php
-
-abstract class HTMLPurifier_AttrDef_URI_Email extends HTMLPurifier_AttrDef
-{
-
-    /**
-     * Unpacks a mailbox into its display-name and address
-     */
-    function unpack($string) {
-        // needs to be implemented
-    }
-
-}
-
-// sub-implementations
-
-// vim: et sw=4 sts=4

+ 0 - 21
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php

@@ -1,21 +0,0 @@
-<?php
-
-/**
- * Primitive email validation class based on the regexp found at
- * http://www.regular-expressions.info/email.html
- */
-class HTMLPurifier_AttrDef_URI_Email_SimpleCheck extends HTMLPurifier_AttrDef_URI_Email
-{
-
-    public function validate($string, $config, $context) {
-        // no support for named mailboxes i.e. "Bob <bob@example.com>"
-        // that needs more percent encoding to be done
-        if ($string == '') return false;
-        $string = trim($string);
-        $result = preg_match('/^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i', $string);
-        return $result ? $string : false;
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 6
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email/index.html

@@ -1,6 +0,0 @@
-<html>
-<head>
-</head>
-<body>
-</body>
-</html>

+ 0 - 68
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php

@@ -1,68 +0,0 @@
-<?php
-
-/**
- * Validates a host according to the IPv4, IPv6 and DNS (future) specifications.
- */
-class HTMLPurifier_AttrDef_URI_Host extends HTMLPurifier_AttrDef
-{
-
-    /**
-     * Instance of HTMLPurifier_AttrDef_URI_IPv4 sub-validator
-     */
-    protected $ipv4;
-
-    /**
-     * Instance of HTMLPurifier_AttrDef_URI_IPv6 sub-validator
-     */
-    protected $ipv6;
-
-    public function __construct() {
-        $this->ipv4 = new HTMLPurifier_AttrDef_URI_IPv4();
-        $this->ipv6 = new HTMLPurifier_AttrDef_URI_IPv6();
-    }
-
-    public function validate($string, $config, $context) {
-        $length = strlen($string);
-        // empty hostname is OK; it's usually semantically equivalent:
-        // the default host as defined by a URI scheme is used:
-        //
-        //      If the URI scheme defines a default for host, then that
-        //      default applies when the host subcomponent is undefined
-        //      or when the registered name is empty (zero length).
-        if ($string === '') return '';
-        if ($length > 1 && $string[0] === '[' && $string[$length-1] === ']') {
-            //IPv6
-            $ip = substr($string, 1, $length - 2);
-            $valid = $this->ipv6->validate($ip, $config, $context);
-            if ($valid === false) return false;
-            return '['. $valid . ']';
-        }
-
-        // need to do checks on unusual encodings too
-        $ipv4 = $this->ipv4->validate($string, $config, $context);
-        if ($ipv4 !== false) return $ipv4;
-
-        // A regular domain name.
-
-        // This breaks I18N domain names, but we don't have proper IRI support,
-        // so force users to insert Punycode. If there's complaining we'll
-        // try to fix things into an international friendly form.
-
-        // The productions describing this are:
-        $a   = '[a-z]';     // alpha
-        $an  = '[a-z0-9]';  // alphanum
-        $and = '[a-z0-9-]'; // alphanum | "-"
-        // domainlabel = alphanum | alphanum *( alphanum | "-" ) alphanum
-        $domainlabel   = "$an($and*$an)?";
-        // toplabel    = alpha | alpha *( alphanum | "-" ) alphanum
-        $toplabel      = "$a($and*$an)?";
-        // hostname    = *( domainlabel "." ) toplabel [ "." ]
-        $match = preg_match("/^($domainlabel\.)*$toplabel\.?$/i", $string);
-        if (!$match) return false;
-
-        return $string;
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 39
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv4.php

@@ -1,39 +0,0 @@
-<?php
-
-/**
- * Validates an IPv4 address
- * @author Feyd @ forums.devnetwork.net (public domain)
- */
-class HTMLPurifier_AttrDef_URI_IPv4 extends HTMLPurifier_AttrDef
-{
-
-    /**
-     * IPv4 regex, protected so that IPv6 can reuse it
-     */
-    protected $ip4;
-
-    public function validate($aIP, $config, $context) {
-
-        if (!$this->ip4) $this->_loadRegex();
-
-        if (preg_match('#^' . $this->ip4 . '$#s', $aIP))
-        {
-                return $aIP;
-        }
-
-        return false;
-
-    }
-
-    /**
-     * Lazy load function to prevent regex from being stuffed in
-     * cache.
-     */
-    protected function _loadRegex() {
-        $oct = '(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])'; // 0-255
-        $this->ip4 = "(?:{$oct}\\.{$oct}\\.{$oct}\\.{$oct})";
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 99
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv6.php

@@ -1,99 +0,0 @@
-<?php
-
-/**
- * Validates an IPv6 address.
- * @author Feyd @ forums.devnetwork.net (public domain)
- * @note This function requires brackets to have been removed from address
- *       in URI.
- */
-class HTMLPurifier_AttrDef_URI_IPv6 extends HTMLPurifier_AttrDef_URI_IPv4
-{
-
-    public function validate($aIP, $config, $context) {
-
-        if (!$this->ip4) $this->_loadRegex();
-
-        $original = $aIP;
-
-        $hex = '[0-9a-fA-F]';
-        $blk = '(?:' . $hex . '{1,4})';
-        $pre = '(?:/(?:12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9]))';   // /0 - /128
-
-        //      prefix check
-        if (strpos($aIP, '/') !== false)
-        {
-                if (preg_match('#' . $pre . '$#s', $aIP, $find))
-                {
-                        $aIP = substr($aIP, 0, 0-strlen($find[0]));
-                        unset($find);
-                }
-                else
-                {
-                        return false;
-                }
-        }
-
-        //      IPv4-compatiblity check
-        if (preg_match('#(?<=:'.')' . $this->ip4 . '$#s', $aIP, $find))
-        {
-                $aIP = substr($aIP, 0, 0-strlen($find[0]));
-                $ip = explode('.', $find[0]);
-                $ip = array_map('dechex', $ip);
-                $aIP .= $ip[0] . $ip[1] . ':' . $ip[2] . $ip[3];
-                unset($find, $ip);
-        }
-
-        //      compression check
-        $aIP = explode('::', $aIP);
-        $c = count($aIP);
-        if ($c > 2)
-        {
-                return false;
-        }
-        elseif ($c == 2)
-        {
-                list($first, $second) = $aIP;
-                $first = explode(':', $first);
-                $second = explode(':', $second);
-
-                if (count($first) + count($second) > 8)
-                {
-                        return false;
-                }
-
-                while(count($first) < 8)
-                {
-                        array_push($first, '0');
-                }
-
-                array_splice($first, 8 - count($second), 8, $second);
-                $aIP = $first;
-                unset($first,$second);
-        }
-        else
-        {
-                $aIP = explode(':', $aIP[0]);
-        }
-        $c = count($aIP);
-
-        if ($c != 8)
-        {
-                return false;
-        }
-
-        //      All the pieces should be 16-bit hex strings. Are they?
-        foreach ($aIP as $piece)
-        {
-                if (!preg_match('#^[0-9a-fA-F]{4}$#s', sprintf('%04s', $piece)))
-                {
-                        return false;
-                }
-        }
-
-        return $original;
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 6
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/URI/index.html

@@ -1,6 +0,0 @@
-<html>
-<head>
-</head>
-<body>
-</body>
-</html>

+ 0 - 6
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrDef/index.html

@@ -1,6 +0,0 @@
-<html>
-<head>
-</head>
-<body>
-</body>
-</html>

+ 0 - 56
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform.php

@@ -1,56 +0,0 @@
-<?php
-
-/**
- * Processes an entire attribute array for corrections needing multiple values.
- *
- * Occasionally, a certain attribute will need to be removed and popped onto
- * another value.  Instead of creating a complex return syntax for
- * HTMLPurifier_AttrDef, we just pass the whole attribute array to a
- * specialized object and have that do the special work.  That is the
- * family of HTMLPurifier_AttrTransform.
- *
- * An attribute transformation can be assigned to run before or after
- * HTMLPurifier_AttrDef validation.  See HTMLPurifier_HTMLDefinition for
- * more details.
- */
-
-abstract class HTMLPurifier_AttrTransform
-{
-
-    /**
-     * Abstract: makes changes to the attributes dependent on multiple values.
-     *
-     * @param $attr Assoc array of attributes, usually from
-     *              HTMLPurifier_Token_Tag::$attr
-     * @param $config Mandatory HTMLPurifier_Config object.
-     * @param $context Mandatory HTMLPurifier_Context object
-     * @returns Processed attribute array.
-     */
-    abstract public function transform($attr, $config, $context);
-
-    /**
-     * Prepends CSS properties to the style attribute, creating the
-     * attribute if it doesn't exist.
-     * @param $attr Attribute array to process (passed by reference)
-     * @param $css CSS to prepend
-     */
-    public function prependCSS(&$attr, $css) {
-        $attr['style'] = isset($attr['style']) ? $attr['style'] : '';
-        $attr['style'] = $css . $attr['style'];
-    }
-
-    /**
-     * Retrieves and removes an attribute
-     * @param $attr Attribute array to process (passed by reference)
-     * @param $key Key of attribute to confiscate
-     */
-    public function confiscateAttr(&$attr, $key) {
-        if (!isset($attr[$key])) return null;
-        $value = $attr[$key];
-        unset($attr[$key]);
-        return $value;
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 23
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/Background.php

@@ -1,23 +0,0 @@
-<?php
-
-/**
- * Pre-transform that changes proprietary background attribute to CSS.
- */
-class HTMLPurifier_AttrTransform_Background extends HTMLPurifier_AttrTransform {
-
-    public function transform($attr, $config, $context) {
-
-        if (!isset($attr['background'])) return $attr;
-
-        $background = $this->confiscateAttr($attr, 'background');
-        // some validation should happen here
-
-        $this->prependCSS($attr, "background-image:url($background);");
-
-        return $attr;
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 19
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/BdoDir.php

@@ -1,19 +0,0 @@
-<?php
-
-// this MUST be placed in post, as it assumes that any value in dir is valid
-
-/**
- * Post-trasnform that ensures that bdo tags have the dir attribute set.
- */
-class HTMLPurifier_AttrTransform_BdoDir extends HTMLPurifier_AttrTransform
-{
-
-    public function transform($attr, $config, $context) {
-        if (isset($attr['dir'])) return $attr;
-        $attr['dir'] = $config->get('Attr.DefaultTextDir');
-        return $attr;
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 23
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/BgColor.php

@@ -1,23 +0,0 @@
-<?php
-
-/**
- * Pre-transform that changes deprecated bgcolor attribute to CSS.
- */
-class HTMLPurifier_AttrTransform_BgColor extends HTMLPurifier_AttrTransform {
-
-    public function transform($attr, $config, $context) {
-
-        if (!isset($attr['bgcolor'])) return $attr;
-
-        $bgcolor = $this->confiscateAttr($attr, 'bgcolor');
-        // some validation should happen here
-
-        $this->prependCSS($attr, "background-color:$bgcolor;");
-
-        return $attr;
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 36
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/BoolToCSS.php

@@ -1,36 +0,0 @@
-<?php
-
-/**
- * Pre-transform that changes converts a boolean attribute to fixed CSS
- */
-class HTMLPurifier_AttrTransform_BoolToCSS extends HTMLPurifier_AttrTransform {
-
-    /**
-     * Name of boolean attribute that is trigger
-     */
-    protected $attr;
-
-    /**
-     * CSS declarations to add to style, needs trailing semicolon
-     */
-    protected $css;
-
-    /**
-     * @param $attr string attribute name to convert from
-     * @param $css string CSS declarations to add to style (needs semicolon)
-     */
-    public function __construct($attr, $css) {
-        $this->attr = $attr;
-        $this->css  = $css;
-    }
-
-    public function transform($attr, $config, $context) {
-        if (!isset($attr[$this->attr])) return $attr;
-        unset($attr[$this->attr]);
-        $this->prependCSS($attr, $this->css);
-        return $attr;
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 18
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/Border.php

@@ -1,18 +0,0 @@
-<?php
-
-/**
- * Pre-transform that changes deprecated border attribute to CSS.
- */
-class HTMLPurifier_AttrTransform_Border extends HTMLPurifier_AttrTransform {
-
-    public function transform($attr, $config, $context) {
-        if (!isset($attr['border'])) return $attr;
-        $border_width = $this->confiscateAttr($attr, 'border');
-        // some validation should happen here
-        $this->prependCSS($attr, "border:{$border_width}px solid;");
-        return $attr;
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 58
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/EnumToCSS.php

@@ -1,58 +0,0 @@
-<?php
-
-/**
- * Generic pre-transform that converts an attribute with a fixed number of
- * values (enumerated) to CSS.
- */
-class HTMLPurifier_AttrTransform_EnumToCSS extends HTMLPurifier_AttrTransform {
-
-    /**
-     * Name of attribute to transform from
-     */
-    protected $attr;
-
-    /**
-     * Lookup array of attribute values to CSS
-     */
-    protected $enumToCSS = array();
-
-    /**
-     * Case sensitivity of the matching
-     * @warning Currently can only be guaranteed to work with ASCII
-     *          values.
-     */
-    protected $caseSensitive = false;
-
-    /**
-     * @param $attr String attribute name to transform from
-     * @param $enumToCSS Lookup array of attribute values to CSS
-     * @param $case_sensitive Boolean case sensitivity indicator, default false
-     */
-    public function __construct($attr, $enum_to_css, $case_sensitive = false) {
-        $this->attr = $attr;
-        $this->enumToCSS = $enum_to_css;
-        $this->caseSensitive = (bool) $case_sensitive;
-    }
-
-    public function transform($attr, $config, $context) {
-
-        if (!isset($attr[$this->attr])) return $attr;
-
-        $value = trim($attr[$this->attr]);
-        unset($attr[$this->attr]);
-
-        if (!$this->caseSensitive) $value = strtolower($value);
-
-        if (!isset($this->enumToCSS[$value])) {
-            return $attr;
-        }
-
-        $this->prependCSS($attr, $this->enumToCSS[$value]);
-
-        return $attr;
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 43
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgRequired.php

@@ -1,43 +0,0 @@
-<?php
-
-// must be called POST validation
-
-/**
- * Transform that supplies default values for the src and alt attributes
- * in img tags, as well as prevents the img tag from being removed
- * because of a missing alt tag. This needs to be registered as both
- * a pre and post attribute transform.
- */
-class HTMLPurifier_AttrTransform_ImgRequired extends HTMLPurifier_AttrTransform
-{
-
-    public function transform($attr, $config, $context) {
-
-        $src = true;
-        if (!isset($attr['src'])) {
-            if ($config->get('Core.RemoveInvalidImg')) return $attr;
-            $attr['src'] = $config->get('Attr.DefaultInvalidImage');
-            $src = false;
-        }
-
-        if (!isset($attr['alt'])) {
-            if ($src) {
-                $alt = $config->get('Attr.DefaultImageAlt');
-                if ($alt === null) {
-                    // truncate if the alt is too long
-                    $attr['alt'] = substr(basename($attr['src']),0,40);
-                } else {
-                    $attr['alt'] = $alt;
-                }
-            } else {
-                $attr['alt'] = $config->get('Attr.DefaultInvalidImageAlt');
-            }
-        }
-
-        return $attr;
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 44
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgSpace.php

@@ -1,44 +0,0 @@
-<?php
-
-/**
- * Pre-transform that changes deprecated hspace and vspace attributes to CSS
- */
-class HTMLPurifier_AttrTransform_ImgSpace extends HTMLPurifier_AttrTransform {
-
-    protected $attr;
-    protected $css = array(
-        'hspace' => array('left', 'right'),
-        'vspace' => array('top', 'bottom')
-    );
-
-    public function __construct($attr) {
-        $this->attr = $attr;
-        if (!isset($this->css[$attr])) {
-            trigger_error(htmlspecialchars($attr) . ' is not valid space attribute');
-        }
-    }
-
-    public function transform($attr, $config, $context) {
-
-        if (!isset($attr[$this->attr])) return $attr;
-
-        $width = $this->confiscateAttr($attr, $this->attr);
-        // some validation could happen here
-
-        if (!isset($this->css[$this->attr])) return $attr;
-
-        $style = '';
-        foreach ($this->css[$this->attr] as $suffix) {
-            $property = "margin-$suffix";
-            $style .= "$property:{$width}px;";
-        }
-
-        $this->prependCSS($attr, $style);
-
-        return $attr;
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 40
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/Input.php

@@ -1,40 +0,0 @@
-<?php
-
-/**
- * Performs miscellaneous cross attribute validation and filtering for
- * input elements. This is meant to be a post-transform.
- */
-class HTMLPurifier_AttrTransform_Input extends HTMLPurifier_AttrTransform {
-
-    protected $pixels;
-
-    public function __construct() {
-        $this->pixels = new HTMLPurifier_AttrDef_HTML_Pixels();
-    }
-
-    public function transform($attr, $config, $context) {
-        if (!isset($attr['type'])) $t = 'text';
-        else $t = strtolower($attr['type']);
-        if (isset($attr['checked']) && $t !== 'radio' && $t !== 'checkbox') {
-            unset($attr['checked']);
-        }
-        if (isset($attr['maxlength']) && $t !== 'text' && $t !== 'password') {
-            unset($attr['maxlength']);
-        }
-        if (isset($attr['size']) && $t !== 'text' && $t !== 'password') {
-            $result = $this->pixels->validate($attr['size'], $config, $context);
-            if ($result === false) unset($attr['size']);
-            else $attr['size'] = $result;
-        }
-        if (isset($attr['src']) && $t !== 'image') {
-            unset($attr['src']);
-        }
-        if (!isset($attr['value']) && ($t === 'radio' || $t === 'checkbox')) {
-            $attr['value'] = '';
-        }
-        return $attr;
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 28
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/Lang.php

@@ -1,28 +0,0 @@
-<?php
-
-/**
- * Post-transform that copies lang's value to xml:lang (and vice-versa)
- * @note Theoretically speaking, this could be a pre-transform, but putting
- *       post is more efficient.
- */
-class HTMLPurifier_AttrTransform_Lang extends HTMLPurifier_AttrTransform
-{
-
-    public function transform($attr, $config, $context) {
-
-        $lang     = isset($attr['lang']) ? $attr['lang'] : false;
-        $xml_lang = isset($attr['xml:lang']) ? $attr['xml:lang'] : false;
-
-        if ($lang !== false && $xml_lang === false) {
-            $attr['xml:lang'] = $lang;
-        } elseif ($xml_lang !== false) {
-            $attr['lang'] = $xml_lang;
-        }
-
-        return $attr;
-
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 27
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/Length.php

@@ -1,27 +0,0 @@
-<?php
-
-/**
- * Class for handling width/height length attribute transformations to CSS
- */
-class HTMLPurifier_AttrTransform_Length extends HTMLPurifier_AttrTransform
-{
-
-    protected $name;
-    protected $cssName;
-
-    public function __construct($name, $css_name = null) {
-        $this->name = $name;
-        $this->cssName = $css_name ? $css_name : $name;
-    }
-
-    public function transform($attr, $config, $context) {
-        if (!isset($attr[$this->name])) return $attr;
-        $length = $this->confiscateAttr($attr, $this->name);
-        if(ctype_digit($length)) $length .= 'px';
-        $this->prependCSS($attr, $this->cssName . ":$length;");
-        return $attr;
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 21
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/Name.php

@@ -1,21 +0,0 @@
-<?php
-
-/**
- * Pre-transform that changes deprecated name attribute to ID if necessary
- */
-class HTMLPurifier_AttrTransform_Name extends HTMLPurifier_AttrTransform
-{
-
-    public function transform($attr, $config, $context) {
-        // Abort early if we're using relaxed definition of name
-        if ($config->get('HTML.Attr.Name.UseCDATA')) return $attr;
-        if (!isset($attr['name'])) return $attr;
-        $id = $this->confiscateAttr($attr, 'name');
-        if ( isset($attr['id']))   return $attr;
-        $attr['id'] = $id;
-        return $attr;
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 27
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/NameSync.php

@@ -1,27 +0,0 @@
-<?php
-
-/**
- * Post-transform that performs validation to the name attribute; if
- * it is present with an equivalent id attribute, it is passed through;
- * otherwise validation is performed.
- */
-class HTMLPurifier_AttrTransform_NameSync extends HTMLPurifier_AttrTransform
-{
-
-    public function __construct() {
-        $this->idDef = new HTMLPurifier_AttrDef_HTML_ID();
-    }
-
-    public function transform($attr, $config, $context) {
-        if (!isset($attr['name'])) return $attr;
-        $name = $attr['name'];
-        if (isset($attr['id']) && $attr['id'] === $name) return $attr;
-        $result = $this->idDef->validate($name, $config, $context);
-        if ($result === false) unset($attr['name']);
-        else $attr['name'] = $result;
-        return $attr;
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 20
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeEmbed.php

@@ -1,20 +0,0 @@
-<?php
-
-class HTMLPurifier_AttrTransform_SafeEmbed extends HTMLPurifier_AttrTransform
-{
-    public $name = "SafeEmbed";
-
-    public function transform($attr, $config, $context) {
-        $attr['allowscriptaccess'] = 'never';
-        $attr['allownetworking'] = 'internal';
-        $attr['type'] = 'application/x-shockwave-flash';
-
-        if (!$config->get('HTML.FlashAllowFullScreen') || !$attr['allowfullscreen'] == 'true') {
-            unset($attr['allowfullscreen']); // if omitted, assume to be 'false'
-        }
-
-        return $attr;
-    }
-}
-
-// vim: et sw=4 sts=4

+ 0 - 16
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeObject.php

@@ -1,16 +0,0 @@
-<?php
-
-/**
- * Writes default type for all objects. Currently only supports flash.
- */
-class HTMLPurifier_AttrTransform_SafeObject extends HTMLPurifier_AttrTransform
-{
-    public $name = "SafeObject";
-
-    function transform($attr, $config, $context) {
-        if (!isset($attr['type'])) $attr['type'] = 'application/x-shockwave-flash';
-        return $attr;
-    }
-}
-
-// vim: et sw=4 sts=4

+ 0 - 67
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeParam.php

@@ -1,67 +0,0 @@
-<?php
-
-/**
- * Validates name/value pairs in param tags to be used in safe objects. This
- * will only allow name values it recognizes, and pre-fill certain attributes
- * with required values.
- *
- * @note
- *      This class only supports Flash. In the future, Quicktime support
- *      may be added.
- *
- * @warning
- *      This class expects an injector to add the necessary parameters tags.
- */
-class HTMLPurifier_AttrTransform_SafeParam extends HTMLPurifier_AttrTransform
-{
-    public $name = "SafeParam";
-    private $uri;
-
-    public function __construct() {
-        $this->uri = new HTMLPurifier_AttrDef_URI(true); // embedded
-        $this->wmode = new HTMLPurifier_AttrDef_Enum(array('window', 'opaque', 'transparent'));
-    }
-
-    public function transform($attr, $config, $context) {
-        // If we add support for other objects, we'll need to alter the
-        // transforms.
-        switch ($attr['name']) {
-            // application/x-shockwave-flash
-            // Keep this synchronized with Injector/SafeObject.php
-            case 'allowScriptAccess':
-            case 'allowscriptaccess':
-                $attr['value'] = 'never';
-                break;
-            case 'allowNetworking':
-            case 'allownetworking':
-                $attr['value'] = 'internal';
-                break;
-            case 'allowFullScreen':
-            case 'allowfullscreen':
-                if ($config->get('HTML.FlashAllowFullScreen')) {
-                    $attr['value'] = ($attr['value'] == 'true') ? 'true' : 'false';
-                } else {
-                    $attr['value'] = 'false';
-                }
-                break;
-            case 'wmode':
-                $attr['value'] = $this->wmode->validate($attr['value'], $config, $context);
-                break;
-            case 'movie':
-            case 'src':
-                $attr['name'] = "movie";
-                $attr['value'] = $this->uri->validate($attr['value'], $config, $context);
-                break;
-            case 'flashvars':
-                // we're going to allow arbitrary inputs to the SWF, on
-                // the reasoning that it could only hack the SWF, not us.
-                break;
-            // add other cases to support other param name/value pairs
-            default:
-                $attr['name'] = $attr['value'] = null;
-        }
-        return $attr;
-    }
-}
-
-// vim: et sw=4 sts=4

+ 0 - 16
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/ScriptRequired.php

@@ -1,16 +0,0 @@
-<?php
-
-/**
- * Implements required attribute stipulation for <script>
- */
-class HTMLPurifier_AttrTransform_ScriptRequired extends HTMLPurifier_AttrTransform
-{
-    public function transform($attr, $config, $context) {
-        if (!isset($attr['type'])) {
-            $attr['type'] = 'text/javascript';
-        }
-        return $attr;
-    }
-}
-
-// vim: et sw=4 sts=4

+ 0 - 18
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/Textarea.php

@@ -1,18 +0,0 @@
-<?php
-
-/**
- * Sets height/width defaults for <textarea>
- */
-class HTMLPurifier_AttrTransform_Textarea extends HTMLPurifier_AttrTransform
-{
-
-    public function transform($attr, $config, $context) {
-        // Calculated from Firefox
-        if (!isset($attr['cols'])) $attr['cols'] = '22';
-        if (!isset($attr['rows'])) $attr['rows'] = '3';
-        return $attr;
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 6
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTransform/index.html

@@ -1,6 +0,0 @@
-<html>
-<head>
-</head>
-<body>
-</body>
-</html>

+ 0 - 77
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrTypes.php

@@ -1,77 +0,0 @@
-<?php
-
-/**
- * Provides lookup array of attribute types to HTMLPurifier_AttrDef objects
- */
-class HTMLPurifier_AttrTypes
-{
-    /**
-     * Lookup array of attribute string identifiers to concrete implementations
-     */
-    protected $info = array();
-
-    /**
-     * Constructs the info array, supplying default implementations for attribute
-     * types.
-     */
-    public function __construct() {
-        // pseudo-types, must be instantiated via shorthand
-        $this->info['Enum']    = new HTMLPurifier_AttrDef_Enum();
-        $this->info['Bool']    = new HTMLPurifier_AttrDef_HTML_Bool();
-
-        $this->info['CDATA']    = new HTMLPurifier_AttrDef_Text();
-        $this->info['ID']       = new HTMLPurifier_AttrDef_HTML_ID();
-        $this->info['Length']   = new HTMLPurifier_AttrDef_HTML_Length();
-        $this->info['MultiLength'] = new HTMLPurifier_AttrDef_HTML_MultiLength();
-        $this->info['NMTOKENS'] = new HTMLPurifier_AttrDef_HTML_Nmtokens();
-        $this->info['Pixels']   = new HTMLPurifier_AttrDef_HTML_Pixels();
-        $this->info['Text']     = new HTMLPurifier_AttrDef_Text();
-        $this->info['URI']      = new HTMLPurifier_AttrDef_URI();
-        $this->info['LanguageCode'] = new HTMLPurifier_AttrDef_Lang();
-        $this->info['Color']    = new HTMLPurifier_AttrDef_HTML_Color();
-
-        // unimplemented aliases
-        $this->info['ContentType'] = new HTMLPurifier_AttrDef_Text();
-        $this->info['ContentTypes'] = new HTMLPurifier_AttrDef_Text();
-        $this->info['Charsets'] = new HTMLPurifier_AttrDef_Text();
-        $this->info['Character'] = new HTMLPurifier_AttrDef_Text();
-
-        // "proprietary" types
-        $this->info['Class'] = new HTMLPurifier_AttrDef_HTML_Class();
-
-        // number is really a positive integer (one or more digits)
-        // FIXME: ^^ not always, see start and value of list items
-        $this->info['Number']   = new HTMLPurifier_AttrDef_Integer(false, false, true);
-    }
-
-    /**
-     * Retrieves a type
-     * @param $type String type name
-     * @return Object AttrDef for type
-     */
-    public function get($type) {
-
-        // determine if there is any extra info tacked on
-        if (strpos($type, '#') !== false) list($type, $string) = explode('#', $type, 2);
-        else $string = '';
-
-        if (!isset($this->info[$type])) {
-            trigger_error('Cannot retrieve undefined attribute type ' . $type, E_USER_ERROR);
-            return;
-        }
-
-        return $this->info[$type]->make($string);
-
-    }
-
-    /**
-     * Sets a new implementation for a type
-     * @param $type String type name
-     * @param $impl Object AttrDef for type
-     */
-    public function set($type, $impl) {
-        $this->info[$type] = $impl;
-    }
-}
-
-// vim: et sw=4 sts=4

+ 0 - 162
main/inc/lib/htmlpurifier/library/HTMLPurifier/AttrValidator.php

@@ -1,162 +0,0 @@
-<?php
-
-/**
- * Validates the attributes of a token. Doesn't manage required attributes
- * very well. The only reason we factored this out was because RemoveForeignElements
- * also needed it besides ValidateAttributes.
- */
-class HTMLPurifier_AttrValidator
-{
-
-    /**
-     * Validates the attributes of a token, returning a modified token
-     * that has valid tokens
-     * @param $token Reference to token to validate. We require a reference
-     *     because the operation this class performs on the token are
-     *     not atomic, so the context CurrentToken to be updated
-     *     throughout
-     * @param $config Instance of HTMLPurifier_Config
-     * @param $context Instance of HTMLPurifier_Context
-     */
-    public function validateToken(&$token, &$config, $context) {
-
-        $definition = $config->getHTMLDefinition();
-        $e =& $context->get('ErrorCollector', true);
-
-        // initialize IDAccumulator if necessary
-        $ok =& $context->get('IDAccumulator', true);
-        if (!$ok) {
-            $id_accumulator = HTMLPurifier_IDAccumulator::build($config, $context);
-            $context->register('IDAccumulator', $id_accumulator);
-        }
-
-        // initialize CurrentToken if necessary
-        $current_token =& $context->get('CurrentToken', true);
-        if (!$current_token) $context->register('CurrentToken', $token);
-
-        if (
-            !$token instanceof HTMLPurifier_Token_Start &&
-            !$token instanceof HTMLPurifier_Token_Empty
-        ) return $token;
-
-        // create alias to global definition array, see also $defs
-        // DEFINITION CALL
-        $d_defs = $definition->info_global_attr;
-
-        // don't update token until the very end, to ensure an atomic update
-        $attr = $token->attr;
-
-        // do global transformations (pre)
-        // nothing currently utilizes this
-        foreach ($definition->info_attr_transform_pre as $transform) {
-            $attr = $transform->transform($o = $attr, $config, $context);
-            if ($e) {
-                if ($attr != $o) $e->send(E_NOTICE, 'AttrValidator: Attributes transformed', $o, $attr);
-            }
-        }
-
-        // do local transformations only applicable to this element (pre)
-        // ex. <p align="right"> to <p style="text-align:right;">
-        foreach ($definition->info[$token->name]->attr_transform_pre as $transform) {
-            $attr = $transform->transform($o = $attr, $config, $context);
-            if ($e) {
-                if ($attr != $o) $e->send(E_NOTICE, 'AttrValidator: Attributes transformed', $o, $attr);
-            }
-        }
-
-        // create alias to this element's attribute definition array, see
-        // also $d_defs (global attribute definition array)
-        // DEFINITION CALL
-        $defs = $definition->info[$token->name]->attr;
-
-        $attr_key = false;
-        $context->register('CurrentAttr', $attr_key);
-
-        // iterate through all the attribute keypairs
-        // Watch out for name collisions: $key has previously been used
-        foreach ($attr as $attr_key => $value) {
-
-            // call the definition
-            if ( isset($defs[$attr_key]) ) {
-                // there is a local definition defined
-                if ($defs[$attr_key] === false) {
-                    // We've explicitly been told not to allow this element.
-                    // This is usually when there's a global definition
-                    // that must be overridden.
-                    // Theoretically speaking, we could have a
-                    // AttrDef_DenyAll, but this is faster!
-                    $result = false;
-                } else {
-                    // validate according to the element's definition
-                    $result = $defs[$attr_key]->validate(
-                                    $value, $config, $context
-                               );
-                }
-            } elseif ( isset($d_defs[$attr_key]) ) {
-                // there is a global definition defined, validate according
-                // to the global definition
-                $result = $d_defs[$attr_key]->validate(
-                                $value, $config, $context
-                           );
-            } else {
-                // system never heard of the attribute? DELETE!
-                $result = false;
-            }
-
-            // put the results into effect
-            if ($result === false || $result === null) {
-                // this is a generic error message that should replaced
-                // with more specific ones when possible
-                if ($e) $e->send(E_ERROR, 'AttrValidator: Attribute removed');
-
-                // remove the attribute
-                unset($attr[$attr_key]);
-            } elseif (is_string($result)) {
-                // generally, if a substitution is happening, there
-                // was some sort of implicit correction going on. We'll
-                // delegate it to the attribute classes to say exactly what.
-
-                // simple substitution
-                $attr[$attr_key] = $result;
-            } else {
-                // nothing happens
-            }
-
-            // we'd also want slightly more complicated substitution
-            // involving an array as the return value,
-            // although we're not sure how colliding attributes would
-            // resolve (certain ones would be completely overriden,
-            // others would prepend themselves).
-        }
-
-        $context->destroy('CurrentAttr');
-
-        // post transforms
-
-        // global (error reporting untested)
-        foreach ($definition->info_attr_transform_post as $transform) {
-            $attr = $transform->transform($o = $attr, $config, $context);
-            if ($e) {
-                if ($attr != $o) $e->send(E_NOTICE, 'AttrValidator: Attributes transformed', $o, $attr);
-            }
-        }
-
-        // local (error reporting untested)
-        foreach ($definition->info[$token->name]->attr_transform_post as $transform) {
-            $attr = $transform->transform($o = $attr, $config, $context);
-            if ($e) {
-                if ($attr != $o) $e->send(E_NOTICE, 'AttrValidator: Attributes transformed', $o, $attr);
-            }
-        }
-
-        $token->attr = $attr;
-
-        // destroy CurrentToken if we made it ourselves
-        if (!$current_token) $context->destroy('CurrentToken');
-
-    }
-
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 104
main/inc/lib/htmlpurifier/library/HTMLPurifier/Bootstrap.php

@@ -1,104 +0,0 @@
-<?php
-
-// constants are slow, so we use as few as possible
-if (!defined('HTMLPURIFIER_PREFIX')) {
-    define('HTMLPURIFIER_PREFIX', realpath(dirname(__FILE__) . '/..'));
-}
-
-// accomodations for versions earlier than 5.0.2
-// borrowed from PHP_Compat, LGPL licensed, by Aidan Lister <aidan@php.net>
-if (!defined('PHP_EOL')) {
-    switch (strtoupper(substr(PHP_OS, 0, 3))) {
-        case 'WIN':
-            define('PHP_EOL', "\r\n");
-            break;
-        case 'DAR':
-            define('PHP_EOL', "\r");
-            break;
-        default:
-            define('PHP_EOL', "\n");
-    }
-}
-
-/**
- * Bootstrap class that contains meta-functionality for HTML Purifier such as
- * the autoload function.
- *
- * @note
- *      This class may be used without any other files from HTML Purifier.
- */
-class HTMLPurifier_Bootstrap
-{
-
-    /**
-     * Autoload function for HTML Purifier
-     * @param $class Class to load
-     */
-    public static function autoload($class) {
-        $file = HTMLPurifier_Bootstrap::getPath($class);
-        if (!$file) return false;
-        // Technically speaking, it should be ok and more efficient to
-        // just do 'require', but Antonio Parraga reports that with
-        // Zend extensions such as Zend debugger and APC, this invariant
-        // may be broken.  Since we have efficient alternatives, pay
-        // the cost here and avoid the bug.
-        require_once HTMLPURIFIER_PREFIX . '/' . $file;
-        return true;
-    }
-
-    /**
-     * Returns the path for a specific class.
-     */
-    public static function getPath($class) {
-        if (strncmp('HTMLPurifier', $class, 12) !== 0) return false;
-        // Custom implementations
-        if (strncmp('HTMLPurifier_Language_', $class, 22) === 0) {
-            $code = str_replace('_', '-', substr($class, 22));
-            $file = 'HTMLPurifier/Language/classes/' . $code . '.php';
-        } else {
-            $file = str_replace('_', '/', $class) . '.php';
-        }
-        if (!file_exists(HTMLPURIFIER_PREFIX . '/' . $file)) return false;
-        return $file;
-    }
-
-    /**
-     * "Pre-registers" our autoloader on the SPL stack.
-     */
-    public static function registerAutoload() {
-        $autoload = array('HTMLPurifier_Bootstrap', 'autoload');
-        if ( ($funcs = spl_autoload_functions()) === false ) {
-            spl_autoload_register($autoload);
-        } elseif (function_exists('spl_autoload_unregister')) {
-            $buggy  = version_compare(PHP_VERSION, '5.2.11', '<');
-            $compat = version_compare(PHP_VERSION, '5.1.2', '<=') &&
-                      version_compare(PHP_VERSION, '5.1.0', '>=');
-            foreach ($funcs as $func) {
-                if ($buggy && is_array($func)) {
-                    // :TRICKY: There are some compatibility issues and some
-                    // places where we need to error out
-                    $reflector = new ReflectionMethod($func[0], $func[1]);
-                    if (!$reflector->isStatic()) {
-                        throw new Exception('
-                            HTML Purifier autoloader registrar is not compatible
-                            with non-static object methods due to PHP Bug #44144;
-                            Please do not use HTMLPurifier.autoload.php (or any
-                            file that includes this file); instead, place the code:
-                            spl_autoload_register(array(\'HTMLPurifier_Bootstrap\', \'autoload\'))
-                            after your own autoloaders.
-                        ');
-                    }
-                    // Suprisingly, spl_autoload_register supports the
-                    // Class::staticMethod callback format, although call_user_func doesn't
-                    if ($compat) $func = implode('::', $func);
-                }
-                spl_autoload_unregister($func);
-            }
-            spl_autoload_register($autoload);
-            foreach ($funcs as $func) spl_autoload_register($func);
-        }
-    }
-
-}
-
-// vim: et sw=4 sts=4

+ 0 - 301
main/inc/lib/htmlpurifier/library/HTMLPurifier/CSSDefinition.php

@@ -1,301 +0,0 @@
-<?php
-
-/**
- * Defines allowed CSS attributes and what their values are.
- * @see HTMLPurifier_HTMLDefinition
- */
-class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition
-{
-
-    public $type = 'CSS';
-
-    /**
-     * Assoc array of attribute name to definition object.
-     */
-    public $info = array();
-
-    /**
-     * Constructs the info array.  The meat of this class.
-     */
-    protected function doSetup($config) {
-
-        $this->info['text-align'] = new HTMLPurifier_AttrDef_Enum(
-            array('left', 'right', 'center', 'justify'), false);
-
-        $border_style =
-        $this->info['border-bottom-style'] =
-        $this->info['border-right-style'] =
-        $this->info['border-left-style'] =
-        $this->info['border-top-style'] =  new HTMLPurifier_AttrDef_Enum(
-            array('none', 'hidden', 'dotted', 'dashed', 'solid', 'double',
-            'groove', 'ridge', 'inset', 'outset'), false);
-
-        $this->info['border-style'] = new HTMLPurifier_AttrDef_CSS_Multiple($border_style);
-
-        $this->info['clear'] = new HTMLPurifier_AttrDef_Enum(
-            array('none', 'left', 'right', 'both'), false);
-        $this->info['float'] = new HTMLPurifier_AttrDef_Enum(
-            array('none', 'left', 'right'), false);
-        $this->info['font-style'] = new HTMLPurifier_AttrDef_Enum(
-            array('normal', 'italic', 'oblique'), false);
-        $this->info['font-variant'] = new HTMLPurifier_AttrDef_Enum(
-            array('normal', 'small-caps'), false);
-
-        $uri_or_none = new HTMLPurifier_AttrDef_CSS_Composite(
-            array(
-                new HTMLPurifier_AttrDef_Enum(array('none')),
-                new HTMLPurifier_AttrDef_CSS_URI()
-            )
-        );
-
-        $this->info['list-style-position'] = new HTMLPurifier_AttrDef_Enum(
-            array('inside', 'outside'), false);
-        $this->info['list-style-type'] = new HTMLPurifier_AttrDef_Enum(
-            array('disc', 'circle', 'square', 'decimal', 'lower-roman',
-            'upper-roman', 'lower-alpha', 'upper-alpha', 'none'), false);
-        $this->info['list-style-image'] = $uri_or_none;
-
-        $this->info['list-style'] = new HTMLPurifier_AttrDef_CSS_ListStyle($config);
-
-        $this->info['text-transform'] = new HTMLPurifier_AttrDef_Enum(
-            array('capitalize', 'uppercase', 'lowercase', 'none'), false);
-        $this->info['color'] = new HTMLPurifier_AttrDef_CSS_Color();
-
-        $this->info['background-image'] = $uri_or_none;
-        $this->info['background-repeat'] = new HTMLPurifier_AttrDef_Enum(
-            array('repeat', 'repeat-x', 'repeat-y', 'no-repeat')
-        );
-        $this->info['background-attachment'] = new HTMLPurifier_AttrDef_Enum(
-            array('scroll', 'fixed')
-        );
-        $this->info['background-position'] = new HTMLPurifier_AttrDef_CSS_BackgroundPosition();
-
-        $border_color =
-        $this->info['border-top-color'] =
-        $this->info['border-bottom-color'] =
-        $this->info['border-left-color'] =
-        $this->info['border-right-color'] =
-        $this->info['background-color'] = new HTMLPurifier_AttrDef_CSS_Composite(array(
-            new HTMLPurifier_AttrDef_Enum(array('transparent')),
-            new HTMLPurifier_AttrDef_CSS_Color()
-        ));
-
-        $this->info['background'] = new HTMLPurifier_AttrDef_CSS_Background($config);
-
-        $this->info['border-color'] = new HTMLPurifier_AttrDef_CSS_Multiple($border_color);
-
-        $border_width =
-        $this->info['border-top-width'] =
-        $this->info['border-bottom-width'] =
-        $this->info['border-left-width'] =
-        $this->info['border-right-width'] = new HTMLPurifier_AttrDef_CSS_Composite(array(
-            new HTMLPurifier_AttrDef_Enum(array('thin', 'medium', 'thick')),
-            new HTMLPurifier_AttrDef_CSS_Length('0') //disallow negative
-        ));
-
-        $this->info['border-width'] = new HTMLPurifier_AttrDef_CSS_Multiple($border_width);
-
-        $this->info['letter-spacing'] = new HTMLPurifier_AttrDef_CSS_Composite(array(
-            new HTMLPurifier_AttrDef_Enum(array('normal')),
-            new HTMLPurifier_AttrDef_CSS_Length()
-        ));
-
-        $this->info['word-spacing'] = new HTMLPurifier_AttrDef_CSS_Composite(array(
-            new HTMLPurifier_AttrDef_Enum(array('normal')),
-            new HTMLPurifier_AttrDef_CSS_Length()
-        ));
-
-        $this->info['font-size'] = new HTMLPurifier_AttrDef_CSS_Composite(array(
-            new HTMLPurifier_AttrDef_Enum(array('xx-small', 'x-small',
-                'small', 'medium', 'large', 'x-large', 'xx-large',
-                'larger', 'smaller')),
-            new HTMLPurifier_AttrDef_CSS_Percentage(),
-            new HTMLPurifier_AttrDef_CSS_Length()
-        ));
-
-        $this->info['line-height'] = new HTMLPurifier_AttrDef_CSS_Composite(array(
-            new HTMLPurifier_AttrDef_Enum(array('normal')),
-            new HTMLPurifier_AttrDef_CSS_Number(true), // no negatives
-            new HTMLPurifier_AttrDef_CSS_Length('0'),
-            new HTMLPurifier_AttrDef_CSS_Percentage(true)
-        ));
-
-        $margin =
-        $this->info['margin-top'] =
-        $this->info['margin-bottom'] =
-        $this->info['margin-left'] =
-        $this->info['margin-right'] = new HTMLPurifier_AttrDef_CSS_Composite(array(
-            new HTMLPurifier_AttrDef_CSS_Length(),
-            new HTMLPurifier_AttrDef_CSS_Percentage(),
-            new HTMLPurifier_AttrDef_Enum(array('auto'))
-        ));
-
-        $this->info['margin'] = new HTMLPurifier_AttrDef_CSS_Multiple($margin);
-
-        // non-negative
-        $padding =
-        $this->info['padding-top'] =
-        $this->info['padding-bottom'] =
-        $this->info['padding-left'] =
-        $this->info['padding-right'] = new HTMLPurifier_AttrDef_CSS_Composite(array(
-            new HTMLPurifier_AttrDef_CSS_Length('0'),
-            new HTMLPurifier_AttrDef_CSS_Percentage(true)
-        ));
-
-        $this->info['padding'] = new HTMLPurifier_AttrDef_CSS_Multiple($padding);
-
-        $this->info['text-indent'] = new HTMLPurifier_AttrDef_CSS_Composite(array(
-            new HTMLPurifier_AttrDef_CSS_Length(),
-            new HTMLPurifier_AttrDef_CSS_Percentage()
-        ));
-
-        $trusted_wh = new HTMLPurifier_AttrDef_CSS_Composite(array(
-            new HTMLPurifier_AttrDef_CSS_Length('0'),
-            new HTMLPurifier_AttrDef_CSS_Percentage(true),
-            new HTMLPurifier_AttrDef_Enum(array('auto'))
-        ));
-        $max = $config->get('CSS.MaxImgLength');
-
-        $this->info['width'] =
-        $this->info['height'] =
-            $max === null ?
-            $trusted_wh :
-            new HTMLPurifier_AttrDef_Switch('img',
-                // For img tags:
-                new HTMLPurifier_AttrDef_CSS_Composite(array(
-                    new HTMLPurifier_AttrDef_CSS_Length('0', $max),
-                    new HTMLPurifier_AttrDef_Enum(array('auto'))
-                )),
-                // For everyone else:
-                $trusted_wh
-            );
-
-        $this->info['text-decoration'] = new HTMLPurifier_AttrDef_CSS_TextDecoration();
-
-        $this->info['font-family'] = new HTMLPurifier_AttrDef_CSS_FontFamily();
-
-        // this could use specialized code
-        $this->info['font-weight'] = new HTMLPurifier_AttrDef_Enum(
-            array('normal', 'bold', 'bolder', 'lighter', '100', '200', '300',
-            '400', '500', '600', '700', '800', '900'), false);
-
-        // MUST be called after other font properties, as it references
-        // a CSSDefinition object
-        $this->info['font'] = new HTMLPurifier_AttrDef_CSS_Font($config);
-
-        // same here
-        $this->info['border'] =
-        $this->info['border-bottom'] =
-        $this->info['border-top'] =
-        $this->info['border-left'] =
-        $this->info['border-right'] = new HTMLPurifier_AttrDef_CSS_Border($config);
-
-        $this->info['border-collapse'] = new HTMLPurifier_AttrDef_Enum(array(
-            'collapse', 'separate'));
-
-        $this->info['caption-side'] = new HTMLPurifier_AttrDef_Enum(array(
-            'top', 'bottom'));
-
-        $this->info['table-layout'] = new HTMLPurifier_AttrDef_Enum(array(
-            'auto', 'fixed'));
-
-        $this->info['vertical-align'] = new HTMLPurifier_AttrDef_CSS_Composite(array(
-            new HTMLPurifier_AttrDef_Enum(array('baseline', 'sub', 'super',
-                'top', 'text-top', 'middle', 'bottom', 'text-bottom')),
-            new HTMLPurifier_AttrDef_CSS_Length(),
-            new HTMLPurifier_AttrDef_CSS_Percentage()
-        ));
-
-        $this->info['border-spacing'] = new HTMLPurifier_AttrDef_CSS_Multiple(new HTMLPurifier_AttrDef_CSS_Length(), 2);
-
-        // partial support
-        $this->info['white-space'] = new HTMLPurifier_AttrDef_Enum(array('nowrap'));
-
-        if ($config->get('CSS.Proprietary')) {
-            $this->doSetupProprietary($config);
-        }
-
-        if ($config->get('CSS.AllowTricky')) {
-            $this->doSetupTricky($config);
-        }
-
-        $allow_important = $config->get('CSS.AllowImportant');
-        // wrap all attr-defs with decorator that handles !important
-        foreach ($this->info as $k => $v) {
-            $this->info[$k] = new HTMLPurifier_AttrDef_CSS_ImportantDecorator($v, $allow_important);
-        }
-
-        $this->setupConfigStuff($config);
-    }
-
-    protected function doSetupProprietary($config) {
-        // Internet Explorer only scrollbar colors
-        $this->info['scrollbar-arrow-color']        = new HTMLPurifier_AttrDef_CSS_Color();
-        $this->info['scrollbar-base-color']         = new HTMLPurifier_AttrDef_CSS_Color();
-        $this->info['scrollbar-darkshadow-color']   = new HTMLPurifier_AttrDef_CSS_Color();
-        $this->info['scrollbar-face-color']         = new HTMLPurifier_AttrDef_CSS_Color();
-        $this->info['scrollbar-highlight-color']    = new HTMLPurifier_AttrDef_CSS_Color();
-        $this->info['scrollbar-shadow-color']       = new HTMLPurifier_AttrDef_CSS_Color();
-
-        // technically not proprietary, but CSS3, and no one supports it
-        $this->info['opacity']          = new HTMLPurifier_AttrDef_CSS_AlphaValue();
-        $this->info['-moz-opacity']     = new HTMLPurifier_AttrDef_CSS_AlphaValue();
-        $this->info['-khtml-opacity']   = new HTMLPurifier_AttrDef_CSS_AlphaValue();
-
-        // only opacity, for now
-        $this->info['filter'] = new HTMLPurifier_AttrDef_CSS_Filter();
-
-    }
-
-    protected function doSetupTricky($config) {
-        $this->info['display'] = new HTMLPurifier_AttrDef_Enum(array(
-            'inline', 'block', 'list-item', 'run-in', 'compact',
-            'marker', 'table', 'inline-table', 'table-row-group',
-            'table-header-group', 'table-footer-group', 'table-row',
-            'table-column-group', 'table-column', 'table-cell', 'table-caption', 'none'
-        ));
-        $this->info['visibility'] = new HTMLPurifier_AttrDef_Enum(array(
-            'visible', 'hidden', 'collapse'
-        ));
-        $this->info['overflow'] = new HTMLPurifier_AttrDef_Enum(array('visible', 'hidden', 'auto', 'scroll'));
-    }
-
-
-    /**
-     * Performs extra config-based processing. Based off of
-     * HTMLPurifier_HTMLDefinition.
-     * @todo Refactor duplicate elements into common class (probably using
-     *       composition, not inheritance).
-     */
-    protected function setupConfigStuff($config) {
-
-        // setup allowed elements
-        $support = "(for information on implementing this, see the ".
-                   "support forums) ";
-        $allowed_properties = $config->get('CSS.AllowedProperties');
-        if ($allowed_properties !== null) {
-            foreach ($this->info as $name => $d) {
-                if(!isset($allowed_properties[$name])) unset($this->info[$name]);
-                unset($allowed_properties[$name]);
-            }
-            // emit errors
-            foreach ($allowed_properties as $name => $d) {
-                // :TODO: Is this htmlspecialchars() call really necessary?
-                $name = htmlspecialchars($name);
-                trigger_error("Style attribute '$name' is not supported $support", E_USER_WARNING);
-            }
-        }
-
-        $forbidden_properties = $config->get('CSS.ForbiddenProperties');
-        if ($forbidden_properties !== null) {
-            foreach ($this->info as $name => $d) {
-                if (isset($forbidden_properties[$name])) {
-                    unset($this->info[$name]);
-                }
-            }
-        }
-
-    }
-}
-
-// vim: et sw=4 sts=4

+ 0 - 48
main/inc/lib/htmlpurifier/library/HTMLPurifier/ChildDef.php

@@ -1,48 +0,0 @@
-<?php
-
-/**
- * Defines allowed child nodes and validates tokens against it.
- */
-abstract class HTMLPurifier_ChildDef
-{
-    /**
-     * Type of child definition, usually right-most part of class name lowercase.
-     * Used occasionally in terms of context.
-     */
-    public $type;
-
-    /**
-     * Bool that indicates whether or not an empty array of children is okay
-     *
-     * This is necessary for redundant checking when changes affecting
-     * a child node may cause a parent node to now be disallowed.
-     */
-    public $allow_empty;
-
-    /**
-     * Lookup array of all elements that this definition could possibly allow
-     */
-    public $elements = array();
-
-    /**
-     * Get lookup of tag names that should not close this element automatically.
-     * All other elements will do so.
-     */
-    public function getAllowedElements($config) {
-        return $this->elements;
-    }
-
-    /**
-     * Validates nodes according to definition and returns modification.
-     *
-     * @param $tokens_of_children Array of HTMLPurifier_Token
-     * @param $config HTMLPurifier_Config object
-     * @param $context HTMLPurifier_Context object
-     * @return bool true to leave nodes as is
-     * @return bool false to remove parent node
-     * @return array of replacement child tokens
-     */
-    abstract public function validateChildren($tokens_of_children, $config, $context);
-}
-
-// vim: et sw=4 sts=4

Some files were not shown because too many files changed in this diff