← Commit list

204ff1cea

Glenn L McGrath
Glenn L McGrath
2003-09-16
FAILED Duration: 77s

Subject

Fix a bug that creapt in recently with substitution subprinting, and add a test for it.

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

editors/sed.c+2 -3
@@ -914,7 +914,6 @@ static void process_file(FILE * file)
#endif
/* we print the pattern_space once, unless we were told to be quiet */
substituted |= do_subst_command(sed_cmd, &pattern_space);
-
#ifdef CONFIG_FEATURE_SED_EMBEDED_NEWLINE
/* undo HACK: escape newlines twice so regex can match them */
{
@@ -930,10 +929,10 @@ static void process_file(FILE * file)
|| (sed_cmd->next->cmd != 's'))) {
force_print = 1;
}
-
/* we also print the line if we were given the 'p' flag
* (this is quite possibly the second printing) */
- if ((sed_cmd->sub_p) && altered) {
+// if ((sed_cmd->sub_p) && (!altered || substituted)) {
+ if ((sed_cmd->sub_p) && (altered || substituted)) {
puts(pattern_space);
}
break;
testsuite/sed/sed-subst-subprint+9 -0
@@ -0,0 +1,9 @@
+busybox sed 's/foo/bar/p'>output <<EOF
+foo
+bar
+EOF
+cmp -s output - <<EOF
+bar
+bar
+bar
+EOF