summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2020-11-07 17:14:20 +0100
committerTyge Løvset <[email protected]>2020-11-07 17:14:20 +0100
commita10f4ca24c32df3db7dfbebf51fc64f097ba985a (patch)
treec5a2fcf6420ba81e6f6eaf2e1c80c341fc07941c
parent16bccd1842da34317da38ef9d4be1829dc9eba90 (diff)
downloadSTC-modified-a10f4ca24c32df3db7dfbebf51fc64f097ba985a.tar.gz
STC-modified-a10f4ca24c32df3db7dfbebf51fc64f097ba985a.zip
Last fix on getdelim().
-rw-r--r--stc/cstr.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/stc/cstr.h b/stc/cstr.h
index 8c71cae4..0b1e9cbe 100644
--- a/stc/cstr.h
+++ b/stc/cstr.h
@@ -350,15 +350,18 @@ cstr_erase(cstr_t* self, size_t pos, size_t n) {
STC_DEF bool
cstr_getdelim(cstr_t *self, int delim, FILE *fp) {
size_t pos = 0, cap = cstr_capacity(*self);
+ int c = fgetc(fp);
+ if (c == EOF)
+ return false;
for (;;) {
- int c = fgetc(fp);
if (pos == cap)
cap = cstr_reserve(self, cap * 3 / 2 + 34);
if (c == delim || c == EOF) {
self->str[_cstr_size(*self) = pos] = '\0';
- return c != EOF;
+ return true;
}
self->str[pos++] = (char) c;
+ c = fgetc(fp);
}
}
@@ -379,4 +382,4 @@ c_strnstr(const char* x, const char* needle, size_t n) {
#endif
-#endif
+#endif \ No newline at end of file