Move CAB-reading into its own file.

This commit is contained in:
Simon Tatham 2017-05-18 19:00:07 +01:00
parent 8574dcc8c5
commit 5e1f0d7e9f
3 changed files with 43 additions and 35 deletions

View file

@ -4,8 +4,8 @@ ACLOCAL_AMFLAGS = -I m4
lib_LTLIBRARIES = libwinterop.la libmsi.la libpreload.la
libwinterop_la_SOURCES = fake-winterop.c makecab.c memory.c memory.h \
dupstr.c dupstr.h subproc.c subproc.h uchars.c uchars.h
libwinterop_la_SOURCES = fake-winterop.c makecab.c readcab.c memory.c \
memory.h dupstr.c dupstr.h subproc.c subproc.h uchars.c uchars.h
libmsi_la_SOURCES = makemsi.c md5.c memory.c memory.h version.c \
dupstr.c dupstr.h subproc.c subproc.h uchars.c uchars.h

View file

@ -27,36 +27,3 @@ uint32_t ResetAcls(const char16_t **pwzFiles, uint32_t cFiles)
{
return 0;
}
uint32_t ExtractCabBegin(void)
{
return 0;
}
uint32_t ExtractCab(const char16_t *wzCabinet, const char16_t *wzExtractDir)
{
char *cab = ascii(wzCabinet, true), *dir = ascii(wzExtractDir, true);
fprintf(stderr, "ExtractCab(\"%s\", \"%s\"\n", cab, dir);
system_argv("cabextract", "-d", dir, cab, cNULL);
return 0;
}
void ExtractCabFinish(void)
{
}
uint32_t EnumerateCabBegin(void)
{
return 0;
}
uint32_t EnumerateCab(const char16_t *wzCabinet, void *pfnNotify)
{
/* FIXME: pfnNotify looks like a fn ptr again */
fprintf(stderr, "EnumerateCab!\n");
return 0;
}
void EnumerateCabFinish(void)
{
}

41
readcab.c Normal file
View file

@ -0,0 +1,41 @@
#include <stdint.h>
#include <stdbool.h>
#include <uchar.h>
#include <err.h>
#include "memory.h"
#include "subproc.h"
#include "uchars.h"
uint32_t ExtractCabBegin(void)
{
return 0;
}
uint32_t ExtractCab(const char16_t *wzCabinet, const char16_t *wzExtractDir)
{
char *cab = ascii(wzCabinet, true), *dir = ascii(wzExtractDir, true);
warnx("ExtractCab(\"%s\", \"%s\"", cab, dir);
system_argv("cabextract", "-d", dir, cab, cNULL);
sfree(cab);
sfree(dir);
return 0;
}
void ExtractCabFinish(void)
{
}
uint32_t EnumerateCabBegin(void)
{
return 0;
}
uint32_t EnumerateCab(const char16_t *wzCabinet, void *pfnNotify)
{
return -1; /* we don't support this call */
}
void EnumerateCabFinish(void)
{
}