X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Ftidy%2FRemexCompatMunger.php;h=73bc5f8493ed85a04331621b7042052b96913824;hp=d5f5c281c271b0cc544d3f1d2a41a11af9683ebf;hb=5fa4cdf860c79b32ab6ef034c6d9420c2727f695;hpb=0b6930c6216313d3ddf521b07516b539a5f92113 diff --git a/includes/tidy/RemexCompatMunger.php b/includes/tidy/RemexCompatMunger.php index d5f5c281c2..73bc5f8493 100644 --- a/includes/tidy/RemexCompatMunger.php +++ b/includes/tidy/RemexCompatMunger.php @@ -81,8 +81,6 @@ class RemexCompatMunger implements TreeHandler { ]; /** - * Constructor - * * @param Serializer $serializer */ public function __construct( Serializer $serializer ) { @@ -131,7 +129,7 @@ class RemexCompatMunger implements TreeHandler { * Insert a p-wrapper * * @param SerializerNode $parent - * @param integer $sourceStart + * @param int $sourceStart * @return SerializerNode */ private function insertPWrapper( SerializerNode $parent, $sourceStart ) { @@ -222,14 +220,13 @@ class RemexCompatMunger implements TreeHandler { * FIXME: fostering ($preposition == BEFORE) is mostly done by inserting as * normal, the full algorithm is not followed. * - * @param integer $preposition + * @param int $preposition * @param Element|SerializerNode|null $refElement * @param Element $element * @param bool $void - * @param integer $sourceStart - * @param integer $sourceLength + * @param int $sourceStart + * @param int $sourceLength */ - public function insertElement( $preposition, $refElement, Element $element, $void, $sourceStart, $sourceLength ) { @@ -248,9 +245,10 @@ class RemexCompatMunger implements TreeHandler { $newParent = $this->serializer->getParentNode( $parent ); $parent = $newParent; $parentData = $parent->snData; + $pElement = $parentData->childPElement; $parentData->childPElement = null; $newRef = $refElement->userData; - // FIXME cannot call endTag() since we don't have an Element + $this->endTag( $pElement, $sourceStart, 0 ); } elseif ( $under && $parentData->isSplittable && (bool)$parentData->ancestorPNode !== $inline ) { @@ -315,7 +313,7 @@ class RemexCompatMunger implements TreeHandler { * * @param SerializerNode $parentNode * @param bool $inline - * @param integer $pos The source position + * @param int $pos The source position * @return SerializerNode */ private function splitTagStack( SerializerNode $parentNode, $inline, $pos ) { @@ -425,7 +423,13 @@ class RemexCompatMunger implements TreeHandler { } public function endTag( Element $element, $sourceStart, $sourceLength ) { + $data = $element->userData->snData; + if ( $data->childPElement ) { + $this->endTag( $data->childPElement, $sourceStart, 0 ); + } $this->serializer->endTag( $element, $sourceStart, $sourceLength ); + $element->userData->snData = null; + $element->userData = null; } public function doctype( $name, $public, $system, $quirks, $sourceStart, $sourceLength ) {