X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fgetline.c;h=170a26e96405e5b818dc602e2cf006ed4ab1adbf;hb=618f09f72ba36d7c43802fa5fc07aca28172e6fd;hp=e95aace34367dd118cdea2f9abf65a372f9a87fd;hpb=9d6a6d72ecb5624f28866a6aebb601097bf42643;p=gnulib.git diff --git a/lib/getline.c b/lib/getline.c index e95aace34..170a26e96 100644 --- a/lib/getline.c +++ b/lib/getline.c @@ -1,6 +1,6 @@ /* getline.c -- Replacement for GNU C library function getline -Copyright (C) 1993 Free Software Foundation, Inc. +Copyright (C) 1993, 1996, 1997, 1998 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 @@ -18,20 +18,23 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Written by Jan Brittenson, bson@gnu.ai.mit.edu. */ -#ifdef HAVE_CONFIG_H +#if HAVE_CONFIG_H # include #endif +/* The `getdelim' function is only declared if the following symbol + is defined. */ +#ifndef _GNU_SOURCE +# define _GNU_SOURCE 1 +#endif + #include #include -#if defined __GNU_LIBRARY__ && defined HAVE_GETDELIM +#if defined __GNU_LIBRARY__ && HAVE_GETDELIM int -getline (lineptr, n, stream) - char **lineptr; - size_t *n; - FILE *stream; +getline (char **lineptr, size_t *n, FILE *stream) { return getdelim (lineptr, n, '\n', stream); } @@ -39,17 +42,17 @@ getline (lineptr, n, stream) #else /* ! have getdelim */ -#define NDEBUG -#include +# define NDEBUG +# include -#if STDC_HEADERS -# include -#else +# if STDC_HEADERS +# include +# else char *malloc (), *realloc (); -#endif +# endif /* Always add at least this many bytes when extending the buffer. */ -#define MIN_CHUNK 64 +# define MIN_CHUNK 64 /* Read up to (and including) a TERMINATOR from STREAM into *LINEPTR + OFFSET (and null-terminate it). *LINEPTR is a pointer returned from @@ -58,12 +61,7 @@ char *malloc (), *realloc (); null terminator), or -1 on error or EOF. */ int -getstr (lineptr, n, stream, terminator, offset) - char **lineptr; - size_t *n; - FILE *stream; - char terminator; - size_t offset; +getstr (char **lineptr, size_t *n, FILE *stream, char terminator, size_t offset) { int nchars_avail; /* Allocated but unused chars in *LINEPTR. */ char *read_pos; /* Where we're reading into *LINEPTR. */ @@ -132,20 +130,13 @@ getstr (lineptr, n, stream, terminator, offset) } int -getline (lineptr, n, stream) - char **lineptr; - size_t *n; - FILE *stream; +getline (char **lineptr, size_t *n, FILE *stream) { return getstr (lineptr, n, stream, '\n', 0); } int -getdelim (lineptr, n, delimiter, stream) - char **lineptr; - size_t *n; - int delimiter; - FILE *stream; +getdelim (char **lineptr, size_t *n, int delimiter, FILE *stream) { return getstr (lineptr, n, stream, delimiter, 0); }