From: "Roberto E. Vargas Caballero" <k...@shike2.com>

C is compared against EOF, so it cannot be char.
---
 ed.c | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/ed.c b/ed.c
index fb4faf9..0f86759 100644
--- a/ed.c
+++ b/ed.c
@@ -926,15 +926,14 @@ static void
 getrhs(int delim)
 {
        int c;
-       size_t siz, cap;
-       static char *s;
+       static String s;
 
-       free(s);
-       s = NULL;
-       siz = cap = 0;
+       free(s.str);
+       s.str = NULL;
+       s.siz = s.cap = 0;
        while ((c = input()) != '\n' && c != EOF && c != delim)
-               s = addchar(c, s, &siz, &cap);
-       s = addchar('\0', s, &siz, &cap);
+               addchar_(c, &s);
+       addchar_('\0', &s);
        if (c == EOF)
                error("invalid pattern delimiter");
        if (c == '\n') {
@@ -942,15 +941,15 @@ getrhs(int delim)
                back(c);
        }
 
-       if (!strcmp("%", s)) {
-               free(s);
+       if (!strcmp("%", s.str)) {
+               free(s.str);
                if (!rhs)
                        error("no previous substitution");
        } else {
                free(rhs);
-               rhs = s;
+               rhs = s.str;
        }
-       s = NULL;
+       s.str = NULL;
 }
 
 static int
-- 
2.14.2


Reply via email to