diff options
Diffstat (limited to 'gnu/usr.bin/patch/patch.c')
-rw-r--r-- | gnu/usr.bin/patch/patch.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gnu/usr.bin/patch/patch.c b/gnu/usr.bin/patch/patch.c index 0a32fa7..0b49410 100644 --- a/gnu/usr.bin/patch/patch.c +++ b/gnu/usr.bin/patch/patch.c @@ -130,6 +130,9 @@ int check_patch = FALSE; /* or PATCH_INDEX_FIRST env. variable is set */ int index_first; +/* TRUE if -S was specified on command line. */ +int skip_flag_specified = FALSE; + /* Apply a set of diffs as appropriate. */ int @@ -313,6 +316,8 @@ char **argv; newwhere = pch_newfirst() + last_offset; if (skip_rest_of_patch) { abort_hunk(); + if (! skip_flag_specified) + failed++; if (verbose) say3("Hunk #%d ignored at %ld.\n", hunk, newwhere); } @@ -437,6 +442,7 @@ reinitialize_almost_everything() reverse = reverse_flag_specified; skip_rest_of_patch = FALSE; + skip_flag_specified = FALSE; get_some_switches(); @@ -567,6 +573,7 @@ get_some_switches() break; case 'S': skip_rest_of_patch = TRUE; + skip_flag_specified = TRUE; break; case 't': batch = TRUE; |