aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatheus Izvekov <mizvekov@gmail.com>2010-01-18 20:40:23 -0200
committerDenys Vlasenko <vda.linux@googlemail.com>2010-01-20 02:45:45 +0100
commit4de4cb6b9ba294b47ffbaa8646f7ebe4cb8db3c9 (patch)
treec51eee50d4d057a0df77c6e649ffd8fe6f80a438
parentb32aa0c274ee7fec286b5355c6c9a9d084e657f8 (diff)
downloadbusybox-w32-4de4cb6b9ba294b47ffbaa8646f7ebe4cb8db3c9.tar.gz
busybox-w32-4de4cb6b9ba294b47ffbaa8646f7ebe4cb8db3c9.tar.bz2
busybox-w32-4de4cb6b9ba294b47ffbaa8646f7ebe4cb8db3c9.zip
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>
-rw-r--r--editors/diff.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/editors/diff.c b/editors/diff.c
index 9d0373f93..7429b411a 100644
--- a/editors/diff.c
+++ b/editors/diff.c
@@ -915,13 +915,8 @@ int diff_main(int argc UNUSED_PARAM, char **argv)
915 getopt32(argv, "abdiL:NqrsS:tTU:wupBE", 915 getopt32(argv, "abdiL:NqrsS:tTU:wupBE",
916 &L_arg, &s_start, &opt_U_context); 916 &L_arg, &s_start, &opt_U_context);
917 argv += optind; 917 argv += optind;
918 while (L_arg) { 918 while (L_arg)
919 if (label[0] && label[1]) 919 label[!!label[0]] = llist_pop(&L_arg);
920 bb_show_usage();
921 if (label[0]) /* then label[1] is NULL */
922 label[1] = label[0];
923 label[0] = llist_pop(&L_arg);
924 }
925 xfunc_error_retval = 2; 920 xfunc_error_retval = 2;
926 for (int i = 0; i < 2; i++) { 921 for (int i = 0; i < 2; i++) {
927 file[i] = argv[i]; 922 file[i] = argv[i];