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:
@ -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++;
|
||||
|
Reference in New Issue
Block a user