- if (i>=0 && j >= 0 && !strcmp(xbt_dynar_get_as(da,i,char*),
- xbt_dynar_get_as(db,j,char*))) {
- diff_build_diff(res,C,da,db,i-1,j-1);
- topush = bprintf(" %s",xbt_dynar_get_as(da,i,char*));
+ if (i >= 0 && j >= 0 && !strcmp(xbt_dynar_get_as(da, i, char *),
+ xbt_dynar_get_as(db, j, char *))) {
+ diff_build_diff(res, C, da, db, i - 1, j - 1);
+ topush = bprintf(" %s", xbt_dynar_get_as(da, i, char *));
+ xbt_dynar_push(res, &topush);
+ } else if (j >= 0 &&
+ (i <= 0 || j == 0
+ || xbt_matrix_get_as(C, i, j - 1,
+ int) >= xbt_matrix_get_as(C, i - 1, j,
+ int))) {
+ diff_build_diff(res, C, da, db, i, j - 1);
+ topush = bprintf("+ %s", xbt_dynar_get_as(db, j, char *));
+ xbt_dynar_push(res, &topush);
+ } else if (i >= 0 &&
+ (j <= 0
+ || xbt_matrix_get_as(C, i, j - 1, int) < xbt_matrix_get_as(C,
+ i
+ -
+ 1,
+ j,
+ int)))
+ {
+ diff_build_diff(res, C, da, db, i - 1, j);
+ topush = bprintf("- %s", xbt_dynar_get_as(da, i, char *));