From b694219148361e33877bf90a98324bef73aa300d Mon Sep 17 00:00:00 2001 From: sshaik Date: Thu, 26 May 2005 11:17:42 +0000 Subject: Added readline function by bhargavi --- utils.c | 31 +++++++++++++++++++++++++++++++ utils.h | 1 + 2 files changed, 32 insertions(+) diff --git a/utils.c b/utils.c index 0437deb..b304600 100644 --- a/utils.c +++ b/utils.c @@ -63,3 +63,34 @@ char *strip_delim (char *data, char delim) stripped_data[j] = '\0'; return stripped_data; } + +char *read_line (int fd ) +{ + int len = 128; + int size = 0; + char ch; + char *data = NULL; + + while (read (fd, &ch, 1) > 0) + { + if (!data) + { + data = (char *) malloc (sizeof (char)*len); + } + if (size%len == 0) + { + data = (char *) realloc (data, sizeof (char)*len+size+1); + } + data[size++] = ch; + if (ch == '\n') + { + if (size%len == 0) + { + data = (char *) realloc (data, sizeof (char)+size+1); + } + data[size] = '\0'; + return data; + } + } + return NULL; +} diff --git a/utils.h b/utils.h index 41c7e1b..5345556 100644 --- a/utils.h +++ b/utils.h @@ -7,5 +7,6 @@ char *strip_white_space (char *data); char *strip_delim (char *data, char delim); +char *read_line (int fd); #endif -- cgit v1.2.3