- Timestamp:
- 09/02/2024 11:19:08 PM (17 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/html-api/class-wp-html-processor.php
r58967 r58970 844 844 if ( self::PROCESS_NEXT_NODE === $node_to_process ) { 845 845 parent::next_token(); 846 if ( 847 WP_HTML_Tag_Processor::STATE_TEXT_NODE === $this->parser_state || 848 WP_HTML_Tag_Processor::STATE_CDATA_NODE === $this->parser_state 849 ) { 850 parent::subdivide_text_appropriately(); 851 } 846 852 } 847 853 … … 1057 1063 */ 1058 1064 case '#text': 1059 $text = $this->get_modifiable_text(); 1060 if ( strlen( $text ) === strspn( $text, " \t\n\f\r" ) ) { 1065 if ( parent::TEXT_IS_WHITESPACE === $this->text_node_classification ) { 1061 1066 return $this->step(); 1062 1067 } … … 1146 1151 */ 1147 1152 case '#text': 1148 $text = $this->get_modifiable_text(); 1149 if ( strlen( $text ) === strspn( $text, " \t\n\f\r" ) ) { 1153 if ( parent::TEXT_IS_WHITESPACE === $this->text_node_classification ) { 1150 1154 return $this->step(); 1151 1155 } … … 1228 1232 */ 1229 1233 case '#text': 1230 $text = $this->get_modifiable_text(); 1231 if ( strlen( $text ) === strspn( $text, " \t\n\f\r" ) ) { 1234 if ( parent::TEXT_IS_WHITESPACE === $this->text_node_classification ) { 1232 1235 return $this->step(); 1233 1236 } … … 1324 1327 * > U+000D CARRIAGE RETURN (CR), or U+0020 SPACE 1325 1328 */ 1326 $text = $this->get_modifiable_text(); 1327 if ( '' === $text ) { 1328 /* 1329 * If the text is empty after processing HTML entities and stripping 1330 * U+0000 NULL bytes then ignore the token. 1331 */ 1332 return $this->step(); 1333 } 1334 1335 if ( strlen( $text ) === strspn( $text, " \t\n\f\r" ) ) { 1329 if ( parent::TEXT_IS_WHITESPACE === $this->text_node_classification ) { 1336 1330 // Insert the character. 1337 1331 $this->insert_html_element( $this->state->current_token ); … … 1553 1547 */ 1554 1548 case '#text': 1555 $text = $this->get_modifiable_text(); 1556 if ( strlen( $text ) === strspn( $text, " \t\n\f\r" ) ) { 1549 if ( parent::TEXT_IS_WHITESPACE === $this->text_node_classification ) { 1557 1550 return $this->step_in_head(); 1558 1551 } … … 1655 1648 */ 1656 1649 case '#text': 1657 $text = $this->get_modifiable_text(); 1658 if ( strlen( $text ) === strspn( $text, " \t\n\f\r" ) ) { 1650 if ( parent::TEXT_IS_WHITESPACE === $this->text_node_classification ) { 1659 1651 // Insert the character. 1660 1652 $this->insert_html_element( $this->state->current_token ); … … 1794 1786 switch ( $op ) { 1795 1787 case '#text': 1796 $current_token = $this->bookmarks[ $this->state->current_token->bookmark_name ];1797 1798 1788 /* 1799 1789 * > A character token that is U+0000 NULL … … 1805 1795 * the active formats should be reconstructed. 1806 1796 */ 1807 if ( 1808 1 <= $current_token->length && 1809 "\x00" === $this->html[ $current_token->start ] && 1810 strspn( $this->html, "\x00", $current_token->start, $current_token->length ) === $current_token->length 1811 ) { 1797 if ( parent::TEXT_IS_NULL_SEQUENCE === $this->text_node_classification ) { 1812 1798 // Parse error: ignore the token. 1813 1799 return $this->step(); … … 1821 1807 * contain character references which decode only to whitespace. 1822 1808 */ 1823 $text = $this->get_modifiable_text(); 1824 if ( strlen( $text ) !== strspn( $text, " \t\n\f\r" ) ) { 1809 if ( parent::TEXT_IS_GENERIC === $this->text_node_classification ) { 1825 1810 $this->state->frameset_ok = false; 1826 1811 } … … 2830 2815 ) 2831 2816 ) { 2832 $text = $this->get_modifiable_text();2833 2817 /* 2834 2818 * If the text is empty after processing HTML entities and stripping 2835 2819 * U+0000 NULL bytes then ignore the token. 2836 2820 */ 2837 if ( '' === $text) {2821 if ( parent::TEXT_IS_NULL_SEQUENCE === $this->text_node_classification ) { 2838 2822 return $this->step(); 2839 2823 } … … 2858 2842 * @see https://html.spec.whatwg.org/#parsing-main-intabletext 2859 2843 */ 2860 if ( strlen( $text ) === strspn( $text, " \t\f\r\n" )) {2844 if ( parent::TEXT_IS_WHITESPACE === $this->text_node_classification ) { 2861 2845 $this->insert_html_element( $this->state->current_token ); 2862 2846 return true; … … 3178 3162 */ 3179 3163 case '#text': 3180 $text = $this->get_modifiable_text(); 3181 if ( '' === $text ) { 3182 /* 3183 * If the text is empty after processing HTML entities and stripping 3184 * U+0000 NULL bytes then ignore the token. 3185 */ 3186 return $this->step(); 3187 } 3188 3189 if ( strlen( $text ) === strspn( $text, " \t\n\f\r" ) ) { 3164 if ( parent::TEXT_IS_WHITESPACE === $this->text_node_classification ) { 3190 3165 // Insert the character. 3191 3166 $this->insert_html_element( $this->state->current_token ); … … 3610 3585 */ 3611 3586 case '#text': 3612 $current_token = $this->bookmarks[ $this->state->current_token->bookmark_name ];3613 3614 3587 /* 3615 3588 * > A character token that is U+0000 NULL … … 3618 3591 * entirely ignored and should not return to calling code. 3619 3592 */ 3620 if ( 3621 1 <= $current_token->length && 3622 "\x00" === $this->html[ $current_token->start ] && 3623 strspn( $this->html, "\x00", $current_token->start, $current_token->length ) === $current_token->length 3624 ) { 3593 if ( parent::TEXT_IS_NULL_SEQUENCE === $this->text_node_classification ) { 3625 3594 // Parse error: ignore the token. 3626 3595 return $this->step(); … … 3987 3956 */ 3988 3957 case '#text': 3989 $text = $this->get_modifiable_text(); 3990 if ( strlen( $text ) === strspn( $text, " \t\n\f\r" ) ) { 3958 if ( parent::TEXT_IS_WHITESPACE === $this->text_node_classification ) { 3991 3959 return $this->step_in_body(); 3992 3960 } … … 4073 4041 */ 4074 4042 case '#text': 4075 $text = $this->get_modifiable_text(); 4076 $text = $this->get_modifiable_text(); 4077 if ( strlen( $text ) === strspn( $text, " \t\n\f\r" ) ) { 4043 if ( parent::TEXT_IS_WHITESPACE === $this->text_node_classification ) { 4078 4044 return $this->step_in_body(); 4079 4045 } … … 4194 4160 */ 4195 4161 case '#text': 4196 $text = $this->get_modifiable_text(); 4197 if ( strlen( $text ) === strspn( $text, " \t\n\f\r" ) ) { 4162 if ( parent::TEXT_IS_WHITESPACE === $this->text_node_classification ) { 4198 4163 return $this->step_in_body(); 4199 4164 } … … 4289 4254 */ 4290 4255 case '#text': 4291 $text = $this->get_modifiable_text(); 4292 if ( strlen( $text ) === strspn( $text, " \t\n\f\r" ) ) { 4256 if ( parent::TEXT_IS_WHITESPACE === $this->text_node_classification ) { 4293 4257 return $this->step_in_body(); 4294 4258 } … … 4356 4320 */ 4357 4321 case '#text': 4358 $text = $this->get_modifiable_text(); 4359 if ( strlen( $text ) === strspn( $text, " \t\n\f\r" ) ) { 4322 if ( parent::TEXT_IS_WHITESPACE === $this->text_node_classification ) { 4360 4323 return $this->step_in_body(); 4361 4324 } … … 4413 4376 4414 4377 switch ( $op ) { 4378 case '#cdata-section': 4415 4379 case '#text': 4416 4380 /* … … 4425 4389 * contain character references which decode only to whitespace. 4426 4390 */ 4427 $text = $this->get_modifiable_text(); 4428 if ( strlen( $text ) !== strspn( $text, " \t\n\f\r" ) ) { 4391 if ( parent::TEXT_IS_GENERIC === $this->text_node_classification ) { 4429 4392 $this->state->frameset_ok = false; 4430 4393 } … … 4436 4399 * > A comment token 4437 4400 */ 4438 case '#cdata-section':4439 4401 case '#comment': 4440 4402 case '#funky-comment':
Note: See TracChangeset
for help on using the changeset viewer.