diff options
author | Niels Möller <nisse@lysator.liu.se> | 2014-10-22 19:30:02 +0200 |
---|---|---|
committer | Niels Möller <nisse@lysator.liu.se> | 2014-10-22 19:30:02 +0200 |
commit | 94269a22013fac7bfc5591021ab142dffd45a845 (patch) | |
tree | 06c3a19c60366cd268696df750e68f0330e4a4bc /testsuite | |
parent | 8df195405cb033ec4d13ef8b8ce4ae2029cd9db8 (diff) | |
download | nettle-94269a22013fac7bfc5591021ab142dffd45a845.tar.gz |
Fallback for missing getline (used in the testsuite).
Diffstat (limited to 'testsuite')
-rw-r--r-- | testsuite/ed25519-test.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/testsuite/ed25519-test.c b/testsuite/ed25519-test.c index be131376..924ecea6 100644 --- a/testsuite/ed25519-test.c +++ b/testsuite/ed25519-test.c @@ -117,6 +117,44 @@ test_one (const char *line) free (msg); } +#ifndef HAVE_GETLINE +static ssize_t +getline(char **lineptr, size_t *n, FILE *f) +{ + size_t i; + int c; + if (!*lineptr) + { + *n = 500; + *lineptr = xalloc (*n); + } + + i = 0; + do + { + c = getc(f); + if (c < 0) + { + if (i > 0) + break; + return -1; + } + + (*lineptr) [i++] = c; + if (i == *n) + { + *n *= 2; + *lineptr = realloc (*lineptr, *n); + if (!*lineptr) + die ("Virtual memory exhausted.\n"); + } + } while (c != '\n'); + + (*lineptr) [i] = 0; + return i; +} +#endif + void test_main(void) { |