void Wikidiff2::debugPrintWordDiff(WordDiff & worddiff) { for (unsigned i = 0; i < worddiff.size(); ++i) { DiffOp<Word> & op = worddiff[i]; switch (op.op) { case DiffOp<Word>::copy: result += "Copy\n"; break; case DiffOp<Word>::del: result += "Delete\n"; break; case DiffOp<Word>::add: result += "Add\n"; break; case DiffOp<Word>::change: result += "Change\n"; break; } result += "From: "; bool first = true; for (int j=0; j<op.from.size(); j++) { if (first) { first = false; } else { result += ", "; } result += "("; result += op.from[j]->whole() + ")"; } result += "\n"; result += "To: "; first = true; for (int j=0; j<op.to.size(); j++) { if (first) { first = false; } else { result += ", "; } result += "("; result += op.to[j]->whole() + ")"; } result += "\n\n"; } }
void TableDiff::printWordDiffSide(WordDiff &worddiff, bool added) { String word; for (unsigned i = 0; i < worddiff.size(); ++i) { DiffOp<Word> & op = worddiff[i]; int n, j; if (op.op == DiffOp<Word>::copy) { n = op.from.size(); if (added) { for (j=0; j<n; j++) { op.to[j]->get_whole(word); printText(word); } } else { for (j=0; j<n; j++) { op.from[j]->get_whole(word); printText(word); } } } else if (!added && (op.op == DiffOp<Word>::del || op.op == DiffOp<Word>::change)) { n = op.from.size(); result += "<del class=\"diffchange diffchange-inline\">"; for (j=0; j<n; j++) { op.from[j]->get_whole(word); printText(word); } result += "</del>"; } else if (added && (op.op == DiffOp<Word>::add || op.op == DiffOp<Word>::change)) { n = op.to.size(); result += "<ins class=\"diffchange diffchange-inline\">"; for (j=0; j<n; j++) { op.to[j]->get_whole(word); printText(word); } result += "</ins>"; } } }