Changes in directory llvm-test/MultiSource/Applications/obsequi:
obsequi.c updated: 1.4 -> 1.5 --- Log message: Implement a poor-mans version of getline that hopefully works for this program on most platforms. --- Diffs of the changes: (+16 -3) obsequi.c | 19 ++++++++++++++++--- 1 files changed, 16 insertions(+), 3 deletions(-) Index: llvm-test/MultiSource/Applications/obsequi/obsequi.c diff -u llvm-test/MultiSource/Applications/obsequi/obsequi.c:1.4 llvm-test/MultiSource/Applications/obsequi/obsequi.c:1.5 --- llvm-test/MultiSource/Applications/obsequi/obsequi.c:1.4 Sat Nov 25 02:25:55 2006 +++ llvm-test/MultiSource/Applications/obsequi/obsequi.c Mon Nov 27 16:39:39 2006 @@ -34,14 +34,27 @@ #include "cppflags.h" #include "interface.h" -#ifndef __linux__ // LLVM: define our own getline for portability #define getline getline_llvm +// Crude approximation of gnu getline ssize_t getline(char **lineptr, size_t *n, FILE *stream) { - return getstr (lineptr, n, stream, '\n', 0, 0); + char buffer[4096]; + bzero(buffer,4096); + ssize_t result = 0; + if (NULL == fgets(buffer, 4095, stream)) + result = -1; + else + result = strlen(buffer); + if (result >= 0) { + if (*lineptr == 0 ) + *lineptr = malloc(result+1); + else + *lineptr = realloc(*lineptr, result+1); + memcpy(*lineptr, buffer, result+1); + } + return result; } -#endif //######################################################## // Function templates. _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits