]> asedeno.scripts.mit.edu Git - 1ts-debian.git/blobdiff - libares/ares__read_line.c
This commit was manufactured by cvs2svn to create branch 'upstream'.
[1ts-debian.git] / libares / ares__read_line.c
diff --git a/libares/ares__read_line.c b/libares/ares__read_line.c
deleted file mode 100644 (file)
index 1a4a86d..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose.  It is provided "as is"
- * without express or implied warranty.
- */
-
-static const char rcsid[] = "$Id: ares__read_line.c,v 1.2 1998/11/02 19:13:43 ghudson Exp $";
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "ares.h"
-#include "ares_private.h"
-
-/* This is an internal function.  Its contract is to read a line from
- * a file into a dynamically allocated buffer, zeroing the trailing
- * newline if there is one.  The calling routine may call
- * ares__read_line multiple times with the same buf and bufsize
- * pointers; *buf will be reallocated and *bufsize adjusted as
- * appropriate.  The initial value of *buf should be NULL.  After the
- * calling routine is done reading lines, it should free *buf.
- */
-int ares__read_line(FILE *fp, char **buf, int *bufsize)
-{
-  char *newbuf;
-  int offset = 0, len;
-
-  if (*buf == NULL)
-    {
-      *buf = malloc(128);
-      if (!*buf)
-       return ARES_ENOMEM;
-      *bufsize = 128;
-    }
-
-  while (1)
-    {
-      if (!fgets(*buf + offset, *bufsize - offset, fp))
-       return (offset != 0) ? 0 : (ferror(fp)) ? ARES_EFILE : ARES_EOF;
-      len = offset + strlen(*buf + offset);
-      if ((*buf)[len - 1] == '\n')
-       {
-         (*buf)[len - 1] = 0;
-         return ARES_SUCCESS;
-       }
-      offset = len;
-
-      /* Allocate more space. */
-      newbuf = realloc(*buf, *bufsize * 2);
-      if (!newbuf)
-       return ARES_ENOMEM;
-      *buf = newbuf;
-      *bufsize *= 2;
-    }
-}