uniq: add -i option to ignore case

Signed-off-by: Jody Bruchon <jody@jodybruchon.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Jody Bruchon 2017-03-30 18:15:54 +02:00 committed by Denys Vlasenko
parent 257734855c
commit 8808f7fc2e

View File

@ -54,12 +54,13 @@ int uniq_main(int argc UNUSED_PARAM, char **argv)
OPT_f = 0x8,
OPT_s = 0x10,
OPT_w = 0x20,
OPT_i = 0x40,
};
skip_fields = skip_chars = 0;
max_chars = INT_MAX;
opt = getopt32(argv, "cduf:+s:+w:+", &skip_fields, &skip_chars, &max_chars);
opt = getopt32(argv, "cduf:+s:+w:+i", &skip_fields, &skip_chars, &max_chars);
argv += optind;
input_filename = argv[0];
@ -106,7 +107,12 @@ int uniq_main(int argc UNUSED_PARAM, char **argv)
++cur_compare;
}
if (!old_line || strncmp(old_compare, cur_compare, max_chars)) {
if (!old_line)
break;
if ((opt & OPT_i)
? strncasecmp(old_compare, cur_compare, max_chars)
: strncmp(old_compare, cur_compare, max_chars)
) {
break;
}