← Commit list

d7874ed1d

Denys Vlasenko
Denys Vlasenko
2009-08-20
FAILED Duration: 30s

Subject

patch: support -N. By Olivier Duclos (olivier.duclos AT gmail.com)

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

editors/patch.c+11 -1
@@ -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++;
include/usage.h+2 -1
@@ -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" \