From: Fletcher T. Penney Date: Thu, 17 Aug 2017 18:38:06 +0000 (-0400) Subject: FIXED: Fix error in CriticMarkup highlights when accepting/rejecting (Thanks, Shahaf!) X-Git-Tag: 6.2.1^2~15 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b2f1cd55dd33218d011a3f057ecd4c8e99654b38;p=multimarkdown FIXED: Fix error in CriticMarkup highlights when accepting/rejecting (Thanks, Shahaf!) --- diff --git a/Sources/libMultiMarkdown/critic_markup.c b/Sources/libMultiMarkdown/critic_markup.c index 43d47a4..0afe3cd 100644 --- a/Sources/libMultiMarkdown/critic_markup.c +++ b/Sources/libMultiMarkdown/critic_markup.c @@ -198,7 +198,6 @@ void accept_token(DString * d, token * t) { case CM_SUB_DIV: case CM_DEL_PAIR: case CM_COM_PAIR: - case CM_HI_PAIR: // Erase these d_string_erase(d, t->start, t->len); break; @@ -213,6 +212,7 @@ void accept_token(DString * d, token * t) { break; case CM_ADD_PAIR: + case CM_HI_PAIR: // Check children if (t->child) { @@ -282,7 +282,6 @@ void reject_token(DString * d, token * t) { case CM_SUB_DIV: case CM_ADD_PAIR: case CM_COM_PAIR: - case CM_HI_PAIR: // Erase these d_string_erase(d, t->start, t->len); break; @@ -297,6 +296,7 @@ void reject_token(DString * d, token * t) { break; case CM_DEL_PAIR: + case CM_HI_PAIR: // Check children if (t->child) { diff --git a/Sources/libMultiMarkdown/fodt.c b/Sources/libMultiMarkdown/fodt.c index 54ffd7f..ebfd32f 100644 --- a/Sources/libMultiMarkdown/fodt.c +++ b/Sources/libMultiMarkdown/fodt.c @@ -1570,6 +1570,9 @@ parse_citation: // Ignore if we're rejecting or accepting if ((scratch->extensions & EXT_CRITIC_REJECT) || (scratch->extensions & EXT_CRITIC_ACCEPT)) { + t->child->type = TEXT_EMPTY; + t->child->mate->type = TEXT_EMPTY; + mmd_export_token_tree_odf(out, source, t->child, scratch); break; } diff --git a/Sources/libMultiMarkdown/html.c b/Sources/libMultiMarkdown/html.c index db1e365..1d0027a 100644 --- a/Sources/libMultiMarkdown/html.c +++ b/Sources/libMultiMarkdown/html.c @@ -1732,6 +1732,9 @@ parse_citation: // Ignore if we're rejecting or accepting if ((scratch->extensions & EXT_CRITIC_REJECT) || (scratch->extensions & EXT_CRITIC_ACCEPT)) { + t->child->type = TEXT_EMPTY; + t->child->mate->type = TEXT_EMPTY; + mmd_export_token_tree_html(out, source, t->child, scratch); break; } diff --git a/Sources/libMultiMarkdown/latex.c b/Sources/libMultiMarkdown/latex.c index efa32f2..3858d64 100644 --- a/Sources/libMultiMarkdown/latex.c +++ b/Sources/libMultiMarkdown/latex.c @@ -1651,6 +1651,9 @@ parse_citation: // Ignore if we're rejecting or accepting if ((scratch->extensions & EXT_CRITIC_REJECT) || (scratch->extensions & EXT_CRITIC_ACCEPT)) { + t->child->type = TEXT_EMPTY; + t->child->mate->type = TEXT_EMPTY; + mmd_export_token_tree_latex(out, source, t->child, scratch); break; } diff --git a/Sources/libMultiMarkdown/opendocument-content.c b/Sources/libMultiMarkdown/opendocument-content.c index 18ac45f..595fb45 100644 --- a/Sources/libMultiMarkdown/opendocument-content.c +++ b/Sources/libMultiMarkdown/opendocument-content.c @@ -1703,6 +1703,9 @@ parse_citation: // Ignore if we're rejecting or accepting if ((scratch->extensions & EXT_CRITIC_REJECT) || (scratch->extensions & EXT_CRITIC_ACCEPT)) { + t->child->type = TEXT_EMPTY; + t->child->mate->type = TEXT_EMPTY; + mmd_export_token_tree_opendocument(out, source, t->child, scratch); break; } diff --git a/tests/CriticMarkup/CriticMarkup.html b/tests/CriticMarkup/CriticMarkup.html index d179967..84da01e 100644 --- a/tests/CriticMarkup/CriticMarkup.html +++ b/tests/CriticMarkup/CriticMarkup.html @@ -22,6 +22,16 @@

~~}between them.

+

foo

+ +

bar

+ +

foobar

+ +

foo

+ +

bar

+ diff --git a/tests/CriticMarkup/CriticMarkup.htmla b/tests/CriticMarkup/CriticMarkup.htmla index d4e3061..4b673dd 100644 --- a/tests/CriticMarkup/CriticMarkup.htmla +++ b/tests/CriticMarkup/CriticMarkup.htmla @@ -18,6 +18,12 @@

between them.

+

foo

+ +

bar

+ +

bar

+ diff --git a/tests/CriticMarkup/CriticMarkup.htmlr b/tests/CriticMarkup/CriticMarkup.htmlr index 773c00c..029050a 100644 --- a/tests/CriticMarkup/CriticMarkup.htmlr +++ b/tests/CriticMarkup/CriticMarkup.htmlr @@ -16,6 +16,12 @@

with nothing between them.

+

bar

+ +

foo

+ +

bar

+ diff --git a/tests/CriticMarkup/CriticMarkup.text b/tests/CriticMarkup/CriticMarkup.text index e63017a..8f5fd06 100644 --- a/tests/CriticMarkup/CriticMarkup.text +++ b/tests/CriticMarkup/CriticMarkup.text @@ -16,3 +16,13 @@ with nothing ~> With a *new* paragraph inserted ~~}between them. + +{++foo++} + +{--bar--} + +{~~foo~>bar~~} + +{>>foo<<} + +{==bar==}