diff options
author | Rob Landley <rob@landley.net> | 2013-10-31 09:36:55 -0500 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2013-10-31 09:36:55 -0500 |
commit | 6f6ccc189d4574e257687d982d24d1e35934d77d (patch) | |
tree | 9c86fbecf07902e0ee37b0472d5ef363d0e7d55d | |
parent | 2baa73fb0d3999d541b2122b853b56e2bfdea56b (diff) | |
download | toybox-6f6ccc189d4574e257687d982d24d1e35934d77d.tar.gz |
Make the patch -x option (only enabled with CONFIG_DEBUG) provide more information about why a patch didn't apply. (Offset of first nonmatching character at each line during seek phase.)
-rw-r--r-- | toys/posix/patch.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/toys/posix/patch.c b/toys/posix/patch.c index 7fb6add3..ae24ff94 100644 --- a/toys/posix/patch.c +++ b/toys/posix/patch.c @@ -201,7 +201,13 @@ static int apply_one_hunk(void) // Match failed. Write out first line of buffered data and // recheck remaining buffered data for a new match. - if (PATCH_DEBUG) fprintf(stderr, "NOT: %s\n", plist->data); + if (PATCH_DEBUG) { + int bug = 0; + + while (plist->data[bug] == check->data[bug]) bug++; + fprintf(stderr, "NOT(%d:%d!=%d): %s\n", bug, plist->data[bug], + check->data[bug], plist->data); + } TT.state = 3; do_line(check = dlist_pop(&buf)); |