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;
break;
case CM_ADD_PAIR:
+ case CM_HI_PAIR:
// Check children
if (t->child) {
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;
break;
case CM_DEL_PAIR:
+ case CM_HI_PAIR:
// Check children
if (t->child) {
// 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;
}
// 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;
}
// 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;
}
// 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;
}
<p>~~}between them.</p>
+<p><ins>foo</ins></p>
+
+<p><del>bar</del></p>
+
+<p><del>foo</del><ins>bar</ins></p>
+
+<p><span class="critic comment">foo</span></p>
+
+<p><mark>bar</mark></p>
+
</body>
</html>
<p>between them.</p>
+<p>foo</p>
+
+<p>bar</p>
+
+<p>bar</p>
+
</body>
</html>
<p>with nothing between them.</p>
+<p>bar</p>
+
+<p>foo</p>
+
+<p>bar</p>
+
</body>
</html>
With a *new* paragraph inserted
~~}between them.
+
+{++foo++}
+
+{--bar--}
+
+{~~foo~>bar~~}
+
+{>>foo<<}
+
+{==bar==}