Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/amachronic/microtar.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAidan MacDonald <amachronic@protonmail.com>2021-11-04 22:56:27 +0300
committerAidan MacDonald <amachronic@protonmail.com>2021-11-05 03:24:35 +0300
commit1bb9255348d02e2aff001ab60bdb51f8a60a9b87 (patch)
tree3bd6e6e3eb06b96653d4fb09a55dc92b62af0248
parenta848bc3f3caac2cc56e5d9c7436e9950f87d6e93 (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.c9
-rw-r--r--src/microtar.h1
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
}