aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtests/sed.test2
-rw-r--r--toys/posix/sed.c3
2 files changed, 4 insertions, 1 deletions
diff --git a/tests/sed.test b/tests/sed.test
index 98c109ad..613330d3 100755
--- a/tests/sed.test
+++ b/tests/sed.test
@@ -188,4 +188,6 @@ testing 'megabyte s/x/y/g (5 sec timeout)' "timeout 5 sed 's/x/y/g' | sha1sum" \
'138c1fa7c3f64186203b0192fb4abdb33cb4e98a -\n' '' "$X\n"
unset X Y
+testing 's i and I' 'sed s/o/0/ig' "f00l F00L" "" "fool FOOL"
+
# -i with $ last line test
diff --git a/toys/posix/sed.c b/toys/posix/sed.c
index fa40dbf5..0896959f 100644
--- a/toys/posix/sed.c
+++ b/toys/posix/sed.c
@@ -143,7 +143,7 @@ config SED
[0-9] A number, substitute only that occurrence of pattern
g Global, substitute all occurrences of pattern
- i Ignore case when matching
+ i/I Ignore case when matching
p Print the line if match was found and replaced
w [file] Write (append) line to file if match replaced
@@ -897,6 +897,7 @@ resume_s:
if (isspace(*line) && *line != '\n') continue;
if (0 <= (l = stridx("igp", *line))) command->sflags |= 1<<l;
+ else if (*line == 'I') command->sflags |= 1<<0;
else if (!(command->sflags>>3) && 0<(l = strtol(line, &line, 10))) {
command->sflags |= l << 3;
line--;