Skip to content

Commit

Permalink
Allow tabs after setext header line.
Browse files Browse the repository at this point in the history
  • Loading branch information
jgm committed Sep 14, 2016
1 parent f1f2ded commit bbca5bb
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 29 deletions.
72 changes: 45 additions & 27 deletions src/scanners.c
Expand Up @@ -18338,18 +18338,18 @@ bufsize_t _scan_setext_heading_line(const unsigned char *p) {
{
unsigned char yych;
static const unsigned char yybm[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
yych = *(marker = p);
if (yych <= 0xC1) {
Expand Down Expand Up @@ -18394,30 +18394,34 @@ bufsize_t _scan_setext_heading_line(const unsigned char *p) {
goto yy1201;
}
if (yych <= '\f') {
if (yych == '\n')
goto yy1199;
if (yych <= 0x08)
goto yy1179;
if (yych <= '\n')
goto yy1198;
goto yy1179;
} else {
if (yych <= '\r')
goto yy1199;
goto yy1198;
if (yych == ' ')
goto yy1197;
goto yy1198;
goto yy1179;
}
yy1181:
yych = *(marker = ++p);
if (yybm[0 + yych] & 32) {
goto yy1191;
if (yybm[0 + yych] & 64) {
goto yy1195;
}
if (yych <= '\f') {
if (yych == '\n')
goto yy1193;
if (yych <= 0x08)
goto yy1179;
if (yych <= '\n')
goto yy1192;
goto yy1179;
} else {
if (yych <= '\r')
goto yy1193;
if (yych == '-')
goto yy1195;
goto yy1192;
if (yych == ' ')
goto yy1192;
goto yy1179;
}
yy1182:
Expand Down Expand Up @@ -18477,10 +18481,13 @@ bufsize_t _scan_setext_heading_line(const unsigned char *p) {
yy1191:
++p;
yych = *p;
yy1192:
if (yybm[0 + yych] & 32) {
goto yy1191;
}
if (yych == '\n')
if (yych <= 0x08)
goto yy1184;
if (yych <= '\n')
goto yy1193;
if (yych != '\r')
goto yy1184;
Expand All @@ -18494,7 +18501,9 @@ bufsize_t _scan_setext_heading_line(const unsigned char *p) {
goto yy1191;
}
if (yych <= '\f') {
if (yych == '\n')
if (yych <= 0x08)
goto yy1184;
if (yych <= '\n')
goto yy1193;
goto yy1184;
} else {
Expand All @@ -18507,8 +18516,13 @@ bufsize_t _scan_setext_heading_line(const unsigned char *p) {
yy1197:
++p;
yych = *p;
yy1198:
if (yych <= '\f') {
if (yych != '\n')
if (yych <= 0x08)
goto yy1184;
if (yych <= '\t')
goto yy1197;
if (yych >= '\v')
goto yy1184;
} else {
if (yych <= '\r')
Expand All @@ -18527,7 +18541,11 @@ bufsize_t _scan_setext_heading_line(const unsigned char *p) {
goto yy1201;
}
if (yych <= '\f') {
if (yych == '\n')
if (yych <= 0x08)
goto yy1184;
if (yych <= '\t')
goto yy1197;
if (yych <= '\n')
goto yy1199;
goto yy1184;
} else {
Expand Down
4 changes: 2 additions & 2 deletions src/scanners.re
Expand Up @@ -263,8 +263,8 @@ bufsize_t _scan_setext_heading_line(const unsigned char *p)
{
const unsigned char *marker = NULL;
/*!re2c
[=]+ [ ]* [\r\n] { return 1; }
[-]+ [ ]* [\r\n] { return 2; }
[=]+ [ \t]* [\r\n] { return 1; }
[-]+ [ \t]* [\r\n] { return 2; }
.? { return 0; }
*/
}
Expand Down
10 changes: 10 additions & 0 deletions test/regression.txt
Expand Up @@ -56,3 +56,13 @@ Issue jgm/CommonMark#430: h2..h6 not recognized as block tags.
<h6>lorem</h6>
````````````````````````````````

Issue jgm/commonmark.js#109 - tabs after setext header line


```````````````````````````````` example
hi
--→
.
<h2>hi</h2>
````````````````````````````````

Expand Down

0 comments on commit bbca5bb

Please sign in to comment.