From d9c634e13b4d1c0c2289a53317532bfeb989ecb4 Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Mon, 28 Oct 2019 15:03:32 -0700 Subject: [PATCH] return final `\0` directly from readLine() --- programs/util.c | 13 ++++++++----- tests/playTests.sh | 8 ++++---- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/programs/util.c b/programs/util.c index 6db0c85e..c09461ef 100644 --- a/programs/util.c +++ b/programs/util.c @@ -214,14 +214,18 @@ U64 UTIL_getTotalFileSize(const char* const * fileNamesTable, unsigned nbFiles) /* condition : @file must be valid, and not have reached its end. - * @return : length of line written into buf, without the final '\n', + * @return : length of line written into @buf, ended with `\0` instead of '\n', * or 0, if there is no new line */ static size_t readLineFromFile(char* buf, size_t len, FILE* file) { assert(!feof(file)); CONTROL( fgets(buf, (int) len, file) == buf ); /* requires success */ - if (strlen(buf)==0) return 0; - return strlen(buf) - (buf[strlen(buf)-1] == '\n'); /* ignore final '\n' character */ + { size_t linelen = strlen(buf); + if (strlen(buf)==0) return 0; + if (buf[linelen-1] == '\n') linelen--; + buf[linelen] = '\0'; + return linelen+1; + } } /* Conditions : @@ -250,8 +254,7 @@ readLinesFromFile(void* dst, size_t dstCapacity, size_t const lineLength = readLineFromFile(buf+pos, dstCapacity-pos, inputFile); if (lineLength == 0) break; assert(pos + lineLength < dstCapacity); - buf[pos+lineLength] = '\0'; /* replace '\n' with '\0'*/ - pos += lineLength + 1; + pos += lineLength; ++nbFiles; } diff --git a/tests/playTests.sh b/tests/playTests.sh index d730c0c5..adcc1d77 100755 --- a/tests/playTests.sh +++ b/tests/playTests.sh @@ -866,9 +866,8 @@ else fi -println "\n===> lz4 frame tests " - if [ $LZ4MODE -eq 1 ]; then + println "\n===> lz4 frame tests " ./datagen > tmp $ZSTD -f --format=lz4 tmp $ZSTD -f tmp @@ -876,9 +875,10 @@ if [ $LZ4MODE -eq 1 ]; then truncateLastByte tmp.lz4 | $ZSTD -t > $INTOVOID && die "incomplete frame not detected !" rm tmp* else - println "lz4 mode not supported" + println "\nlz4 mode not supported" fi + println "\n===> suffix list test" ! $ZSTD -d tmp.abc 2> tmplg @@ -896,6 +896,7 @@ if [ $LZ4MODE -ne 1 ]; then grep ".lz4" tmplg > $INTOVOID && die "Unsupported suffix listed" fi + println "\n===> tar extension tests " rm -f tmp tmp.tar tmp.tzst tmp.tgz tmp.txz tmp.tlz4 @@ -934,7 +935,6 @@ touch tmp.t tmp.tz tmp.tzs ! $ZSTD -d tmp.tz ! $ZSTD -d tmp.tzs -exit println "\n===> zstd round-trip tests "