X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/fbb6b4556c347a1dec9e462574fdc2967f494002..3d845df082d79ab89649c1a8829eea201ae01085:/src/xbt/xbt_str.c diff --git a/src/xbt/xbt_str.c b/src/xbt/xbt_str.c index 9247f2dd35..d1f1cd91ea 100644 --- a/src/xbt/xbt_str.c +++ b/src/xbt/xbt_str.c @@ -1,6 +1,6 @@ /* xbt_str.c - various helping functions to deal with strings */ -/* Copyright (c) 2007, 2008, 2009, 2010. The SimGrid Team. +/* Copyright (c) 2007-2014. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -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 *