diff options
Diffstat (limited to 'gnu/usr.bin/cpio/dstring.c')
-rw-r--r-- | gnu/usr.bin/cpio/dstring.c | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/gnu/usr.bin/cpio/dstring.c b/gnu/usr.bin/cpio/dstring.c deleted file mode 100644 index 26d6bbcc1dcf..000000000000 --- a/gnu/usr.bin/cpio/dstring.c +++ /dev/null @@ -1,114 +0,0 @@ -/* dstring.c - The dynamic string handling routines used by cpio. - Copyright (C) 1990, 1991, 1992 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 - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - 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. */ - -#include <stdio.h> -#if defined(HAVE_STRING_H) || defined(STDC_HEADERS) -#include <string.h> -#else -#include <strings.h> -#endif -#include "dstring.h" - -#if __STDC__ -# define P_(s) s -#else -# define P_(s) () -#endif -char *xmalloc P_((unsigned n)); -char *xrealloc P_((char *p, unsigned n)); - -/* Initialiaze dynamic string STRING with space for SIZE characters. */ - -void -ds_init (string, size) - dynamic_string *string; - int size; -{ - string->ds_length = size; - string->ds_string = (char *) xmalloc (size); -} - -/* Expand dynamic string STRING, if necessary, to hold SIZE characters. */ - -void -ds_resize (string, size) - dynamic_string *string; - int size; -{ - if (size > string->ds_length) - { - string->ds_length = size; - string->ds_string = (char *) xrealloc ((char *) string->ds_string, size); - } -} - -/* Dynamic string S gets a string terminated by the EOS character - (which is removed) from file F. S will increase - in size during the function if the string from F is longer than - the current size of S. - Return NULL if end of file is detected. Otherwise, - Return a pointer to the null-terminated string in S. */ - -char * -ds_fgetstr (f, s, eos) - FILE *f; - dynamic_string *s; - char eos; -{ - int insize; /* Amount needed for line. */ - int strsize; /* Amount allocated for S. */ - int next_ch; - - /* Initialize. */ - insize = 0; - strsize = s->ds_length; - - /* Read the input string. */ - next_ch = getc (f); - while (next_ch != eos && next_ch != EOF) - { - if (insize >= strsize - 1) - { - ds_resize (s, strsize * 2 + 2); - strsize = s->ds_length; - } - s->ds_string[insize++] = next_ch; - next_ch = getc (f); - } - s->ds_string[insize++] = '\0'; - - if (insize == 1 && next_ch == EOF) - return NULL; - else - return s->ds_string; -} - -char * -ds_fgets (f, s) - FILE *f; - dynamic_string *s; -{ - return ds_fgetstr (f, s, '\n'); -} - -char * -ds_fgetname (f, s) - FILE *f; - dynamic_string *s; -{ - return ds_fgetstr (f, s, '\0'); -} |