The Open Group Base Specifications Issue 7, 2018 edition:
| Substitute Command
|
| Synopsis:
|
| (.,.)s/RE/replacement/flags
[...]
| A line can be split by substituting a <newline> into it. The
| application shall ensure it escapes the <newline> in the replacement
| by preceding it by <backslash>.
---
ed.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/ed.c b/ed.c
index b430e74..e2b2a6f 100644
--- a/ed.c
+++ b/ed.c
@@ -1049,8 +1049,11 @@ getrhs(int delim)
static String s;
string(&s);
- while ((c = input()) != '\n' && c != EOF && c != delim)
+ while ((c = input()) != '\n' && c != EOF && c != delim) {
+ if (c == '\\' && (c = input()) != '\n')
+ addchar('\\', &s);
addchar(c, &s);
+ }
addchar('\0', &s);
if (c == EOF)
error("invalid pattern delimiter");
--
2.43.0.rc0