diff options
author | Aidan MacDonald <amachronic@protonmail.com> | 2021-11-04 22:56:27 +0300 |
---|---|---|
committer | Aidan MacDonald <amachronic@protonmail.com> | 2021-11-05 03:24:35 +0300 |
commit | 1bb9255348d02e2aff001ab60bdb51f8a60a9b87 (patch) | |
tree | 3bd6e6e3eb06b96653d4fb09a55dc92b62af0248 | |
parent | a848bc3f3caac2cc56e5d9c7436e9950f87d6e93 (diff) |
Add mtar_eof_data()
Returns true when the end of the current file has been reached.
Handy when reading file data in a loop.
-rw-r--r-- | src/microtar.c | 9 | ||||
-rw-r--r-- | src/microtar.h | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/microtar.c b/src/microtar.c index 97f53fb..0ff038c 100644 --- a/src/microtar.c +++ b/src/microtar.c @@ -370,3 +370,12 @@ int mtar_read_data(mtar_t* tar, void* ptr, unsigned size) return (int)size; } + +int mtar_eof_data(mtar_t* tar) +{ + /* API usage error, but just claim EOF. */ + if(!(tar->state & S_HEADER_VALID)) + return 1; + + return tar->pos >= data_end_pos(tar) ? 1 : 0; +} diff --git a/src/microtar.h b/src/microtar.h index a6d058b..b3ff05f 100644 --- a/src/microtar.h +++ b/src/microtar.h @@ -106,6 +106,7 @@ int mtar_next(mtar_t* tar); int mtar_foreach(mtar_t* tar, mtar_foreach_cb cb, void* arg); int mtar_find(mtar_t* tar, const char* name); int mtar_read_data(mtar_t* tar, void* ptr, unsigned size); +int mtar_eof_data(mtar_t* tar); #ifdef __cplusplus } |