]> granicus.if.org Git - multimarkdown/commitdiff
FIXED: Fix bug between ASCII 160 (non-breaking space) and 'à' character
authorFletcher T. Penney <fletcher@fletcherpenney.net>
Tue, 28 Mar 2017 12:39:20 +0000 (08:39 -0400)
committerFletcher T. Penney <fletcher@fletcherpenney.net>
Tue, 28 Mar 2017 12:39:20 +0000 (08:39 -0400)
Sources/libMultiMarkdown/lexer.c
Sources/libMultiMarkdown/lexer.re
tests/MMD6Tests/International.fodt [new file with mode: 0644]
tests/MMD6Tests/International.html [new file with mode: 0644]
tests/MMD6Tests/International.htmlc [new file with mode: 0644]
tests/MMD6Tests/International.tex [new file with mode: 0644]
tests/MMD6Tests/International.text [new file with mode: 0644]

index 19520d1da4339757bc6a32755ea3c3f89cc0760c..d6ed45da496a94f2c2dd07cea4ecc5126bfcc1fa 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.14.3 on Wed Mar 15 00:32:21 2017 */
+/* Generated by re2c 0.14.3 on Tue Mar 28 08:27:15 2017 */
 /**
 
        MultiMarkdown 6 -- Lightweight markup processor to produce HTML, LaTeX, and more.
@@ -83,24 +83,24 @@ int scan(Scanner * s, const char * stop) {
 
        yych = *YYCURSOR;
        switch (yych) {
-       case '\t':      goto yy45;
-       case '\n':      goto yy54;
-       case '\r':      goto yy56;
-       case ' ':       goto yy47;
-       case '!':       goto yy18;
-       case '"':       goto yy28;
-       case '#':       goto yy49;
-       case '$':       goto yy41;
-       case '%':       goto yy51;
-       case '&':       goto yy35;
-       case '\'':      goto yy30;
-       case '(':       goto yy20;
-       case ')':       goto yy22;
-       case '*':       goto yy57;
-       case '+':       goto yy4;
-       case '-':       goto yy6;
-       case '.':       goto yy32;
-       case '/':       goto yy37;
+       case '\t':      goto yy46;
+       case '\n':      goto yy55;
+       case '\r':      goto yy57;
+       case ' ':       goto yy48;
+       case '!':       goto yy20;
+       case '"':       goto yy29;
+       case '#':       goto yy50;
+       case '$':       goto yy42;
+       case '%':       goto yy52;
+       case '&':       goto yy36;
+       case '\'':      goto yy31;
+       case '(':       goto yy21;
+       case ')':       goto yy23;
+       case '*':       goto yy58;
+       case '+':       goto yy6;
+       case '-':       goto yy8;
+       case '.':       goto yy33;
+       case '/':       goto yy38;
        case '0':
        case '1':
        case '2':
@@ -110,235 +110,242 @@ int scan(Scanner * s, const char * stop) {
        case '6':
        case '7':
        case '8':
-       case '9':       goto yy53;
-       case ':':       goto yy33;
-       case '<':       goto yy8;
-       case '=':       goto yy12;
-       case '>':       goto yy24;
-       case '[':       goto yy14;
-       case '\\':      goto yy39;
-       case ']':       goto yy16;
-       case '^':       goto yy43;
-       case '_':       goto yy59;
-       case '`':       goto yy61;
-       case '{':       goto yy2;
-       case '|':       goto yy63;
-       case '}':       goto yy26;
-       case '~':       goto yy10;
-       case 0xA0:      goto yy48;
-       default:        goto yy65;
+       case '9':       goto yy54;
+       case ':':       goto yy34;
+       case '<':       goto yy10;
+       case '=':       goto yy14;
+       case '>':       goto yy25;
+       case '[':       goto yy16;
+       case '\\':      goto yy40;
+       case ']':       goto yy18;
+       case '^':       goto yy44;
+       case '_':       goto yy60;
+       case '`':       goto yy62;
+       case '{':       goto yy4;
+       case '|':       goto yy64;
+       case '}':       goto yy27;
+       case '~':       goto yy12;
+       case 0xA0:      goto yy49;
+       case 0xC3:      goto yy2;
+       default:        goto yy66;
        }
 yy2:
-       yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
-       switch (yych) {
-       case '+':       goto yy267;
-       case '-':       goto yy266;
-       case '=':       goto yy263;
-       case '>':       goto yy265;
-       case '{':       goto yy261;
-       case '~':       goto yy264;
+       ++YYCURSOR;
+       switch ((yych = *YYCURSOR)) {
+       case 0xA0:      goto yy285;
        default:        goto yy3;
        }
 yy3:
-       { return TEXT_BRACE_LEFT; }
+       { goto scan; }
 yy4:
-       yyaccept = 1;
+       yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '+':       goto yy258;
+       case '+':       goto yy268;
+       case '-':       goto yy267;
+       case '=':       goto yy264;
+       case '>':       goto yy266;
+       case '{':       goto yy262;
+       case '~':       goto yy265;
        default:        goto yy5;
        }
 yy5:
-       { return PLUS; }
+       { return TEXT_BRACE_LEFT; }
 yy6:
-       ++YYCURSOR;
-       switch ((yych = *YYCURSOR)) {
-       case '-':       goto yy252;
+       yyaccept = 1;
+       yych = *(YYMARKER = ++YYCURSOR);
+       switch (yych) {
+       case '+':       goto yy259;
        default:        goto yy7;
        }
 yy7:
-       { return DASH_N; }
+       { return PLUS; }
 yy8:
-       yyaccept = 2;
-       yych = *(YYMARKER = ++YYCURSOR);
-       switch (yych) {
-       case '<':       goto yy249;
+       ++YYCURSOR;
+       switch ((yych = *YYCURSOR)) {
+       case '-':       goto yy253;
        default:        goto yy9;
        }
 yy9:
-       { return ANGLE_LEFT; }
+       { return DASH_N; }
 yy10:
-       yyaccept = 3;
+       yyaccept = 2;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '>':       goto yy245;
-       case '~':       goto yy244;
+       case '<':       goto yy250;
        default:        goto yy11;
        }
 yy11:
-       { return SUBSCRIPT; }
+       { return ANGLE_LEFT; }
 yy12:
-       yyaccept = 4;
+       yyaccept = 3;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '=':       goto yy241;
+       case '>':       goto yy246;
+       case '~':       goto yy245;
        default:        goto yy13;
        }
 yy13:
-       { return EQUAL; }
+       { return SUBSCRIPT; }
 yy14:
-       ++YYCURSOR;
-       switch ((yych = *YYCURSOR)) {
-       case '#':       goto yy237;
-       case '%':       goto yy231;
-       case '>':       goto yy239;
-       case '?':       goto yy233;
-       case '^':       goto yy235;
+       yyaccept = 4;
+       yych = *(YYMARKER = ++YYCURSOR);
+       switch (yych) {
+       case '=':       goto yy242;
        default:        goto yy15;
        }
 yy15:
-       { return BRACKET_LEFT; }
+       { return EQUAL; }
 yy16:
        ++YYCURSOR;
-       { return BRACKET_RIGHT; }
+       switch ((yych = *YYCURSOR)) {
+       case '#':       goto yy238;
+       case '%':       goto yy232;
+       case '>':       goto yy240;
+       case '?':       goto yy234;
+       case '^':       goto yy236;
+       default:        goto yy17;
+       }
+yy17:
+       { return BRACKET_LEFT; }
 yy18:
        ++YYCURSOR;
-       switch ((yych = *YYCURSOR)) {
-       case '[':       goto yy229;
-       default:        goto yy19;
-       }
-yy19:
-       { goto scan; }
+       { return BRACKET_RIGHT; }
 yy20:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '[':       goto yy230;
+       default:        goto yy3;
+       }
+yy21:
        ++YYCURSOR;
        { return PAREN_LEFT; }
-yy22:
+yy23:
        ++YYCURSOR;
        { return PAREN_RIGHT; }
-yy24:
+yy25:
        ++YYCURSOR;
        { return ANGLE_RIGHT; }
-yy26:
+yy27:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '}':       goto yy227;
-       default:        goto yy27;
+       case '}':       goto yy228;
+       default:        goto yy28;
        }
-yy27:
-       { return TEXT_BRACE_RIGHT; }
 yy28:
+       { return TEXT_BRACE_RIGHT; }
+yy29:
        ++YYCURSOR;
        { return QUOTE_DOUBLE; }
-yy30:
+yy31:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '\'':      goto yy225;
-       default:        goto yy31;
+       case '\'':      goto yy226;
+       default:        goto yy32;
        }
-yy31:
-       { return QUOTE_SINGLE; }
 yy32:
+       { return QUOTE_SINGLE; }
+yy33:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case ' ':       goto yy217;
-       case '.':       goto yy218;
-       default:        goto yy19;
+       case ' ':       goto yy218;
+       case '.':       goto yy219;
+       default:        goto yy3;
        }
-yy33:
+yy34:
        ++YYCURSOR;
        { return COLON; }
-yy35:
+yy36:
        yyaccept = 6;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
        case 'A':
-       case 'a':       goto yy212;
-       default:        goto yy36;
+       case 'a':       goto yy213;
+       default:        goto yy37;
        }
-yy36:
-       { return AMPERSAND; }
 yy37:
+       { return AMPERSAND; }
+yy38:
        ++YYCURSOR;
        { return SLASH; }
-yy39:
+yy40:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '\n':      goto yy135;
-       case '\r':      goto yy137;
-       case ' ':       goto yy140;
-       case '!':       goto yy200;
-       case '"':       goto yy190;
-       case '#':       goto yy170;
-       case '$':       goto yy168;
-       case '%':       goto yy166;
-       case '&':       goto yy154;
-       case '\'':      goto yy188;
-       case '(':       goto yy182;
-       case ')':       goto yy180;
-       case '*':       goto yy146;
-       case '+':       goto yy164;
-       case ',':       goto yy196;
-       case '-':       goto yy162;
-       case '.':       goto yy202;
-       case '/':       goto yy150;
-       case ':':       goto yy192;
-       case ';':       goto yy194;
-       case '<':       goto yy158;
-       case '=':       goto yy160;
-       case '>':       goto yy156;
-       case '?':       goto yy198;
-       case '@':       goto yy152;
-       case '[':       goto yy174;
-       case '\\':      goto yy138;
-       case ']':       goto yy172;
-       case '^':       goto yy148;
-       case '_':       goto yy144;
-       case '`':       goto yy186;
-       case '{':       goto yy178;
-       case '|':       goto yy142;
-       case '}':       goto yy176;
-       case '~':       goto yy184;
-       default:        goto yy40;
+       case '\n':      goto yy136;
+       case '\r':      goto yy138;
+       case ' ':       goto yy141;
+       case '!':       goto yy201;
+       case '"':       goto yy191;
+       case '#':       goto yy171;
+       case '$':       goto yy169;
+       case '%':       goto yy167;
+       case '&':       goto yy155;
+       case '\'':      goto yy189;
+       case '(':       goto yy183;
+       case ')':       goto yy181;
+       case '*':       goto yy147;
+       case '+':       goto yy165;
+       case ',':       goto yy197;
+       case '-':       goto yy163;
+       case '.':       goto yy203;
+       case '/':       goto yy151;
+       case ':':       goto yy193;
+       case ';':       goto yy195;
+       case '<':       goto yy159;
+       case '=':       goto yy161;
+       case '>':       goto yy157;
+       case '?':       goto yy199;
+       case '@':       goto yy153;
+       case '[':       goto yy175;
+       case '\\':      goto yy139;
+       case ']':       goto yy173;
+       case '^':       goto yy149;
+       case '_':       goto yy145;
+       case '`':       goto yy187;
+       case '{':       goto yy179;
+       case '|':       goto yy143;
+       case '}':       goto yy177;
+       case '~':       goto yy185;
+       default:        goto yy41;
        }
-yy40:
-       { return TEXT_BACKSLASH; }
 yy41:
+       { return TEXT_BACKSLASH; }
+yy42:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '$':       goto yy133;
-       default:        goto yy42;
+       case '$':       goto yy134;
+       default:        goto yy43;
        }
-yy42:
-       { return MATH_DOLLAR_SINGLE; }
 yy43:
+       { return MATH_DOLLAR_SINGLE; }
+yy44:
        ++YYCURSOR;
        { return SUPERSCRIPT; }
-yy45:
+yy46:
        ++YYCURSOR;
        { return INDENT_TAB; }
-yy47:
+yy48:
        YYCTXMARKER = YYCURSOR + 1;
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\t':      goto yy120;
-       case '\n':      goto yy54;
-       case '\r':      goto yy132;
+       case '\t':      goto yy121;
+       case '\n':      goto yy55;
+       case '\r':      goto yy133;
        case ' ':
-       case 0xA0:      goto yy122;
-       default:        goto yy19;
+       case 0xA0:      goto yy123;
+       default:        goto yy3;
        }
-yy48:
+yy49:
        YYCTXMARKER = YYCURSOR + 1;
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\t':      goto yy120;
+       case '\t':      goto yy121;
        case ' ':
-       case 0xA0:      goto yy122;
-       default:        goto yy19;
+       case 0xA0:      goto yy123;
+       default:        goto yy3;
        }
-yy49:
+yy50:
        YYCTXMARKER = YYCURSOR + 1;
        yyaccept = 7;
        yych = *(YYMARKER = ++YYCURSOR);
@@ -347,20 +354,20 @@ yy49:
        case '\n':
        case '\r':
        case ' ':
-       case 0xA0:      goto yy81;
-       case '#':       goto yy79;
-       default:        goto yy50;
+       case 0xA0:      goto yy82;
+       case '#':       goto yy80;
+       default:        goto yy51;
        }
-yy50:
-       { return TEXT_HASH; }
 yy51:
+       { return TEXT_HASH; }
+yy52:
        ++YYCURSOR;
        { return TEXT_PERCENT; }
-yy53:
+yy54:
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '.':       goto yy70;
+       case '.':       goto yy71;
        case '0':
        case '1':
        case '2':
@@ -370,86 +377,86 @@ yy53:
        case '6':
        case '7':
        case '8':
-       case '9':       goto yy72;
-       default:        goto yy19;
+       case '9':       goto yy73;
+       default:        goto yy3;
        }
-yy54:
-       ++YYCURSOR;
 yy55:
-       { return TEXT_NL; }
+       ++YYCURSOR;
 yy56:
+       { return TEXT_NL; }
+yy57:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy54;
-       default:        goto yy55;
+       case '\n':      goto yy55;
+       default:        goto yy56;
        }
-yy57:
+yy58:
        ++YYCURSOR;
        { return STAR; }
-yy59:
+yy60:
        ++YYCURSOR;
        { return UL; }
-yy61:
+yy62:
        ++YYCURSOR;
        yych = *YYCURSOR;
-       goto yy69;
-yy62:
-       { return BACKTICK; }
+       goto yy70;
 yy63:
+       { return BACKTICK; }
+yy64:
        ++YYCURSOR;
        yych = *YYCURSOR;
-       goto yy67;
-yy64:
-       { return PIPE; }
+       goto yy68;
 yy65:
-       yych = *++YYCURSOR;
-       goto yy19;
+       { return PIPE; }
 yy66:
+       yych = *++YYCURSOR;
+       goto yy3;
+yy67:
        ++YYCURSOR;
        yych = *YYCURSOR;
-yy67:
+yy68:
        switch (yych) {
-       case '|':       goto yy66;
-       default:        goto yy64;
+       case '|':       goto yy67;
+       default:        goto yy65;
        }
-yy68:
+yy69:
        ++YYCURSOR;
        yych = *YYCURSOR;
-yy69:
+yy70:
        switch (yych) {
-       case '`':       goto yy68;
-       default:        goto yy62;
+       case '`':       goto yy69;
+       default:        goto yy63;
        }
-yy70:
+yy71:
        YYCTXMARKER = YYCURSOR + 1;
        yych = *++YYCURSOR;
        switch (yych) {
        case '\t':
        case ' ':
-       case 0xA0:      goto yy77;
-       case '\n':      goto yy74;
-       case '\r':      goto yy76;
-       default:        goto yy71;
+       case 0xA0:      goto yy78;
+       case '\n':      goto yy75;
+       case '\r':      goto yy77;
+       default:        goto yy72;
        }
-yy71:
+yy72:
        YYCURSOR = YYMARKER;
        switch (yyaccept) {
-       case 0:         goto yy3;
-       case 1:         goto yy5;
-       case 2:         goto yy9;
-       case 3:         goto yy11;
-       case 4:         goto yy13;
-       case 5:         goto yy19;
-       case 6:         goto yy36;
-       case 7:         goto yy50;
-       case 8:         goto yy129;
-       default:        goto yy262;
-       }
-yy72:
+       case 0:         goto yy5;
+       case 1:         goto yy7;
+       case 2:         goto yy11;
+       case 3:         goto yy13;
+       case 4:         goto yy15;
+       case 5:         goto yy3;
+       case 6:         goto yy37;
+       case 7:         goto yy51;
+       case 8:         goto yy130;
+       default:        goto yy263;
+       }
+yy73:
        ++YYCURSOR;
        yych = *YYCURSOR;
        switch (yych) {
-       case '.':       goto yy70;
+       case '.':       goto yy71;
        case '0':
        case '1':
        case '2':
@@ -459,30 +466,30 @@ yy72:
        case '6':
        case '7':
        case '8':
-       case '9':       goto yy72;
-       default:        goto yy71;
+       case '9':       goto yy73;
+       default:        goto yy72;
        }
-yy74:
-       ++YYCURSOR;
 yy75:
+       ++YYCURSOR;
+yy76:
        YYCURSOR = YYCTXMARKER;
        { return TEXT_NUMBER_POSS_LIST; }
-yy76:
+yy77:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy74;
-       default:        goto yy75;
+       case '\n':      goto yy75;
+       default:        goto yy76;
        }
-yy77:
+yy78:
        ++YYCURSOR;
        yych = *YYCURSOR;
        switch (yych) {
        case '\t':
        case ' ':
-       case 0xA0:      goto yy77;
-       default:        goto yy75;
+       case 0xA0:      goto yy78;
+       default:        goto yy76;
        }
-yy79:
+yy80:
        YYCTXMARKER = YYCURSOR + 1;
        yych = *++YYCURSOR;
        switch (yych) {
@@ -490,61 +497,61 @@ yy79:
        case '\n':
        case '\r':
        case ' ':
-       case 0xA0:      goto yy87;
-       case '#':       goto yy92;
-       default:        goto yy71;
+       case 0xA0:      goto yy88;
+       case '#':       goto yy93;
+       default:        goto yy72;
        }
-yy80:
+yy81:
        ++YYCURSOR;
        yych = *YYCURSOR;
-yy81:
+yy82:
        switch (yych) {
        case '\t':
        case ' ':
-       case 0xA0:      goto yy80;
-       case '\n':      goto yy83;
-       case '\r':      goto yy85;
-       default:        goto yy82;
+       case 0xA0:      goto yy81;
+       case '\n':      goto yy84;
+       case '\r':      goto yy86;
+       default:        goto yy83;
        }
-yy82:
-       { return HASH1; }
 yy83:
-       ++YYCURSOR;
+       { return HASH1; }
 yy84:
+       ++YYCURSOR;
+yy85:
        YYCURSOR = YYCTXMARKER;
        { return HASH1; }
-yy85:
+yy86:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy83;
-       default:        goto yy84;
+       case '\n':      goto yy84;
+       default:        goto yy85;
        }
-yy86:
+yy87:
        ++YYCURSOR;
        yych = *YYCURSOR;
-yy87:
+yy88:
        switch (yych) {
        case '\t':
        case ' ':
-       case 0xA0:      goto yy86;
-       case '\n':      goto yy89;
-       case '\r':      goto yy91;
-       default:        goto yy88;
+       case 0xA0:      goto yy87;
+       case '\n':      goto yy90;
+       case '\r':      goto yy92;
+       default:        goto yy89;
        }
-yy88:
-       { return HASH2; }
 yy89:
-       ++YYCURSOR;
+       { return HASH2; }
 yy90:
+       ++YYCURSOR;
+yy91:
        YYCURSOR = YYCTXMARKER;
        { return HASH2; }
-yy91:
+yy92:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy89;
-       default:        goto yy90;
+       case '\n':      goto yy90;
+       default:        goto yy91;
        }
-yy92:
+yy93:
        YYCTXMARKER = YYCURSOR + 1;
        yych = *++YYCURSOR;
        switch (yych) {
@@ -552,11 +559,11 @@ yy92:
        case '\n':
        case '\r':
        case ' ':
-       case 0xA0:      goto yy95;
-       case '#':       goto yy93;
-       default:        goto yy71;
+       case 0xA0:      goto yy96;
+       case '#':       goto yy94;
+       default:        goto yy72;
        }
-yy93:
+yy94:
        YYCTXMARKER = YYCURSOR + 1;
        yych = *++YYCURSOR;
        switch (yych) {
@@ -564,61 +571,61 @@ yy93:
        case '\n':
        case '\r':
        case ' ':
-       case 0xA0:      goto yy101;
-       case '#':       goto yy106;
-       default:        goto yy71;
+       case 0xA0:      goto yy102;
+       case '#':       goto yy107;
+       default:        goto yy72;
        }
-yy94:
+yy95:
        ++YYCURSOR;
        yych = *YYCURSOR;
-yy95:
+yy96:
        switch (yych) {
        case '\t':
        case ' ':
-       case 0xA0:      goto yy94;
-       case '\n':      goto yy97;
-       case '\r':      goto yy99;
-       default:        goto yy96;
+       case 0xA0:      goto yy95;
+       case '\n':      goto yy98;
+       case '\r':      goto yy100;
+       default:        goto yy97;
        }
-yy96:
-       { return HASH3; }
 yy97:
-       ++YYCURSOR;
+       { return HASH3; }
 yy98:
+       ++YYCURSOR;
+yy99:
        YYCURSOR = YYCTXMARKER;
        { return HASH3; }
-yy99:
+yy100:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy97;
-       default:        goto yy98;
+       case '\n':      goto yy98;
+       default:        goto yy99;
        }
-yy100:
+yy101:
        ++YYCURSOR;
        yych = *YYCURSOR;
-yy101:
+yy102:
        switch (yych) {
        case '\t':
        case ' ':
-       case 0xA0:      goto yy100;
-       case '\n':      goto yy103;
-       case '\r':      goto yy105;
-       default:        goto yy102;
+       case 0xA0:      goto yy101;
+       case '\n':      goto yy104;
+       case '\r':      goto yy106;
+       default:        goto yy103;
        }
-yy102:
-       { return HASH4; }
 yy103:
-       ++YYCURSOR;
+       { return HASH4; }
 yy104:
+       ++YYCURSOR;
+yy105:
        YYCURSOR = YYCTXMARKER;
        { return HASH4; }
-yy105:
+yy106:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy103;
-       default:        goto yy104;
+       case '\n':      goto yy104;
+       default:        goto yy105;
        }
-yy106:
+yy107:
        YYCTXMARKER = YYCURSOR + 1;
        yych = *++YYCURSOR;
        switch (yych) {
@@ -626,11 +633,11 @@ yy106:
        case '\n':
        case '\r':
        case ' ':
-       case 0xA0:      goto yy109;
-       case '#':       goto yy107;
-       default:        goto yy71;
+       case 0xA0:      goto yy110;
+       case '#':       goto yy108;
+       default:        goto yy72;
        }
-yy107:
+yy108:
        YYCTXMARKER = YYCURSOR + 1;
        yych = *++YYCURSOR;
        switch (yych) {
@@ -638,465 +645,468 @@ yy107:
        case '\n':
        case '\r':
        case ' ':
-       case 0xA0:      goto yy115;
-       default:        goto yy71;
+       case 0xA0:      goto yy116;
+       default:        goto yy72;
        }
-yy108:
+yy109:
        ++YYCURSOR;
        yych = *YYCURSOR;
-yy109:
+yy110:
        switch (yych) {
        case '\t':
        case ' ':
-       case 0xA0:      goto yy108;
-       case '\n':      goto yy111;
-       case '\r':      goto yy113;
-       default:        goto yy110;
+       case 0xA0:      goto yy109;
+       case '\n':      goto yy112;
+       case '\r':      goto yy114;
+       default:        goto yy111;
        }
-yy110:
-       { return HASH5; }
 yy111:
-       ++YYCURSOR;
+       { return HASH5; }
 yy112:
+       ++YYCURSOR;
+yy113:
        YYCURSOR = YYCTXMARKER;
        { return HASH5; }
-yy113:
+yy114:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy111;
-       default:        goto yy112;
+       case '\n':      goto yy112;
+       default:        goto yy113;
        }
-yy114:
+yy115:
        ++YYCURSOR;
        yych = *YYCURSOR;
-yy115:
+yy116:
        switch (yych) {
        case '\t':
        case ' ':
-       case 0xA0:      goto yy114;
-       case '\n':      goto yy117;
-       case '\r':      goto yy119;
-       default:        goto yy116;
+       case 0xA0:      goto yy115;
+       case '\n':      goto yy118;
+       case '\r':      goto yy120;
+       default:        goto yy117;
        }
-yy116:
-       { return HASH6; }
 yy117:
-       ++YYCURSOR;
+       { return HASH6; }
 yy118:
+       ++YYCURSOR;
+yy119:
        YYCURSOR = YYCTXMARKER;
        { return HASH6; }
-yy119:
+yy120:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy117;
-       default:        goto yy118;
+       case '\n':      goto yy118;
+       default:        goto yy119;
        }
-yy120:
+yy121:
        ++YYCURSOR;
        YYCURSOR = YYCTXMARKER;
        { return NON_INDENT_SPACE; }
-yy122:
+yy123:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '\n':      goto yy125;
-       case '\r':      goto yy127;
+       case '\n':      goto yy126;
+       case '\r':      goto yy128;
        case ' ':
-       case 0xA0:      goto yy124;
-       default:        goto yy123;
+       case 0xA0:      goto yy125;
+       default:        goto yy124;
        }
-yy123:
-       { return NON_INDENT_SPACE; }
 yy124:
+       { return NON_INDENT_SPACE; }
+yy125:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy125;
-       case '\r':      goto yy127;
+       case '\n':      goto yy126;
+       case '\r':      goto yy128;
        case ' ':
-       case 0xA0:      goto yy128;
-       default:        goto yy123;
+       case 0xA0:      goto yy129;
+       default:        goto yy124;
        }
-yy125:
-       ++YYCURSOR;
 yy126:
-       { return TEXT_LINEBREAK; }
+       ++YYCURSOR;
 yy127:
+       { return TEXT_LINEBREAK; }
+yy128:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy125;
-       default:        goto yy126;
+       case '\n':      goto yy126;
+       default:        goto yy127;
        }
-yy128:
+yy129:
        yyaccept = 8;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '\n':      goto yy125;
-       case '\r':      goto yy127;
+       case '\n':      goto yy126;
+       case '\r':      goto yy128;
        case ' ':
-       case 0xA0:      goto yy130;
-       default:        goto yy129;
+       case 0xA0:      goto yy131;
+       default:        goto yy130;
        }
-yy129:
-       { return INDENT_SPACE; }
 yy130:
+       { return INDENT_SPACE; }
+yy131:
        ++YYCURSOR;
        yych = *YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy125;
-       case '\r':      goto yy127;
+       case '\n':      goto yy126;
+       case '\r':      goto yy128;
        case ' ':
-       case 0xA0:      goto yy130;
-       default:        goto yy71;
+       case 0xA0:      goto yy131;
+       default:        goto yy72;
        }
-yy132:
+yy133:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy54;
-       default:        goto yy55;
+       case '\n':      goto yy55;
+       default:        goto yy56;
        }
-yy133:
+yy134:
        ++YYCURSOR;
        { return MATH_DOLLAR_DOUBLE; }
-yy135:
-       ++YYCURSOR;
 yy136:
-       { return TEXT_LINEBREAK; }
+       ++YYCURSOR;
 yy137:
+       { return TEXT_LINEBREAK; }
+yy138:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy135;
-       default:        goto yy136;
+       case '\n':      goto yy136;
+       default:        goto yy137;
        }
-yy138:
+yy139:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '(':       goto yy204;
-       case ')':       goto yy206;
-       case '[':       goto yy208;
-       case ']':       goto yy210;
-       default:        goto yy139;
+       case '(':       goto yy205;
+       case ')':       goto yy207;
+       case '[':       goto yy209;
+       case ']':       goto yy211;
+       default:        goto yy140;
        }
-yy139:
-       { return ESCAPED_CHARACTER; }
 yy140:
+       { return ESCAPED_CHARACTER; }
+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 ESCAPED_CHARACTER; }
-yy194:
+yy195:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy196:
+yy197:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy198:
+yy199:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy200:
+yy201:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy202:
+yy203:
        ++YYCURSOR;
        { return ESCAPED_CHARACTER; }
-yy204:
+yy205:
        ++YYCURSOR;
        { return MATH_PAREN_OPEN; }
-yy206:
+yy207:
        ++YYCURSOR;
        { return MATH_PAREN_CLOSE; }
-yy208:
+yy209:
        ++YYCURSOR;
        { return MATH_BRACKET_OPEN; }
-yy210:
+yy211:
        ++YYCURSOR;
        { return MATH_BRACKET_CLOSE; }
-yy212:
+yy213:
        yych = *++YYCURSOR;
        switch (yych) {
        case 'M':
-       case 'm':       goto yy213;
-       default:        goto yy71;
+       case 'm':       goto yy214;
+       default:        goto yy72;
        }
-yy213:
+yy214:
        yych = *++YYCURSOR;
        switch (yych) {
        case 'P':
-       case 'p':       goto yy214;
-       default:        goto yy71;
+       case 'p':       goto yy215;
+       default:        goto yy72;
        }
-yy214:
+yy215:
        yych = *++YYCURSOR;
        switch (yych) {
-       case ';':       goto yy215;
-       default:        goto yy71;
+       case ';':       goto yy216;
+       default:        goto yy72;
        }
-yy215:
+yy216:
        ++YYCURSOR;
        { return AMPERSAND_LONG; }
-yy217:
+yy218:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '.':       goto yy221;
-       default:        goto yy71;
+       case '.':       goto yy222;
+       default:        goto yy72;
        }
-yy218:
+yy219:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '.':       goto yy219;
-       default:        goto yy71;
+       case '.':       goto yy220;
+       default:        goto yy72;
        }
-yy219:
+yy220:
        ++YYCURSOR;
        { return ELLIPSIS; }
-yy221:
+yy222:
        yych = *++YYCURSOR;
        switch (yych) {
-       case ' ':       goto yy222;
-       default:        goto yy71;
+       case ' ':       goto yy223;
+       default:        goto yy72;
        }
-yy222:
+yy223:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '.':       goto yy223;
-       default:        goto yy71;
+       case '.':       goto yy224;
+       default:        goto yy72;
        }
-yy223:
+yy224:
        ++YYCURSOR;
        { return ELLIPSIS; }
-yy225:
+yy226:
        ++YYCURSOR;
        { return QUOTE_RIGHT_ALT; }
-yy227:
+yy228:
        ++YYCURSOR;
        { return BRACE_DOUBLE_RIGHT; }
-yy229:
+yy230:
        ++YYCURSOR;
        { return BRACKET_IMAGE_LEFT; }
-yy231:
+yy232:
        ++YYCURSOR;
        { return BRACKET_VARIABLE_LEFT; }
-yy233:
+yy234:
        ++YYCURSOR;
        { return BRACKET_GLOSSARY_LEFT; }
-yy235:
+yy236:
        ++YYCURSOR;
        { return BRACKET_FOOTNOTE_LEFT; }
-yy237:
+yy238:
        ++YYCURSOR;
        { return BRACKET_CITATION_LEFT; }
-yy239:
+yy240:
        ++YYCURSOR;
        { return BRACKET_ABBREVIATION_LEFT; }
-yy241:
+yy242:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '}':       goto yy242;
-       default:        goto yy71;
+       case '}':       goto yy243;
+       default:        goto yy72;
        }
-yy242:
+yy243:
        ++YYCURSOR;
        { return CRITIC_HI_CLOSE; }
-yy244:
+yy245:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '}':       goto yy247;
-       default:        goto yy71;
+       case '}':       goto yy248;
+       default:        goto yy72;
        }
-yy245:
+yy246:
        ++YYCURSOR;
        { return CRITIC_SUB_DIV; }
-yy247:
+yy248:
        ++YYCURSOR;
        { return CRITIC_SUB_CLOSE; }
-yy249:
+yy250:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '}':       goto yy250;
-       default:        goto yy71;
+       case '}':       goto yy251;
+       default:        goto yy72;
        }
-yy250:
+yy251:
        ++YYCURSOR;
        { return CRITIC_COM_CLOSE; }
-yy252:
+yy253:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '-':       goto yy256;
-       case '}':       goto yy254;
-       default:        goto yy253;
+       case '-':       goto yy257;
+       case '}':       goto yy255;
+       default:        goto yy254;
        }
-yy253:
-       { return DASH_N; }
 yy254:
+       { return DASH_N; }
+yy255:
        ++YYCURSOR;
        { return CRITIC_DEL_CLOSE; }
-yy256:
+yy257:
        ++YYCURSOR;
        { return DASH_M; }
-yy258:
+yy259:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '}':       goto yy259;
-       default:        goto yy71;
+       case '}':       goto yy260;
+       default:        goto yy72;
        }
-yy259:
+yy260:
        ++YYCURSOR;
        { return CRITIC_ADD_CLOSE; }
-yy261:
+yy262:
        yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case 'T':       goto yy278;
-       default:        goto yy262;
+       case 'T':       goto yy279;
+       default:        goto yy263;
        }
-yy262:
-       { return BRACE_DOUBLE_LEFT; }
 yy263:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '=':       goto yy276;
-       default:        goto yy71;
-       }
+       { return BRACE_DOUBLE_LEFT; }
 yy264:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '~':       goto yy274;
-       default:        goto yy71;
+       case '=':       goto yy277;
+       default:        goto yy72;
        }
 yy265:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '>':       goto yy272;
-       default:        goto yy71;
+       case '~':       goto yy275;
+       default:        goto yy72;
        }
 yy266:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '-':       goto yy270;
-       default:        goto yy71;
+       case '>':       goto yy273;
+       default:        goto yy72;
        }
 yy267:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '+':       goto yy268;
-       default:        goto yy71;
+       case '-':       goto yy271;
+       default:        goto yy72;
        }
 yy268:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '+':       goto yy269;
+       default:        goto yy72;
+       }
+yy269:
        ++YYCURSOR;
        { return CRITIC_ADD_OPEN; }
-yy270:
+yy271:
        ++YYCURSOR;
        { return CRITIC_DEL_OPEN; }
-yy272:
+yy273:
        ++YYCURSOR;
        { return CRITIC_COM_OPEN; }
-yy274:
+yy275:
        ++YYCURSOR;
        { return CRITIC_SUB_OPEN; }
-yy276:
+yy277:
        ++YYCURSOR;
        { return CRITIC_HI_OPEN; }
-yy278:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'O':       goto yy279;
-       default:        goto yy71;
-       }
 yy279:
        yych = *++YYCURSOR;
        switch (yych) {
-       case 'C':       goto yy280;
-       default:        goto yy71;
+       case 'O':       goto yy280;
+       default:        goto yy72;
        }
 yy280:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '}':       goto yy281;
-       default:        goto yy71;
+       case 'C':       goto yy281;
+       default:        goto yy72;
        }
 yy281:
        yych = *++YYCURSOR;
        switch (yych) {
        case '}':       goto yy282;
-       default:        goto yy71;
+       default:        goto yy72;
        }
 yy282:
+       yych = *++YYCURSOR;
+       switch (yych) {
+       case '}':       goto yy283;
+       default:        goto yy72;
+       }
+yy283:
        ++YYCURSOR;
        { return TOC; }
+yy285:
+       ++YYCURSOR;
+       { return TEXT_PLAIN; }
 }
 
 }
index 998169f9c9dd824c66f2294068f30f47c95ae8b4..44fd2654459ee455781af1f2228a82860348d49b 100644 (file)
@@ -92,6 +92,9 @@ int scan(Scanner * s, const char * stop) {
 
                // The order of these seems to matter
 
+               // Don't split `à` character
+               '\303' '\240'                                   { return TEXT_PLAIN; }
+
                "{{TOC}}"                                               { return TOC; }
 
                "{++"                                                   { return CRITIC_ADD_OPEN; }
diff --git a/tests/MMD6Tests/International.fodt b/tests/MMD6Tests/International.fodt
new file mode 100644 (file)
index 0000000..e1660b2
--- /dev/null
@@ -0,0 +1,284 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
+     xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
+     xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
+     xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
+     xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
+     xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
+     xmlns:xlink="http://www.w3.org/1999/xlink"
+     xmlns:dc="http://purl.org/dc/elements/1.1/"
+     xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
+     xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
+     xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
+     xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
+     xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
+     xmlns:math="http://www.w3.org/1998/Math/MathML"
+     xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
+     xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
+     xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
+     xmlns:ooo="http://openoffice.org/2004/office"
+     xmlns:ooow="http://openoffice.org/2004/writer"
+     xmlns:oooc="http://openoffice.org/2004/calc"
+     xmlns:dom="http://www.w3.org/2001/xml-events"
+     xmlns:xforms="http://www.w3.org/2002/xforms"
+     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+     xmlns:rpt="http://openoffice.org/2005/report"
+     xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2"
+     xmlns:xhtml="http://www.w3.org/1999/xhtml"
+     xmlns:grddl="http://www.w3.org/2003/g/data-view#"
+     xmlns:tableooo="http://openoffice.org/2009/table"
+     xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0"
+     xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0"
+     xmlns:css3t="http://www.w3.org/TR/css3-text/"
+     office:version="1.2"
+     grddl:transformation="http://docs.oasis-open.org/office/1.2/xslt/odf2rdf.xsl"
+     office:mimetype="application/vnd.oasis.opendocument.text">
+<office:font-face-decls>
+   <style:font-face style:name="Courier New" svg:font-family="'Courier New'"
+                    style:font-adornments="Regular"
+                    style:font-family-generic="modern"
+                    style:font-pitch="fixed"/>
+</office:font-face-decls>
+<office:styles>
+<style:style style:name="Standard" style:family="paragraph" style:class="text">
+      <style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.15in"     fo:text-align="justify" style:justify-single-word="false"/>
+   </style:style>
+<style:style style:name="Preformatted_20_Text" style:display-name="Preformatted Text"
+             style:family="paragraph"
+             style:parent-style-name="Standard"
+             style:class="html">
+   <style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0in" fo:text-align="start"
+                               style:justify-single-word="false"/>
+   <style:text-properties style:font-name="Courier New" fo:font-size="11pt"
+                          style:font-name-asian="Courier New"
+                          style:font-size-asian="11pt"
+                          style:font-name-complex="Courier New"
+                          style:font-size-complex="11pt"/>
+</style:style>
+<style:style style:name="Source_20_Text" style:display-name="Source Text"
+             style:family="text">
+   <style:text-properties style:font-name="Courier New" style:font-name-asian="Courier New"
+                          style:font-name-complex="Courier New"
+                          fo:font-size="11pt"/>
+</style:style>
+<style:style style:name="List" style:family="paragraph"
+             style:parent-style-name="Standard"
+             style:class="list">
+   <style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
+   <style:text-properties style:font-size-asian="12pt"/>
+</style:style>
+<style:style style:name="Quotations" style:family="paragraph"
+             style:parent-style-name="Standard"
+             style:class="html">
+   <style:paragraph-properties fo:margin-left="0.3937in" fo:margin-right="0.3937in" fo:margin-top="0in"
+                               fo:margin-bottom="0.1965in"
+                               fo:text-align="justify"                               style:justify-single-word="false"                               fo:text-indent="0in"
+                               style:auto-text-indent="false"/>
+</style:style>
+<style:style style:name="Table_20_Heading" style:display-name="Table Heading"
+             style:family="paragraph"
+             style:parent-style-name="Table_20_Contents"
+             style:class="extra">
+   <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"
+                               text:number-lines="false"
+                               text:line-number="0"/>
+   <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold"
+                          style:font-weight-complex="bold"/>
+</style:style>
+<style:style style:name="Horizontal_20_Line" style:display-name="Horizontal Line"
+             style:family="paragraph"
+             style:parent-style-name="Standard"
+             style:class="html">
+   <style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.1965in"
+                               style:border-line-width-bottom="0.0008in 0.0138in 0.0008in"
+                               fo:padding="0in"
+                               fo:border-left="none"
+                               fo:border-right="none"
+                               fo:border-top="none"
+                               fo:border-bottom="0.0154in double #808080"
+                               text:number-lines="false"
+                               text:line-number="0"
+                               style:join-border="false"/>
+   <style:text-properties fo:font-size="6pt" style:font-size-asian="6pt" style:font-size-complex="6pt"/>
+</style:style>
+<style:style style:name="Footnote_20_anchor" style:display-name="Footnote anchor"              style:family="text">    <style:text-properties style:text-position="super 58%"/> </style:style>
+<style:style style:name="TOC_Item" style:family="paragraph" style:parent-style-name="Standard">
+ <style:paragraph-properties>
+  <style:tab-stops>
+   <style:tab-stop style:position="6.7283in" style:type="right" style:leader-style="dotted" style:leader-text="."/>
+  </style:tab-stops>
+ </style:paragraph-properties>
+</style:style>
+  <text:notes-configuration text:note-class="footnote" text:default-style-name="Footnote" text:citation-style-name="Footnote_20_Symbol" text:citation-body-style-name="Footnote_20_anchor" text:master-page-name="Footnote" style:num-format="a" text:start-value="0" text:footnotes-position="page" text:start-numbering-at="page"/>
+  <text:notes-configuration text:note-class="endnote" text:default-style-name="Endnote" text:citation-style-name="Endnote_20_Symbol" text:citation-body-style-name="Endnote_20_anchor" text:master-page-name="Endnote" style:num-format="1" text:start-value="0"/>
+</office:styles>
+<office:automatic-styles>   <style:style style:name="MMD-Italic" style:family="text">
+      <style:text-properties fo:font-style="italic" style:font-style-asian="italic"
+                             style:font-style-complex="italic"/>
+   </style:style>
+   <style:style style:name="MMD-Bold" style:family="text">
+      <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold"
+                             style:font-weight-complex="bold"/>
+   </style:style>
+   <style:style style:name="MMD-Superscript" style:family="text">
+      <style:text-properties style:text-position="super 58%"/>
+   </style:style>
+   <style:style style:name="MMD-Subscript" style:family="text">
+      <style:text-properties style:text-position="sub 58%"/>
+   </style:style>
+   <style:style style:name="Strike" style:family="text">
+      <style:text-properties style:text-line-through-style="solid" />
+   </style:style>
+   <style:style style:name="Underline" style:family="text">
+      <style:text-properties style:text-underline-style="solid" style:text-underline-color="font-color"/>
+   </style:style>
+   <style:style style:name="Highlight" style:family="text">
+      <style:text-properties fo:background-color="#FFFF00" />
+   </style:style>
+   <style:style style:name="Comment" style:family="text">
+      <style:text-properties fo:color="#0000BB" />
+   </style:style>
+<style:style style:name="MMD-Table" style:family="paragraph" style:parent-style-name="Standard">
+   <style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.05in"/>
+</style:style>
+<style:style style:name="MMD-Table-Center" style:family="paragraph" style:parent-style-name="MMD-Table">
+   <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
+</style:style>
+<style:style style:name="MMD-Table-Right" style:family="paragraph" style:parent-style-name="MMD-Table">
+   <style:paragraph-properties fo:text-align="right" style:justify-single-word="false"/>
+</style:style>
+<style:style style:name="P2" style:family="paragraph" style:parent-style-name="Standard"
+             style:list-style-name="L2">
+<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
+</style:style>
+<style:style style:name="fr1" style:family="graphic" style:parent-style-name="Frame">
+   <style:graphic-properties style:print-content="true" style:vertical-pos="top"
+                             style:vertical-rel="baseline"
+                             fo:padding="0in"
+                             fo:border="none"
+                             style:shadow="none"/>
+</style:style>
+<style:style style:name="P1" style:family="paragraph" style:parent-style-name="Standard"
+             style:list-style-name="L1"/>
+<text:list-style style:name="L1">
+       <text:list-level-style-bullet text:level="1" text:style-name="Numbering_20_Symbols" style:num-suffix="." text:bullet-char="•">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="0.5in" fo:text-indent="-0.25in" fo:margin-left="0.5in"/>
+               </style:list-level-properties>
+       </text:list-level-style-bullet>
+       <text:list-level-style-bullet text:level="2" text:style-name="Numbering_20_Symbols" style:num-suffix="." text:bullet-char="◦">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="0.75in" fo:text-indent="-0.25in" fo:margin-left="0.75in"/>
+               </style:list-level-properties>
+       </text:list-level-style-bullet>
+       <text:list-level-style-bullet text:level="3" text:style-name="Numbering_20_Symbols" style:num-suffix="." text:bullet-char="▪">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1in" fo:text-indent="-0.25in" fo:margin-left="1in"/>
+               </style:list-level-properties>
+       </text:list-level-style-bullet>
+       <text:list-level-style-number text:level="4" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.25in" fo:text-indent="-0.25in" fo:margin-left="1.25in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="5" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.5in" fo:text-indent="-0.25in" fo:margin-left="1.5in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="6" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.75in" fo:text-indent="-0.25in" fo:margin-left="1.75in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="7" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2in" fo:text-indent="-0.25in" fo:margin-left="2in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="8" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.25in" fo:text-indent="-0.25in" fo:margin-left="2.25in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="9" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.5in" fo:text-indent="-0.25in" fo:margin-left="2.5in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="10" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.75in" fo:text-indent="-0.25in" fo:margin-left="2.75in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+</text:list-style>
+<text:list-style style:name="L2">
+       <text:list-level-style-number text:level="1" text:style-name="Standard" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="0.5in" fo:text-indent="-0.25in" fo:margin-left="0.5in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="2" text:style-name="Standard" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="0.75in" fo:text-indent="-0.25in" fo:margin-left="0.75in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="3" text:style-name="Standard" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1in" fo:text-indent="-0.25in" fo:margin-left="1in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="4" text:style-name="Standard" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.25in" fo:text-indent="-0.25in" fo:margin-left="1.25in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="5" text:style-name="Standard" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.5in" fo:text-indent="-0.25in" fo:margin-left="1.5in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="6" text:style-name="Standard" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.75in" fo:text-indent="-0.25in" fo:margin-left="1.75in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="7" text:style-name="Standard" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2in" fo:text-indent="-0.25in" fo:margin-left="2in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="8" text:style-name="Standard" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.25in" fo:text-indent="-0.25in" fo:margin-left="2.25in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="9" text:style-name="Standard" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.5in" fo:text-indent="-0.25in" fo:margin-left="2.5in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="10" text:style-name="Standard" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.75in" fo:text-indent="-0.25in" fo:margin-left="2.75in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+</text:list-style>
+</office:automatic-styles>
+ <office:master-styles>
+  <style:master-page style:name="Endnote" >
+    <style:header><text:h text:outline-level="2">Bibliography</text:h></style:header></style:master-page>
+  <style:master-page style:name="Footnote" style:page-layout-name="pm2"/>
+ </office:master-styles>
+<office:meta>
+       <dc:title>International</dc:title>
+</office:meta>
+<office:body>
+<office:text>
+<text:p text:style-name="Standard">été</text:p>
+
+<text:p text:style-name="Standard">à la</text:p>
+</office:text>
+</office:body>
+</office:document>
diff --git a/tests/MMD6Tests/International.html b/tests/MMD6Tests/International.html
new file mode 100644 (file)
index 0000000..617edae
--- /dev/null
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+<head>
+       <meta charset="utf-8"/>
+       <title>International</title>
+</head>
+<body>
+
+<p>été</p>
+
+<p>à la</p>
+
+</body>
+</html>
+
diff --git a/tests/MMD6Tests/International.htmlc b/tests/MMD6Tests/International.htmlc
new file mode 100644 (file)
index 0000000..e06a860
--- /dev/null
@@ -0,0 +1,6 @@
+<p>Title:      International<br />
+latex config:  article</p>
+
+<p>été</p>
+
+<p>à la</p>
diff --git a/tests/MMD6Tests/International.tex b/tests/MMD6Tests/International.tex
new file mode 100644 (file)
index 0000000..3c16783
--- /dev/null
@@ -0,0 +1,10 @@
+\input{mmd6-article-leader}
+\def\mytitle{International}
+\input{mmd6-article-begin}
+
+été
+
+à la
+
+\input{mmd6-article-footer}
+\end{document}
diff --git a/tests/MMD6Tests/International.text b/tests/MMD6Tests/International.text
new file mode 100644 (file)
index 0000000..80ee2d4
--- /dev/null
@@ -0,0 +1,6 @@
+Title: International  
+latex config:  article
+
+été
+
+à la