Miscellaneous OpenComputers stuff.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Izaya 3b78ec9b81 updated to differentiate between v0 and v1 archives 5 months ago
..
OpenOS/usr updated liblz16 and libmtar to use string.(un)pack and support bigger files 5 months ago
README.md updated to differentiate between v0 and v1 archives 5 months ago
libmtar.lua updated liblz16 and libmtar to use string.(un)pack and support bigger files 5 months ago

README.md

mtar - Minitel Archiver

mtar is a file format for storing multiple files in a single file, much like tar, cpio or zip.

File format

mtar archive files consist of a number of file entries, in any combination of the following formats:

v1 format

  • 0xFFFF (for differentiating versioned headers from legacy v0 headers)
  • version byte, with the value 1
  • 2 bytes file name length
  • the file name
  • 8 bytes file content length
  • the file contents

Legacy v0 format

  • 2 bytes file name length
  • the file name
  • 2 bytes file content length
  • 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.