From f7ee3e32504eb6d4ebcc76b80e71c27a15622286 Mon Sep 17 00:00:00 2001 From: XeonSquared Date: Sun, 31 May 2020 14:54:53 +1000 Subject: [PATCH] Updated README to include libmtar documentation and added type annotations to libmtar --- mtar/README.md | 9 +++++++++ mtar/libmtar.lua | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/mtar/README.md b/mtar/README.md index d0f6bd3..53cb015 100644 --- a/mtar/README.md +++ b/mtar/README.md @@ -12,3 +12,12 @@ mtar archive files consist of a number of file entries, in the following format: - the file contents Archives are terminated either by the end of file, or a record with a name length of zero. + +## libmtar + +libmtar is the reference implementation of mtar. It provides two functions: + + - `libmtar.genHeader(string: name, number: len): string` +Generates an mtar file header for a file called *name* that is *len* bytes long. + - `libmtar.iter(table: stream): function` +Given buffer *stream*, returns an iterator suitable for use with *for* that returns, for each iteration, the file name, a function to read from the file, and the length of the file. diff --git a/mtar/libmtar.lua b/mtar/libmtar.lua index 75bf9e2..9c4adef 100644 --- a/mtar/libmtar.lua +++ b/mtar/libmtar.lua @@ -19,7 +19,7 @@ local function cint(n,l) return string.reverse(string.char(table.unpack(t)):sub(1,l)) end -function mtar.genHeader(fname,len) -- generate a header for file *fname* when provided with file length *len* +function mtar.genHeader(fname,len) -- string number -- string -- Generates an mtar file header for a file called *name* that is *len* bytes long. return string.format("%s%s%s",cint(fname:len(),2),fname,cint(len,2)) end