From 48a6773b3ae627a67ab7b191df0063dcefc3f470 Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Fri, 26 Sep 2008 14:10:17 +0000 Subject: [PATCH] - add less -I to be able to search case-insensitively +17b, but the helptext is quite elaborate, thus: function old new delta .rodata 118995 119032 +37 packed_usage 24731 24767 +36 regex_process 284 300 +16 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 3/0 up/down: 89/0) Total: 89 bytes --- include/usage.h | 3 ++- miscutils/less.c | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/include/usage.h b/include/usage.h index ac6376afd..24008deeb 100644 --- a/include/usage.h +++ b/include/usage.h @@ -2078,7 +2078,7 @@ "5\n" #define less_trivial_usage \ - "[-EMNmh~?] [FILE...]" + "[-EMNmh~I?] [FILE...]" #define less_full_usage "\n\n" \ "View a file or list of files. The position within files can be\n" \ "changed, and files can be manipulated in various ways.\n" \ @@ -2087,6 +2087,7 @@ "\n -M,-m Display a status line containing the line numbers" \ "\n and percentage through the file" \ "\n -N Prefix line numbers to each line" \ + "\n -I Ignore case in all searches" \ "\n -~ Suppress ~s displayed past the end of the file" \ #define linux32_trivial_usage NOUSAGE_STR diff --git a/miscutils/less.c b/miscutils/less.c index 530a40a8c..cd47590ee 100644 --- a/miscutils/less.c +++ b/miscutils/less.c @@ -79,6 +79,7 @@ enum { FLAG_m = 1 << 2, FLAG_N = 1 << 3, FLAG_TILDE = 1 << 4, + FLAG_I = 1 << 5, /* hijack command line options variable for internal state vars */ LESS_STATE_MATCH_BACKWARDS = 1 << 15, }; @@ -965,7 +966,8 @@ static void regex_process(void) } /* Compile the regex and check for errors */ - err = regcomp_or_errmsg(&pattern, uncomp_regex, 0); + err = regcomp_or_errmsg(&pattern, uncomp_regex, + option_mask32 & FLAG_I ? REG_ICASE : 0); free(uncomp_regex); if (err) { print_statusline(err); @@ -1359,7 +1361,7 @@ int less_main(int argc, char **argv) /* TODO: -x: do not interpret backspace, -xx: tab also */ /* -xxx: newline also */ /* -w N: assume width N (-xxx -w 32: hex viewer of sorts) */ - getopt32(argv, "EMmN~"); + getopt32(argv, "EMmN~I"); argc -= optind; argv += optind; num_files = argc;