diff options
author | Glenn L McGrath <bug1@ihug.co.nz> | 2003-08-30 04:35:07 +0000 |
---|---|---|
committer | Glenn L McGrath <bug1@ihug.co.nz> | 2003-08-30 04:35:07 +0000 |
commit | 9b04f1841eb4ef9b88e525796cd7230f6c3c1c6e (patch) | |
tree | 0182f3773ca809ef13af1dc478a6dcb63b367dea | |
parent | 72f5f02184f8b1064e3dd9c8d33e65b64830340c (diff) | |
download | busybox-w32-9b04f1841eb4ef9b88e525796cd7230f6c3c1c6e.tar.gz busybox-w32-9b04f1841eb4ef9b88e525796cd7230f6c3c1c6e.tar.bz2 busybox-w32-9b04f1841eb4ef9b88e525796cd7230f6c3c1c6e.zip |
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
-rw-r--r-- | editors/sed.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/editors/sed.c b/editors/sed.c index 6beba0661..b06d5a8d8 100644 --- a/editors/sed.c +++ b/editors/sed.c | |||
@@ -839,7 +839,6 @@ static void process_file(FILE * file) | |||
839 | still_in_range || ((sed_cmd->beg_line == -1) | 839 | still_in_range || ((sed_cmd->beg_line == -1) |
840 | && (next_line == NULL)) | 840 | && (next_line == NULL)) |
841 | ); | 841 | ); |
842 | |||
843 | if (sed_cmd->cmd == '{') { | 842 | if (sed_cmd->cmd == '{') { |
844 | block_mask = block_mask & matched; | 843 | block_mask = block_mask & matched; |
845 | } | 844 | } |
@@ -925,7 +924,7 @@ static void process_file(FILE * file) | |||
925 | } | 924 | } |
926 | } | 925 | } |
927 | #endif | 926 | #endif |
928 | altered |= substituted; | 927 | altered = substituted; |
929 | if (!be_quiet && altered && ((sed_cmd->next == NULL) | 928 | if (!be_quiet && altered && ((sed_cmd->next == NULL) |
930 | || (sed_cmd->next->cmd != 's'))) { | 929 | || (sed_cmd->next->cmd != 's'))) { |
931 | force_print = 1; | 930 | force_print = 1; |