]> granicus.if.org Git - multimarkdown/commitdiff
FIXED: Fix abbreviations in ODF; Improve test suite
authorFletcher T. Penney <fletcher@fletcherpenney.net>
Fri, 10 Mar 2017 18:39:05 +0000 (13:39 -0500)
committerFletcher T. Penney <fletcher@fletcherpenney.net>
Fri, 10 Mar 2017 18:39:05 +0000 (13:39 -0500)
Sources/libMultiMarkdown/lexer.c
Sources/libMultiMarkdown/lexer.re
Sources/libMultiMarkdown/odf.c
tests/MMD6Tests/Abbreviations.fodt
tests/MMD6Tests/Abbreviations.html
tests/MMD6Tests/Abbreviations.htmlc
tests/MMD6Tests/Abbreviations.tex
tests/MMD6Tests/Abbreviations.text

index ed85c4c0c14321f581181d34be791763ce1228f6..9622db530c6cff86f1a299060ed8520be2d1077d 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.14.3 on Thu Mar  9 19:02:17 2017 */
+/* Generated by re2c 0.14.3 on Fri Mar 10 13:21:57 2017 */
 /**
 
        MultiMarkdown 6 -- Lightweight markup processor to produce HTML, LaTeX, and more.
@@ -132,12 +132,12 @@ yy2:
        yyaccept = 0;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '+':       goto yy269;
-       case '-':       goto yy268;
-       case '=':       goto yy265;
-       case '>':       goto yy267;
-       case '{':       goto yy263;
-       case '~':       goto yy266;
+       case '+':       goto yy264;
+       case '-':       goto yy263;
+       case '=':       goto yy260;
+       case '>':       goto yy262;
+       case '{':       goto yy258;
+       case '~':       goto yy261;
        default:        goto yy3;
        }
 yy3:
@@ -146,7 +146,7 @@ yy4:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '+':       goto yy260;
+       case '+':       goto yy255;
        default:        goto yy5;
        }
 yy5:
@@ -154,7 +154,7 @@ yy5:
 yy6:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '-':       goto yy254;
+       case '-':       goto yy249;
        default:        goto yy7;
        }
 yy7:
@@ -163,7 +163,7 @@ yy8:
        yyaccept = 2;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '<':       goto yy251;
+       case '<':       goto yy246;
        default:        goto yy9;
        }
 yy9:
@@ -172,8 +172,8 @@ yy10:
        yyaccept = 3;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '>':       goto yy247;
-       case '~':       goto yy246;
+       case '>':       goto yy242;
+       case '~':       goto yy241;
        default:        goto yy11;
        }
 yy11:
@@ -182,7 +182,7 @@ yy12:
        yyaccept = 4;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '=':       goto yy243;
+       case '=':       goto yy238;
        default:        goto yy13;
        }
 yy13:
@@ -190,11 +190,11 @@ yy13:
 yy14:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '#':       goto yy239;
-       case '%':       goto yy233;
-       case '>':       goto yy241;
-       case '?':       goto yy235;
-       case '^':       goto yy237;
+       case '#':       goto yy234;
+       case '%':       goto yy228;
+       case '>':       goto yy236;
+       case '?':       goto yy230;
+       case '^':       goto yy232;
        default:        goto yy15;
        }
 yy15:
@@ -205,7 +205,7 @@ yy16:
 yy18:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '[':       goto yy231;
+       case '[':       goto yy226;
        default:        goto yy19;
        }
 yy19:
@@ -222,7 +222,7 @@ yy24:
 yy26:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '}':       goto yy229;
+       case '}':       goto yy224;
        default:        goto yy27;
        }
 yy27:
@@ -233,21 +233,17 @@ yy28:
 yy30:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '\'':      goto yy227;
+       case '\'':      goto yy222;
        default:        goto yy31;
        }
 yy31:
        { return QUOTE_SINGLE; }
 yy32:
-       YYCTXMARKER = YYCURSOR + 1;
        yyaccept = 5;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case '\t':      goto yy217;
-       case '\n':      goto yy214;
-       case '\r':      goto yy216;
-       case ' ':       goto yy219;
-       case '.':       goto yy220;
+       case ' ':       goto yy214;
+       case '.':       goto yy215;
        default:        goto yy19;
        }
 yy33:
@@ -433,8 +429,7 @@ yy70:
        case 6:         goto yy36;
        case 7:         goto yy49;
        case 8:         goto yy127;
-       case 9:         goto yy215;
-       default:        goto yy264;
+       default:        goto yy259;
        }
 yy71:
        ++YYCURSOR;
@@ -880,213 +875,192 @@ yy212:
        ++YYCURSOR;
        { return AMPERSAND_LONG; }
 yy214:
-       ++YYCURSOR;
-yy215:
-       YYCURSOR = YYCTXMARKER;
-       { return TEXT_PERIOD; }
-yy216:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '\n':      goto yy214;
-       default:        goto yy215;
-       }
-yy217:
-       ++YYCURSOR;
-       yych = *YYCURSOR;
-yy218:
-       switch (yych) {
-       case '\t':
-       case ' ':       goto yy217;
-       default:        goto yy215;
-       }
-yy219:
-       yyaccept = 9;
-       yych = *(YYMARKER = ++YYCURSOR);
-       switch (yych) {
-       case '.':       goto yy223;
-       default:        goto yy218;
+       case '.':       goto yy218;
+       default:        goto yy70;
        }
-yy220:
+yy215:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '.':       goto yy221;
+       case '.':       goto yy216;
        default:        goto yy70;
        }
-yy221:
+yy216:
        ++YYCURSOR;
        { return ELLIPSIS; }
-yy223:
+yy218:
        yych = *++YYCURSOR;
        switch (yych) {
-       case ' ':       goto yy224;
+       case ' ':       goto yy219;
        default:        goto yy70;
        }
-yy224:
+yy219:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '.':       goto yy225;
+       case '.':       goto yy220;
        default:        goto yy70;
        }
-yy225:
+yy220:
        ++YYCURSOR;
        { return ELLIPSIS; }
-yy227:
+yy222:
        ++YYCURSOR;
        { return QUOTE_RIGHT_ALT; }
-yy229:
+yy224:
        ++YYCURSOR;
        { return BRACE_DOUBLE_RIGHT; }
-yy231:
+yy226:
        ++YYCURSOR;
        { return BRACKET_IMAGE_LEFT; }
-yy233:
+yy228:
        ++YYCURSOR;
        { return BRACKET_VARIABLE_LEFT; }
-yy235:
+yy230:
        ++YYCURSOR;
        { return BRACKET_GLOSSARY_LEFT; }
-yy237:
+yy232:
        ++YYCURSOR;
        { return BRACKET_FOOTNOTE_LEFT; }
-yy239:
+yy234:
        ++YYCURSOR;
        { return BRACKET_CITATION_LEFT; }
-yy241:
+yy236:
        ++YYCURSOR;
        { return BRACKET_ABBREVIATION_LEFT; }
-yy243:
+yy238:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '}':       goto yy244;
+       case '}':       goto yy239;
        default:        goto yy70;
        }
-yy244:
+yy239:
        ++YYCURSOR;
        { return CRITIC_HI_CLOSE; }
-yy246:
+yy241:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '}':       goto yy249;
+       case '}':       goto yy244;
        default:        goto yy70;
        }
-yy247:
+yy242:
        ++YYCURSOR;
        { return CRITIC_SUB_DIV; }
-yy249:
+yy244:
        ++YYCURSOR;
        { return CRITIC_SUB_CLOSE; }
-yy251:
+yy246:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '}':       goto yy252;
+       case '}':       goto yy247;
        default:        goto yy70;
        }
-yy252:
+yy247:
        ++YYCURSOR;
        { return CRITIC_COM_CLOSE; }
-yy254:
+yy249:
        ++YYCURSOR;
        switch ((yych = *YYCURSOR)) {
-       case '-':       goto yy258;
-       case '}':       goto yy256;
-       default:        goto yy255;
+       case '-':       goto yy253;
+       case '}':       goto yy251;
+       default:        goto yy250;
        }
-yy255:
+yy250:
        { return DASH_N; }
-yy256:
+yy251:
        ++YYCURSOR;
        { return CRITIC_DEL_CLOSE; }
-yy258:
+yy253:
        ++YYCURSOR;
        { return DASH_M; }
-yy260:
+yy255:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '}':       goto yy261;
+       case '}':       goto yy256;
        default:        goto yy70;
        }
-yy261:
+yy256:
        ++YYCURSOR;
        { return CRITIC_ADD_CLOSE; }
-yy263:
-       yyaccept = 10;
+yy258:
+       yyaccept = 9;
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
-       case 'T':       goto yy280;
-       default:        goto yy264;
+       case 'T':       goto yy275;
+       default:        goto yy259;
        }
-yy264:
+yy259:
        { return BRACE_DOUBLE_LEFT; }
-yy265:
+yy260:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '=':       goto yy278;
+       case '=':       goto yy273;
        default:        goto yy70;
        }
-yy266:
+yy261:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '~':       goto yy276;
+       case '~':       goto yy271;
        default:        goto yy70;
        }
-yy267:
+yy262:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '>':       goto yy274;
+       case '>':       goto yy269;
        default:        goto yy70;
        }
-yy268:
+yy263:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '-':       goto yy272;
+       case '-':       goto yy267;
        default:        goto yy70;
        }
-yy269:
+yy264:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '+':       goto yy270;
+       case '+':       goto yy265;
        default:        goto yy70;
        }
-yy270:
+yy265:
        ++YYCURSOR;
        { return CRITIC_ADD_OPEN; }
-yy272:
+yy267:
        ++YYCURSOR;
        { return CRITIC_DEL_OPEN; }
-yy274:
+yy269:
        ++YYCURSOR;
        { return CRITIC_COM_OPEN; }
-yy276:
+yy271:
        ++YYCURSOR;
        { return CRITIC_SUB_OPEN; }
-yy278:
+yy273:
        ++YYCURSOR;
        { return CRITIC_HI_OPEN; }
-yy280:
+yy275:
        yych = *++YYCURSOR;
        switch (yych) {
-       case 'O':       goto yy281;
+       case 'O':       goto yy276;
        default:        goto yy70;
        }
-yy281:
+yy276:
        yych = *++YYCURSOR;
        switch (yych) {
-       case 'C':       goto yy282;
+       case 'C':       goto yy277;
        default:        goto yy70;
        }
-yy282:
+yy277:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '}':       goto yy283;
+       case '}':       goto yy278;
        default:        goto yy70;
        }
-yy283:
+yy278:
        yych = *++YYCURSOR;
        switch (yych) {
-       case '}':       goto yy284;
+       case '}':       goto yy279;
        default:        goto yy70;
        }
-yy284:
+yy279:
        ++YYCURSOR;
        { return TOC; }
 }
index 7417f6e4f1949c0b3cf7f4b9bc0461d45cc667b8..9648f66f3d34cb8dbdf628384656c1c985826c74 100644 (file)
@@ -219,7 +219,7 @@ int scan(Scanner * s, const char * stop) {
                '\\'                                                    { return TEXT_BACKSLASH; }
 
                [0-9]+ '.' / (SP|NL)                    { return TEXT_NUMBER_POSS_LIST; }
-               '.' / (SP|NL)                                   { return TEXT_PERIOD; }
+//             '.' / (SP|NL)                                   { return TEXT_PERIOD; }
 
                TEXT_LINEBREAK                                  { return TEXT_LINEBREAK; }
                '\\' NL                                                 { return TEXT_LINEBREAK; }
index 33146b84ccd4dcb301cab1c8ba46dce8e98f144f..2f687a7487bb6f440996537d99d387b4892e577a 100644 (file)
@@ -1181,11 +1181,11 @@ void mmd_export_token_odf(DString * out, const char * source, token * t, scratch
 
                                        if (temp_short3 == scratch->inline_abbreviations_to_free->size) {
                                                // This is a reference definition
-                                               mmd_print_string_odf(out, temp_note->clean_text);
+                                               mmd_print_string_odf(out, temp_note->label_text);
 //                                             mmd_export_token_tree_odf(out, source, t->child, scratch);
                                        } else {
                                                // This is an inline definition
-                                               mmd_print_string_odf(out, temp_note->clean_text);
+                                               mmd_print_string_odf(out, temp_note->label_text);
 //                                             mmd_export_token_tree_odf(out, source, t->child, scratch);
                                        }
                                } else {
index eed1c05b15517b410a8a2d30102382a681c43735..35ccef2ddc01f5e207783563b408f6c3ebc12d61 100644 (file)
 </office:meta>
 <office:body>
 <office:text>
-<text:p text:style-name="Standard">FOO (foo)</text:p>
+<text:p text:style-name="Standard">FOO (foo) foo</text:p>
 
-<text:p text:style-name="Standard">BAR (bar)</text:p>
+<text:p text:style-name="Standard">F.O.O. (f.o.o.) f.o.o.</text:p>
 
-<text:p text:style-name="Standard">FOO BAR</text:p>
+<text:p text:style-name="Standard">f-o-o f-o-o</text:p>
 
-<text:p text:style-name="Standard">FOOBAR (foobar)</text:p>
+<text:p text:style-name="Standard">F O O (f o o) f o o</text:p>
 
-<text:p text:style-name="Standard">FOO BAR (foo bar)</text:p>
+<text:p text:style-name="Standard">fo&#8217;o fo&#8217;o</text:p>
 
 <text:p text:style-name="Standard">5</text:p>
 
-<text:p text:style-name="Standard"><text:p text:style-name="Footnote">BAZ (BAT)</text:p> (baz)</text:p>
+<text:p text:style-name="Standard">BAR (bar) bar</text:p>
+
+<text:p text:style-name="Standard">B.A.R. (b.a.r.) b.a.r.</text:p>
+
+<text:p text:style-name="Standard">B-A-R (b-a-r) b-a-r</text:p>
 
-<text:p text:style-name="Standard">FOO</text:p>
+<text:p text:style-name="Standard">B A R (b a r) b a r</text:p>
 
-<text:p text:style-name="Standard">BAR</text:p>
+<text:p text:style-name="Standard">BA'R (ba'r) ba'r</text:p>
+
+<text:p text:style-name="Standard">10</text:p>
+
+<text:p text:style-name="Standard">FOO BAR (foo bar)</text:p>
 
-<text:p text:style-name="Standard">FOOBAR</text:p>
+<text:p text:style-name="Standard">foo
+bar</text:p>
 
-<text:p text:style-name="Standard">FOO BAR baz</text:p>
+<text:p text:style-name="Standard">foo bar</text:p>
 </office:text>
 </office:body>
 </office:document>
index 539a78b03ea8f9c8dd5b2d7b439c843cef7164a8..9f580e00a95da0fd79a7b1613ce23796f7702d84 100644 (file)
@@ -6,27 +6,36 @@
 </head>
 <body>
 
-<p>FOO (<abbr title="FOO">foo</abbr>)</p>
+<p>FOO (<abbr title="FOO">foo</abbr>) <abbr title="FOO">foo</abbr></p>
 
-<p>BAR (<abbr title="BAR">bar</abbr>)</p>
+<p>F.O.O. (<abbr title="F.O.O.">f.o.o.</abbr>) <abbr title="F.O.O.">f.o.o.</abbr></p>
 
-<p><abbr title="FOO">foo</abbr> <abbr title="BAR">bar</abbr></p>
+<p>f-o-o f-o-o</p>
 
-<p>FOOBAR (<abbr title="FOOBAR">foobar</abbr>)</p>
+<p>F O O (<abbr title="F O O">f o o</abbr>) <abbr title="F O O">f o o</abbr></p>
 
-<p>FOO BAR (<abbr title="FOO BAR">foo bar</abbr>)</p>
+<p>fo&#8217;o fo&#8217;o</p>
 
 <p>5</p>
 
-<p>BAZ (BAT) (<abbr title="BAZ (BAT)">baz</abbr>)</p>
+<p>BAR (<abbr title="BAR">bar</abbr>) <abbr title="BAR">bar</abbr></p>
+
+<p>B.A.R. (<abbr title="B.A.R.">b.a.r.</abbr>) <abbr title="B.A.R.">b.a.r.</abbr></p>
+
+<p>B-A-R (<abbr title="B-A-R">b-a-r</abbr>) <abbr title="B-A-R">b-a-r</abbr></p>
 
-<p><abbr title="FOO">foo</abbr></p>
+<p>B A R (<abbr title="B A R">b a r</abbr>) <abbr title="B A R">b a r</abbr></p>
 
-<p><abbr title="BAR">bar</abbr></p>
+<p>BA'R (<abbr title="BA'R">ba&#8217;r</abbr>) <abbr title="BA'R">ba&#8217;r</abbr></p>
 
-<p><abbr title="FOOBAR">foobar</abbr></p>
+<p>10</p>
 
-<p><abbr title="FOO BAR">foo bar</abbr> baz</p>
+<p>FOO BAR (<abbr title="FOO BAR">foo bar</abbr>)</p>
+
+<p><abbr title="FOO">foo</abbr>
+<abbr title="BAR">bar</abbr></p>
+
+<p><abbr title="FOO">foo</abbr> <abbr title="BAR">bar</abbr></p>
 
 </body>
 </html>
index dabcbaf9928b379937ffef1488e5ca1f2b8012d0..6e5db014560d6d7fa2c108b9286a833d23ee9529 100644 (file)
@@ -1,24 +1,35 @@
 <p>Title:      Abbreviations
 latex config:  article</p>
 
-<p><a href="FOO">>foo</a></p>
+<p>foo foo</p>
 
-<p><a href="BAR">>bar</a></p>
+<p>f.o.o. f.o.o.</p>
 
-<p><a href="FOO">>foo</a> <a href="BAR">>bar</a></p>
+<p>f-o-o f-o-o</p>
 
-<p><a href="FOOBAR">>foobar</a></p>
+<p>f o o f o o</p>
 
-<p><a href="FOOBAR">>foo bar</a></p>
+<p>fo'o fo'o</p>
 
 <p>5</p>
 
-<p>[>(baz) BAZ (BAT)]</p>
+<p><a href="BAR">>bar</a> <a href="BAR">>bar</a></p>
 
-<p>foo</p>
+<p><a href="B.A.R.">>b.a.r.</a> <a href="B.A.R.">>b.a.r.</a></p>
 
-<p>bar</p>
+<p><a href="B-A-R">>b-a-r</a> <a href="B-A-R">>b-a-r</a></p>
 
-<p>foobar</p>
+<p><a href="BAR">>b a r</a> <a href="BAR">>b a r</a></p>
 
-<p>foo bar baz</p>
+<p><a href="BA'R">>ba'r</a> <a href="BA'R">>ba'r</a></p>
+
+<p>10</p>
+
+<p>foo bar</p>
+
+<p>foo
+bar</p>
+
+<p>foo bar</p>
+
+<p>[>foo bar]: FOO BAR</p>
index 3042175f6e14364d2669b7fdfc973528e3dfe639..fce43692eb1e2793b1d7431a395982f37c434e1d 100644 (file)
@@ -2,35 +2,58 @@
 \def\mytitle{Abbreviations}
 \newacronym{foo}{foo}{FOO}
 
+\newacronym{f.o.o.}{f.o.o.}{F.O.O.}
+
+\newacronym{f-o-o}{f-o-o}{F-O-O}
+
+\newacronym{f o o}{f o o}{F O O}
+
+\newacronym{fo'o}{fo'o}{FO'O}
+
 \newacronym{bar}{bar}{BAR}
 
-\newacronym{foobar}{foobar}{FOOBAR}
+\newacronym{b.a.r.}{b.a.r.}{B.A.R.}
+
+\newacronym{b-a-r}{b-a-r}{B-A-R}
+
+\newacronym{b a r}{b a r}{B A R}
+
+\newacronym{ba'r}{ba'r}{BA'R}
 
 \newacronym{foo bar}{foo bar}{FOO BAR}
 
 \input{mmd6-article-begin}
 
-\gls{foo}
+\gls{foo} \gls{foo}
 
-\gls{bar}
+\gls{f.o.o.} \gls{f.o.o.}
 
-\gls{foo} \gls{bar}
+f-o-o f-o-o
 
-\gls{foobar}
+\gls{f o o} \gls{f o o}
 
-\gls{foo bar}
+fo'o fo'o
 
 5
 
-\newacronym{baz}{baz}{BAZ (BAT)}\gls{baz}
+\gls{bar} \gls{bar}
 
-\gls{foo}
+\gls{b.a.r.} \gls{b.a.r.}
 
-\gls{bar}
+\gls{b-a-r} \gls{b-a-r}
+
+\gls{b a r} \gls{b a r}
+
+\gls{ba'r} \gls{ba'r}
+
+10
 
-\gls{foobar}
+\gls{foo bar}
 
-\gls{foo bar} baz
+\gls{foo}
+\gls{bar}
+
+\gls{foo} \gls{bar}
 
 \input{mmd6-article-footer}
 \end{document}
index cac55dc1a13b1d49184b94573092767b6b24cb98..44950193c515053fc25ff2cb9677d88e32773695 100644 (file)
@@ -1,30 +1,48 @@
 Title: Abbreviations
 latex config:  article
 
-[>foo]
+foo foo
 
-[>bar]
+f.o.o. f.o.o.
 
-[>foo] [>bar]
+f-o-o f-o-o
 
-[>foobar]
+f o o f o o
 
-[>foo bar]
+fo'o fo'o
 
 5
 
-[>(baz) BAZ (BAT)]
+[>bar] [>bar]
 
-foo
+[>b.a.r.] [>b.a.r.]
 
-bar
+[>b-a-r] [>b-a-r]
+
+[>b a r] [>b a r]
+
+[>ba'r] [>ba'r]
+
+10
 
-foobar
+foo bar
 
-foo bar baz
+foo
+bar
+
+foo  bar
 
 
 [>foo]: FOO
+[>f.o.o.]: F.O.O.
+[>f-o-o]: F-O-O
+[>f o o]: F O O
+[>fo'o]: FO'O
+
 [>bar]: BAR
-[>foobar]: FOOBAR
+[>b.a.r.]: B.A.R.
+[>b-a-r]: B-A-R
+[>b a r]: B A R
+[>ba'r]: BA'R
+
 [>foo bar]: FOO BAR