2017-09-23 10:18:46 -07:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "pkg2zip_sys.h"
|
2017-10-31 11:40:07 -07:00
|
|
|
#include "pkg2zip_crc32.h"
|
2017-09-23 10:18:46 -07:00
|
|
|
|
|
|
|
|
#include <stddef.h>
|
|
|
|
|
#include <stdint.h>
|
|
|
|
|
|
|
|
|
|
#define ZIP_MAX_FILENAME 1024
|
|
|
|
|
|
2017-10-26 00:29:31 -07:00
|
|
|
typedef struct zip_file zip_file;
|
|
|
|
|
|
2017-09-23 10:18:46 -07:00
|
|
|
typedef struct {
|
|
|
|
|
sys_file file;
|
|
|
|
|
uint64_t total;
|
|
|
|
|
uint32_t count;
|
2017-10-26 00:29:31 -07:00
|
|
|
uint32_t max;
|
2017-09-23 10:18:46 -07:00
|
|
|
uint16_t time;
|
|
|
|
|
uint16_t date;
|
2017-10-31 11:40:07 -07:00
|
|
|
crc32_ctx crc32;
|
2017-10-26 00:29:31 -07:00
|
|
|
uint32_t allocated; // bytes
|
|
|
|
|
zip_file* files;
|
|
|
|
|
zip_file* current;
|
2017-09-23 10:18:46 -07:00
|
|
|
} zip;
|
|
|
|
|
|
|
|
|
|
void zip_create(zip* z, const char* name);
|
|
|
|
|
void zip_add_folder(zip* z, const char* name);
|
|
|
|
|
void zip_begin_file(zip* z, const char* name);
|
|
|
|
|
void zip_write_file(zip* z, const void* data, uint32_t size);
|
|
|
|
|
void zip_end_file(zip* z);
|
|
|
|
|
void zip_close(zip* z);
|