diff --git a/TODO b/TODO index 293c1d1c..0c953e03 100644 --- a/TODO +++ b/TODO @@ -10,6 +10,7 @@ TODO List 2.1 release [Refactor, refactor!] # URI validation routines tighter (see docs/dev-code-quality.html) (COMPLEX) # Advanced URI filtering schemes (see docs/proposal-new-directives.txt) + # Ruby support - Configuration profiles: predefined directives set with one func call - Implement IDREF support (harder than it seems, since you cannot have IDREFs to non-existent IDs) @@ -17,7 +18,6 @@ TODO List 2.2 release [Error'ed] # Error logging for filtering/cleanup procedures - - Requires I18N facilities to be created first (COMPLEX) - XSS-attempt detection 2.3 release [Do What I Mean, Not What I Say] @@ -45,7 +45,6 @@ TODO List same fashion!) # Formatters for plaintext - Smileys - - Linkification for HTML Purifier docs: classes - Standardize token armor for all areas of processing - Fixes for Firefox's inability to handle COL alignment props (Bug 915) - Automatically add non-breaking spaces to empty table cells when @@ -58,7 +57,6 @@ TODO List - Hooks for adding custom processors to custom namespaced tags and attributes, offer default implementation - Lots of documentation and samples - - XHTML 1.1 support Ongoing - Lots of profiling, make it faster! diff --git a/library/HTMLPurifier/ErrorCollector.php b/library/HTMLPurifier/ErrorCollector.php index bc99fa33..c0f6da4c 100644 --- a/library/HTMLPurifier/ErrorCollector.php +++ b/library/HTMLPurifier/ErrorCollector.php @@ -65,7 +65,8 @@ class HTMLPurifier_ErrorCollector $errors = $this->errors; // sort error array by line - if ($config->get('Core', 'MaintainLineNumbers')) { + // line numbers are enabled if they aren't explicitly disabled + if ($config->get('Core', 'MaintainLineNumbers') !== false) { $lines = array(); foreach ($errors as $error) { $lines[] = $error[0]; diff --git a/library/HTMLPurifier/Lexer.php b/library/HTMLPurifier/Lexer.php index 76dfee7c..16758c44 100644 --- a/library/HTMLPurifier/Lexer.php +++ b/library/HTMLPurifier/Lexer.php @@ -54,14 +54,15 @@ HTMLPurifier_ConfigSchema::define( ); HTMLPurifier_ConfigSchema::define( - 'Core', 'MaintainLineNumbers', false, 'bool', ' + 'Core', 'MaintainLineNumbers', null, 'bool/null', '
If true, HTML Purifier will add line number information to all tokens. This is useful when error reporting is turned on, but can result in significant performance degradation and should not be used when unnecessary. This directive must be used with the DirectLex lexer, - as the DOMLex lexer does not (yet) support this functionality. This directive - has been available since 2.0.0. + as the DOMLex lexer does not (yet) support this functionality. + If the value is null, an appropriate value will be selected based + on other configuration. This directive has been available since 2.0.0.
'); diff --git a/library/HTMLPurifier/Lexer/DirectLex.php b/library/HTMLPurifier/Lexer/DirectLex.php index 508e8177..08695d0f 100644 --- a/library/HTMLPurifier/Lexer/DirectLex.php +++ b/library/HTMLPurifier/Lexer/DirectLex.php @@ -44,6 +44,13 @@ class HTMLPurifier_Lexer_DirectLex extends HTMLPurifier_Lexer $array = array(); // result array $maintain_line_numbers = $config->get('Core', 'MaintainLineNumbers'); + + if ($maintain_line_numbers === null) { + // automatically determine line numbering by checking + // if error collection is on + $maintain_line_numbers = $config->get('Core', 'CollectErrors'); + } + if ($maintain_line_numbers) $current_line = 1; else $current_line = false; $context->register('CurrentLine', $current_line);