X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/1691e80890e5d8ba258c51c214a3e91880e1db2b..cfb444d37fc236a9fdac369cbcf2a5bfc37a33f5:/sbr/vfgets.c?ds=inline diff --git a/sbr/vfgets.c b/sbr/vfgets.c index 52a8e74d..36f71379 100644 --- a/sbr/vfgets.c +++ b/sbr/vfgets.c @@ -1,11 +1,12 @@ - -/* - * vfgets.c -- virtual fgets +/* vfgets.c -- virtual fgets * - * $Id$ + * This code is Copyright (c) 2002, by the authors of nmh. See the + * COPYRIGHT file in the root directory of the nmh distribution for + * complete copyright information. */ #include +#include #define QUOTE '\\' @@ -19,8 +20,7 @@ vfgets (FILE *in, char **bp) static char *pp = NULL; if (pp == NULL) - if (!(pp = malloc ((size_t) (len = BUFSIZ)))) - adios (NULL, "unable to allocate string storage"); + pp = mh_xmalloc ((size_t) (len = BUFSIZ)); for (ep = (cp = pp) + len - 1;;) { if (fgets (cp, ep - cp + 1, in) == NULL) { @@ -38,9 +38,8 @@ wrong_guess: if (*dp == '\n') { *bp = pp; return 0; - } else { - cp = ++dp; } + cp = ++dp; } else { for (fp = dp - 1, toggle = 0; fp >= cp; fp--) { if (*fp != QUOTE) @@ -62,12 +61,9 @@ wrong_guess: if (cp >= ep) { int curlen = cp - pp; - if (!(dp = realloc (pp, (size_t) (len += BUFSIZ)))) { - adios (NULL, "unable to allocate string storage"); - } else { - cp = dp + curlen; - ep = (pp = dp) + len - 1; - } + dp = mh_xrealloc (pp, (size_t) (len += BUFSIZ)); + cp = dp + curlen; + ep = (pp = dp) + len - 1; } } }