diff: correct handling of labels. -10 bytes
>>From 05eeb173f0431b4fbed7684d7a9cea42f747f63e Mon Sep 17 00:00:00 2001 From: Matheus Izvekov <mizvekov@gmail.com> Date: Mon, 18 Jan 2010 20:33:55 -0200 Subject: [PATCH] diff: correct handling of labels This fixes an issue where diff would apply labels to files in the inverse order, when using -L or --label. This fixes it in order to be compatible with gnu diff. It also makes it not an error to specify more than one label. The behavior for such cases is that they override the label for the new file. Signed-off-by: Matheus Izvekov <mizvekov@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
b32aa0c274
commit
4de4cb6b9b
@ -915,13 +915,8 @@ int diff_main(int argc UNUSED_PARAM, char **argv)
|
||||
getopt32(argv, "abdiL:NqrsS:tTU:wupBE",
|
||||
&L_arg, &s_start, &opt_U_context);
|
||||
argv += optind;
|
||||
while (L_arg) {
|
||||
if (label[0] && label[1])
|
||||
bb_show_usage();
|
||||
if (label[0]) /* then label[1] is NULL */
|
||||
label[1] = label[0];
|
||||
label[0] = llist_pop(&L_arg);
|
||||
}
|
||||
while (L_arg)
|
||||
label[!!label[0]] = llist_pop(&L_arg);
|
||||
xfunc_error_retval = 2;
|
||||
for (int i = 0; i < 2; i++) {
|
||||
file[i] = argv[i];
|
||||
|
Loading…
Reference in New Issue
Block a user