int size = 512, len = 0;
while (fgets(ret + len, size - len, fp)) {
len += strlen(ret + len);
- if (ret[len-1] == '\n')
+ if (len > 0 && ret[len-1] == '\n')
break; /* got a newline, we're done */
size = len + 512;
ret = sresize(ret, size, char);
#else
strcpy(str, "Out of memory!");
#endif
- modalfatalbox(str);
+ modalfatalbox("%s", str);
}
#ifdef MALLOC_LOG
if (fp)
#else
strcpy(str, "Out of memory!");
#endif
- modalfatalbox(str);
+ modalfatalbox("%s", str);
}
#ifdef MALLOC_LOG
if (fp)
* we want to return 1, so then we can just shift down. */
return (0x100 - val) >> 8;
}
+
+int strstartswith(const char *s, const char *t)
+{
+ return !memcmp(s, t, strlen(t));
+}
+
+int strendswith(const char *s, const char *t)
+{
+ size_t slen = strlen(s), tlen = strlen(t);
+ return slen >= tlen && !strcmp(s + (slen - tlen), t);
+}