git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@3538
48e7efb5-ca39-0410-a469-
dd3cf9ba447f
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);
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);
(i<=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);
(i<=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);
(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*));
(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*));
} else {
THROW2(arg_error,0,"Invalid values: i=%d, j=%d",i,j);
}
} else {
THROW2(arg_error,0,"Invalid values: i=%d, j=%d",i,j);
}
}
/** @brief Compute the unified diff of two strings */
}
/** @brief Compute the unified diff of two strings */
char *res=NULL;
diff_build_diff(diff, C, da,db, xbt_dynar_length(da)-1, xbt_dynar_length(db)-1);
char *res=NULL;
diff_build_diff(diff, C, da,db, xbt_dynar_length(da)-1, xbt_dynar_length(db)-1);
+ /* Clean empty lines at the end */
+ while (xbt_dynar_length(diff) > 0) {
+ char *str;
+ xbt_dynar_pop(diff,&str);
+ if (str[0]=='\0' || !strcmp(str," ")) {
+ free(str);
+ } else {
+ xbt_dynar_push(diff,&str);
+ break;
+ }
+ }
res = xbt_str_join(diff, "\n");
xbt_dynar_free(&da);
res = xbt_str_join(diff, "\n");
xbt_dynar_free(&da);