aboutsummaryrefslogtreecommitdiff
path: root/fake-winterop.c
diff options
context:
space:
mode:
Diffstat (limited to 'fake-winterop.c')
-rw-r--r--fake-winterop.c67
1 files changed, 0 insertions, 67 deletions
diff --git a/fake-winterop.c b/fake-winterop.c
index d238784..755853f 100644
--- a/fake-winterop.c
+++ b/fake-winterop.c
@@ -28,73 +28,6 @@ uint32_t ResetAcls(const char16_t **pwzFiles, uint32_t cFiles)
28 return 0; 28 return 0;
29} 29}
30 30
31typedef struct CabCreateContext {
32 char *outdir;
33 char *outfile;
34
35 char **args;
36 int nargs, argsize;
37} CabCreateContext;
38
39uint32_t CreateCabBegin(const char16_t *wzCab, const char16_t *wzCabDir,
40 uint32_t dwMaxFiles, uint32_t dwMaxSize,
41 uint32_t dwMaxThresh, int compression,
42 CabCreateContext **out_ctx)
43{
44 CabCreateContext *ctx = snew(CabCreateContext);
45 ctx->outdir = ascii(wzCabDir, true);
46 ctx->outfile = dupcat(ctx->outdir, "/", ascii(wzCab, true), cNULL);
47 ctx->nargs = 0;
48 ctx->argsize = 16;
49 ctx->args = snewn(ctx->argsize, char *);
50 ctx->args[ctx->nargs++] = dupcat(getenv("WIX"), "/", "makecab.py", cNULL);
51 ctx->args[ctx->nargs++] = ctx->outfile;
52 *out_ctx = ctx;
53 return 0;
54}
55
56uint32_t CreateCabAddFile(const char16_t *wzFile, const char16_t *wzToken,
57 void *pmfHash, CabCreateContext *ctx)
58{
59 char *file = ascii(wzFile, true);
60 char *file_abs = realpath(file, NULL);
61 char *cabname = ascii(wzToken, true);
62 printf("CreateCabAddFile: %s :: %s <- %s\n", ctx->outfile,
63 cabname, file_abs);
64 if (ctx->nargs + 1 >= ctx->argsize) {
65 ctx->argsize = ctx->nargs * 5 / 4 + 16;
66 ctx->args = sresize(ctx->args, ctx->argsize, char *);
67 }
68 ctx->args[ctx->nargs++] = cabname;
69 ctx->args[ctx->nargs++] = file_abs;
70 return 0;
71}
72
73uint32_t CreateCabAddFiles(const char16_t *const *pwzFiles,
74 const char16_t *const *pwzTokens,
75 void *pmfHash, uint32_t cFiles,
76 CabCreateContext *ctx)
77{
78 for (uint32_t i = 0; i < cFiles; i++)
79 CreateCabAddFile(pwzFiles[i], pwzTokens[i], pmfHash, ctx);
80 return 0;
81}
82
83uint32_t CreateCabFinish(CabCreateContext *ctx, void (*split_callback)(void))
84{
85 if (ctx->nargs + 1 >= ctx->argsize) {
86 ctx->argsize = ctx->nargs * 5 / 4 + 16;
87 ctx->args = sresize(ctx->args, ctx->argsize, char *);
88 }
89 ctx->args[ctx->nargs++] = NULL;
90 system_argv_array(ctx->args);
91 return 0;
92}
93
94void CreateCabCancel(void *hContext)
95{
96}
97
98uint32_t ExtractCabBegin(void) 31uint32_t ExtractCabBegin(void)
99{ 32{
100 return 0; 33 return 0;