Compare commits

..

No commits in common. "577f99cca66a7ecfe9ac3dea5b15c1673cfccb4f" and "eeb7bccda8b0ffaa1a542ed771675025e6cf4420" have entirely different histories.

4 changed files with 11 additions and 5 deletions

View File

@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.8..3.22)
project(minitar LANGUAGES C VERSION 1.2.0)
project(minitar LANGUAGES C VERSION 1.1.0)
set(SOURCES
src/tar.c

View File

@ -119,9 +119,13 @@ This enum lists all supported file types:
`MTAR_REGULAR`: Regular files
`MTAR_BLKDEV`: Block special devices
`MTAR_CHRDEV`: Character special devices
`MTAR_DIRECTORY`: Directories
Other file types supported in tar archives, such as block/character devices, FIFOs, or symlinks, are not supported and minitar will throw an error when encountering one of them.
Other file types supported in tar archives, such as FIFOs or symlinks, are not supported and minitar will throw an error when encountering one of them.
### minitar_entry_metadata
`struct minitar_entry_metadata`

View File

@ -15,6 +15,8 @@ struct minitar;
enum minitar_file_type
{
MTAR_REGULAR,
MTAR_CHRDEV,
MTAR_BLKDEV,
MTAR_DIRECTORY
};
@ -50,8 +52,8 @@ extern "C"
struct minitar_entry* minitar_find_by_name(struct minitar* mp, const char* name);
struct minitar_entry* minitar_find_by_path(struct minitar* mp, const char* path);
struct minitar_entry* minitar_find_any_of(struct minitar* mp, enum minitar_file_type type);
size_t minitar_read_contents(struct minitar* mp, struct minitar_entry* entry, char* buf, size_t max);
int minitar_close(struct minitar* mp);
size_t minitar_read_contents(struct minitar* mp, struct minitar_entry* entry, char* buf, size_t max);
#ifdef __cplusplus
}

View File

@ -126,8 +126,8 @@ void minitar_parse_metadata_from_tar_header(const struct tar_header* hdr, struct
case '0': metadata->type = MTAR_REGULAR; break;
case '1': minitar_panic("Links to other files within a tar archive are unsupported");
case '2': minitar_panic("Symbolic links are unsupported");
case '3': minitar_panic("Character devices are unsupported");
case '4': minitar_panic("Block devices are unsupported");
case '3': metadata->type = MTAR_CHRDEV; break;
case '4': metadata->type = MTAR_BLKDEV; break;
case '5': metadata->type = MTAR_DIRECTORY; break;
case '6': minitar_panic("FIFOs are unsupported");
default: minitar_panic("Unknown entry type in tar header");