X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a645eaba6229b6b7742f16316a4051fa65b7a492..3d845df082d79ab89649c1a8829eea201ae01085:/src/xbt/xbt_str.c diff --git a/src/xbt/xbt_str.c b/src/xbt/xbt_str.c index eedfa87092..d1f1cd91ea 100644 --- a/src/xbt/xbt_str.c +++ b/src/xbt/xbt_str.c @@ -520,53 +520,6 @@ char *xbt_str_join_array(const char *const *strs, const char *sep) return res; } -/** @brief Get a single line from the stream (reimplementation of the GNU getline) - * - * This is a reimplementation of the GNU getline function, so that our code don't depends on the GNU libc. - * - * xbt_getline() reads an entire line from stream, storing the address of the - * buffer containing the text into *buf. The buffer is null-terminated and - * includes the newline character, if one was found. - * - * If *buf is NULL, then xbt_getline() will allocate a buffer for storing the - * line, which should be freed by the user program. - * - * Alternatively, before calling xbt_getline(), *buf can contain a pointer to a - * malloc()-allocated buffer *n bytes in size. If the buffer is not large - * enough to hold the line, xbt_getline() resizes it with realloc(), updating - * *buf and *n as necessary. - * - * In either case, on a successful call, *buf and *n will be updated to reflect - * the buffer address and allocated size respectively. - */ -ssize_t xbt_getline(char **buf, size_t *n, FILE *stream) -{ - ssize_t i; - int ch; - - ch = getc(stream); - if (ferror(stream) || feof(stream)) - return -1; - - if (!*buf) { - *n = 512; - *buf = xbt_malloc(*n); - } - - i = 0; - do { - if (i == *n) - *buf = xbt_realloc(*buf, *n += 512); - (*buf)[i++] = ch; - } while (ch != '\n' && (ch = getc(stream)) != EOF); - - if (i == *n) - *buf = xbt_realloc(*buf, *n += 1); - (*buf)[i] = '\0'; - - return i; -} - /* * Diff related functions *