Fix the substitution print subcommand, it should only print if its
own substitution matched, not previous ones.
e.g
echo fooba | sed -n 's/foo//;s/bar/found/p'
shouldnt print anything
diff --git a/editors/sed.c b/editors/sed.c
index 6beba06..b06d5a8 100644
--- a/editors/sed.c
+++ b/editors/sed.c
@@ -839,7 +839,6 @@
still_in_range || ((sed_cmd->beg_line == -1)
&& (next_line == NULL))
);
-
if (sed_cmd->cmd == '{') {
block_mask = block_mask & matched;
}
@@ -925,7 +924,7 @@
}
}
#endif
- altered |= substituted;
+ altered = substituted;
if (!be_quiet && altered && ((sed_cmd->next == NULL)
|| (sed_cmd->next->cmd != 's'))) {
force_print = 1;