diff options
Diffstat (limited to 'fake-winterop.c')
-rw-r--r-- | fake-winterop.c | 67 |
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 | ||
31 | typedef struct CabCreateContext { | ||
32 | char *outdir; | ||
33 | char *outfile; | ||
34 | |||
35 | char **args; | ||
36 | int nargs, argsize; | ||
37 | } CabCreateContext; | ||
38 | |||
39 | uint32_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 | |||
56 | uint32_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 | |||
73 | uint32_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 | |||
83 | uint32_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 | |||
94 | void CreateCabCancel(void *hContext) | ||
95 | { | ||
96 | } | ||
97 | |||
98 | uint32_t ExtractCabBegin(void) | 31 | uint32_t ExtractCabBegin(void) |
99 | { | 32 | { |
100 | return 0; | 33 | return 0; |