]> granicus.if.org Git - multimarkdown/commitdiff
FIXED: Fix bug in URL parsing
authorFletcher T. Penney <fletcher@fletcherpenney.net>
Sun, 12 Feb 2017 22:49:33 +0000 (17:49 -0500)
committerFletcher T. Penney <fletcher@fletcherpenney.net>
Sun, 12 Feb 2017 22:49:33 +0000 (17:49 -0500)
17 files changed:
src/html.c
src/latex.c
src/lexer.c
src/lexer.re
src/libMultiMarkdown.h
src/writer.c
tests/MMD6Tests/Dutch.tex [deleted file]
tests/MMD6Tests/English.tex [deleted file]
tests/MMD6Tests/French.tex [deleted file]
tests/MMD6Tests/German Guillemets.tex [deleted file]
tests/MMD6Tests/German.tex [deleted file]
tests/MMD6Tests/Headers.tex
tests/MMD6Tests/Integrated.html
tests/MMD6Tests/Integrated.htmlc
tests/MMD6Tests/Integrated.tex
tests/MMD6Tests/Integrated.text
tests/MMD6Tests/Swedish.tex [deleted file]

index 689ff8df1f2aa006c18bc294a3ff15a08b949f11..ebb0a407217c2a2ddd0cc23f932c37bdfb7a478c 100644 (file)
@@ -1338,6 +1338,7 @@ void mmd_export_token_html(DString * out, const char * source, token * t, size_t
                        if (t->next)
                                print_char('\n');
                        break;
+               case TEXT_HASH:
                case TEXT_NUMBER_POSS_LIST:
                case TEXT_PERIOD:
                case TEXT_PLAIN:
index 392112b17d444b8d5f90f6c4ec6f6b636fa55623..ce46ba0e78a8f3c8e16cf07d7c1b0b3c85e52875 100644 (file)
@@ -109,6 +109,9 @@ void mmd_print_char_latex(DString * out, char c) {
 
 
 void mmd_print_string_latex(DString * out, const char * str) {
+    if (str == NULL)
+        return;
+    
        while (*str != '\0') {
                mmd_print_char_latex(out, *str);
                str++;
@@ -1068,6 +1071,9 @@ void mmd_export_token_latex(DString * out, const char * source, token * t, scrat
                        break;
                case TEXT_EMPTY:
                        break;
+               case TEXT_HASH:
+                       print("\\#");
+                       break;
                case TEXT_NL:
                        if (t->next)
                                print_char('\n');
index 2dba07e425566ebcf6286b612a8c6d9a585e8e76..eee5df8de639070baffb0533de3f455840842e2e 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.14.3 on Sun Feb 12 08:34:29 2017 */
+/* Generated by re2c 0.14.3 on Sun Feb 12 17:20:11 2017 */
 /**
 
        MultiMarkdown 6 -- Lightweight markup processor to produce HTML, LaTeX, and more.
@@ -85,8 +85,8 @@ int scan(Scanner * s, const char * stop) {
        yych = *YYCURSOR;
        switch (yych) {
        case '\t':      goto yy42;
-       case '\n':      goto yy47;
-       case '\r':      goto yy49;
+       case '\n':      goto yy48;
+       case '\r':      goto yy50;
        case ' ':       goto yy44;
        case '!':       goto yy18;
        case '"':       goto yy26;
@@ -96,7 +96,7 @@ int scan(Scanner * s, const char * stop) {
        case '\'':      goto yy28;
        case '(':       goto yy19;
        case ')':       goto yy21;
-       case '*':       goto yy50;
+       case '*':       goto yy51;
        case '+':       goto yy4;
        case '-':       goto yy6;
        case '.':       goto yy30;
@@ -110,7 +110,7 @@ int scan(Scanner * s, const char * stop) {
        case '6':
        case '7':
        case '8':
-       case '9':       goto yy46;
+       case '9':       goto yy47;
        case ':':       goto yy31;
        case '<':       goto yy8;
        case '=':       goto yy12;
@@ -119,24 +119,24 @@ int scan(Scanner * s, const char * stop) {
        case '\\':      goto yy37;
        case ']':       goto yy16;
        case '^':       goto yy40;
-       case '_':       goto yy52;
-       case '`':       goto yy54;
+       case '_':       goto yy53;
+       case '`':       goto yy55;
        case '{':       goto yy2;
-       case '|':       goto yy56;
+       case '|':       goto yy57;
        case '}':       goto yy25;
        case '~':       goto yy10;
-       default:        goto yy58;
+       default:        goto yy59;
        }
 yy2:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '+':       goto yy256;
-       case '-':       goto yy255;
-       case '=':       goto yy252;
-       case '>':       goto yy254;
-       case '{':       goto yy250;
-       case '~':       goto yy253;
+       case '+':       goto yy257;
+       case '-':       goto yy256;
+       case '=':       goto yy253;
+       case '>':       goto yy255;
+       case '{':       goto yy251;
+       case '~':       goto yy254;
        default:        goto yy3;
        }
 yy3:
@@ -145,7 +145,7 @@ yy4:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '+':       goto yy247;
+       case '+':       goto yy248;
        default:        goto yy5;
        }
 yy5:
@@ -153,7 +153,7 @@ yy5:
 yy6:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '-':       goto yy241;
+       case '-':       goto yy242;
        default:        goto yy7;
        }
 yy7:
@@ -162,7 +162,7 @@ yy8:
        yyaccept = 2;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '<':       goto yy238;
+       case '<':       goto yy239;
        default:        goto yy9;
        }
 yy9:
@@ -171,8 +171,8 @@ yy10:
        yyaccept = 3;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '>':       goto yy234;
-       case '~':       goto yy233;
+       case '>':       goto yy235;
+       case '~':       goto yy234;
        default:        goto yy11;
        }
 yy11:
@@ -181,7 +181,7 @@ yy12:
        yyaccept = 4;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '=':       goto yy230;
+       case '=':       goto yy231;
        default:        goto yy13;
        }
 yy13:
@@ -189,9 +189,9 @@ yy13:
 yy14:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '#':       goto yy226;
-       case '%':       goto yy224;
-       case '^':       goto yy228;
+       case '#':       goto yy227;
+       case '%':       goto yy225;
+       case '^':       goto yy229;
        default:        goto yy15;
        }
 yy15:
@@ -202,7 +202,7 @@ yy16:
 yy18:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '[':       goto yy222;
+       case '[':       goto yy223;
        default:        goto yy3;
        }
 yy19:
@@ -217,7 +217,7 @@ yy23:
 yy25:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '}':       goto yy220;
+       case '}':       goto yy221;
        default:        goto yy3;
        }
 yy26:
@@ -226,7 +226,7 @@ yy26:
 yy28:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '\'':      goto yy218;
+       case '\'':      goto yy219;
        default:        goto yy29;
        }
 yy29:
@@ -236,11 +236,11 @@ yy30:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '\t':      goto yy208;
-       case '\n':      goto yy205;
-       case '\r':      goto yy207;
-       case ' ':       goto yy210;
-       case '.':       goto yy211;
+       case '\t':      goto yy209;
+       case '\n':      goto yy206;
+       case '\r':      goto yy208;
+       case ' ':       goto yy211;
+       case '.':       goto yy212;
        default:        goto yy3;
        }
 yy31:
@@ -251,7 +251,7 @@ yy33:
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
        case 'A':
-       case 'a':       goto yy200;
+       case 'a':       goto yy201;
        default:        goto yy34;
        }
 yy34:
@@ -262,45 +262,45 @@ yy35:
 yy37:
        yych = *++YYCURSOR;
        switch (yych) {
-       case ' ':       goto yy128;
-       case '!':       goto yy188;
-       case '"':       goto yy178;
-       case '#':       goto yy158;
-       case '$':       goto yy156;
-       case '%':       goto yy154;
-       case '&':       goto yy142;
-       case '\'':      goto yy176;
-       case '(':       goto yy170;
-       case ')':       goto yy168;
-       case '*':       goto yy134;
-       case '+':       goto yy152;
-       case ',':       goto yy184;
-       case '-':       goto yy150;
-       case '.':       goto yy190;
-       case '/':       goto yy138;
-       case ':':       goto yy180;
-       case ';':       goto yy182;
-       case '<':       goto yy146;
-       case '=':       goto yy148;
-       case '>':       goto yy144;
-       case '?':       goto yy186;
-       case '@':       goto yy140;
-       case '[':       goto yy162;
-       case '\\':      goto yy126;
-       case ']':       goto yy160;
-       case '^':       goto yy136;
-       case '_':       goto yy132;
-       case '`':       goto yy174;
-       case '{':       goto yy166;
-       case '|':       goto yy130;
-       case '}':       goto yy164;
-       case '~':       goto yy172;
+       case ' ':       goto yy129;
+       case '!':       goto yy189;
+       case '"':       goto yy179;
+       case '#':       goto yy159;
+       case '$':       goto yy157;
+       case '%':       goto yy155;
+       case '&':       goto yy143;
+       case '\'':      goto yy177;
+       case '(':       goto yy171;
+       case ')':       goto yy169;
+       case '*':       goto yy135;
+       case '+':       goto yy153;
+       case ',':       goto yy185;
+       case '-':       goto yy151;
+       case '.':       goto yy191;
+       case '/':       goto yy139;
+       case ':':       goto yy181;
+       case ';':       goto yy183;
+       case '<':       goto yy147;
+       case '=':       goto yy149;
+       case '>':       goto yy145;
+       case '?':       goto yy187;
+       case '@':       goto yy141;
+       case '[':       goto yy163;
+       case '\\':      goto yy127;
+       case ']':       goto yy161;
+       case '^':       goto yy137;
+       case '_':       goto yy133;
+       case '`':       goto yy175;
+       case '{':       goto yy167;
+       case '|':       goto yy131;
+       case '}':       goto yy165;
+       case '~':       goto yy173;
        default:        goto yy3;
        }
 yy38:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '$':       goto yy124;
+       case '$':       goto yy125;
        default:        goto yy39;
        }
 yy39:
@@ -314,29 +314,31 @@ yy42:
 yy44:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy47;
-       case '\r':      goto yy115;
-       case ' ':       goto yy113;
+       case '\n':      goto yy48;
+       case '\r':      goto yy116;
+       case ' ':       goto yy114;
        default:        goto yy3;
        }
 yy45:
        YYCTXMARKER = YYCURSOR + 1;
-       yyaccept = 0;
+       yyaccept = 6;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
        case '\t':
        case '\n':
        case '\r':
-       case ' ':       goto yy74;
-       case '#':       goto yy72;
-       default:        goto yy3;
+       case ' ':       goto yy75;
+       case '#':       goto yy73;
+       default:        goto yy46;
        }
 yy46:
+       { return TEXT_HASH; }
+yy47:
        YYCTXMARKER = YYCURSOR + 1;
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '.':       goto yy63;
+       case '.':       goto yy64;
        case '0':
        case '1':
        case '2':
@@ -346,66 +348,66 @@ yy46:
        case '6':
        case '7':
        case '8':
-       case '9':       goto yy65;
+       case '9':       goto yy66;
        default:        goto yy3;
        }
-yy47:
-       ++YYCURSOR;
 yy48:
-       { return TEXT_NL; }
+       ++YYCURSOR;
 yy49:
+       { return TEXT_NL; }
+yy50:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy47;
-       default:        goto yy48;
+       case '\n':      goto yy48;
+       default:        goto yy49;
        }
-yy50:
+yy51:
        ++YYCURSOR;
        { return STAR; }
-yy52:
+yy53:
        ++YYCURSOR;
        { return UL; }
-yy54:
+yy55:
        ++YYCURSOR;
        yych = *YYCURSOR;
-       goto yy62;
-yy55:
-       { return BACKTICK; }
+       goto yy63;
 yy56:
+       { return BACKTICK; }
+yy57:
        ++YYCURSOR;
        yych = *YYCURSOR;
-       goto yy60;
-yy57:
-       { return PIPE; }
+       goto yy61;
 yy58:
+       { return PIPE; }
+yy59:
        yych = *++YYCURSOR;
        goto yy3;
-yy59:
+yy60:
        ++YYCURSOR;
        yych = *YYCURSOR;
-yy60:
+yy61:
        switch (yych) {
-       case '|':       goto yy59;
-       default:        goto yy57;
+       case '|':       goto yy60;
+       default:        goto yy58;
        }
-yy61:
+yy62:
        ++YYCURSOR;
        yych = *YYCURSOR;
-yy62:
+yy63:
        switch (yych) {
-       case '`':       goto yy61;
-       default:        goto yy55;
+       case '`':       goto yy62;
+       default:        goto yy56;
        }
-yy63:
+yy64:
        yych = *++YYCURSOR;
        switch (yych) {
        case '\t':
-       case ' ':       goto yy70;
-       case '\n':      goto yy67;
-       case '\r':      goto yy69;
-       default:        goto yy64;
+       case ' ':       goto yy71;
+       case '\n':      goto yy68;
+       case '\r':      goto yy70;
+       default:        goto yy65;
        }
-yy64:
+yy65:
        YYCURSOR = YYMARKER;
        switch (yyaccept) {
        case 0:         goto yy3;
@@ -414,16 +416,17 @@ yy64:
        case 3:         goto yy11;
        case 4:         goto yy13;
        case 5:         goto yy34;
-       case 6:         goto yy121;
-       case 7:         goto yy206;
-       default:        goto yy251;
+       case 6:         goto yy46;
+       case 7:         goto yy122;
+       case 8:         goto yy207;
+       default:        goto yy252;
        }
-yy65:
+yy66:
        YYCTXMARKER = YYCURSOR + 1;
        ++YYCURSOR;
        yych = *YYCURSOR;
        switch (yych) {
-       case '.':       goto yy63;
+       case '.':       goto yy64;
        case '0':
        case '1':
        case '2':
@@ -433,627 +436,627 @@ yy65:
        case '6':
        case '7':
        case '8':
-       case '9':       goto yy65;
-       default:        goto yy64;
+       case '9':       goto yy66;
+       default:        goto yy65;
        }
-yy67:
-       ++YYCURSOR;
 yy68:
+       ++YYCURSOR;
+yy69:
        YYCURSOR = YYCTXMARKER;
        { return TEXT_NUMBER_POSS_LIST; }
-yy69:
+yy70:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy67;
-       default:        goto yy68;
+       case '\n':      goto yy68;
+       default:        goto yy69;
        }
-yy70:
+yy71:
        ++YYCURSOR;
        yych = *YYCURSOR;
        switch (yych) {
        case '\t':
-       case ' ':       goto yy70;
-       default:        goto yy68;
+       case ' ':       goto yy71;
+       default:        goto yy69;
        }
-yy72:
+yy73:
        YYCTXMARKER = YYCURSOR + 1;
        yych = *++YYCURSOR;
        switch (yych) {
        case '\t':
        case '\n':
        case '\r':
-       case ' ':       goto yy80;
-       case '#':       goto yy85;
-       default:        goto yy64;
+       case ' ':       goto yy81;
+       case '#':       goto yy86;
+       default:        goto yy65;
        }
-yy73:
+yy74:
        ++YYCURSOR;
        yych = *YYCURSOR;
-yy74:
+yy75:
        switch (yych) {
        case '\t':
-       case ' ':       goto yy73;
-       case '\n':      goto yy76;
-       case '\r':      goto yy78;
-       default:        goto yy75;
+       case ' ':       goto yy74;
+       case '\n':      goto yy77;
+       case '\r':      goto yy79;
+       default:        goto yy76;
        }
-yy75:
-       { return HASH1; }
 yy76:
-       ++YYCURSOR;
+       { return HASH1; }
 yy77:
+       ++YYCURSOR;
+yy78:
        YYCURSOR = YYCTXMARKER;
        { return HASH1; }
-yy78:
+yy79:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy76;
-       default:        goto yy77;
+       case '\n':      goto yy77;
+       default:        goto yy78;
        }
-yy79:
+yy80:
        ++YYCURSOR;
        yych = *YYCURSOR;
-yy80:
+yy81:
        switch (yych) {
        case '\t':
-       case ' ':       goto yy79;
-       case '\n':      goto yy82;
-       case '\r':      goto yy84;
-       default:        goto yy81;
+       case ' ':       goto yy80;
+       case '\n':      goto yy83;
+       case '\r':      goto yy85;
+       default:        goto yy82;
        }
-yy81:
-       { return HASH2; }
 yy82:
-       ++YYCURSOR;
+       { return HASH2; }
 yy83:
+       ++YYCURSOR;
+yy84:
        YYCURSOR = YYCTXMARKER;
        { return HASH2; }
-yy84:
+yy85:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy82;
-       default:        goto yy83;
+       case '\n':      goto yy83;
+       default:        goto yy84;
        }
-yy85:
+yy86:
        YYCTXMARKER = YYCURSOR + 1;
        yych = *++YYCURSOR;
        switch (yych) {
        case '\t':
        case '\n':
        case '\r':
-       case ' ':       goto yy88;
-       case '#':       goto yy86;
-       default:        goto yy64;
+       case ' ':       goto yy89;
+       case '#':       goto yy87;
+       default:        goto yy65;
        }
-yy86:
+yy87:
        YYCTXMARKER = YYCURSOR + 1;
        yych = *++YYCURSOR;
        switch (yych) {
        case '\t':
        case '\n':
        case '\r':
-       case ' ':       goto yy94;
-       case '#':       goto yy99;
-       default:        goto yy64;
+       case ' ':       goto yy95;
+       case '#':       goto yy100;
+       default:        goto yy65;
        }
-yy87:
+yy88:
        ++YYCURSOR;
        yych = *YYCURSOR;
-yy88:
+yy89:
        switch (yych) {
        case '\t':
-       case ' ':       goto yy87;
-       case '\n':      goto yy90;
-       case '\r':      goto yy92;
-       default:        goto yy89;
+       case ' ':       goto yy88;
+       case '\n':      goto yy91;
+       case '\r':      goto yy93;
+       default:        goto yy90;
        }
-yy89:
-       { return HASH3; }
 yy90:
-       ++YYCURSOR;
+       { return HASH3; }
 yy91:
+       ++YYCURSOR;
+yy92:
        YYCURSOR = YYCTXMARKER;
        { return HASH3; }
-yy92:
+yy93:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy90;
-       default:        goto yy91;
+       case '\n':      goto yy91;
+       default:        goto yy92;
        }
-yy93:
+yy94:
        ++YYCURSOR;
        yych = *YYCURSOR;
-yy94:
+yy95:
        switch (yych) {
        case '\t':
-       case ' ':       goto yy93;
-       case '\n':      goto yy96;
-       case '\r':      goto yy98;
-       default:        goto yy95;
+       case ' ':       goto yy94;
+       case '\n':      goto yy97;
+       case '\r':      goto yy99;
+       default:        goto yy96;
        }
-yy95:
-       { return HASH4; }
 yy96:
-       ++YYCURSOR;
+       { return HASH4; }
 yy97:
+       ++YYCURSOR;
+yy98:
        YYCURSOR = YYCTXMARKER;
        { return HASH4; }
-yy98:
+yy99:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy96;
-       default:        goto yy97;
+       case '\n':      goto yy97;
+       default:        goto yy98;
        }
-yy99:
+yy100:
        YYCTXMARKER = YYCURSOR + 1;
        yych = *++YYCURSOR;
        switch (yych) {
        case '\t':
        case '\n':
        case '\r':
-       case ' ':       goto yy102;
-       case '#':       goto yy100;
-       default:        goto yy64;
+       case ' ':       goto yy103;
+       case '#':       goto yy101;
+       default:        goto yy65;
        }
-yy100:
+yy101:
        YYCTXMARKER = YYCURSOR + 1;
        yych = *++YYCURSOR;
        switch (yych) {
        case '\t':
        case '\n':
        case '\r':
-       case ' ':       goto yy108;
-       default:        goto yy64;
+       case ' ':       goto yy109;
+       default:        goto yy65;
        }
-yy101:
+yy102:
        ++YYCURSOR;
        yych = *YYCURSOR;
-yy102:
+yy103:
        switch (yych) {
        case '\t':
-       case ' ':       goto yy101;
-       case '\n':      goto yy104;
-       case '\r':      goto yy106;
-       default:        goto yy103;
+       case ' ':       goto yy102;
+       case '\n':      goto yy105;
+       case '\r':      goto yy107;
+       default:        goto yy104;
        }
-yy103:
-       { return HASH5; }
 yy104:
-       ++YYCURSOR;
+       { return HASH5; }
 yy105:
+       ++YYCURSOR;
+yy106:
        YYCURSOR = YYCTXMARKER;
        { return HASH5; }
-yy106:
+yy107:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy104;
-       default:        goto yy105;
+       case '\n':      goto yy105;
+       default:        goto yy106;
        }
-yy107:
+yy108:
        ++YYCURSOR;
        yych = *YYCURSOR;
-yy108:
+yy109:
        switch (yych) {
        case '\t':
-       case ' ':       goto yy107;
-       case '\n':      goto yy110;
-       case '\r':      goto yy112;
-       default:        goto yy109;
+       case ' ':       goto yy108;
+       case '\n':      goto yy111;
+       case '\r':      goto yy113;
+       default:        goto yy110;
        }
-yy109:
-       { return HASH6; }
 yy110:
-       ++YYCURSOR;
+       { return HASH6; }
 yy111:
+       ++YYCURSOR;
+yy112:
        YYCURSOR = YYCTXMARKER;
        { return HASH6; }
-yy112:
+yy113:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy110;
-       default:        goto yy111;
+       case '\n':      goto yy111;
+       default:        goto yy112;
        }
-yy113:
+yy114:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '\n':      goto yy117;
-       case '\r':      goto yy119;
-       case ' ':       goto yy116;
-       default:        goto yy114;
+       case '\n':      goto yy118;
+       case '\r':      goto yy120;
+       case ' ':       goto yy117;
+       default:        goto yy115;
        }
-yy114:
-       { return NON_INDENT_SPACE; }
 yy115:
+       { return NON_INDENT_SPACE; }
+yy116:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy47;
-       default:        goto yy48;
+       case '\n':      goto yy48;
+       default:        goto yy49;
        }
-yy116:
+yy117:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy117;
-       case '\r':      goto yy119;
-       case ' ':       goto yy120;
-       default:        goto yy114;
+       case '\n':      goto yy118;
+       case '\r':      goto yy120;
+       case ' ':       goto yy121;
+       default:        goto yy115;
        }
-yy117:
-       ++YYCURSOR;
 yy118:
-       { return TEXT_LINEBREAK; }
+       ++YYCURSOR;
 yy119:
+       { return TEXT_LINEBREAK; }
+yy120:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy117;
-       default:        goto yy118;
+       case '\n':      goto yy118;
+       default:        goto yy119;
        }
-yy120:
-       yyaccept = 6;
+yy121:
+       yyaccept = 7;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '\n':      goto yy117;
-       case '\r':      goto yy119;
-       case ' ':       goto yy122;
-       default:        goto yy121;
+       case '\n':      goto yy118;
+       case '\r':      goto yy120;
+       case ' ':       goto yy123;
+       default:        goto yy122;
        }
-yy121:
-       { return INDENT_SPACE; }
 yy122:
+       { return INDENT_SPACE; }
+yy123:
        ++YYCURSOR;
        yych = *YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy117;
-       case '\r':      goto yy119;
-       case ' ':       goto yy122;
-       default:        goto yy64;
+       case '\n':      goto yy118;
+       case '\r':      goto yy120;
+       case ' ':       goto yy123;
+       default:        goto yy65;
        }
-yy124:
+yy125:
        ++YYCURSOR;
        { return MATH_DOLLAR_DOUBLE; }
-yy126:
+yy127:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '(':       goto yy192;
-       case ')':       goto yy194;
-       case '[':       goto yy196;
-       case ']':       goto yy198;
-       default:        goto yy127;
+       case '(':       goto yy193;
+       case ')':       goto yy195;
+       case '[':       goto yy197;
+       case ']':       goto yy199;
+       default:        goto yy128;
        }
-yy127:
-       { return ESCAPED_CHARACTER; }
 yy128:
+       { return ESCAPED_CHARACTER; }
+yy129:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy130:
+yy131:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy132:
+yy133:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy134:
+yy135:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy136:
+yy137:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy138:
+yy139:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy140:
+yy141:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy142:
+yy143:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy144:
+yy145:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy146:
+yy147:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy148:
+yy149:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy150:
+yy151:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy152:
+yy153:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy154:
+yy155:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy156:
+yy157:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy158:
+yy159:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy160:
+yy161:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy162:
+yy163:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy164:
+yy165:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy166:
+yy167:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy168:
+yy169:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy170:
+yy171:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy172:
+yy173:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy174:
+yy175:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy176:
+yy177:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy178:
+yy179:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy180:
+yy181:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy182:
+yy183:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy184:
+yy185:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy186:
+yy187:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy188:
+yy189:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy190:
+yy191:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy192:
+yy193:
        ++YYCURSOR;
        { return MATH_PAREN_OPEN; }
-yy194:
+yy195:
        ++YYCURSOR;
        { return MATH_PAREN_CLOSE; }
-yy196:
+yy197:
        ++YYCURSOR;
        { return MATH_BRACKET_OPEN; }
-yy198:
+yy199:
        ++YYCURSOR;
        { return MATH_BRACKET_CLOSE; }
-yy200:
+yy201:
        yych = *++YYCURSOR;
        switch (yych) {
        case 'M':
-       case 'm':       goto yy201;
-       default:        goto yy64;
+       case 'm':       goto yy202;
+       default:        goto yy65;
        }
-yy201:
+yy202:
        yych = *++YYCURSOR;
        switch (yych) {
        case 'P':
-       case 'p':       goto yy202;
-       default:        goto yy64;
+       case 'p':       goto yy203;
+       default:        goto yy65;
        }
-yy202:
+yy203:
        yych = *++YYCURSOR;
        switch (yych) {
-       case ';':       goto yy203;
-       default:        goto yy64;
+       case ';':       goto yy204;
+       default:        goto yy65;
        }
-yy203:
+yy204:
        ++YYCURSOR;
        { return AMPERSAND_LONG; }
-yy205:
-       ++YYCURSOR;
 yy206:
+       ++YYCURSOR;
+yy207:
        YYCURSOR = YYCTXMARKER;
        { return TEXT_PERIOD; }
-yy207:
+yy208:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy205;
-       default:        goto yy206;
+       case '\n':      goto yy206;
+       default:        goto yy207;
        }
-yy208:
+yy209:
        ++YYCURSOR;
        yych = *YYCURSOR;
-yy209:
+yy210:
        switch (yych) {
        case '\t':
-       case ' ':       goto yy208;
-       default:        goto yy206;
+       case ' ':       goto yy209;
+       default:        goto yy207;
        }
-yy210:
-       yyaccept = 7;
+yy211:
+       yyaccept = 8;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '.':       goto yy214;
-       default:        goto yy209;
+       case '.':       goto yy215;
+       default:        goto yy210;
        }
-yy211:
+yy212:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '.':       goto yy212;
-       default:        goto yy64;
+       case '.':       goto yy213;
+       default:        goto yy65;
        }
-yy212:
+yy213:
        ++YYCURSOR;
        { return ELLIPSIS; }
-yy214:
+yy215:
        yych = *++YYCURSOR;
        switch (yych) {
-       case ' ':       goto yy215;
-       default:        goto yy64;
+       case ' ':       goto yy216;
+       default:        goto yy65;
        }
-yy215:
+yy216:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '.':       goto yy216;
-       default:        goto yy64;
+       case '.':       goto yy217;
+       default:        goto yy65;
        }
-yy216:
+yy217:
        ++YYCURSOR;
        { return ELLIPSIS; }
-yy218:
+yy219:
        ++YYCURSOR;
        { return QUOTE_RIGHT_ALT; }
-yy220:
+yy221:
        ++YYCURSOR;
        { return BRACE_DOUBLE_RIGHT; }
-yy222:
+yy223:
        ++YYCURSOR;
        { return BRACKET_IMAGE_LEFT; }
-yy224:
+yy225:
        ++YYCURSOR;
        { return BRACKET_VARIABLE_LEFT; }
-yy226:
+yy227:
        ++YYCURSOR;
        { return BRACKET_CITATION_LEFT; }
-yy228:
+yy229:
        ++YYCURSOR;
        { return BRACKET_FOOTNOTE_LEFT; }
-yy230:
+yy231:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '}':       goto yy231;
-       default:        goto yy64;
+       case '}':       goto yy232;
+       default:        goto yy65;
        }
-yy231:
+yy232:
        ++YYCURSOR;
        { return CRITIC_HI_CLOSE; }
-yy233:
+yy234:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '}':       goto yy236;
-       default:        goto yy64;
+       case '}':       goto yy237;
+       default:        goto yy65;
        }
-yy234:
+yy235:
        ++YYCURSOR;
        { return CRITIC_SUB_DIV; }
-yy236:
+yy237:
        ++YYCURSOR;
        { return CRITIC_SUB_CLOSE; }
-yy238:
+yy239:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '}':       goto yy239;
-       default:        goto yy64;
+       case '}':       goto yy240;
+       default:        goto yy65;
        }
-yy239:
+yy240:
        ++YYCURSOR;
        { return CRITIC_COM_CLOSE; }
-yy241:
+yy242:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '-':       goto yy245;
-       case '}':       goto yy243;
-       default:        goto yy242;
+       case '-':       goto yy246;
+       case '}':       goto yy244;
+       default:        goto yy243;
        }
-yy242:
-       { return DASH_N; }
 yy243:
+       { return DASH_N; }
+yy244:
        ++YYCURSOR;
        { return CRITIC_DEL_CLOSE; }
-yy245:
+yy246:
        ++YYCURSOR;
        { return DASH_M; }
-yy247:
+yy248:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '}':       goto yy248;
-       default:        goto yy64;
+       case '}':       goto yy249;
+       default:        goto yy65;
        }
-yy248:
+yy249:
        ++YYCURSOR;
        { return CRITIC_ADD_CLOSE; }
-yy250:
-       yyaccept = 8;
+yy251:
+       yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case 'T':       goto yy267;
-       default:        goto yy251;
+       case 'T':       goto yy268;
+       default:        goto yy252;
        }
-yy251:
-       { return BRACE_DOUBLE_LEFT; }
 yy252:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '=':       goto yy265;
-       default:        goto yy64;
-       }
+       { return BRACE_DOUBLE_LEFT; }
 yy253:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '~':       goto yy263;
-       default:        goto yy64;
+       case '=':       goto yy266;
+       default:        goto yy65;
        }
 yy254:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '>':       goto yy261;
-       default:        goto yy64;
+       case '~':       goto yy264;
+       default:        goto yy65;
        }
 yy255:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '-':       goto yy259;
-       default:        goto yy64;
+       case '>':       goto yy262;
+       default:        goto yy65;
        }
 yy256:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '+':       goto yy257;
-       default:        goto yy64;
+       case '-':       goto yy260;
+       default:        goto yy65;
        }
 yy257:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '+':       goto yy258;
+       default:        goto yy65;
+       }
+yy258:
        ++YYCURSOR;
        { return CRITIC_ADD_OPEN; }
-yy259:
+yy260:
        ++YYCURSOR;
        { return CRITIC_DEL_OPEN; }
-yy261:
+yy262:
        ++YYCURSOR;
        { return CRITIC_COM_OPEN; }
-yy263:
+yy264:
        ++YYCURSOR;
        { return CRITIC_SUB_OPEN; }
-yy265:
+yy266:
        ++YYCURSOR;
        { return CRITIC_HI_OPEN; }
-yy267:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'O':       goto yy268;
-       default:        goto yy64;
-       }
 yy268:
        yych = *++YYCURSOR;
        switch (yych) {
-       case 'C':       goto yy269;
-       default:        goto yy64;
+       case 'O':       goto yy269;
+       default:        goto yy65;
        }
 yy269:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '}':       goto yy270;
-       default:        goto yy64;
+       case 'C':       goto yy270;
+       default:        goto yy65;
        }
 yy270:
        yych = *++YYCURSOR;
        switch (yych) {
        case '}':       goto yy271;
-       default:        goto yy64;
+       default:        goto yy65;
        }
 yy271:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '}':       goto yy272;
+       default:        goto yy65;
+       }
+yy272:
        ++YYCURSOR;
        { return TOC; }
 }
index 6755d08c6f0cf7c470cdf0cb39a30bba7f085be6..bc45c10c42cada21bacddb7c5fd437dfb9b3c034 100644 (file)
@@ -210,6 +210,7 @@ int scan(Scanner * s, const char * stop) {
                '#'{6} SP                                               { return HASH6; }
                '#'{6} / SPNL                                   { return HASH6; }
 
+               '#'                                                             { return TEXT_HASH; }
 
                [0-9]+ / ('.' (SP|NL))                  { return TEXT_NUMBER_POSS_LIST; }
                '.' / (SP|NL)                                   { return TEXT_PERIOD; }
index 28fa01876653c76d4afc9418f309574b0b95dd65..77111f1a4d28b8bf94ee06cfa8529c51f48c2ddb 100644 (file)
@@ -274,6 +274,7 @@ enum token_types {
        TOC,
        
        TEXT_EMPTY,
+       TEXT_HASH,
        TEXT_LINEBREAK,
        TEXT_NL,
        TEXT_NUMBER_POSS_LIST,
index f39eaae47dc4cf69c26f9ccb900e9e4b3f1234dd..095d01b05c35d501132411c62acc233d1c41a920 100644 (file)
@@ -675,9 +675,8 @@ char * destination_accept(const char * source, token ** remainder, bool validate
                        t = token_chain_accept_multiple(remainder, 2, PAIR_ANGLE, PAIR_PAREN);
                        url = text_inside_pair(source, t);
                        break;
-               case SLASH:
-               case TEXT_PLAIN:
-                       start = (*remainder)->start;
+        default:
+            start = (*remainder)->start;
                        
                        // Skip any whitespace
                        while (char_is_whitespace(source[start]))
diff --git a/tests/MMD6Tests/Dutch.tex b/tests/MMD6Tests/Dutch.tex
deleted file mode 100644 (file)
index b383bb9..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-`foo'
-
-„foo''
-
-foo's
-
-foo --- bar
-
-foo -- bar
-
-5
-
-foo{\ldots}
-
-\footnote{foo}
diff --git a/tests/MMD6Tests/English.tex b/tests/MMD6Tests/English.tex
deleted file mode 100644 (file)
index 2e5381b..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-`foo'
-
-``foo''
-
-foo's
-
-foo --- bar
-
-foo -- bar
-
-5
-
-foo{\ldots}
-
-\footnote{foo}
diff --git a/tests/MMD6Tests/French.tex b/tests/MMD6Tests/French.tex
deleted file mode 100644 (file)
index 694cc33..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-'foo'
-
-«foo»
-
-foo's
-
-foo --- bar
-
-foo -- bar
-
-5
-
-foo{\ldots}
-
-\footnote{foo}
diff --git a/tests/MMD6Tests/German Guillemets.tex b/tests/MMD6Tests/German Guillemets.tex
deleted file mode 100644 (file)
index 402a768..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-›foo‹
-
-»foo«
-
-foo's
-
-foo --- bar
-
-foo -- bar
-
-5
-
-foo{\ldots}
-
-\footnote{foo}
diff --git a/tests/MMD6Tests/German.tex b/tests/MMD6Tests/German.tex
deleted file mode 100644 (file)
index a2e9fb3..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-‚foo`
-
-„foo``
-
-foo's
-
-foo --- bar
-
-foo -- bar
-
-5
-
-foo{\ldots}
-
-\footnote{foo}
index d665b97b9035df493c500c67f232c588fe75fef9..31847a033c82b3acd78565ebc3c938392f3d9425 100644 (file)
@@ -16,9 +16,9 @@
 
 5
 
-#foo#
+\#foo\#
 
-#foo #
+\#foo \#
 
 \part{foo \# bar}
 \label{foobar}
index 7e9fa598db09b9a9f2d46bba590f6ea411b2202c..30885d494856e9071b50bb7cfed7fc7cfb75c52e 100644 (file)
@@ -59,6 +59,10 @@ code
 
 <p><a href="#math">foo</a></p>
 
+<p><a href="#bar">bar</a></p>
+
+<p><a href="#bar">bar</a></p>
+
 <h1 id="math">Math </h1>
 
 <p>math <span class="math">\({e}^{i\pi }+1=0\)</span></p>
index 2fc962a853d37dd002817ed6861c74087b75237e..b9477cfa2f79876e8ff5c7e4a9d6eaec817a309a 100644 (file)
@@ -59,6 +59,10 @@ code
 
 <p>[foo][math]</p>
 
+<p><a href="#bar">bar</a></p>
+
+<p><a href="#bar">bar</a></p>
+
 <h1>Math </h1>
 
 <p>math ${e}^{i\pi }+1=0$</p>
index d16d32f5c78479ee5dd7f4a063dd4bdf57a72eb4..e088fafa466c856b8d7d411434fa54797086e6f4 100644 (file)
@@ -61,10 +61,20 @@ Cite.\citesyntax TBD
 
 \href{http://foo.net/}{link}\footnote{\href{http://foo.net/}{http:/\slash foo.net\slash }} and \href{http://bar.net}{link}\footnote{\href{http://bar.net}{http:/\slash bar.net}}
 
+\begin{figure}[htbp]
+\centering
+\includegraphics[keepaspectratio]{http://foo.bar/}
+\caption{test}
+\end{figure}
+
 \autoref{math}
 
 foo (\autoref{math})
 
+\autoref{bar}
+
+\autoref{bar}
+
 \part{Math }
 \label{math}
 
index 7adf965b69e5aa0bd0f748fa9c3640ea1bf2e7a8..744aa3f955a4cdc06982626750c2849d47f0ed23 100644 (file)
@@ -60,6 +60,13 @@ Cite.[#Inline Citation]
 
 [foo][math]
 
+[bar][foo1]
+
+[bar][foo2]
+
+[foo1]:  #bar
+[foo2]: #bar
+
 
 # Math #
 
diff --git a/tests/MMD6Tests/Swedish.tex b/tests/MMD6Tests/Swedish.tex
deleted file mode 100644 (file)
index 3a50f0f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-'foo'
-
-''foo''
-
-foo's
-
-foo --- bar
-
-foo -- bar
-
-5
-
-foo{\ldots}
-
-\footnote{foo}