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 patch_level;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
char plus = '+';
|
char plus = '+';
|
||||||
|
unsigned opt;
|
||||||
|
enum {
|
||||||
|
OPT_R = (1 << 2),
|
||||||
|
OPT_N = (1 << 3),
|
||||||
|
};
|
||||||
|
|
||||||
xfunc_error_retval = 2;
|
xfunc_error_retval = 2;
|
||||||
{
|
{
|
||||||
const char *p = "-1";
|
const char *p = "-1";
|
||||||
const char *i = "-"; /* compat */
|
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 = '-';
|
plus = '-';
|
||||||
patch_level = xatoi(p); /* can be negative! */
|
patch_level = xatoi(p); /* can be negative! */
|
||||||
patch_file = xfopen_stdin(i);
|
patch_file = xfopen_stdin(i);
|
||||||
@ -202,6 +208,10 @@ int patch_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
src_line = NULL;
|
src_line = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/* Do not patch an already patched hunk with -N */
|
||||||
|
if (src_line == 0 && (opt & OPT_N)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (!src_line) {
|
if (!src_line) {
|
||||||
bb_error_msg("hunk #%u FAILED at %u", hunk_count, hunk_offset_start);
|
bb_error_msg("hunk #%u FAILED at %u", hunk_count, hunk_offset_start);
|
||||||
bad_hunk_count++;
|
bad_hunk_count++;
|
||||||
|
@ -3218,11 +3218,12 @@
|
|||||||
)
|
)
|
||||||
|
|
||||||
#define patch_trivial_usage \
|
#define patch_trivial_usage \
|
||||||
"[-p NUM] [-i DIFF] [-R]"
|
"[-p NUM] [-i DIFF] [-R] [-N]"
|
||||||
#define patch_full_usage "\n\n" \
|
#define patch_full_usage "\n\n" \
|
||||||
" -p NUM Strip NUM leading components from file names" \
|
" -p NUM Strip NUM leading components from file names" \
|
||||||
"\n -i DIFF Read DIFF instead of stdin" \
|
"\n -i DIFF Read DIFF instead of stdin" \
|
||||||
"\n -R Reverse patch" \
|
"\n -R Reverse patch" \
|
||||||
|
"\n -N Ignore already applied patches" \
|
||||||
|
|
||||||
#define patch_example_usage \
|
#define patch_example_usage \
|
||||||
"$ patch -p1 < example.diff\n" \
|
"$ patch -p1 < example.diff\n" \
|
||||||
|
Loading…
Reference in New Issue
Block a user