diff --git a/library/HTMLPurifier/Injector/AutoParagraph.php b/library/HTMLPurifier/Injector/AutoParagraph.php
index 4e5357ba..fd589f96 100644
--- a/library/HTMLPurifier/Injector/AutoParagraph.php
+++ b/library/HTMLPurifier/Injector/AutoParagraph.php
@@ -34,6 +34,20 @@ class HTMLPurifier_Injector_AutoParagraph extends HTMLPurifier_Injector
}
}
+ function handleStart(&$token, $config, &$context) {
+ // check if we're inside a tag already, if so, don't add
+ // paragraph tags
+ $current_nesting = $context->get('CurrentNesting');
+ if (!empty($current_nesting)) return;
+
+ // check if the start tag counts as a "block" element
+ $definition = $config->getHTMLDefinition();
+ if (isset($definition->info['p']->auto_close[$token->name])) return;
+
+ // append a paragraph tag before the token
+ $token = array(new HTMLPurifier_Token_Start('p'), $token);
+ }
+
/**
* Sub-function for auto-paragraphing that takes a token and splits it
* up into paragraphs unconditionally. Requires that a paragraph was
@@ -117,16 +131,6 @@ class HTMLPurifier_Injector_AutoParagraph extends HTMLPurifier_Injector
return $end_paragraph;
}
- function handleStart(&$token, $config, &$context) {
- $current_nesting =& $context->get('CurrentNesting');
- if (!empty($current_nesting)) return;
- $definition = $config->getHTMLDefinition();
- // to be replaced with new auto-auto_close algorithm
- if (isset($definition->info['p']->auto_close[$token->name])) return;
- $result =& $context->get('OutputTokens');
- $result[] = $current_nesting[] = new HTMLPurifier_Token_Start('p');
- }
-
}
?>
\ No newline at end of file