From 8808f7fc2ec434621a213c1deb5966833bcfec58 Mon Sep 17 00:00:00 2001 From: Jody Bruchon Date: Thu, 30 Mar 2017 18:15:54 +0200 Subject: uniq: add -i option to ignore case Signed-off-by: Jody Bruchon Signed-off-by: Denys Vlasenko --- coreutils/uniq.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'coreutils/uniq.c') diff --git a/coreutils/uniq.c b/coreutils/uniq.c index be550b5cd..1c23e1d08 100644 --- a/coreutils/uniq.c +++ b/coreutils/uniq.c @@ -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; } -- cgit v1.2.3