Fix sed 's' command's 'p' flag, so it can print line twice
diff --git a/editors/sed.c b/editors/sed.c
index 78d4609..d14b6f7 100644
--- a/editors/sed.c
+++ b/editors/sed.c
@@ -792,25 +792,23 @@
 						 *    flag exists in the first place.
 						 */
 
-						/* if the user specified that they didn't want anything printed (i.e., a -n
-						 * flag and no 'p' flag after the s///), then there's really no point doing
-						 * anything here. */
-						if (be_quiet && !sed_cmd->sub_p)
-							break;
-
 						/* we print the line once, unless we were told to be quiet */
-						if (!be_quiet)
+						if (!be_quiet) {
 							altered |= do_subst_command(sed_cmd, &line);
+							if (altered && ((sed_cmd->linear == NULL) || (sed_cmd->linear->cmd != 's'))) {
+								puts(line);
+							}
+						}
 
 						/* we also print the line if we were given the 'p' flag
 						 * (this is quite possibly the second printing) */
-						if (sed_cmd->sub_p)
+						if (sed_cmd->sub_p) {
 							altered |= do_subst_command(sed_cmd, &line);
-						if (altered && ((sed_cmd->linear == NULL) || (sed_cmd->linear->cmd != 's')))
-							puts(line);
-
+							if (altered) {
+								puts(line);
+							}
+						}
 						break;
-
 					case 'a':
 						puts(line);
 						fputs(sed_cmd->editline, stdout);