X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=sbr%2Fbrkstring.c;h=1e78b172bb4b8722b7455960177dcb380e78d9dd;hb=337338b404931f06f0db2119c9e145e8ca5a9860;hp=27f187e2e72daaf9ff2b3a1b96e740a7977ee115;hpb=6c42153ad9362cc676ea66563bf400d7511b3b68;p=mmh diff --git a/sbr/brkstring.c b/sbr/brkstring.c index 27f187e..1e78b17 100644 --- a/sbr/brkstring.c +++ b/sbr/brkstring.c @@ -1,22 +1,20 @@ - /* * brkstring.c -- (destructively) split a string into * -- an array of substrings * - * $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 /* allocate this number of pointers at a time */ #define NUMBROKEN 256 -static char **broken = NULL; /* array of substring start addresses */ -static int len = 0; /* current size of "broken" */ +static char **broken = NULL; /* array of substring start addresses */ +static int len = 0; /* current size of "broken" */ /* * static prototypes @@ -27,52 +25,50 @@ static int brkany (char, char *); char ** brkstring (char *str, char *brksep, char *brkterm) { - int i; - char c, *s; + int i; + char c, *s; - /* allocate initial space for pointers on first call */ - if (!broken) { - len = NUMBROKEN; - if (!(broken = (char **) malloc ((size_t) (len * sizeof(*broken))))) - adios (NULL, "unable to malloc array in brkstring"); - } + /* allocate initial space for pointers on first call */ + if (!broken) { + len = NUMBROKEN; + broken = (char **) mh_xmalloc ((size_t) (len * sizeof(*broken))); + } - /* - * scan string, replacing separators with zeroes - * and enter start addresses in "broken". - */ - s = str; + /* + * scan string, replacing separators with zeroes + * and enter start addresses in "broken". + */ + s = str; - for (i = 0;; i++) { + for (i = 0;; i++) { /* enlarge pointer array, if necessary */ if (i >= len) { - len += NUMBROKEN; - if (!(broken = realloc (broken, (size_t) (len * sizeof(*broken))))) - adios (NULL, "unable to realloc array in brkstring"); + len += NUMBROKEN; + broken = mh_xrealloc (broken, (size_t) (len * sizeof(*broken))); } while (brkany (c = *s, brksep)) - *s++ = '\0'; + *s++ = '\0'; /* * we are either at the end of the string, or the * terminator found has been found, so finish up. */ if (!c || brkany (c, brkterm)) { - *s = '\0'; - broken[i] = NULL; - return broken; + *s = '\0'; + broken[i] = NULL; + return broken; } /* set next start addr */ broken[i] = s; while ((c = *++s) && !brkany (c, brksep) && !brkany (c, brkterm)) - ; /* empty body */ - } + ; /* empty body */ + } - return broken; /* NOT REACHED */ + return broken; /* NOT REACHED */ } @@ -84,12 +80,12 @@ brkstring (char *str, char *brksep, char *brkterm) static int brkany (char c, char *str) { - char *s; + char *s; - if (str) { + if (str) { for (s = str; *s; s++) - if (c == *s) + if (c == *s) return 1; - } - return 0; + } + return 0; }