#ifndef LIB_H
#define LIB_H
-char *xmstrcat3save(const char *a, const char *b, const char *c);
-char *xmstrsave(const char *s);
-char *xmstrsubsave(const char *begin, int len);
+char *xstrcat3save(const char *a, const char *b, const char *c);
+char *xstrsave(const char *s);
+char *xstrsubsave(const char *begin, int len);
void miscerror(const char *what) NONRETURNING;
void syscallerror(const char *what) NONRETURNING;
void *xmalloc(size_t s);
void *xrealloc(void *p, size_t s);
-char *xstrdup(const char *str);
-void makeroom(char **buffer, int *size, int needed);
+int makeroom(char **buffer, int *size, int needed);
+/* makeroom returns -1 if needed was far too large; otherwise returns 0. */
/* It doesn't appear to be documented whether [v]snprintf put a null
* in if they overrun. GNU libc does, but I don't want to rely on