X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Freadtokens.c;h=bb427729c00f4db5c560ff4ebc273deb76670924;hb=fc66900ee825390c11719d7d3e6816c6fa94ef45;hp=f4c6c2071e0be46608cc94bda2b36404516b633b;hpb=b0607966151aa740f9bf6544ef89c1d8550721bf;p=gnulib.git diff --git a/lib/readtokens.c b/lib/readtokens.c index f4c6c2071..bb427729c 100644 --- a/lib/readtokens.c +++ b/lib/readtokens.c @@ -1,5 +1,5 @@ /* readtokens.c -- Functions for reading tokens from an input stream. - Copyright (C) 1990-1991 Jim Meyering. + Copyright (C) 1990-1991, 1999, 2001, 2003 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -12,8 +12,8 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Written by Jim Meyering. */ @@ -28,29 +28,29 @@ */ #ifdef HAVE_CONFIG_H -#include +# include #endif #include #ifdef STDC_HEADERS -#include +# include #endif #if defined (STDC_HEADERS) || defined(HAVE_STRING_H) -#include +# include /* An ANSI string.h and pre-ANSI memory.h might conflict. */ -#if !defined (STDC_HEADERS) && defined (HAVE_MEMORY_H) -#include -#endif /* not STDC_HEADERS and HAVE_MEMORY_H */ +# if !defined (STDC_HEADERS) && defined (HAVE_MEMORY_H) +# include +# endif /* not STDC_HEADERS and HAVE_MEMORY_H */ #else /* not STDC_HEADERS and not HAVE_STRING_H */ -#include +# include /* memory.h and strings.h conflict on some systems. */ #endif /* not STDC_HEADERS and not HAVE_STRING_H */ #include "readtokens.h" -void *xmalloc (); -void *xrealloc (); +#include "unlocked-io.h" +#include "xalloc.h" #define STREQ(a,b) ((a) == (b) || ((a) && (b) && *(a) == *(b) \ && strcmp(a, b) == 0)) @@ -62,7 +62,7 @@ init_tokenbuffer (tokenbuffer) token_buffer *tokenbuffer; { tokenbuffer->size = INITIAL_TOKEN_LENGTH; - tokenbuffer->buffer = ((char *) xmalloc (INITIAL_TOKEN_LENGTH)); + tokenbuffer->buffer = xmalloc (INITIAL_TOKEN_LENGTH); } /* Read a token from `stream' into `tokenbuffer'. @@ -77,11 +77,10 @@ init_tokenbuffer (tokenbuffer) and on files that aren't newline-terminated. */ long -readtoken (stream, delim, n_delim, tokenbuffer) - FILE *stream; - const char *delim; - int n_delim; - token_buffer *tokenbuffer; +readtoken (FILE *stream, + const char *delim, + int n_delim, + token_buffer *tokenbuffer) { char *p; int c, i, n; @@ -109,11 +108,12 @@ readtoken (stream, delim, n_delim, tokenbuffer) if (!same_delimiters) { const char *t; + unsigned int j; saved_delim = delim; - for (i = 0; i < sizeof (isdelim); i++) - isdelim[i] = 0; + for (j = 0; j < sizeof (isdelim); j++) + isdelim[j] = 0; for (t = delim; *t; t++) - isdelim[(unsigned int) *t] = 1; + isdelim[(unsigned char) *t] = 1; } p = tokenbuffer->buffer; @@ -164,14 +164,12 @@ readtoken (stream, delim, n_delim, tokenbuffer) %%% realloc() of `tokens' just before returning? */ int -readtokens (stream, projected_n_tokens, delim, n_delim, - tokens_out, token_lengths) - FILE *stream; - int projected_n_tokens; - const char *delim; - int n_delim; - char ***tokens_out; - long **token_lengths; +readtokens (FILE *stream, + int projected_n_tokens, + const char *delim, + int n_delim, + char ***tokens_out, + long **token_lengths) { token_buffer tb, *token = &tb; int token_length; @@ -186,8 +184,8 @@ readtokens (stream, projected_n_tokens, delim, n_delim, else projected_n_tokens = 64; sz = projected_n_tokens; - tokens = (char **) xmalloc (sz * sizeof (char *)); - lengths = (long *) xmalloc (sz * sizeof (long)); + tokens = xmalloc (sz * sizeof (char *)); + lengths = xmalloc (sz * sizeof (long)); init_tokenbuffer (token); for (;;) @@ -197,8 +195,8 @@ readtokens (stream, projected_n_tokens, delim, n_delim, if (n_tokens >= sz) { sz *= 2; - tokens = (char **) xrealloc (tokens, sz * sizeof (char *)); - lengths = (long *) xrealloc (lengths, sz * sizeof (long)); + tokens = xrealloc (tokens, sz * sizeof (char *)); + lengths = xrealloc (lengths, sz * sizeof (long)); } if (token_length < 0) @@ -208,7 +206,7 @@ readtokens (stream, projected_n_tokens, delim, n_delim, lengths[n_tokens] = -1; break; } - tmp = (char *) xmalloc ((token_length + 1) * sizeof (char)); + tmp = xmalloc ((token_length + 1) * sizeof (char)); lengths[n_tokens] = token_length; tokens[n_tokens] = strncpy (tmp, token->buffer, (unsigned) (token_length + 1));