From 5e1f0d7e9fb3b05c5867c57c9dfee0363441feae Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Thu, 18 May 2017 19:00:07 +0100 Subject: Move CAB-reading into its own file. --- Makefile.am | 4 ++-- fake-winterop.c | 33 --------------------------------- readcab.c | 41 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 35 deletions(-) create mode 100644 readcab.c diff --git a/Makefile.am b/Makefile.am index 951eb9d..c40bb2e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 diff --git a/fake-winterop.c b/fake-winterop.c index 755853f..70261e2 100644 --- a/fake-winterop.c +++ b/fake-winterop.c @@ -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) -{ -} diff --git a/readcab.c b/readcab.c new file mode 100644 index 0000000..c9171ca --- /dev/null +++ b/readcab.c @@ -0,0 +1,41 @@ +#include +#include +#include +#include + +#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) +{ +} -- cgit v1.2.3-55-g6feb