commit 77fe371fe45ef3b5661d0ebea2717aef9a7c6c5a
parent 0732529fef748049054cde3db103276bbd1fe98a
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date: Sun, 4 Mar 2018 14:56:44 +0100
Fix type of c in getrhs()
C is compared against EOF, so it cannot be char.
Diffstat:
M | ed.c | | | 21 | ++++++++++----------- |
1 file changed, 10 insertions(+), 11 deletions(-)
diff --git 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