/*
    fileio.c --
    File management.
*/

#include "shared.h"


uint8 *loadFromZipByName(char *archive, char *filename, int *filesize)
{
//    char name[PATH_MAX];
//    unsigned char *buffer;
//
//    int zerror = UNZ_OK;
//    unzFile zhandle;
//    unz_file_info zinfo;
//
//    zhandle = unzOpen(archive);
//    if(!zhandle) return (NULL);
//
//    /* Seek to first file in archive */
//    zerror = unzGoToFirstFile(zhandle);
//    if(zerror != UNZ_OK)
//    {
//        unzClose(zhandle);
//        return (NULL);
//    }
//
//    /* Get information about the file */
//    unzGetCurrentFileInfo(zhandle, &zinfo, &name[0], 0xff, NULL, 0, NULL, 0);
//    *filesize = zinfo.uncompressed_size;
//
//    /* Error: file size is zero */
//    if(*filesize <= 0)
//    {
//        unzClose(zhandle);
//        return (NULL);
//    }
//
//    /* Open current file */
//    zerror = unzOpenCurrentFile(zhandle);
//    if(zerror != UNZ_OK)
//    {
//        unzClose(zhandle);
//        return (NULL);
//    }
//
//    /* Allocate buffer and read in file */
//    buffer = malloc(*filesize);
//    if(!buffer) return (NULL);
//    zerror = unzReadCurrentFile(zhandle, buffer, *filesize);
//
//    /* Internal error: free buffer and close file */
//    if(zerror < 0 || zerror != *filesize)
//    {
//        mfree(buffer);
//        buffer = NULL;
//        unzCloseCurrentFile(zhandle);
//        unzClose(zhandle);
//        return (NULL);
//    }
//
//    /* Close current file and archive file */
//    unzCloseCurrentFile(zhandle);
//    unzClose(zhandle);
//
//    memcpy(filename, name, PATH_MAX);
//    return (buffer);
  return 0;
}

/*
    Verifies if a file is a ZIP archive or not.
    Returns: 1= ZIP archive, 0= not a ZIP archive
*/
int check_zip(char *filename)
{
//    uint8 buf[2];
//    FILE *fd = NULL;
//    fd = fopen(filename, "rb");
//    if(!fd) return (0);
//    fread(buf, 2, 1, fd);
//    fclose(fd);
//    if(memcmp(buf, "PK", 2) == 0) return (1);
    return (0);
}


/*
    Returns the size of a GZ compressed file.
*/
int gzsize(int gd)
{
//    #define CHUNKSIZE   (0x10000)
//    int size = 0, length = 0;
//    unsigned char buffer[CHUNKSIZE];
//    gzrewind(gd);
//    do {
//        size = gzread(gd, buffer, CHUNKSIZE);
//        if(size <= 0) break;
//        length += size;
//    } while (!gzeof(gd));
//    gzrewind(gd);
//    return (length);
//    #undef CHUNKSIZE
  return 0;
}




