8000 Implement space after comment end state, as per r3195. · html5lib/html5lib-php@f363369 · GitHub
[go: up one dir, main page]

Skip to content

Commit f363369

Browse files
author
Edward Z. Yang ext:(%22)
committed
Implement space after comment end state, as per r3195.
1 parent 35056b3 commit f363369

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

library/HTML5/Tokenizer.php

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1362,6 +1362,14 @@ public function parse() {
13621362
));
13631363
$this->token['data'] .= '-';
13641364

1365+
} elseif($char === "\t" || $char === "\n" || $char === "\x0a" || $char === ' ') {
1366+
$this->emitToken(array(
1367+
'type' => self::PARSEERROR,
1368+
'data' => 'unexpected-space-after-double-dash-in-comment'
1369+
));
1370+
$this->token['data'] .= '--' . $char;
1371+
$state = 'comment end space';
1372+
13651373
} elseif($char === '!') {
13661374
$this->emitToken(array(
13671375
'type' => self::PARSEERROR,
@@ -1421,6 +1429,33 @@ public function parse() {
14211429
}
14221430
break;
14231431

1432+
case 'comment end space':
1433+
$char = $this->stream->char();
1434+
if ($char === '>') {
1435+
$this->emitToken($this->token);
1436+
$state = 'data';
1437+
} elseif ($char === '-') {
1438+
$state = 'comment end dash';
1439+
} elseif ($char === "\t" || $char === "\n" || $char === "\x0c" || $char === ' ') {
1440+
$this->emitToken(array(
1441+
'type' => self::PARSEERROR,
1442+
'data' => 'unexpected-space-in-comment-end-space',
1443+
));
1444+
$this->token['data'] .= $char;
1445+
} elseif ($char === false) {
1446+
$this->emitToken(array(
1447+
'type' => self::PARSEERROR,
1448+
8000 'data' => 'unexpected-eof-in-comment-end-space',
1449+
));
1450+
$this->emitToken($this->token);
1451+
$this->stream->unget();
1452+
$state = 'data';
1453+
} else {
1454+
$this->token['data'] .= $char;
1455+
$state = 'comment';
1456+
}
1457+
break;
1458+
14241459
case 'DOCTYPE':
14251460
/* Consume the next input character: */
14261461
$char = $this->stream->char();

0 commit comments

Comments
 (0)
0