I wrote:
> Michael Forney wrote:
>
> > This works, but I'm not sure why `s` is static here, since it is
> > cleared at the start of the function, and freed at the end of the
> > function.
> >
> > Maybe I'm missing something, but I think it would be better to replace
> > the first `free(s.str)` with `s.str = NULL`, and make `s` have
> > automatic storage.
>
> Like this or I misunderstood? Because this works as well.
> [...]
Here's the patch:
---
ed.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/ed.c b/ed.c
index 57cead3..6c99a6d 100644
--- a/ed.c
+++ b/ed.c
@@ -839,9 +839,9 @@ join(void)
{
int i;
char *t, c;
- static String s;
+ String s;
- free(s.str);
+ s.str = NULL;
s.siz = s.cap = 0;
for (i = line1;; i = nextln(i)) {
for (t = gettxt(i); (c = *t) != '\n'; ++t)
--
2.18.4
--
caóc