patch: support -N. By Olivier Duclos (olivier.duclos AT gmail.com)
function old new delta packed_usage 26646 26656 +10 patch_main 1101 1110 +9 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
0793491ff8
commit
d7874ed1d4
@ -74,12 +74,18 @@ int patch_main(int argc UNUSED_PARAM, char **argv)
|
||||
int patch_level;
|
||||
int ret = 0;
|
||||
char plus = '+';
|
||||
unsigned opt;
|
||||
enum {
|
||||
OPT_R = (1 << 2),
|
||||
OPT_N = (1 << 3),
|
||||
};
|
||||
|
||||
xfunc_error_retval = 2;
|
||||
{
|
||||
const char *p = "-1";
|
||||
const char *i = "-"; /* compat */
|
||||
if (getopt32(argv, "p:i:R", &p, &i) & 4)
|
||||
opt = getopt32(argv, "p:i:RN", &p, &i);
|
||||
if (opt & OPT_R)
|
||||
plus = '-';
|
||||
patch_level = xatoi(p); /* can be negative! */
|
||||
patch_file = xfopen_stdin(i);
|
||||
@ -202,6 +208,10 @@ int patch_main(int argc UNUSED_PARAM, char **argv)
|
||||
src_line = NULL;
|
||||
}
|
||||
}
|
||||
/* Do not patch an already patched hunk with -N */
|
||||
if (src_line == 0 && (opt & OPT_N)) {
|
||||
continue;
|
||||
}
|
||||
if (!src_line) {
|
||||
bb_error_msg("hunk #%u FAILED at %u", hunk_count, hunk_offset_start);
|
||||
bad_hunk_count++;
|
||||
|
@ -3218,11 +3218,12 @@
|
||||
)
|
||||
|
||||
#define patch_trivial_usage \
|
||||
"[-p NUM] [-i DIFF] [-R]"
|
||||
"[-p NUM] [-i DIFF] [-R] [-N]"
|
||||
#define patch_full_usage "\n\n" \
|
||||
" -p NUM Strip NUM leading components from file names" \
|
||||
"\n -i DIFF Read DIFF instead of stdin" \
|
||||
"\n -R Reverse patch" \
|
||||
"\n -N Ignore already applied patches" \
|
||||
|
||||
#define patch_example_usage \
|
||||
"$ patch -p1 < example.diff\n" \
|
||||
|
Loading…
Reference in New Issue
Block a user